Modern mobile development overview


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Short agenda
  • "Show respect to devs and make devs respect the platform" tell a story about Sega Dreamcast
  • #Platforms_for_multi-vendor_devices
  • "Be ready for changes" mention SOA, web browsing "You need means for unified app distribution" signing nightmare Feature phone owners purchase far less applications than owners of smartphones    Nokia are promoting native development (Qt) over Java HTML 5 or other smartphone OS cant reach to these low end feature phones and hence Java will stay for long. Recently got to know, that Nokia is still selling around 1M S40 devices in the market everyday and as S60 devices also supports j2me as a platform    Plenty of GUI toolkits on the market
  • S60 - platform Symbian OS - OS "even though the end-user was never mentioned in their press release for OS 9!"   What's new in Symbian 9 1. binary compatibility is broken 2. mandatory code signing 3. USB-mass storage device 4. WIFI 5. P2Talk 6. USB 2.0 7. OTA update 8. 3G wifi roaming 9 advanced camera
  • version 2.0 introduced support Microsotf Exchange support version 2.2 introduced Adobe Flash 10 support version 2.3 natively supports SIP, NFC J2ME support can be provided via third-party-application such as the J2ME MIDP Runner avaiting the official port of Silverlight  At the start there were a lot of bugfix/patch releases   version 2 brings: 1. additional languages 2. mail and contacts power features 3. remote wipe feature 4. SVG support 5. Ability to turn Location Services on or off 6. geotagging 7. youtube 8. Maps has been enhanced version 3 1. video recording 2. cut & paste 3. MMS 4. HTML 5 in Safari 5. JS optimizations 6. Bluetooth stereo audio 7. Push 8. USB tethering version 3.2 1. initial iPad support 2. 720p HD video in youtube   version 4.0 1. multitasking 2. FaceTime 3. iAd 4. supports multiple Exhange accounts 5. folders version 4.2.5 1. CDMA support 2. WIFI tethering
  • Modern mobile development overview

    1. 1. Modern mobile development overview Platforms, Trends, Specifics
    2. 2. Agenda <ul><ul><li>Introduction </li></ul></ul><ul><ul><li>A bit of history </li></ul></ul><ul><ul><li>High-level overview of the market. Who are the biggest players? (as of now) </li></ul></ul><ul><ul><li>Trends </li></ul></ul><ul><ul><li>JavaME/Windows CE legacy platforms </li></ul></ul><ul><ul><li>BlackBerry platform </li></ul></ul><ul><ul><li>Symbian platform </li></ul></ul><ul><ul><li>iOS (iPhone OS) </li></ul></ul><ul><ul><li>Android </li></ul></ul><ul><ul><li>Windows Phone 7, MeeGO, ? </li></ul></ul><ul><ul><li>Closing comments/QAs </li></ul></ul>
    3. 3. A bit of history <ul><ul><li>What used to be a mobile development? </li></ul></ul><ul><ul><li>Major players: JavaME, Symbian, Windows Mobile, BlackBerry </li></ul></ul><ul><ul><li>How to blow your platform. User guide </li></ul></ul><ul><ul><ul><li>Be arrogant </li></ul></ul></ul><ul><ul><ul><li>Don't tolerate your rivals </li></ul></ul></ul><ul><ul><ul><li>Disrespect users </li></ul></ul></ul><ul><ul><ul><li>Disrespect developers </li></ul></ul></ul><ul><ul><ul><li>Don't admit your faults </li></ul></ul></ul><ul><ul><ul><li>Stop evolving </li></ul></ul></ul><ul><ul><ul><li>The world is changing - IGNORE </li></ul></ul></ul>
    4. 4. Drive the Evolution <ul><ul><li>From enterprise to consumers </li></ul></ul><ul><ul><li>Growing community of loyal users </li></ul></ul><ul><ul><li>Show respect to devs and make devs respect the platform </li></ul></ul><ul><ul><li>Excel the average app quality </li></ul></ul><ul><ul><li>Remove frustration </li></ul></ul><ul><ul><li>Choose your target audience carefully </li></ul></ul><ul><ul><li>Integration is the key - be social! </li></ul></ul><ul><ul><li>Show some uniqueness </li></ul></ul><ul><ul><li>Be innovative </li></ul></ul>
    5. 5. The most important thing to remember <ul><li>Money drives innovation </li></ul><ul><li>(vendor -> manufacturer -> consumer -> developer ->) </li></ul>
    6. 6. Short Q/A? Who drives the evolution? Android, iPhone Who strives for evolution? BlackBerry, Symbian Fresh meat  Windows Phone 7, MeeGO, WebOS
    7. 7. What constitutes a mature mobile development platform? <ul><ul><li>Mature SDK and tools </li></ul></ul><ul><ul><li>Healthy developer community </li></ul></ul><ul><ul><li>Carefully chosen target audience  </li></ul></ul><ul><ul><li>Effective means for app distribution </li></ul></ul><ul><ul><li>How can I make money with this platform? </li></ul></ul><ul><ul><li>Continuous support from vendor </li></ul></ul>
    8. 8. Java ME (J2ME) <ul><ul><li>Developed by Sun in 1999 </li></ul></ul><ul><ul><li>Set of specifications without the implementation (profiles and JSRs) </li></ul></ul><ul><ul><li>Runtime environment designed to work on embedded devices </li></ul></ul><ul><ul><li>Java 1.3 language </li></ul></ul><ul><ul><li>The platform is fragmented </li></ul></ul><ul><ul><li>Your options are limited - keep that in mind </li></ul></ul><ul><ul><li>Still viable (2.1 billion mobile phones) </li></ul></ul><ul><ul><li>Entry level is low </li></ul></ul>
    9. 9. What's in the box? MIDP 2.0 <ul><li>  </li></ul>Core packages primitives, collections,  User Interface Package Subset of Java AWT, game APIs Networking Package Generic Connection framework Persistence Package Record store Application Lifecycle Package Defines lifecycle for MIDlets Audio Package Part of Mobile Media API Public Key Package Key verification
    10. 10. Nightmares of JavaME <ul><ul><li>Signing nightmare </li></ul></ul><ul><ul><li>Distribution nightmare </li></ul></ul><ul><ul><li>UI and UX nightmares </li></ul></ul><ul><ul><li>Media player nightmare </li></ul></ul><ul><ul><li>App size nightmare </li></ul></ul><ul><ul><li>Emulator nightmare </li></ul></ul><ul><ul><li>Stone Age nightmare </li></ul></ul>
    11. 11. Java ME (J2ME), lessons learned <ul><ul><li>Fragmentation is evil (especially when it's driven by design!) </li></ul></ul><ul><ul><li>Bureaucracy kills the platform </li></ul></ul><ul><ul><li>You need means for unified app distribution  </li></ul></ul><ul><ul><li>Good UI matters! </li></ul></ul><ul><ul><li>Be ready for changes </li></ul></ul><ul><ul><li>Java ME is a good training ground because </li></ul></ul><ul><ul><ul><li>it's easy to learn </li></ul></ul></ul><ul><ul><ul><li>intuitive to program (language, APIs) </li></ul></ul></ul><ul><ul><ul><li>provides little or no choice </li></ul></ul></ul><ul><ul><li>  Java ME is still alive (Profile 3.0, 2009) </li></ul></ul>
    12. 12. Recommendation <ul><li>If you want to test how does it feel to be mobile developer, start with JavaME. It is easy to learn, intuitive to program and it will provide you with all basic flavors of mobile development. I don't think is has a future in outsourcing, though.  </li></ul>
    13. 13. What about WinCE/WinMobile? <ul><li>Do not disturb the dead. </li></ul><ul><li>The advent of Windows Phone 7 meant the end of WinMobile era - it is silly to invest time and money </li></ul>
    14. 14. BlackBerry platform <ul><ul><li>Proprietary platform developed by RIM </li></ul></ul><ul><ul><li>Originally enterprise oriented </li></ul></ul><ul><ul><li>Based on JavaME specifications + proprietary APIs </li></ul></ul><ul><ul><li>JavaME origin means presence of some elements from Stone Age  </li></ul></ul><ul><ul><li>Reveals its greatest value with BlackBerry Enterprise Server </li></ul></ul><ul><ul><li>Tries to be consumer-friendly </li></ul></ul><ul><ul><li>Devices are produced by one manufacturer so the fragmentation is limited </li></ul></ul>
    15. 15. BlackBerry Enterprise Deployment <ul><ul><li>Solution is secure and corporate-friendly </li></ul></ul><ul><ul><li>Has unique synchronization capabilities </li></ul></ul><ul><ul><li>Is backed with cellular operator support </li></ul></ul><ul><ul><li>Provides means for developing stunning business applications </li></ul></ul>
    16. 16. Pls, tell me more <ul><ul><li>BlackBerry has far reacher set of APIs than JavaME </li></ul></ul><ul><ul><li>But because of ... you may run into trouble </li></ul></ul><ul><ul><ul><li>Stone Age issues in 2010 (old Java 1.3, missing APIs) </li></ul></ul></ul><ul><ul><ul><li>Relatively poor UI and UX </li></ul></ul></ul><ul><ul><ul><li>Multiple compatibility issues (form-factors, input methods, API problems) </li></ul></ul></ul><ul><ul><ul><li>Slower market adoption </li></ul></ul></ul><ul><ul><ul><li>Platform doesn't enforce how the application should look like </li></ul></ul></ul><ul><ul><li>Nevertheless it is a mature and evolving platform </li></ul></ul><ul><ul><li>Key strengths are its integration capabilities and multiple options when choosing application's format </li></ul></ul>
    17. 17. Symbian as a platform <ul><ul><li>What is Symbian? Disambiguation is needed </li></ul></ul><ul><ul><li>A few key facts: </li></ul></ul><ul><ul><ul><li>As of now is backed only by Nokia </li></ul></ul></ul><ul><ul><ul><li>Has a long history of development and support </li></ul></ul></ul><ul><ul><ul><li>Has suffered from good deal of fragmentation </li></ul></ul></ul><ul><ul><ul><li>Offers an enormous code library of components </li></ul></ul></ul><ul><ul><ul><li>Developing is done with a dialect of C++ </li></ul></ul></ul><ul><ul><ul><li>Entry-level is high </li></ul></ul></ul><ul><ul><ul><li>Devices based on Symbian accounted for 43.5% of worldwide smartphone sales in 2010 Q2. </li></ul></ul></ul>
    18. 18. Confessions of a Symbian developer <ul><ul><li>I have to use an anemic subtype of C++. Give me back destructors and STL (at least std::string)!!!  </li></ul></ul><ul><ul><li>How would you explain T-, R- and C- classes to your parents? </li></ul></ul><ul><ul><li>I deal with ENORMOUS library which fails to be developer-friendly. </li></ul></ul><ul><ul><li>I have to hand-code a lot of simple things again and again. </li></ul></ul><ul><ul><li>Please, don't make me code UI again - my fingers hurt! </li></ul></ul><ul><ul><li>Document-View, are you serious? </li></ul></ul><ul><ul><li>Why can't I use threads in my application? </li></ul></ul><ul><ul><li>Give me proper documentation! </li></ul></ul><ul><ul><li>Please, make Nokia stop producing devices. </li></ul></ul>
    19. 19. OK, what's the keynote? <ul><ul><li>Apart from complexity Symbian is a mature platform </li></ul></ul><ul><ul><li>Its key strengths: </li></ul></ul><ul><ul><ul><li>The large market share </li></ul></ul></ul><ul><ul><ul><li>Continuous support from Nokia </li></ul></ul></ul><ul><ul><ul><li>It is feature-rich </li></ul></ul></ul><ul><ul><li>and weaknesses: </li></ul></ul><ul><ul><ul><li>It may die in the next 2 years and may be replaced with something different </li></ul></ul></ul><ul><ul><ul><li>It can't keep up with modern trends </li></ul></ul></ul><ul><ul><ul><li>Nokia can't produce decent hardware </li></ul></ul></ul><ul><ul><ul><li>It is over-engineered and complex </li></ul></ul></ul><ul><ul><ul><li>The cost of development is high </li></ul></ul></ul><ul><ul><li>Resolution: do not invest in learning Symbian unless you absolutely have to </li></ul></ul>
    20. 20. Android <ul><ul><li>Android and the hype behind it </li></ul></ul><ul><ul><li>Perception of the platform </li></ul></ul><ul><ul><li>Target audience and positioning </li></ul></ul><ul><ul><li>Is Android open? </li></ul></ul><ul><ul><li>Consumers first, right Google? </li></ul></ul><ul><ul><li>Reasons behind criticism. One big reason. </li></ul></ul><ul><ul><li>Who makes money with Android? </li></ul></ul><ul><ul><li>Should you go Android? </li></ul></ul>
    21. 21. Advantages of Android <ul><ul><li>It drives the innovation </li></ul></ul><ul><ul><li>Productive development (in a sense) </li></ul></ul><ul><ul><li>WebKit-powered browser </li></ul></ul><ul><ul><li>Big community </li></ul></ul><ul><ul><li>A lot of ways to position your app </li></ul></ul><ul><ul><li>Integrate with everything </li></ul></ul><ul><ul><li>A lot of passionate evangelists on the Web </li></ul></ul>
    22. 22. and now disadvantages <ul><ul><li>Fragmentation issues </li></ul></ul><ul><ul><li>Sophisticated learning curve. The platform is not hard to grasp, but it is overdesigned. </li></ul></ul><ul><ul><li>Platform beyond us all! </li></ul></ul><ul><ul><li>Apps don't sell </li></ul></ul><ul><ul><li>Did I mention fragmentation issues? </li></ul></ul><ul><ul><li>It is not consumer oriented. Period. </li></ul></ul>
    23. 23. I'm an engineer, tell me about development <ul><ul><li>Android is free to develop for. No investments needed </li></ul></ul><ul><ul><li>Lots of info on the Web, lots of books written </li></ul></ul><ul><ul><li>Google documentation is really good </li></ul></ul><ul><ul><li>SDK is packed with tools </li></ul></ul><ul><ul><li>It is Java 5 (well, almost) - you can use any library on the market (well, almost) </li></ul></ul><ul><ul><li>Google got you covered in terms of UI, resources, form-factors, security, debugging, testing and integration </li></ul></ul><ul><ul><li>Google enforces strict application model - you have to keep  a lot of rules in mind </li></ul></ul><ul><ul><li>Framework is good but over-engineered - you need to learn things </li></ul></ul>
    24. 24. What strategy does Google follow? <ul><ul><li>Develop services (Search, GMail, Docs, Calendar...) </li></ul></ul><ul><ul><li>Make consumers use them </li></ul></ul><ul><ul><li>Sell ads </li></ul></ul><ul><ul><li>HTML5 for the victory - start with Gears </li></ul></ul><ul><ul><li>Develop power-features for Services </li></ul></ul><ul><ul><li>Make businesses use the services </li></ul></ul><ul><ul><li>Develop Chrome browser </li></ul></ul><ul><ul><li>Light the hype fire over clouds + introduce AppEngine </li></ul></ul><ul><ul><li>Embark for HTML5 </li></ul></ul><ul><ul><li>Introduce Android. Tell the world it is open. Integrate it with Services </li></ul></ul><ul><ul><li>Port power-features of Services to HTML5 </li></ul></ul><ul><ul><li>Android has WebKit integrated, remember? </li></ul></ul><ul><ul><li>Start integrating business and consumer oriented features </li></ul></ul><ul><ul><li>Conquer tablets market </li></ul></ul>
    25. 25. What strategy does Google follow? <ul><li>By reaching this point you have: </li></ul><ul><ul><li>Enormous consumers' base </li></ul></ul><ul><ul><li>Hype over your innovations that lives on its own </li></ul></ul><ul><ul><li>Next-gen development strategies that are right at your door: HTML5, Clouds </li></ul></ul><ul><ul><li>People follow your advice and integrate with EVERYTHING </li></ul></ul><ul><ul><li>Integration means massive exchange of data </li></ul></ul><ul><ul><li>This all gives you freedom to... </li></ul></ul>
    26. 26. What strategy does Google follow? <ul><li>SELL MORE ADS </li></ul><ul><li>Android is a long term investment that will pay off brilliantly. Google doesn't need to manufacture devices, it needs consumers' base. </li></ul>
    27. 27. Present and future trends <ul><ul><li>Cross-platform development (AppCelerometer, PhoneGap, ipFaces, etc) </li></ul></ul><ul><ul><li>Web development </li></ul></ul><ul><ul><li>Scripting </li></ul></ul><ul><ul><li>Mobile Advertising </li></ul></ul><ul><ul><li>More business-oriented applications on the market </li></ul></ul><ul><ul><li>Tighter integration with cloud storages </li></ul></ul><ul><ul><li>Mobile payments (NFC) </li></ul></ul><ul><ul><li>Media applications (HD is here) </li></ul></ul><ul><ul><li>Augmented reality apps </li></ul></ul>
    28. 28. Cross-platform development <ul><ul><li>You use web apis instead of native sdk </li></ul></ul><ul><ul><ul><li>HTML, CSS, Javascript </li></ul></ul></ul><ul><ul><li>Major players </li></ul></ul><ul><ul><ul><li>PhoneGap </li></ul></ul></ul><ul><ul><ul><li>Rhodes </li></ul></ul></ul><ul><ul><ul><li>Appcelerometer Titanium (+Aptana) </li></ul></ul></ul><ul><ul><ul><li>IPFaces </li></ul></ul></ul><ul><ul><ul><li>JQuery Mobile  </li></ul></ul></ul><ul><ul><li>Device-specific features </li></ul></ul><ul><ul><ul><li>Sensors, vibration, touch, orientation </li></ul></ul></ul><ul><ul><ul><li>Multimedia, camera </li></ul></ul></ul><ul><ul><ul><li>File IO  </li></ul></ul></ul><ul><ul><ul><li>Phone APIs, etc </li></ul></ul></ul>
    29. 29. iOS <ul><ul><li>Apple sells high-end devices to consumer and doesn't sell services </li></ul></ul><ul><ul><li>2007 was a good year to start invasion </li></ul></ul><ul><ul><li>We know the original iPhone was a poor replacement for a cell phone </li></ul></ul><ul><ul><li>But it was a great platform to run applications </li></ul></ul><ul><ul><li>A brief overview of iOS versions - Apple had enough time to polish their platform </li></ul></ul><ul><ul><li>iPhone 4 is a decent piece of hardware now </li></ul></ul><ul><ul><li>It brings value to consumers and to businesses </li></ul></ul>
    30. 30. Why is iOS platform valuable? <ul><ul><li>If I were to develop a business app I would start with one for iPhone </li></ul></ul><ul><ul><ul><li>It has healthy ecosystem for building apps  </li></ul></ul></ul><ul><ul><ul><li>Support of multiple Exchange accounts </li></ul></ul></ul><ul><ul><ul><li>HTML 5 engine </li></ul></ul></ul><ul><ul><ul><li>Powerful WebView </li></ul></ul></ul><ul><ul><ul><li>Push </li></ul></ul></ul><ul><ul><ul><li>Remote wipe </li></ul></ul></ul><ul><ul><ul><li>Multitasking </li></ul></ul></ul><ul><ul><ul><li>iAd </li></ul></ul></ul><ul><ul><ul><li>Gradual OTA updates </li></ul></ul></ul><ul><ul><li>same for consumer applications </li></ul></ul><ul><ul><li>All cross-platform frameworks support iOS development </li></ul></ul><ul><ul><li>Android doesn't have that much of a business value (as of Jan 2011) </li></ul></ul>
    31. 31. General misconceptions about iOS development <ul><ul><li>Objective-C is a nightmare - Not true </li></ul></ul><ul><ul><li>and consequently hard to use API - Not true  </li></ul></ul><ul><ul><li>XCode is the worst IDE ever - It could be much better </li></ul></ul><ul><ul><li>Memory management routines are of evil - False. They are much better designed in Objective-C than in C++. But you have to live with them </li></ul></ul><ul><ul><li>It would take ages to develop an app - It depends </li></ul></ul><ul><ul><li>I will be rejected in the first place because Apple is unreasonable - Read tips from Apple carefully </li></ul></ul>
    32. 32. Q/A? <ul><li>  </li></ul>