In my blog entry The World of Computer Vision, I talked about picture matching technology that will be used in a smartphone app. This page talks about the development of that smartphone app.
I am developing a smartphone app with the objective to reach as many smartphone devices as possible. With the multiple smartphone platforms available in the market, it can be a difficult task to target all the platforms. Each platform has its own particular smartphone operating system and development support.
I previously wrote about Smartphone Market Share which provides a good view on the leading smartphone platforms. The leading smartphone devices are covered in a recent Gartner report "Sales of Mobile Devices in Second Quarter of 2011 Grew 16.5 Percent Year-on-Year; Smartphone Sales Grew 74 Percent".
Native versus Web App
In a manner similar to the development of distinct software for the Windows PC versus the Apple Mac, I could develop native apps that run on the myriad of smartphone devices with their operating system as well as physical screen size differences. An alternative approach is to develop a Web app for smartphones which has the benefit of reduced development effort. This approach is akin to the development of Web apps which can be accessed from Windows PC and Apple Mac computers, instead of writing native software applications for the respective operating systems.
Market Share and Target Platforms
From the market share data cited above, my main targets are Android, iPhone and BlackBerry. Windows 7 mobile has too little market share (1.6%) for me to consider at this point. My access to device and operating system specific functionality is provided by PhoneGap which provides a unified Application Programming Interface (API) to the disparate operating platforms.
The development of my Buy Books smartphone app is done on a Window PC along with the development of the picture matching technology for the server backend. Testing is performed on emulators or simulators running on the Windows PC. Final system testing will need to be performed on real physical smartphone devices.
My Android emulator experiences have been disappointing. PhoneGap 1.0 supports Android 2.0 and up, and I have tested with Android 2.2 and Android 2.3.3 running both of those emulators. My biggest problem with the Android emulators is that my app does not run cleanly - first couple of times, things run fast as expected, then it slows to a crawl (there must be emulator issues). A restart of the emulator solves the problem. Stopping my app in the emulator and then starting it up also solves the problem and I can run two more test runs, before facing slow-down.
I have tested on the OS 7, 6 and 5 BlackBerry simulators (BlackBerry Torch, BlackBerry Bold). General conclusions are OS 7 simulators are too early and prone to crashing (Android emulators crash as well) plus my app is rendered with a small size which I feel should be larger for usability. I am in early stages of my learning about BlackBerry simulators so I don't know if there is a way to control that (without having to redo my CSS for specific platforms/OS versions). OS 6 is more stable and renders my app in a decent size comparable to the Android 2.x view. OS 5 does not run my app with many things failing e.g. CSS3 gradient background. Furthermore, the simulator interface is not as advanced as OS 6 and 7 and it is hard to navigate the simulator.
My next step is to actually test on real devices and I am thinking an Android smartphone without service provider interference is my target. I need to test the actual camera function integrated into my app. I can test with direct USB connection and/or WiFi connection on my home router. I am scratching my head for iPhone testing (first on emulators, and then onto real devices). I need a Mac to build the app (due to Apple licensing) or alternatively, I can seek a "Web build" capability. Then I need the iPhone emulator which is not supported on the PC.
The smartphone world is both an opportunity and a challenge.
2010 Aug Sep Oct Nov Dec
2011 Jan Feb Mar Apr Jun Sep Oct Dec
2012 Jan Feb Apr May Jun Oct Nov Dec
2013 Jan Feb Mar May Jun Dec
2014 Jan Mar Jun Jul Aug Oct Nov Dec
2015 Jan Feb Mar Apr May Jun Oct Nov Dec
2016 Jan Feb Mar Apr May Jun Jul Aug