Porting Tips: iOS to Android

8,615 views

Published on

This is a collection of tips I've accumulated during my experience of porting iOS apps to Android. It accompanied a talk i gave at openMIC#16 in Exeter, UK on 15 Feb 2013

Published in: Design
4 Comments
7 Likes
Statistics
Notes
  • Thanks for the presentation that clearly shows all processes. Check our article on the following topic here: https://yalantis.com/blog/why-to-convert-your-app-from-ios-to-android/
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • It may me a good idea to let 3d party developers bring your startup to Android. There are companies like http://www.furdei.systems who has already had experience in such tasks and know how to meet all the challenges.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Great insights, thanks.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • a very good presentation, thanks
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
8,615
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
0
Comments
4
Likes
7
Embeds 0
No embeds

No notes for slide

Porting Tips: iOS to Android

  1. 1. Porting Tips: iOS to Android OpenMIC #16 @ Exeter University 15 Feb 2013 Elliot Long @elroidMonday, 18 February 13
  2. 2. Agenda • Why port? • UI Structural Considerations • UI Style Considerations • Responsive Design • Testing/Distribution • Android specialtiesMonday, 18 February 13
  3. 3. Porting? Port [pohrt] Vb To translate software to run on a different computer and/or operating system. Monday, 18 February 13
  4. 4. Porting? Port [pohrt] Vb To rewrite an application so it works on a different platform, using some common assets where possibleMonday, 18 February 13
  5. 5. Why Android?Monday, 18 February 13
  6. 6. Why not web-apps? e.g. PhoneGap Appcelerator Corona FlashBuilderMonday, 18 February 13
  7. 7. One size does not fit allMonday, 18 February 13
  8. 8. One size does not fit all*Monday, 18 February 13
  9. 9. *...unless you’re making a gameMonday, 18 February 13
  10. 10. So what’s so different?Monday, 18 February 13
  11. 11. So what’s so different? Buttons, mainly.Monday, 18 February 13
  12. 12. #1: We don’t need that on-screen back buttonMonday, 18 February 13
  13. 13. #2: Menu options are there if you need them [with menu key] [without menu key]Monday, 18 February 13
  14. 14. #2: Menu options are there if you need them ...and for compatibilty with older apps....Monday, 18 February 13
  15. 15. #3a Tabs: Should be at the very least be moved to the top...Monday, 18 February 13
  16. 16. #3b Tabs: ...and preferably look more android like... ActionbarSherlock + HoloEverywhereMonday, 18 February 13
  17. 17. #3b Tabs: ...and preferably look more android like... jgilfelt.github.com/android-actionbarstylegeneratorMonday, 18 February 13
  18. 18. #3c Tabs: ...or ideally ditched altogetherMonday, 18 February 13
  19. 19. #3d: Life without tabs: the 3rd wayMonday, 18 February 13
  20. 20. #3d: Life without tabs: the 3rd way github.com/jfeinstein10/SlidingMenuMonday, 18 February 13
  21. 21. Style: General guidelines •Not quite so rounded •16:9 not 3:2Monday, 18 February 13
  22. 22. Style: UITableView vs LinearLayout •No rounded corners •No lines to the edge! •No chevrons •Accordions? Hmm...Monday, 18 February 13
  23. 23. Style: UITableView vs ListView Separate each row --or-- Put them in a scrolling rounded windowMonday, 18 February 13
  24. 24. Style: 9Patch images http://weblookandfeel.com/nine-patch-editor/ iOS5 equivalent: cap insetsMonday, 18 February 13
  25. 25. Style: 9Patch images http://weblookandfeel.com/nine-patch-editor/Monday, 18 February 13
  26. 26. Style: Button states In iOS you get lovely blueness for free No free lunch for android, need several states for all buttonsMonday, 18 February 13
  27. 27. Style: Icons http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html Tip: Android tablets icons come from the “next bucket up” e.g. the Nexus 10 is an xhdpi device, but will use icons from the xxhdpi bucketMonday, 18 February 13
  28. 28. Style: Switch Buttons Not supported by ABS or HoloEverywhere (yet) Pretty easy to do with images (extend CompoundButton or use an ImageView)Monday, 18 February 13
  29. 29. Style: Fonts Can use TrueType fonts (like iOS5) Not straightforward... But do you really need them....?Monday, 18 February 13
  30. 30. Roboto in ICS+Monday, 18 February 13
  31. 31. Roboto before ICS Roboto Regular Roboto Bold Roboto Italic But you can use roboto.ttf for < ICSMonday, 18 February 13
  32. 32. Style: Densities ldpi - 0.5x mdpi - 1x hdpi - 1.5x xhdpi - 2x xxhdpi - 2.5x? http://developer.android.com/guide/practices/ screens_support.htmlMonday, 18 February 13
  33. 33. iPhone 3 HTC Dream (G1)Monday, 18 February 13
  34. 34. Nexus 1Monday, 18 February 13
  35. 35. HTC SensationMonday, 18 February 13
  36. 36. HTC Sensation iPhone 4s (640x960)Monday, 18 February 13
  37. 37. Galaxy NexusMonday, 18 February 13
  38. 38. Sony Xperia ZMonday, 18 February 13
  39. 39. Android iPhoneMonday, 18 February 13
  40. 40. Vodafone 858Monday, 18 February 13
  41. 41. Responsive Design Do Use: •LinearLayout, RelativeLayout •layout_weight, match_parent, wrap_content •dps for measurements, sp for fonts Do not use: •AbsoluteLayout •px for interface measurements •dp for fonts (sp takes user font size pref into account)Monday, 18 February 13
  42. 42. Testing & Distribution iPhone Android Type Simulator Emulator Quicker, not as suitable for Slower, more Suitability debugging, esp multi- threaded accurate Provisioning Share a link to Beta Testing (doh!) APK Up to 50mb Binary Size Up to 2GB +2 x 2GB extension packsMonday, 18 February 13
  43. 43. Don’t forget - Android does things iOS doesn’t!Monday, 18 February 13
  44. 44. Android Specialties •Background processesMonday, 18 February 13
  45. 45. Android Specialties •Background processes •Intent-filter: BROWSABLEMonday, 18 February 13
  46. 46. Android Specialties •Background processes •Intent-filter: BROWSABLE •WidgetsMonday, 18 February 13
  47. 47. Android Specialties •Background processes •Intent-filter: BROWSABLE •Widgets •Rich notificationsMonday, 18 February 13
  48. 48. Android Specialties •Background processes •Intent-filter: BROWSABLE •Widgets •Rich notifications •NFCMonday, 18 February 13
  49. 49. Useful Resources actionbarsherlock.com www.holoeverywhere.com developer.android.com/design developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html www.androidpatterns.com Sliding Menu github.com/jfeinstein10/SlidingMenu Actionbar Style Generator jgilfelt.github.com/android-actionbarstylegeneratorMonday, 18 February 13
  50. 50. Useful Resources www.jetbrains.com/ideaMonday, 18 February 13
  51. 51. Questions? Elliot Long @elroidMonday, 18 February 13

×