Tackling Android Fragmentation Dev:Mobile Inmeta consulting 16 klocs – not rocket science
Source: Twitter /
HTC 3G SLIDE On sale May 2010 Got Gingerbread May 2011 X
Android ICS 7.3% (All versions) Honeycomb 2.7% Gingerbread (2.3) 65% Froyo (2.2) still at 19.1 % As of February 2012 Phones with no ICS upgrade plan still sold This will continue iOS 61% on iOS 5 or above in 15. days! Source:
WHO CARES?
«Prove that it is feasable, and not overly difficult to, write single APK, native android apps that works well across android versions and form factors»
ICS/ Honeycomb tabs ActionBar & Home Navigation Action Items ViewPager
Contextual Actionbar Tab Navigation … with ListView multiselect
Android ICS 7.3% (All versions) Honeycomb 2.7% Gingerbread (2.3) 65% Froyo (2.2) still at 19.1 % As of February 2012 Phones with no ICS upgrade plan still sold This will continue iOS 61% on iOS 5 or above in 15. days! Source:
<uses-sdk android:minSdkVersion=”7" android:targetSdkVersion="14” />
public class TargetSDKVersionExample extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }
<item android:showAsAction="ifRoom|withText" />
ICS Gingrerbread
<uses-sdk android:minSdkVersion=”7" android:targetSdkVersion="10” />
ICS Gingrerbread
Official Android 3 & 4 features backported Very simple to use; download using SDK manager and include JAR file in project Includes Fragment API & DialogFragment Loader API ViewPager, Pager Adapter & FragmentPagerAdapter SearchView Simple Actionbar implementation provided in samples source:
No action bar Code «infection» Cannot extend MapActivity since you have to extends custom Activity class
Written by Jake Whorton Easy to use (git clone) Includes & based on support libraries Elaborate. Support for wide range of Honeycomb and ICS features Actionbar Navigation Modes, Tabs and spinners in the action bar. Contextual Action Bar / ActionMode The ICS feature "split action bar“ Plugin for MapActvity (!) Apache License Version 2.0
We have used the support libraries, through ActionBarSherlock to get ICS looking apps on pre-ICS phones (back to 1.6 supported) The price Must use a custom theme Must extends SherlockActivity classes Must use overloaded methods, and use getSuppportMenuInflater() etc.
WHAT Introduced in Android 3.0 Reusable UI components Have their own lifecycle Can add their own items to actionbar etc. WHY Code Reuse Fragments are integrated into the ICS SDK
Actionbar uses TabListeners for tab navigation onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) Source:
Declared in layout Added/removed from code using FragmentManager
HTC Sensation Button (100dpx 100dp)
Samsung Galaxy Tab 10.1
Huawei IDEOS
xlarge screens are at least 960dp x 720dp. large screens are at least 640dp x 480dp. normal screens are at least 470dp x 320dp. small screens are at least 426dp x 320dp
Excellent support for providing resources based on device configuration Versions mcc310- mnc004 (US/Verizon) Car/desk (docking) Night mode ETC Source:
Provide differnet layout for different screens and orientations - backed by the same activity Provide a different Activity class for a different device/layout. Example one for phone and one for tablet
Dispatch Activity (condition) Phone Activity Tablet Activity Intent New Intent
The Android OS and devices are both forward- and backwards compatible in regard to OS versions Android has excellent support for layout on devices with different screen sizes and densities By using the ActionbarSherlock/Fragment activities you can write code that use fragments and deploy on tablets and phones By using ActionbarSherlock you can get the «ICS look» on your Android 1.X + devices today. Including the kindle fire.
“I am an old man and have known a great many troubles, but most of them never happened” – Mark Twain