Search code examples
c++qtjava-mesymbiannokia

Approach to developing an application across many Nokia devices


First off, greetings everyone and thank you for your interest in my question.

I'm currently working at a mobile startup. Our product is a communication app for Android, iOS and BlackBerry devices and we're looking to expand onto some Nokia platforms.

I don't know a lot about Symbian details as I've never actually programmed in the platform before but this is all of the information I was able to gather.

The platforms to support are Symbian S60, Symbian^3 / Symbian "Anna", Maemo + Meego.

In order to accomplish this, there's several tools at our disposal but we're not sure which ones to use.

Nokia Qt appears to be unsupported on Symbian S40 devices (we seem to be stuck with J2ME) and Symbian S60 devices pre-3rd Edition Feature Pack 1

On Symbian's C++ we can't rely on C++'s STL. This means that we can either create two versions of the same software or create our own STL that's compatible with Symbian (I'd like to avoid that).

Approach

Among the team the consensus seems to be to split this into two logical chunks:

  • Core business logic + libraries in C++
  • Device specific UI branches using Qt or native UI tools

With all this information in mind, I ask:

  1. What is the general approach for this problem? Is there any considerable flaws with the one mentioned, namely incompatibility or inconsistencies with Qt on older platforms?

  2. What pitfalls should we avoid to ensure compatibility and performance of the app across all Nokia devices listed?

  3. Is there a way to get around Symbian's C++ limitation of the STL? Can we bundle the Qt sources somehow?

Suggestions and other approaches are welcome. Thank you for all your feedback.


Solution

  • There are STL implementations that are possible to use on Symbian. I was once part of a team hat used a C++ core (with STL) on Symbian devices ranging from S60v1 to S60v5 as well as UIQ, S80 and S90. The same core was also used on windows mobile. We used STLPort for the STL implementation, but I have been unable to find that specific version again. I do believe there are other Symbian STL implementations out there.

    On the other hand S60 device have a very competent J2ME runtime, so if you have to develop a J2ME app for S40 devices you might as well use it on S60 as well.