Getting ready for Android


Android support in Delphi is on the Roadmap and is expected in the fall.   Although I have a Mac and an IPad, I have an Android Phone.   I was not as excited for the XE4 (iOS support) release as I am about Android support. I have some thoughts on Android that I want to share…Market ShareOverall I see a greater number of Android devices, in fact we have 5 Android based devices in my home and only 1 iOS device.  Market studies that I have read vary, but shows in some cases a 50-50 marketand in other it shows that Android has a greater market share.   Regardless the possibility of using Delphi to write a single application that can target both is very exciting. Android VersionsAndroid currently has shipped 7 different, Major product releases. These are separated by different code names.     Unlike iOS where most of the users are using the latest version.   Knowing this code names will make your life easier as they are referenced in documentation, blog posts, articles, etc…The 3 most popular (as of July 8, 2013):Gingerbread  – 34.1%Ice Cream Sandwich – 23.3%Jelly Bean  – 37.9%Full details on the break down of each code name are market share can be found on the site.   Another good tidbit from this site is the various screen resolutions andform factors you will see when targeting android.DistributionDistribution is not locked down like the iOS market.You can distribute you applications in several different ways including-Google Play Store-Amazon App Store-Download from you own siteDesign of your applicationI love to hear customers talk about just moving an existing windows application to Windows.   After talking with them, they quickly realize that the form factor and touch interface requires a redesign to the look and feel of an application.     For example, most VCL Delphi Applications I have seen contain a Grid.   I rarely see such anything like that on mobile platforms.   To help with this mind set switch I would recommend reading a couple of Design Guidelines.iOS Human Interface GuidelinesAndroid Developer Pattern Guidelines. (Check out other sections as well)A bit about the internals of AndroidAt the heart of Android is the Linux Kernel (Version 3.x since Ice Cream Sandwich release).On top of the Kernel sits the Dalvik Virtual Machine which runs Java Byte Code.So when it comes to development you have two targeting options.   Native – Runs at the Linux Kernel LevelJava Byte Code – Runs in the Dalvik Virtual MachineSince Delphi is using LLVM for the Android Compiler, applications running will be targeting native.Java has history of being able to interop between native compiled code, it uses a technology called JNI.I  suspect that Delphi will have some easy way to do JNI since several of the android libraries are based in Dalvik.Now it’s time to wait and see what Delphi’s Android support will really shape up to be.

Comments are closed.