Making Fast Mobile Applications


Published on

How to make blazing fast mobile applications.

Published in: Technology, News & Politics
  • 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
  • Hi So I am Wenhan, co founder of 2359media. At 2359Media , we are building a platform for developers and laymen to easily create their own content based applications. What this currently means is that we allow content publishers to easily convert any content they have into a native application on multiple smart phone platforms.Think of us as wordpress for mobile applications.
  • Why are we so focused on making content driven applications?Firwsylu we believe that content consumption is undergoing a great shift where more mand more content consumption will take place on mobile phones as handset and networks become more robust2ndly, we believe that Content based applications are most likely to have the most useful applications over time and most likely to attrach a large number of users//Mostful likely to monetise by advertisingSimilar to the web properties, content is king.The content on a website or the application is what keeps people around. The more pain your content solves or more pleasure your content gives, the more likely your application will be downloaded.The more refreshing your content the more likely they will return regularly.
  • Content Driven applications display content.Popular types of CDA are -news application like ST-Multimedia applications like the youtube application-Directory based applications like SGMalls which is our first applicationThe typical functions of CDA usually grab data from a server following a set of pre-defined rulesThe content is then interpreted and displayed in the application. There are actually 3 parts in the design.- Server Side- Network- Client sideI will mainly focus on the network and the client side because the server side is very similar to web programming and most of the best pratices and framework for servers are already very mature.
  • I would like to think of an appliction as the viewer. Remember that we are talking about CDA so the objective of the app is o get the user into the content AFAP.So what makes an application fast?
  • Firslty, we have to understand that the slowest link in a CDA is the netowkr.Remember the term World Wide Wait? That was in the days of dial up modems. Right now, the situation is being replicated in the wireless internet world. The situation will get worse as more people sign up with with data plans and carriers suddenly discover that smartphones are huge bandwidth suckers and that they have to upgrade their 3G networks.Mobile networks are known to be sucky compared to our current broadband. They are slower, have about twice the latency and suck up a lot more battery power.I took these images off the net and they are an extreme example that should how mobile networks are really slow compared to broadband networks
  • Cache and reuse anything that is download Storage is cheap and network is expensive ID parts of aapplications that are suitable for caching-Relatively static-ie. Favorurites or Facebooks’ friend’s contact data- also helps if network connection is suddenly lossHave different download policies on 3G and wifi-once understand the cost/benefit of different networksExample of news reader- list of stories and click to see story-on wifi, all stories are cached so the story shows up instantly when a user clicks on it.-on 3g, we wait for an explicit signal from user before loading the story.Use CDN for edge distribution of media- Minimise the latency- SimpleCDNMirrorCDNUse multiple asynchrous request-reduce effect of latencyBack to newsreader example- download the text in the story-if you do it in series, most time will be waiting for the reply and when it comes the reply is only a short burst.-if you fire request for 20 at the same time, you might be able to cut down 90% of the waiting time as while you are waiting, you are preparing and recieveing the next request.
  • Something that programmers quickly learnMain thread= UI threadIf you do a downloading there, it will look to the user that it hangs.For certain platforms to download new data when the phone is idle for example andriod. Passive downloading.Multiple Libraries3 types of storage approachesFMDB, SqlitePersisentObject, CoreDataMultiple ParsersRework the design so server bears more burden Removing stuff that the phone might not need. move processor intensive stuff to the servr.
  • Mature TechnologgiesCalled universal because of their availablity.Impt if you have lots of phone platforms to support.All platforms even the new ones like palm pre supports at least XMLLibraries are everywhereBloat has minial effect as text is relatively small compared to images.
  • Stick to established UI because users are already familiar with that and have been trained from the minute they got the phone.Reduce the friction of learning how to use your application and getting into the contenti.E screenshot = buuukNotice the different placement of the tab bar.Iphone= bottomAndriod= top.Following because not much UI innovation needed where there is an established way.
  • Extrapolate from good sourcesFacebook might be one.
  • Making Fast Mobile Applications

    1. 1. Developing Content Driven Mobile Applications<br />
    2. 2. 2359 Media<br />Like WordPress for Mobile<br />
    3. 3. Why build content driven apps<br />Intensity of Usage<br />Content<br />Sticky<br />Games<br />Length of Usage<br />Gimmick<br />Utilities<br />Directories<br />
    4. 4. What do Content Driven Apps do?<br />Pull Data<br />1001000 1101001 <br />Display<br />Store & Serve<br />Destination = Content<br />
    5. 5. Vehicle = Application<br />Fast and Comfortable<br />
    6. 6. Mobile Networks Suck<br />WiFi<br />3G<br />
    7. 7. Design for the Network<br /><ul><li>Always Be Caching
    8. 8. Do more when you have more
    9. 9. Buy Local Servers / Use CDN (Low Cost)
    10. 10. Use Multiple Asynchronous request</li></li></ul><li>Design for the handset<br /><ul><li>Keep tasks off the main thread
    11. 11. Try multiple libraries/approaches
    12. 12. Push burden to server</li></li></ul><li>Use Universal Connectors<br />XML or JSON<br />Most Platforms have native support or good libraries<br />Text data transmitted has minimal effect<br />
    13. 13. Stick to Established UI<br />iPhone<br />Andriod<br />
    14. 14. unless there isn’t a good one<br />
    15. 15. In Closing<br />Content Driven Apps attract users<br />Make a great vehicle for the user<br />Use Universal Connectors<br />Mobile Networks Suck<br />Design for the Network<br />Keep the UI Responsive<br />Use established UI Frameworks<br />
    16. 16. Thank You<br />