I, like many others, am looking to venture into mobile app development. I am familiar with HTML5, CSS3, JavaScript, PHP, Ruby, .NET but not Java or Objective-C. To be honest, I'm unlikely to become a mobile developer guru and the apps I will develop are unlikely to push the limits of Hybrid to such an extent that I ought to go native anyway. So the challenge for me is to gain enough knowledge to confidentally align myself to one of the mainstream Hybrid development platforms - knowing that I made the right decision according to my requirements.
I've been reading similar posts on SO and researching the currently popular Hybrid Mobile application development 'solutions' including:
Xamarin Titanium Rhomobile PhoneGap The Telerik Platform
I've come to the conclusion the decision on which to go with is not so simple. In fact, I'm no closer to making a decision than I was when I started. I'm therefore turning to the community to recommend which options based on my specific criteria (which I believe reflects most self-employed developers working on a small project-by-project basis rather than a larger corporate development team with the ability to fund licence costs etc.)
The apps I will build will need versions for Android and iPhone and should be able to access to the basic core phone functions including: Camera, Accelerometer, Geolocation, Alert, Local Storage, G-Sensor etc. but not much more.
So, this post is not a subjective 'Which one is best?', instead I'm looking for recommendations according to the following requirements:
Free (preferrably) but at least affordable to the little man so: 1a. Affordable monthly subscription (if I have to) 1b. No hidden licence fees when it comes to distributing my applications - this is a biggy.
Dev platform should install on Windows and Mac (so I can build for the platform myself) 2a. Alternatively, any integrated online build services should be affordable
Environment should be straightforward to install and configure (is there such a solution? Nearly all I have tried seem to have some kind of issue whilst locating reference files, versions, launching emulators etc.)
As a .NET MVC developer, Xamarin seems the obvious choice but the starter cannot invoke 3rd party libraries - I imagine I would need this - and the barely affordable 'Indie' at $299 is per year per platform and I'm not certain it would offer all the functionality needed. The Enterprise version at $1899 per year per platform is way beyond budget.
Rhomobile Suite with its MVC Ruby approach seems a good fit for me but the documentation need attention (out of date) and there does seem to be massive ambuguity around the licensing of it. I can't find a definitive answer and they haven't responded to a straightforward request. I found this: "Use of RhoElements does require a license key, to make use of just the non-enterprise features (i.e. a Rhodes app) just remove app_type:rhoelements from your build.yml." - of course it is likely I would need RhoElements! Looking at the Application Licensing (on docs.rhomobile.com site) it seems you can get them from Motorola Solutions (or a heap of other resellers) but typically I cannot find a price. This concerns me - I can forsee me being hit with a $10,000 fee when I distribute to the app stores.
Titanium also has ambiguity over the licensing. Some are claiming they are been chased for $5000 licences by UK resellers others suggest that is simply wrong and there are no licence fees. Again, no idea...
In comparison, PhoneGap does appear to tick the boxes and I don't see concern over licensing but compared with the other solutions it comes across as needing more of a manual process with unpolished results - although that could be more to do with the apps I've seen in examples rather than the capability of the platform.
The Telerik Platform seems good on the face of it but I doubt the 'developer' offering at the current price of $39 a month (marketed as "ideal for tinkerers and hobbyists") is enough so I'd be looking at a commitment of $79 a month paid one year up-front - ouch! I'm also unsure if this cost covers all licensing of complete applications (I would hope so).
As one of my key criteria is ease of install, configuration and build, I am leaning towards Rhomobile or Telerik depending on the final costs to me as the developer for building and submitting these apps.
All things considered am I on the right track or still very uninformed?
Many thanks.
Disclaimer: I work for Codename One.
Codename One allows you to embed a PhoneGap/Cordova application but it is unlike any of the other platforms. E.g. in the case of Xamarin you can read some of my thoughts in the Xamarin forum.
Codename One supports native OS builds, allows you to write code in Java and have it work everywhere. Its open source (unlike Xamarin, Telerik etc.) and has a useful/usable free tier that allows you to evaluate it properly coupled with a month by month payment option for advanced features.
Unlike some other options listed you can use the common Java IDE of your choice, we support NetBeans, IntelliJ & Eclipse.
Codename One can be extended with native code and there are many 3rd party libraries built specifically for it.
Codename One is a mature solution based on open source software developed at Sun Microsystems since 2006. Its used globally by developers of all levels from individual/hobbyist to fortune 500 companies.
You can read more about its unique architecture in How does Codename One work?
Disclaimer: I work for Motorola Solutions, that release the RhoMobile Suite.
The RhoMobile Suite includes different product:
The application you're going to build needs only Rhodes API. You can find on this table which API requires a RhoElements license. So you can build your app with Rhodes, deploy it on AppStore and PlayStore without having to buy any license.
You can find some support using the free user community on Launchpad.
Regarding paid support and RhoElements/RhoConnect/RhoHub/RhoGalley licenses, this will change during the summer to be aligned to the subscription model used by other cross-platform framework on the market.
I used phonegap to build a bunch of cross platform apps in 2009 and then switched to the free Titanium SDK in 2010 which I have been using since then on many other projects.
I have taken a cursory look at Xamarin (it looks pretty good) and other platforms like React etc. but can really only provide proper feedback on phonegap/titanium.
The ability to have a single codebase for both iOS/Android really saves me a lot of time. With this in mind, I find the benefit of a cross platform solution very efficient for building apps.
Having done a lot of phonegap, I found that it was very difficult to maintain these projects as there was no common way of doing things and also the look and feel required a lot of custom plumbing. The HTML versus native interfaces were also very clunky.
Titanium and especially the Alloy framework for Titanium has solved a lot of these issues for me. Alloy feels a bit like an early cut of Ruby on Rails. It makes structuring app GUI's a lot more consistent across projects and has significantly improved my productivity.
I get about 80-90% code re-use with either phonegap or titanium across iOS/Android and then have to write about 10-20% custom code per platform (eg. integrating 3rd party billing libraries and push notifications etc.).
That said, I often find that more complicated functionality such as push notifications or custom pull to refresh widgets etc. are usually quite tricky on cross platform technologies as there is not a lot of good tutorials and documentation out there yet. I put that down to this sort of technology still being fairly new.
My experience has been that the Titanium platform has been pretty good and their team is constantly releasing updates and improvements. It is free to use their SDK which is a factor in why I choose it instead of a paid subscription like Telerik or Xamarin.
They have a paid SAAS model (through their appcelerator parent entity) which they are pushing to corporate clients but that is something I haven't worried about as an indie developer. ie. instead of using their push notification service, I just roll my own.
It will be interesting to see which of the cross platform technologies gets the best up-take going forward.
If I was building a new app from scratch today, i'd probably take a good look at Titanium and Xamarin and probably also React/Rubymotion/Telerik etc.
It would be really cool if there was an independant comparison website or blog post that showed the code for how to build a true cross platform app with a slightly complicated interface on each of the platforms.
Glad to hear that you've looked at the Telerik Platform. I work for Telerik on our Product Management team, and I'm happy to answer any detailed questions you have about the subscription, either here or via email at satrom AT Telerik.com. Feel free to drop me a line anytime.
That said, the Developer subscription that you've looked at does indeed check all of the boxes (as I understand them, based on your list above) for you, including licensing. Apps you develop with the Telerik Platform are your apps and there are no additional fees or costs beyond the subscription itself, even at the Developer level. Despite the website copy's suggestion that this subscription is for "tinkerer's only," it sounds to me like it would work for you, and that there'd be no need to spend $40 more per month for the Pro subscription.
I'd love to chat more about your specific needs and see if I can help you determine 100% if the Platform is a fit, so feel free to drop me a line, or follow-up here with a comment.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With