Saturday, October 29, 2011
Comparing Mobile OS SDK availability by platform
First up, I'm only talking about native apps here (with "native" being anything that's not just some HTML+JS zipped up or served via the web, i.e. native usually means you need to have some form of compiler, even if it targets a VM). If you are into "web apps", chances are that you don't need an SDK to get started (even though one might help). I'll look at iOS and Android (because these are the strong mainstream OSes today), Maemo/MeeGo (because it's my platform of choice right now), Symbian (because I'm targeting it too with Qt) and WP7 (because that's what MS and Nokia want to succeed). When I write "MeeGo" I mean MeeGo 1.2 Harmattan, which technically is more like a "Maemo 6". Think "the OS that the N9 runs". I have a bit of experience with Android development, no experience at all with iOS or WP7, some experience with Symbian (through Qt) and arguably lots of experience with Maemo/MeeGo (yay!).
Why is that important? First up, if you are a Linux or OS X user, chances are that you don't have a Windows installation, and installing Windows will cost you money (for the Windows license), time (because you have to set it up) and space (because you have to dedicate a partition/VM image for it). If you don't have Apple hardware, getting an OS X installation means purchasing Apple hardware (ignoring Hackintoshes here), which is again costly. At least you would need to purchase OS X and dedicate a partition/VM for it, plus the time it needs to set it up.
Why OS X and Windows? As far as I know, if you want to develop for iOS, you have to use XCode, and that is only available on Mac OS X. Similarly, if you want to develop for WP7, you have to use the Windows Phone SDK, which is only available on Windows (>= Vista according to the website, so your XP install might not help there).
Now, let's look at Android, MeeGo and Symbian. Android's SDK is available for Windows, Linux (x86 and amd64) and Mac OS X. You can compile your apps on all these platforms (using your system's javac + tooling provided by the SDK). For C/C++ Android apps, the NDK is also available for all three platforms. For Qt-based OSes (Symbian and Maemo/MeeGo), the Qt SDK itself is available for Windows, Linux (x86 and amd64) and Mac OS X (64-bit). Using the Remote Compiler (which uses compilers set up on a server farm at Nokia, and you need a Nokia Developer account to use it) you can compile Symbian binaries on OS X, Linux and Windows, although the locally-installable compilers for Symbian are only available on Windows (at least that was the case 6 months ago). For Maemo and MeeGo, cross-compilers exist natively for all supported platforms of the Qt SDK, so without using Remote Compiler, you can build and package your Qt apps for MeeGo on Windows, Linux (x86 and amd64) and OS X.
Now, people can argue that one can set up dual-boot or virtual machines to support all OSes, but that's not the point. The point is that if the SDK is available on all Desktop platforms (note that this is not the same as SDK targetting all mobile platforms), developers can retain their choice of Desktop OS on which they develop on, and are not forced to use OS X or Windows for development of apps for the corresponding mobile platform (I also understand the reason why these companies only provide the SDK for their own Desktop platform, but that is not a good reason from a developer's point of view).
I hope that the Qt SDK will continue to support Windows, Mac OS and Linux for any mobile target platforms that it supports - be it ones named after winds or not - so developers have a choice of development platform.
In other news, gPodder 2.950.15 has been uploaded to Nokia Store (still waiting in QA) which fixes video playback and streaming, so grab the update on your N950/N9 when it becomes available :)
Wednesday, March 24, 2010
MaemoPad+ ported to Desktop Linux
Some weeks ago, a user of MaemoPad+ asked me if it was possible to port MaemoPad+ to the Desktop, so users of Tablet PCs can make use of it. Apart from that, this can also be useful for users of MaePad to copy their "memos.db" file from the N900 to their PC and edit the file (or just view the contents) on the big screen. The file format used by both MaemoPad+ and MaePad is the same, so users of the mobile versions can share their database files with the Desktop version (and vice versa), which by the way looks like this at the moment:
Most of the Maemo 4 libraries are readily available in Debian (hildon, libosso, hildon-icons, etc..), so the initial port has not been too difficult, even though proper Desktop integration obviously needs more work, and there are some ugly crashers still hidden inside the code ;)
I wonder if it's possible to also package Maemo 5 libraries (Hildon 2.2, etc..) for Debian and upload them to the Debian repositories - this should make it easier to port Maemo 5 applications to the Linux Desktop without having to re-write the whole UI layer. Another cool thing would be to have Hildon 2.2 for Diablo, which would allow us to "backport" Maemo 5 apps to Maemo 4 - again, without the work of having to re-write the UI.
Packages for Ubuntu are available from the MaemoPad+ PPA, and the source is available via Git. Please send backtraces of crashes or (even better!) patches against the "desktop" branch in the Git repo.