Home » Event Report » Event Report: TechWeekend Pune 7 – Mobile Application Development

The best way to stay in touch with PuneTech and associated activities is to subscribe and receive most recent updates in your email inbox or via RSS. And, if you are looking for special interest groups, Click here. See our About Page to find out more about what PuneTech is.

Like to chat with PuneTech's founder? Connect now!

Event Report: TechWeekend Pune 7 – Mobile Application Development

TechWeekend Pune 7, on Mobile Application Development was held on Saturday, 19th Feb. These are the live-tweets, collected here for your benefit. Remember, they are live-tweets that were being typed while the event was happening, so they’re not necessarily as coherent and as well-organized as a regular article.

Windows Phone 7 by Mayur Tendulkar

The first talk was by Mayur Tendulkar talking about Windows Phone 7

  • This talk is a basic overview of Windows Phone 7. Important now, because Nokia has now thrown its weight behind it.
  • “If windows is not behaving well, you format your drive and start again. MSFT did same with its Mobile OS. Win Phone 7 is completely new”
  • Mobile phone world suffers from large number of devices of different resolutions that behave differently. This is not true of Win Mobile 7. Windows Phone 7 insists on a standardized hardware & screen configuration. So your Win Phone 7 will always look and behave the same.
    • WinPhone7 screen config: 480×800 or 320×480. No other sizes allowed. S-LCD/AMOLED capacitive touchscreen. 4-point multi-touch
    • WinPhone7 will always have these sensors: A-GPS, proximity sensor, accelerometer, compass, light.
    • All WinPhone7 devices must have these three buttons: Start, Back, Search. (As usual, to shutdown, you press Start :-)
  • App Development for WinPhone7: regular apps using Silverlight, and game apps using XNA.
    • “Silverlight is just like Flash”. Modern app UI framework. Apparently has 500,000 developers spanning windows, web (and now mobile)
    • Visit the Tata Nano site or the Hard Rock Cafe New York site to see some cool uses of Silverlight
    • The XNA framework for game development is mature and widely accepted – because it was in XBox 360, Windows and Zune.
  • WinPhone7 developers get all the goodness of Visual Studio for developing mobile apps with Visual Studio 2010 Express for WP.
  • Other developer tools: Silverlight Dev Kit. XNA Game Studio 4.0. Expression Blend 4.0. Also VB for WinPhone7.
  • All these development tools for WinPhone7 are free.

This was followed by a walk through of building a WinPhone7 app using Visual Studio 2010 and Silverlight.

Some interesting audience Q&A:

  • Q: What languages are supported for WinPhone7 development? A: At this point, only Visual Basic and C#
  • Q: Does WinPhone7 support multi-tasking. A: No. Some standard system services can run in the background; but apps don’t multitask.

Cross-Platform Mobile Application Development by Rohit Ghatol

Next up: Rohit Ghatol talking about cross-platform mobile app development using phonegap, titanium etc.

  • Two ways of developing cross-platform apps. 1. Develop html5 apps for webkit. 2. Use a translator that translates your app to native code.
  • For now, all major mobile platforms have a webkit based browser (except WinPhone7). So writing an app targeting webkit is “cross-platform”
  • Q: Will a webkit based app work with WinPhone7? A: No. But Mango release of WinPhone7 will support html5, so you should be close.
  • Translating common codebase to different native apps – Titanium. Write in JavaScript, and translate to Native.
  • PhoneGap = HTML5 + CSS3 + JavaScript + special ability to make calls to access phone sensors etc.
    • Note: HTML5/CSS3 development for mobile apps works because all phone browsers are much more advanced on this issue than desktop browsers
    • Features supported by phonegap: accelerometer, camera, compass, contacts, file io, geolocation, audio recording, sound, vibration, storage. Note: not all these features are supported on all mobile phone platforms
    • PhoneGap prerequisites: Need to be a html/javascript expert. Also, it doesn’t help you with UI, you need to be able to develop that
    • So with PhoneGap app development, you’ll probably be doing UIs by using JQueryUI or something like that.
    • Note: PhoneGap ultimately creates a native app that users install. Not just a website that they visit in the browser.
  • At this point, Rohit, showed actual PhoneGap code for a mobile app – to write an app that shows a google map of my current location.
  • Big challenge of PhoneGap is that you need to bring your own UI development framework. This is an advantage also! – PhoneGap allows you to have same UI framework for website as well as your mobile app.
  • Rohit’s suggestions for UI framework – 1. GWT 2. jQueryMobile
  • With Titanium, you write apps in Javascript. This is interpreted by MozillaRhino on Android, and by Webkit JavascriptCore on iOS
    • You have two different directories for images – one for Android, & one for iPhone, because they handle images differently.
    • iPhone requires just one size of images. Android allows different images for different screen sizes/resolutions/orientations.
    • Titanium problem – layout is absolute. For people used to the great layout capabilities of Android, this is a big step down
    • Titanium uses native UI (iPhone and Android), where are PhoneGap uses non-native (html/css) UI. Former gives better experience…
  • PhoneGap/Titanium both use Javascript Interpretation, so both can’t do multi-threaded apps
  • Building your own webkit based cross-platform framework makes sense if you want to overcome limitations of phonegap/titanium.
  • This won’t be as clean as phonegap/titanium, but might be good for your specific case. Steal phonegap/titanium code if required!
  • Comparison of PhoneGap vs Titanium. Titanium more proprietary, limited UI, …
    html5/css3/javascript is the future; but not there yet. Until then, write to webkit specs…

Android Performance Tuning by Anand Hariharan

Next speaker was Anand Hariharan talking about Android Performance tuning.

  • For app performance: first focus on what the user wants, don’t just improve performance for the sake of improving performance. Optimize only after measuring performance, and having specific performance goals. A lot of performance tuning, is really about managing user perception. When doing something that will take time, keep user engaged.
  • Don’t optimize everything for performance – you don’t have the time. Focus on the most important user visible features and fix those. In mobile world – reduce features and use the time saved on fixing performance.
  • Manage user perception better: e.g. Apple’s use of loading a bitmap image of app at beginning to give impression that app has loaded. At app startup time, load a bitmap that looks like your app without the latest data. Gives impression that app load is fast.
  • Performance tips: All platforms have a “recommended best practices” doc. Read that – many developers dont :-) e.g. Android best practice: for tasks that take time, use a background service (not an activity).
  • Anand talking about how to avoid an “Application Not Responding” (ANR) dialog for your app
    • An android app is single-threaded. So don’t do io (network or disk) synchronously. Use an async mechanism.
  • Keep activities small. Don’t overload activities. Use different activities to do different things.
  • Use the minimum number of views. Do not use a deeply nested view hierarchy. Your view hierarchy shouldn’t be more than 3 levels deep. If you’re views are getting complicated, consider writing custom views.
  • Track memory allocations. Garbage collection happening during user activity causes slowdowns.
  • Close your cursors. Otherwise garbage collector cannot reclaim memory. Then you get GC cycles, and slowdowns.
  • use onRetainNonConfigurationInstance() to retain large amounts of data between device orientation changes (landscape to portrait)
  • Use SoftReferences to cache data so that the garbage collector can reclaim the memory when required.
  • Avoid database writes as far as possible. Writes take 5ms to 200ms. And full SD card has slower writes.
  • Avoid using data from mutiple tables in a single list (AdapterView). First copy data from multiple tables to a single table and show that. e.g. in Email app, subject and body came from different tables. This really slowed down the inbox view (which shows first line of body).
  • Tools to help with android app optimization: Fix your views using: hierarchyviewer, layoutopt. Check flow & times using: traceview. Use zipalign to optimize your apk (improves app load time).
  • Above all, you must understand what you’re optimizing and why. Measure, measure, measure.

If you liked this post, subscribe for updates by email or via RSS.

Comments

One response to Event Report: TechWeekend Pune 7 – Mobile Application Development

Leave a Reply
Your email address will not be published. All fields marked * are mandatory.


Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.