Event Report: IndicThreads Conference on Mobile Application Development

(This is a live-blog of the IndicThreads conference on mobile application development that is currently happening in Pune. Since this is a live blog, so please excuse the greater-than-normal number of errors and lack of coherence sometimes.)

NFC in mobile devices – Ashutosh Tripathy, Talentica

Ashutosh Tripathy talked about NFC in mobile devices and why it is important. NFC is “Near Field Communication”, which is a very short range wireless communication between devices. The range is very low – just a few centimeters, and the bandwidth is also low – just 424kbps max. But the important thing is the ease of use it gives in a large number of use cases – e.g. event tickets, sharing business cards, ID cards, easy printing, file sharing, mobile payments etc.

The important thing about NFC is that it does not work at a distance (and it can be configured so that it does not work when the screen is off). This means that NFC communication can only happen with the knowledge of the user of the device. Thus, for many applications you can get rid of complex security procedures and passcodes that are needed to prevent malicious users from getting access to your device without your knowledge.

For example:

  • Bluetooth + NFC gives instant Bluetooth pairing – without requiring passcodes and other complex mechanisms. So if you want to transfer a file between two devices, you bring them close together and NFC is used to set up the Bluetooth pairing. After this, the actual file transfer happens over Bluetooth, so that it will continue to work even when distance between the devices is increased.
  • Wi-Fi + NFC can similarly give very easy to use wi-fi configurations

NFC Enabled Phones in the market already:

  • Google Nexus S (Android)
  • Samsung Galaxy SII (Android)
  • Nokia C7
  • Blackberry Bold 9900 and 9930
  • Nokia 6131

Upcoming and rumored:

  • iPhone 5
  • Nokia N9, N5
  • Lots of Android 2.3.3 phones
  • LG Optimuz NET
  • Various Samsung BADA OS based phones

It is expected that most new smartphones will be NFC enabled soon.

Ashutosh followed it up with a demo of how to build an NFC app on Android.

Developing mobile enterprise applications – Yateen Shaha, SAS

More and more enterprise apps are now mobile enabled. The primary business drivers behind this trend is increased productivity, faster/better decisions, and thus competitive advantage.

Important Things to worry about when building enterprise mobile apps:

  • Delivering the right functionality – not all functionality can be supported in the mobile device. So choosing what is in and what is not included is important
  • Access Everywhere – User should be able to access the app from inside the company intranet, but also from outside over public networks.
  • Offline Access – Should be allowed
  • Protecting data – Security is very important to enterprise customers, so you need to take great pains to keep them happy.
    • Authentication could be device based, or user based, or ideally both.
    • Data Encryption:
      • Over the Air: The data being sent over the public internet should be encrypted
      • At Rest: The data stored on the device should also be encrypted, so that if the device gets lost, the data is still protected
  • Storage/Bandwidth limitations – Since storage and network bandwidth on the mobile device is going to be limited, you need to carefully design the architecture of the app (and the backend services supporting the app) in such a way that it does not require lots of data to be downloaded and stored locally.
    • Some of the decisions could be based on what kind of network connection the device is currently using. Thus, use network liberally when on wi-fi but be more careful when using 2G or 3G.
  • Code Reuse – having to maintain two different code bases, one for desktop apps, and another for mobile apps is a pain. Design the overall app (e.g. by using model-view-presenter patterns) so that maximum code is reused.

Tips and tricks:

  • Cache whenever you can, to improve performance
  • A good user experience is very critical – much more so than for desktop apps
  • Must take advantage of device features
  • Performance and Response time is critical for user acceptance

Other Talks

There was a panel discussion on “Mobile is the next Desktop.” I was one of the panelists, so unfortunately, I could not live-blog this. Topics discussed were why mobiles are going to take over the world, how developing for mobiles is different from developing for PCs, how the fragmentation in mobile (devices and platforms) is a huge pain (with no solution in sight), how html5 might or might not replace native apps, and other topics.

Mayur Tendulkar gave a presentation on Windows Phone 7. Most of what he said was similar to the talk he gave a few months back at TechWeekend 7, so I’m not repeating it here.

Abhay Aggarwal, from Xebia India talked about building an app that needs to target multiple screens. These are the various sizes available: 240×320, 240×400, 320×480, 360×640, 480×800, 540×960, this doesn’t even count the tablets. He talked about a process & architecture that would minimize the pain of doing this.

(At this point I had to leave even though there where two more talks later in the day, and a full day of talks the next day that I could not attend. However, the presentations are online at http://m11.indicthreads.com if you’re interested.)