30 Nov

Article: Understanding Android local data store APIs

“The ability to store data locally on the mobile device is a critical function for mobile applications that are required to maintain essential information across application-executions or the lifetime of the application. As a developer, you constantly need to store information such as user preferences or application configurations. You must also decide if you need to tap internal or external storage, depending on characteristics, such as access visibility, or if you need to handle more complex, structured types of data. Follow along in this article to learn about Android data storage APIs, specifically the preferences, SQLite, and the internal and external memory APIs.”

See my article Understanding Android local data store APIs (IBM developerWorks) which introduces the different local data store APIs on Android.


30 Apr

On Mobile Applications, Platforms and Monetization — “Show me the Money”

I’ve been keeping track of a very interesting thread at Forum Oxford (FOROX) on the topic of Android phone dissapointing developers (w.r.t. iPhone), with Jason Delport, Alex Kerr, William Volk (who started the thread) and others adding their different perspectives on the matter. All these guys are mobile experts so what they say resonate with me…

I like Jason’s responses as there is no bias, just pure pragmatism (i.e. he has been burned before); he makes a living building mobile apps, so for him it is about business and making money. Period. Jason’s take on why Android is dropping the ball is as follows:

  1. User’s don’t want to sign up to Google checkout
  2. There are plenty of places to find illegal copies of paid Android apps
  3. The store is over cluttered with crap apps
  4. The store has a poor design and has a rubbish user experience compared to the iPhone app store
  5. Paid apps were launched later than free apps and a tone was set in the market that apps were, and should be, free.

For which I respond as follows:

On #1, Google should do one of two: 1) require and capture credit card information the first time a user tries to buy a premium application, or 2) integrate with the network operator’s billing. On #2, true, but #1 is the main issue. On #3 and #4, I totally agree, plus, the good apps are hard to find! A better way to find applications is needed. On #5, I totally agree as well; the wrong expectations were initially set.

Alex followed writing that developers should be focusing on the platforms that are most “useful” to as many people as possible in the world… these being J2ME, Web and S60.

But useful is *very* relative. For talking on the phone? For writing applications? For deploying and making money from? I used to think as Alex… yes, it all sounds reasonable — target the platforms that (in theory) have the largest subscriber reach. Well, that is, until you take into consideration “Show me the money”, as Ajit likes to say.

From the “show me the money” perspective “rich development platforms and ecosystems” have proven, finally, successful. When I say “rich development platforms and ecosystems”, ecosystems go beyond app repositories, and it is about all the details that make it work, which includes user experience, integrated billing/payment, social and not, feedback system, and all the goodies a good/properly designed app store is all about.

I remember the debates between Ajit and myself over Web vs. local apps a couple of years ago, including at JavaOne Motorola Keynote, where I defended local applications while Ajit debated that “AJAX will replace both J2ME and XHTML as the preferred platform for mobile applications development” (note that he wrote J2ME but he really meant local apps). Today I can humbly say that I was right about local apps, and that “AJAX will not replace local apps as the platform of choice for developing mobile applications”. At least not yet. Ajit was/is right that mobile web apps will be huge, but they will in a different way as when it comes to richness and user experience and making money, today it is about a local apps.

And it took Apple to show “us” the way.

App Stores have proven central for developers (i.e. “show me the money”), and for subscribers (to easily find and download apps). And as a consequence, have proven beneficial to network providers themselves – gosh, it has taken so many years for network operators to finally open their eyes, not be so paranoid and over-controlling, and agree with common sense — it is an ecosystem after all. So now, all are converging into similar solutions such as iPhone’s App Store. They have to – the power is shifting to the subscriber itself, and to the developers who are bringing applications, software to the market. And those platforms that don’t play nice with the ecosystem, will fail.

So the argument that subscribers would not download local apps, argument a number of us didn’t agree with and defended against over the years via our blogs and apps, resulted in a non-issue. Yes, users will download rich, useful applications, and even better, will pay for them if given ways to easily find, pay for, and download those applications. While other types of apps such as Web and SMS, well, subscribers do like, but for free! Don’t you agree? What this translates to is into business models centered on the subscriber vs. “the other side of the subscriber” such as businesses, etc.

A word on the various platform

A word on iPhone: the device, the platforms rocks. I have an Android (personal) and an iPhone (work). And the iPhone is a beautifully designed piece, overall, from hardware to software. AT&T will hurt and cry if/when iPhone goes to other operators. As a sidenote, see ReadWriteWeb article by Sarah Perez titled The State of the Smartphone: iPhone is Way, Way Ahead, where she explores a recent report by Flurry that concludes that the iPhone is way ahead when it comes to mobile apps (based on the number of developers, apps and consumers). But, let’s take this report “with a grain of salt”. Why? Because it can be biased as follows: the majority of the developers using their analytics instrumentation code might just be iPhone developers, thus, the sample-set is biased by default.

A word on Android: just give it time. Android has the potential to be everywhere – phones, internet appliances, cars, etc. around the Globe, and thus many different types of developers (mobile to embedded). And it very well might allow developers to enter “emerging” markets easier. Judging Android after 6 months or so means nothing in the grand scheme of things. Time will tell (but I stand by what I’ve been saying thought).

A word on BlackBerry. They are getting it, but imposing a minimum app price of $2.99 — because “they value the efforts of developers” is bogus and is an attempt to sound developer-friendly. Let the market decide pricing!

A word on Nokia: they are trying with Ovi, but keep it simple! I really hope Nokia hits the ball out of the park –but they should consider simplifying their portfolio tho, see On Nokia’s App Store Strategy. Nokia’s attempt to do integrated billing for their App Store and (eventually) requiring Credit Cards mean they are thinking the right way.

A word on J2ME: Java ME suffered over the years due to 1) the process that created it was too slow to adapt, allowing for inconsistent implementations and incomplete API-sets, 2) its security model, and 3) lack of integrated app repository (i.e. app store). I still believe it has potential to be the platform of choice for mid-level phones. Specially with the latest MSA API-stacks and MIDP3 that (I hope) will come out later this year. And today,if you have the right market and channels, go for it.

A word on Web: best channel for apps that easily bring “generic” content out to people. Huge potential, especially with efforts such as BONDI and HTML 5 persistent data and the Canvas elements. In any case it is always a good idea, if it is applicable, to have a mobile web version of your app.

A word on short messaging (regardless of SMS or Twits): best channel for notification-like distribution. Second to none. True SMS is way to expensive and prohibitive for many; SMS though is a cash-cow for network providers who must be terrified of Twitter. If targeting notification-like app such as promotions SMS and Twitter is the way to go.

A word on voice apps: I wish we spend more time investing/researching this mode of interaction.

A word on SIM-based apps: The SIM card will always be at the center of mobile apps – directly or indirectly. New technologies such as JavaCard 3.0 and Smartcard Web Servers (SCWS) have the potential of bringing a new breed of mobile applications. Still developing SIM-card based applications is a niche and very network provider oriented, but if you have the relationship w/ the carrier, go for it!

And what the best type of application is? The hybrid app! This is a rich *local* app that is very good at consuming and rendering web content, as well as direct messages (i.e. SMS, Tweets). In the future, mobile web has tremendous potential but again, it is about making money *today*.

So in conclusion, we have to agree that today, integrated app stores that caters subscribers directly is the best channel for subscribers, and developers, and for operators as well. The potential for reaching more subscribers via J2ME, S60, and Web do exist, but but one thing is to create and attempt to deploy apps for those platforms, and the other is those apps getting payed for, downloaded and used.

As a recent report by IDC (Scott Ellison) titled “Developer Strategies for Success Shift as Apple iPhone Apps Store Passes 1 Billion Downloads” concluded:

Apple has demonstrated — again and again — that the success factors in mobile can change in the blink
of an eye — indeed in as little as 3 quarters in the case of the Apps store. The Apps store is increasingly
central not only to Apple, but to any developer or company seeking to play in the mobile applications and
content space. And understanding the shifting success factors within the Apps store is key to success
both on the device and in the digital marketplace that continues to remake mobile.


P.S. Anders Borg (Abiro Mobile News) has written an excellent analysis of this blog piece — see The state and future of mobile applications. And I like very much Michael Yuan‘s comment saying “What developers want is to address the “maximum number of people who are willing to pay”; exactly!

02 Jan

Mobile Apps in 2009: Local/Native, Mobile Web, App Stores

Happy 2009 New Year to all my readers. My first post of the year is about mobile applications: local/native vs. web, and app-stores.

App-stores have been shifting the balance on application development and distribution (back) towards local/native applications. I don’t mean to undermine mobile web which will continue to be very important and very large for access of information of type “web content”. But the reason for this is the same reason I’ve been preaching for a long time: the ability to deliver/maximize “application richness, functionality and experiences” – which (today) maximizing these is only possible via local/native applications. This is the same topic took Ajit and myself into a debate at JavaOne’s keynote a couple of years; that was fun.

What I’m describing above can be seen on the iPhone which is the best mobile web handset today, and which redefined and raised the bar on mobile web applications, yet the really cool applications are local/native, and more importantly, developers of local/native applications seem to be the ones who are generating (receiving) the most revenue – after all, it is about making money. And this trend will continue… I do believe that in the future mobile web will be able to match the richness and functionality of local/native applications, once the proper APIs and functionality are put in place and become standard, and that today a happy medium are local/native applications that consume mobile web content; i.e. hybrid apps providing the best of both worlds.

And when combining the above with App-stores, which provide for the application discovery and revenue streams for developers, the market place becomes very attractive and thus active.

But to be successful, app-stores must exhibit certain characteristics:

  • From the end-user perspective: the app store must be seamless and well integrated into the user experience. Downloaded applications must work. There must be a good selection of high-quality apps. Integrated checkout/payment is easy and straightforward and secure. The end-user is in control, including influencing how applications will perform on the market (via feedback that influences ranking).
  • From the developer perspective: there must be a low cost and barriers to entry and distribution. Must provide application visibility (see below). Good revenue model. Provide feedback back to developers for improvement.
  • Application visibility: the app store must provide the means for good application visibility. Already established applications are ranked appropriately based on user feedback, while new applications (including new versions) go into a different bucket that allows them to be visible regardless of ranking (perhaps for a period of time).
  • As Ajit writes, must provide a true ecosystem (that benefits everyone: developers, network providers, the end-user, and so on).

Part of the above is why the iPhone has been successful. And is also the reason that I expect the Android app store to do well once it starts paying back to developers — it is just then when the Apple and Android stores can be compared.

There are app stores for Java ME, for example GetJar. The problem faced by GetJar is that there are things that are out of their control, such as cost and barriers to entry (due to fragmentation and certifications and fees and it is just a pain-in-the-neck to deal with network operators issues in general), and not being well integrated (seamless integration) into the overall user experience.

For years I’ve been attributing the lack of integrated solution for Java ME that works (per the above) for application discovery and download and revenue share, as one of the top the reasons why Java ME has failed to maximize its opportunity. As a member of MIDP expert group, this is an important lessons learned for me, that sometimes you do need to include such functionality into the platform vs. expecting 3rd parties to solve the problem; this seamless solution is still needed for Java ME…

On Goodbye 2008 and welcome 2009 and some predictions on mobility I made some predictions on app stores, which I will repeat here:

  • Google will introduce a checkout process for its app store, and developers wanting to make money will notice; the Google app store will explode with a large number of applications.
  • App stores will continue to have its huge effect on mobile apps and distribution. Due to the revenue and fast distribution models offered by iPhone and soon Android app stores, developers will first target such local applications (vs. mobile web). An even larger number of local/native applications will be created and distributed via app stores for Android and iPhone.
  • The BlackBerry app store will be somewhat successful.
  • Someone will introduce an app store for mobile web that goes beyond an application catalog. dotMobi will take leadership by going beyond an application catalog but also providing an associated business/revenue model.

Last but not least, and related to this topic, check out Paul Golding (Wireless Wanders) on his video blog entry Mobile 2008/9 all about App Stores where he discusses and provides his insight on why app stores have been important in 2008 and how important they will be in 2009… right on.

Also related to this see Ajit on Mobile Web Megatrends event – Making money from Appstores – Singapore – April 27 and 28, as well as his related thread on ForumOxford.