The book ReWork devotes a page to the principle of focusing on what won’t change when developing software. So if you you think about that for a second the timeless customer wish list for software can be boiled down to speed, simplicity, ease of use and clarity. If you can deliver that and just that your product will be relevant not only today but years from now. So, what’s the easiest way to stray from the path of speed, simplicity, and clarity. It might just be the next big thing.
Can you remember when Visual Basic was going to end programming as we know it; allowing those proficient in word processing and spreadsheets the ability to program complex applications. How about dumb terminals all connecting to a central server that would revolutionize the workplace desktop; that concept has been repackaged and is now called the cloud. Then there is the obvious misapplication of productivity applications, case in point, Sharepoint was supposed to be the answer to the document sharing problem facing many corporate offices by allowing people to collaborate across great distances and keeping multiple copies of documents all stored on the server. This program performs this task well, but maybe not with the clarity or simplicity of google docs, however, the real problem is that this product is often misapplied as a content management system. In reality, this product makes some really awful public facing websites. This is a clear misapplication.
You see where this is going, just like in life every trade-off comes with unintended consequences, and there are no shortcuts.
Mobile app development with non native languages is no exception to the rule. It comes with quite a few limitations, including, speed, access to all of the native phone features, and reliance on third party software for deployment to app stores. I found this out the hard way as I wrote an app for the iPhone using Sencha that worked great, but would not run on my Android device, so the one code base multiple platforms did not materialize in my case. The setup of Eclipse and the Android SDK was about the same as the setup outlined in the phonegap tutorial on this site. So for the past four weeks I decided to rewrite the Sencha apps into Native android apps using the eclipse and the Android SDK. The resulting pure Java product offers simplicity, clarity, and the learning curve is smaller than figuring out all of the moving pieces required to compile JavaScript apps to native phone apps.