(This is an event update about the IndicThreads Conference on Mobile Application Development that was held in Pune last week. We already published one article related to a couple of the the talks at that conference. This article, a more comprehensive update, was posted by Atul Nene on his blog, and is re-published here with permission.)
The good folks at IndicThreads, Harshad Oak and Sangeeta Oak, organized the IndicMobile conference. The venue and arrangements were very good and the set of speakers top notch. The choice of topics was varied enough to be comprehensive and yet very relevant and amenable for deep enough dives. Overall, a great interaction and learning opportunity that I and my colleagues enjoyed. I also enjoyed live tweeting along with Saurabh, PuneLive, Mukund, Vishvesh. Here are my notes from the conference. They are longish, but then it was a two day affair, and I have tried to be brief.
Anand Deshpande, Persistent, Keynote Address
As expected, there was deeply thought out articulation from Anand on the future of the software space. Mobile + cloud is ‘it’, he said. Economic sense is driving everything on the cloud and that, combined with the all pervasive mobile technology will rewrite the software world, as we develop and use it today. He referred to the Harvard Business Review C.K. Pralhad and R. A. Mashelkar paper and pondered that more will be made available for less, for the many – elucidiating Gandhian principles. He made a core point about the data being separated from the App.
I like Anand’s ‘cows and milk’ analogy: focus on milk, why care about tending cows ? Applied to software, focus on developing and using software (App), not building the cloud. But – to take the analogy further – what control one has on chemically adulterated milk ? Its very difficult to even identify that. And, what about reliability and security and so on on the cloud ? Or is there a business case for the ‘organic software experience’ ? We as software product developers will have to figure it all out.
Rohit Nayak, Cross-platform mobile development: choices and limitations
Nice coverage of cross platform mobile development tools. I didnt know there was no garbage collector on the iPhone while there was one on the desktop. Titanium can be used for building cross compiled native apps on various platforms. It also has a good reference application that can be used to test all kinds of interfaces of the device you are building for, as well as sample code ready to be used. MoSync and PhoneGap were also covered. All three were demoed. He warned that tools can be out of step with device styles and new devices. He also suggested that a mobile web app could be the route of choice for maximum platform coverage. I noticed mere mention of MeeGo, but after all, its too new as of this writing. [See MeeGo related previous post on this blog.
Romin Irani, Mobile Web Applications using HTML5
Hemanth Sharma, Adobe Flash Platform for Mobile Development
Hemanth covered the various Adobe tools. Interestingly, none of the attendees present had developed for the platform so far. He pointed out that while designing for multiple screens, especially small, knowing the screen resolution was not enough and that the physical dimensions, the orientation and pixels-per-inch (PPI) were crucial. Amongst many other things, he mentioned DeviceCentral as a useful tool to test for devices that support flash. While iOS does not support flash, its cool that Adobe has ActionSript3 cross-compilation for iOS – it generates a native iOS application. He demoed real fast development of an app that gets twitter trending topics. His live demo broke by a whisker – must have kicked himself, mentally – he then showed us previously built code. Still cool. I would have loved stats (performance and so on) comparing native apps with similar functionality. All-in-all, a compelling write-once-run-anywhere-on-air story by this Adobe evangelist. Need to seriously evaluate the platform.
Balagopal K S, Deep dive into Application development for Nokia Technology Platforms
Bala had the difficult task of keeping us awake after lunch. He spoke all about the various platforms one can develop for, for Nokia devices, including the Symbian, Maemo and MeeGo. And of course all about Qt. I wasn’t expecting a Nokia representative to pronounce Qt as ‘quetee’. Everyone knows its ‘cute’, pun not intentionally intended 🙂 He revealed that 83% of users downloaded apps rated 4 and 5 (of 5). Shows how crucial it is, to build a high quality app that includes a great user experience. He advised to design for the user, not the technology, and consider the emotional engagement of the user with your app. And some more tidbits and tools and resources. Given that Qt is the development platform of choice on MeeGo, and a lot of Qt development is done in Python, I wonder why C++ is the language of choice for Qt/Meego. Its like going retro, no?
Pradeep Rao and Dilip Sridhar, BlackBerry Development Platform
BlackBerry just released the Torch and that has the BB6 platform. They have tieups with advertisers and an API that developoers can use in their apps. RIM does 60% revenue share with the app developers. BB SuperApps are native apps that are always on and connected, proactive and notification driven, highly contextualised, designed for efficiency in terms of network usage, battery life and so on. The Theme Studio and Theme Builder lets you make themes easily. The Playbook is coming. This platform is one to watch out for. Lately, BlackBerry devices have started delighting more and more number of users, notwithstanding their funny ads, and they have a powerful development platform plus increasing marketshare to entice developers.
Navin Kabra, Understanding the Touch Interface
Have you noticed how, the moment you start discussing something related to design, that hovers closer to art and makes the audience remember their most delightful and very frustrating moments with technology, everyone just tunes up their attention to the level of communion. Holy Photons ! This is exactly what happened in Navin’s session. He declared: “Touch will take over the world”. He made many excellent points, one being that using a mouse is a learned skill while touch comes naturally and that every app developer irrespective of whether he will develop for the mobile platform or not, will need to care about touch, simply because touch based devices will be the most commonly used devices going forward.
Also, a piece of text that is large enough for you to read is not necessarily large enough to touch – you will know this if you browse the web on your touch phone. Touch can be so easy that our spinal cord should be enough to do processing and give our brain some rest – everyone could do with that, I suppose. He showed a very interesting design of a touch keypad that can be used singlehandedly to browse the web because it has most of the frequently used functions on convenience buttons. He also touched upon – pun intended – the problems with touch, user perception of what is good and bad response time, caution of not overdoing it and perhaps most importantly, that developers wanting to design for touch must use a touch only device for a sufficient period of time !
I really liked the mindmap style (including the navigation) for the presentation. Made a mental note to make one this way at the next oppurtunity. Abhinav (an attendee) made an excellent point about designing in such a way that, with all the touch he can get, the user is still able to efficiently ‘blind type’, assuming he also has a physical on-device keyboard at his disposal – touch and type should not go out of sync. Really interactive and great talk on how to design for touch. And some informative follow-on interactions around stylus vs. fingers, resistive and capacitive touches, and handwriting recognition, the Palm (now Access) Graffiti et. al.
I personally feel there is huge potential for handwriting recognition or at least the Graffiti on the mobile platform – too many potential users who know native, local languages are currently ignored and can be empowered to communicate for low costs, in ways that come naturally to them.
Venkata Ratnam V, Introduction to bada platform & Samsung’s multi-platform strategy
Venkata explained Samsungs dual strategy with Bada (means the ocean, and does not have roots in the Hindi ‘baDaa’ i.e. big, as someone said to me) being for the low end devices while the other mobile OSes that they sell devices with, are for the high end devices. Looks like a large set of attendees were Android lovers and didn’t buy the Bada story but Venkata said ‘Dont grudge us our own mobile OS’. Its difficult to argue with that! He also made a wonderful observation: Customer (end users) expectations are very, very high. They want features on the phone that they may not use, but if the device doesn’t have them, they feel its handicapped.
One can develop for Bada with the combination of C++ and Eclipse, plus a web toolkit. There is also a memory leak checker bundled along with the developer toolset. As others, Samsung has a lot of other pieces of the mobile puzzle being put together in their own way. ‘In-App Purchase’ – is this new ubercool feature being bandied about. IIRC, Apple, Nokia, Samsung have it, others will want to catchup. Venkat also made a great point about user psychology – it’s easier to have an app in the store that is installed by the user and which then stays on the device and tends to be used more. This app can then of course use the web as needed. But its very difficult to have the user point his browser to a website from his device. Point to be taken ! Good session by this evangelist: funny slides, cheerful demeanour, solid defence.
Vikram Pendse V, Microsoft Windows Phone 7 Platform
Vikram Pendse’s overview of Win Phone 7 platform, architecture, development tools, demos and quirks was nice. He did a good job of explaining the Microsoft perspective for WP7. MS wants a consistent hardware strategy across vendors: ARMv7 Cortex/Scorpion or better, and decent combination of GPU, memory, display, capacitive touch, and sensors (GPS, accelerometer, proximity). There will be 3 buttons – Start, Search, Back. For developers, there is .NET compact framework and Silverlight. The OS supports ‘prioritised’ (not concurrent) multitasking of Apps. Libraries include cloud integration for Azure. He demoed apps to showcase various capabilities – graphics, app bar, music, UI navigation. As also a profiler. And pretty pictures of devices: Dell Venu Pro, HTC HD7, HTC Surround, LG Quantum, Samsung Focus. And some game screens.
MS story looks sketchy at best, and we tweeters had fun ! So WP7 won’t copy and paste. Surprised ? You shouldn’t. Remember C&P has moved to the iPhone last year?! There is no migration plan for apps written for WinCE 5/6. You gotta rewrite, in a different language! Romin noted: what Android calls “Intents” …. Microsoft calls “Launchers and Choosers”. Saurabh noted that WP7 is a fancy looking toy, but only for end user, developers will have to wait for more support and perfection. I agree – the UI looks really cool for end usage. Vishwesh: MS was dead after WM6.5 and now, with limited support for everything on WP7, they are … a zombie? The marketplace seems to be the weakest (non-existent yet ?) link. Too many restrictions imposed by the OS. The audience was wondering if all MS wanted to sell was under-USD-30 devices! Good fun 🙂
Rohit Ghatol, Getting Started With Android Application Development
Rohit began well. He gave some background on the platform, showed a list of devices in the market and asked: Do I really have to sell Android? The audience didn’t think so anyway. He also was the first person to do a live device demo in the conference. He covered stuff efficiently – Building Blocks of Android (Activity, Service, Content Provider, Broadcast Receiver, Notification Mgr, Alarm Mgr), the Dalvik VM, the DEXs and the APKs. He was swift through building an App and covered lot of details in short time. Froyo (API v8) brings the much needed enterprise security features to Android, while GingerBread and Honeycomb come later to focus on tablet features.Developer.Android.Com is a very well documented site and a great resource to learn at. We also discussed some could-be-better stuff – one is tablet support, another is that Android market does not provide flexible payment options, sometimes you can make more money by making the app free and include Google ads! Rohit had a nice conversational style, good use cases, employed simple stepping through the development process on a well done deck.
I liked this flexible approach. The audience identified pertinent topics for an open discussion and we had scintillating set of discussions on 4 topics. Difficult to capture all learning and speakers, but I hope I’ve got the gist.
Abhinav, Mobile Virtualization: Can we run multiple logical phones on one physical phone ? There are multiple applications. 3 years ago, you ran your PC at 1GHz, today you run your handset at that speed. In terms of device capability, virtualization seems plausible. Clouds will only separate the data from the device. What if you want to use your corporate mobile and your personal mobile on the same physical handset, for convenience ?
Saurabh, OpenGL: Useful for graphics and game development. Optimal use of hardware resources. Common library across platforms, however, support varies across platform. Simple games like ‘Bejeweled’ are being used more over serious games that need a console, simply because they are more available, like while waiting for the doctors appointment.
Vishwesh, Apps for the Indian Market: Firstly, is there an Indian Market? Consumers have to use apps developed for the western market. Where’s the Indian Content ? Pricing is a challenge. Prices are converted from USD to Rupees, needs to be thought differently. Rural market, huge but not addressed. Difficult to monetise. We don’t even SMS in local language yet. Amar Chitra Katha – available on one provider when it needs to be ubiquitious. Cash-On-Delivery is the preferred payment option for Indian Consumers, and this needs to be used for selling Apps. Microfinance has the potential to be in top-ten-app charts, but there aren’t any apps! And then there are too many platforms! Mobile Apps should connect to the physical, real world of the End User. It’s only then that they will be used
Dr.Lavania, Tele-Health: What is the best way to reach 24×7 touch and feel health services to rural areas, given that mobility is the only ubiquitious technology in villages! Apps that degrade from smart to dumb phones are needed. What low cost solution can we have for villages that are ‘over the horizon’ of connectivity?
Anand Hariharan, Performance in Android: Tips and Techniques
“Good Design is the practice of Subtraction” – Mark Anderson from the Good Design blog. Anand suggested we keep performance in mind right when you are desiging the App. Design, Measure, Identify, Improve : thats the mantra he gave us for performance extraction on mobile platforms. Speed, responsiveness, robustness, good behaviour (wrt battery usage and working well with other Apps) – all these done together make an App with good performance. Intensive CPU/battery usage, UI freeze (jankiness), long periods of percieved inactivity, actions that are not cancellable – any of these make an App bad, and it runs the risk of uninstallation from the users device! Apps should be designed to work well over varying net speeds. Recommended practices and style guides of respective platforms are important also for performance aspects. Like on the iPhone, its a good idea to show the image of your App, during startup, while the App loads – this improves user perception on response time. Android has a useful guide called Designing for Performance
Anand had specific advice – dos, donts – for Android apps in particular and Java apps in general. Do lookup his presentation on the conference site, it has a lot of depth and coverage – a handy reference for all developers, I’d say. Fluent talk, and I thought, Holy Photons – worth emulating!
Romin Irani, Power Your Mobile Applications On The Cloud
Romin has written a book on Google App Engine and you can download it for free. GAE is feature rich and free, has enough resources for trying out apps. He did a quick run through basics, and did a live demo – write, test, deploy! Simple, klaar, not cloudy at all. 🙂 You can code in Python or Java. Cloud in general and GAE in particular has great potential for mobile space. You could have the same cloud app serve multiple phone apps or even multiple kinds of clients (thick, thin, remote, local, and so on …). Romin mentioned a handy resource for information on about 15,000+ devices ! Checkout WURFL.
All presentations uploaded to the conference page as the talks got over. Pleasant green behaviour on part of organizers – free saplings were on offer for those who care. See the Press Report in DNA. An intense and thoroughly enjoyable conference with a lot of take-aways for me. Hope you have enjoyed reading about it.