Approach to developing an application across many Nokia devices
Asked Answered
A

3

6

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.

Adamo answered 15/6, 2011 at 3:46 Comment(1)
For question 1. Symbian S60 3rd edition (there's a subdivision in S60 3rd edition and S60 5th edition O_o, as far as I know 3rd ed. is for non-touch devices and 5th ed. is for touch devices) will be limited to Qt 4.6.x while the other ones will continue to be update, right now they are in 4.7.x which most important feature is a cool technology called Qt Quick.Walsingham
R
0

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.

Race answered 17/6, 2011 at 7:34 Comment(2)
I'm told that the STLPort is not of good quality. Other ports of the STL and are generally incomplete, with the exception of EA's (but it's license restricts it's usage). I also read that you can only use C# for Windows Phone 7 atm (unless you're referring to older WinMo versions), can we use the same libraries as C# libraries? Finally, we already have some J2ME components written for our BlackBerry app, which helps.Adamo
I've never work with Window Phone 7, I was referring to older versions of WinMo. But as an example it's still valid, we used the same C++ core on Linux systems (hosted and mobile) as well. You might need different versions of STL for different platforms but that is mostly a build problem. We had no problems with STLPort quality, but there should be other more modern Symbian STL ports available today. It will probably be less effort to make sure your S40/blackberry j2me app runs on S60 as well than to code a common C++ core.Race
P
2

You should consider that Symbian is a dying platform, so I would not invest huge development effort into a Symbian application. And even more so I would not use Symbian C++. Qt is a promising platform but Nokia/Microsoft announced that there will be no Qt port for Windows phone (which might be interesting for you). Maybe you should support Nokia devices only by Java ME because Symbian has big market share but the most devices are not smartphones where you can run a Qt app.

Your approach sounds very idealized, but I am not sure if you can use the C++ libraries you mentioned for the business logic from Java ME. Is that possible?

Primogeniture answered 15/6, 2011 at 8:36 Comment(1)
We will have to rely on a J2ME platform in order to support Symbian S40 devices. For S60 and Symbian^3 devices, the J2ME runtime imposes some severe limitations that are only available via the C++/Qt runtime, placing that scenario out of the question.Adamo
V
0

I am not more experiences as you but according to me Qt is good for Application development.Write code once to target multiple platforms Qt allows you to write advanced applications and UIs once, and deploy them across desktop and embedded operating systems without rewriting the source code saving time and development cost. Thanks

Velamen answered 15/6, 2011 at 9:16 Comment(0)
R
0

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.

Race answered 17/6, 2011 at 7:34 Comment(2)
I'm told that the STLPort is not of good quality. Other ports of the STL and are generally incomplete, with the exception of EA's (but it's license restricts it's usage). I also read that you can only use C# for Windows Phone 7 atm (unless you're referring to older WinMo versions), can we use the same libraries as C# libraries? Finally, we already have some J2ME components written for our BlackBerry app, which helps.Adamo
I've never work with Window Phone 7, I was referring to older versions of WinMo. But as an example it's still valid, we used the same C++ core on Linux systems (hosted and mobile) as well. You might need different versions of STL for different platforms but that is mostly a build problem. We had no problems with STLPort quality, but there should be other more modern Symbian STL ports available today. It will probably be less effort to make sure your S40/blackberry j2me app runs on S60 as well than to code a common C++ core.Race

© 2022 - 2025 — McMap. All rights reserved.