I don't know what is wrong with me but, somehow, I ended up on an underdog technology again. With the recent and still fragile recovery of the economy we've seen a lot of interest for mobile access to our applications. As our applications are web based the basic access is there but with more and more sophisticated smartphones just simplified CSS and layout that fits the small screen doesn't cut it anymore.
I've been using iPhone for quite some time now. Besides the usual stuff everybody would do I also spent some time testing out the API for the kind of boring business applications we do. While the basic search/form screens are pretty easy to do (I can hardly imagine a platform where that would be difficult) I hit quite a number of problems with more complicated apps. While most of those issues disappeared on a jail-broken phone, I can foresee some resistance asking my customers to jailbreak their 20 phones. Technology issues aside there's still a major problem with distribution. Pretty much the only way to effectively distribute the iPhone applications is through AppStore, which may not be the most ideal way for our kind of applications used by a few people. While there is an enterprise license that allows private AppStore it's available for companies with minimum of 500 employees...
Thanks to the CodeXtreme competition I got to play with Android. Of course, it doesn't feel as 'cool' as iPhone...which, luckily is not so much of an issue with enterprise apps. Despite the fact I was happily (almost) Java-free for the past 4 years I found the java based development to be a positive thing. Not only because Java has become THE language at universities around and even fresh grads don't feel totally lost and overwhelmed by a completely new language and environment but I actually found it quite efficient for writing our kind of apps. There's already quite a number of open source apps around that can help with inspiration or solutions to many problems. To mention freedom...Android allows me to do whatever I need or want without any artificial restrictions. I have to do whatever the customers require and it's quite enough to fight with actual constrains, like screen size, Internet connection, GPS timeouts without having to worry about someone's idea of what should or should not be allowed. On top of all that Android not only allows me to do whatever I want - it actually allows me to deploy my apps. The distribution channel is open (not to mention free). While I understand the arguments for AppStore as a guardian of purity and quality of distributed applications...it's not really workable or applicable in my business.
My point is that just like with many other technologies, smartphones are slowly moving from home user to corporate user. And corporate users have quite different needs and expectations. It's not so much about coolness and effects as it is about getting the job done. Whether it is to access CRM, process on-site sale, collect data, fleet/position monitoring, authenticate access... Currently, we're working on a few bigger projects with Android integration. Two of them are mostly for data collection. While data collection has been around since like forever - a simple integration of camera, barcode scanning support, GPS and immediate data update on the server gives it a completely different dimension. Instead of waiting months for the paper forms to be processed you have instant results with a lot of important metadata. You can immediately see the trends and adjust as you go. The rest of the applications we're working on utilize GPS (location based systems). Just recently, the government implemented a system for tracking social workers. They fixed an RFID tag on the doors of senior citizens that the social workers need to visit. The social workers are given portable RFID readers and on arrival to the place they scan the tag. On their return the scanned data is synchronized with the system to plot the social worker's visits. We've got similar requests from a number of companies - from courier companies, through transportation companies to pretty much any company that provides delivery or onsite services. In many such cases it's not an option to use RFID (aircond repair shop can hardly put RFID tag on all their customers doors). While there are solutions for fleet tracking, the cost of $200 per vehicle per month is not only too much for a small company but it's also tied to a vehicle. While the AGPS is far from perfect even with all the timeouts and wrong position readings it still can provide quite accurate and very timely position.
The technology usually doesn't change in the vacuum. During the previous economic boom we were replacing DOS and Access based applications with web based systems thanks to the rise of cheap Internet and cheap portable computers. Most of our clients (especially business owners) didn't initially really grasp the advantage of being able to access their applications from anywhere - what really mattered at the end was that they could access it from home. After all, they've been working from the office their whole lives - as that's where all the resources and all the data were. Then they slowly started using the systems from outside the office...you know check customer's phone number, check the order status because they got a call from customer...soon they were leaving office early able to do parts of the work in evenings from living room, coming in late - being able to check sales, invoicing, bills, attendance, work orders or any other operational details from home just as well as from the office. Today, the same customers have smartphones...not just because it's cool - but because they can access their data from ANYWHERE...which is kind of cool, after all. The paradigm is shifting again.