Monday 10 December 2012

Background about mobile technologies


Operating Systems which are used in mobile Application Development

Android

§  open platform
§  can compile custom firmwares - good for hackers and other
§  good framework, extended on each new firmware
§  supports multitasking
§  nice IDE - Eclipse, NetBeans
§  development SDK is free
§  easy to debug, can send logs to developers
§  programming language is Java but bridges from other languages exist (C# .net - Mono, etc)
§  Java is a high level language that appeared in 1995. Android supports Java 1.5 and translates the byte code to its own custom Dalvik byte code optimized for mobile devices.
§  for the hardcore programmers, Android offers the possibility of programming in C using the native dev kit NDK
§  can run script languages like LUA, Perl, Python, etc
§  can install third party applications from sdcard, random sites - not locked to a specific market
§  applications can hook and override everything - email interface, SMS sending, custom keyboards, etc
§  supports widgets
§  can publish applications on the Android market instantly - initial one time registration fee is 25E
§  user has access to the sdcard and can use it as a USB disk.



Symbian OS
§  Designed by Symbian Ltd. , acquired by Nokia in 2008
§  Was made Open Source in 2010
§  Supports pre-emptive multitasking and memory protection
§  Application development can be done using Symbian C++
§  Supports Java ME
§  Devices :N8 , Nokia 5800


Palm OS
§  Developed by Palm Inc.
§  Applications are developed in C/C++
§  Development tool : Code Warrior
§  Devices :
§  Treo 300
§  Samsung SPH-i550


   iPhone
§  closed platform
§  no multitasking except for some Apple applications. multitasking is probably going to be introduced in the next vertion of the iPhone, the iPhone 4
§  development kit costs ~90E
§  programming language is Objective C - but bridges exist from Java, C#, etc
§  Objective C appeared in 1986
§  next version of iPhone is supposed to only allow Objective C code, this means the bridges are out and you must program in Objective C if you want to create an iPhone application
§  applications are not allowed to duplicate the iPhone functionality - ie no custom email interface, etc
§  does not support widgets - unless the phone is jail broken
§  user does not have access to the sdcard - user can only do synchronization via internet or LAN
§  third party applications can only be installed from the Apple store. For testing the applications, developers can use Ad Hoc publishing
§  publishing on the store is a very lengthy and tiresome process. Apple has many and bizarre rules. Many applications were rejected for strange reasons.
§  no Adobe Flash support



    Nokia
§  opened Symbian and says the future will be QT and WRT - they will cut support to any other environment including J2ME
§  QT is a framework that adds a layer of abstraction over gui, network, gps, etc.
§  QT is cross platform and cross programming language - C++, C#, Java, etc. the licenses are GPL and LGPL.
§  QT runs on Maemo, MeeGo, BlackBerry, Symbian, Android, iPhone, Windows Mobile, desktop PC, consumer electronics, car entertainment, etc
§  WRT - web runtime - a cool feature that allows users to write applications in HTML, JS and CS. You build the app like a normal web page, and you interact with the phone platform/hardware using the WRT bridge.
No need to learn any other technology. Just HTML, JS and CS. Very important: JS can call native code, but also the other way around. It seems you can call WRT JS with native code.
§  supports widgets
§  supports Adobe Flash Lite


BlackBerry
§  as it is now, the programming environment is Java native and J2ME - not worth mentioning since they will probably be extinct pretty soon
§  no Adobe Flash support yet. Probably will be available in Q2 of this year.

Windows Mobile 6.x
§  native C, C# with PInvoke - not worth mentioning since MS released WM7 and broke compatibility with 6.5


Windows Mobile 7
§  closed platform
§  MS breaks compatibility with WM 6.x - this is very bad
§  Programming environment is Silverlight and XNA.
§  no native programming ie no hooking and overriding keyboard, etc - they removed PInvoke
§  nice IDE - Visual Studio 2010
§  does not support multitasking for third party applications
§  third party applications can only be installed from the MS marketplace

No comments:

Post a Comment