Mobile is still Fresh

598 views
509 views

Published on

In this talk Alexey will once again compare Web and Mobile, but this time with a little twist. Alexey will be talking about the problems he encountered in Mobile, which does not arise in the Web, and what solutions were found. Talk will have a number of plot twist and will include the following topics:
- Why Web and Mobile are so different?
- Common pitfalls in Mobile projects
- Comparison of Mobile solutions
- How can we improve Mobile

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
598
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mobile is still Fresh

  1. 1. Mobile Fresh Alexey Buzdin January 2014
  2. 2. Speaker Android and Java enthusiast at @AlexeyBuzdin! LArchaon alex.buzdin@gmail.com
  3. 3. Table of Content • Mobile vs Web++ • What makes Web simple and attractive • What are the pitfalls developing mobile apps • Android vs iOS • Interesting Android facts @AlexeyBuzdin! LArchaon alex.buzdin@gmail.com
  4. 4. DISCLAIMER All characters, events, thoughts and ideas used in this presentation — even those based on real life — are entirely fictional and purely subjective to speaker opinion. :)
  5. 5. Round 1 0:0 Growth
  6. 6. 1995 to Present Day
  7. 7. Web had >20 years to evolve
  8. 8. Mobile as we know it today June 29, 2007 - 7 years ago July 9, 2008 - 6 years ago
  9. 9. 2008 to Present Day
  10. 10. Number of mobile phones to exceed world population by 2014 iOS and Android - 1 million+ apps http://www.digitaltrends.com/mobile/mobile-phone-world-population-2014/
  11. 11. Mobile 1:0 [G ro ws f as ter ]
  12. 12. Round 2 1:0 Learning Curve
  13. 13. Mobile vs Web
  14. 14. Technologies
  15. 15. <span id="button"> Button </span> ! var button = document.getElementById("button"); button.addEventListener("onclick",function() { window.alert( “Hello World." ); });
  16. 16. ! <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:text="Button" android:onClick=“click"/> ! public void click(View button) { Toast.makeText(context, "Hello World", 0).show(); }
  17. 17. <Button x:Name="Button" Content="Button" Click=“Button_Click"/> ! private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show(“Hello World", "Caption", MessageBoxButton.OK); }
  18. 18. @property (weak, nonatomic) IBOutlet UIButton *button; ! - (IBAction)buttonClick:(id)sender { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Caption" message:@"Hello World" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; ! [alert show]; }
  19. 19. I smell trouble • @property (weak, nonatomic) IBOutlet UIButton *button ! • Every time Xcode opens a XIB / Storyboard, it will also change a minute detail in the XML format. Are you using version control system? ! • Merges on XIBs and Storyboards can go horribly wrong, because their XML formats were not meant to be merged.
  20. 20. And at least Web has some ‘Standards'
  21. 21. 3 platforms vs 1 Cross Platform?
  22. 22. Cross platformers • Must be a native app-store app • Must use native-looking UI controls. • Must perform, even last-gen phones • Must support at least iPhone & Android & WP • Must have extensive documentation and community • Must upgrade to new OS releases in time
  23. 23. Available Options • Embedded • Build • VM WebView to native code
  24. 24. mGWT Codename One Apportable RoboVM Xamarin
  25. 25. Corona ! RhoMobile ! DolphinPHP ! Adobe Air
  26. 26. PhoneGap Sencha Touch Titanium
  27. 27. Not Mentioned* *Game Engines
  28. 28. Embedded WebView As of Android 4.4 - WebView is now built on Chromium
  29. 29. Embedded WebView iOS UIWebView lacks Nitro Javascript engine. This makes executing Javascript much slower compared to Safari.
  30. 30. Native UI?
  31. 31. Native UI
  32. 32. Releases
  33. 33. Cross platformers • • • • • • d] e rm nfi Must be a native app-store app Co [ e] bl si lau Must use native-looking UI controls. [P e] ibl us la Must perform, even last-gen phones [P d] e rm nfi Must support at least iPhone & Android & WP Co [ e] bl Must have extensive documentation and community i us la [P e] bl Must upgrade to new OS releases in time si lau [P
  34. 34. Web 1:1 [E as ier to Le a rn ]
  35. 35. Round 3 1:1 Ease of Development
  36. 36. Web frameworks and countless others JS and CSS frameworks in the wild
  37. 37. Android libraries? • HoloEverywhere - backport Holo theme & widgets from Android 4.* to 2.1+ • Robolectric - run test inside the JVM on your workstation in seconds. • RoboGuice - framework that brings the simplicity and ease of Dependency Injection to Android • AndroidAnnotations - framework that speeds up Android development using annotations. • ActionBarSherlock - backport ActionBar from Android 4.* to 2.1+
  38. 38. Android - January 2013
  39. 39. Android - January 2014
  40. 40. Android libraries? That’s basically it folks
  41. 41. Dev Environment
  42. 42. Dev Environment jsbin.com jsfiddle.net hongkiat.com/blog/cloud-ide-developers
  43. 43. Pitfalls • Adaptive design • Backport functionality • Optimisation for markets • Memory management • Besting speed
  44. 44. Adaptive?
  45. 45. Mobile
  46. 46. Should be adaptive by default
  47. 47. Should be adaptive by default Also problems with images
  48. 48. Pitfalls • Adaptive design • Backport functionality • Optimisation for markets • Memory management • Besting speed
  49. 49. Backport and optimisation • No ActionBar in Android < 3.0 • No Fragments in Android < 3.0 • Kindle, OUYA, etc markets require additional configs • iOS7 features does not work on <iOS7 (3G, 3GS) • Supporting iPhones and iPads require additional work
  50. 50. Support libraries
  51. 51. No proper packet management! github.com/mosabua/maven-android-sdk-deployer
  52. 52. Pitfalls • Adaptive design • Backport functionality • Optimisation for markets • Memory management • Besting speed
  53. 53. Memory management Passing image from one screen to another … Screen 1 Screen 2 Image Image Memory leak!
  54. 54. Memory management Changing orientation and not handling ongoing request … Memory leak!
  55. 55. Pitfalls • Adaptive design • Backport functionality • Optimisation for markets • Memory management • Besting speed
  56. 56. Bottleneck candidates: Images and HTTP
  57. 57. Web [E 1:2 as ier to De ve lop ]
  58. 58. Round 4 1:2 Ease of Testing
  59. 59. Mobile vs Web
  60. 60. Testing Web 2-3 html5test.com caniuse.com
  61. 61. Test online developer.samsung.com/remotetestlab AppThwack appthwack.com testdroid.com perfectomobile.com
  62. 62. Web 1:3 [E as ier to Te s t]
  63. 63. thus …
  64. 64. Mobile is still Fresh 1:3
  65. 65. Save Mobile, get involved :)

×