Ask HN: Best Open Source Phonegap and Titanium Apps?
I'd like to look at good (not only full-featured, but also well designed) cross-platform mobile applications. I'm not so much interested in games as in apps that need to conform to the conventions of each platform's mobile UI. What open source apps using Phonegap, Titanium Appcelerator or similar have you admired recenty?
49 comments
[ 4.8 ms ] story [ 77.8 ms ] threadwikimedia/WikipediaMobile [2]
wildabeast / BarcodeScanner [3]
[1] https://github.com/search?o=desc&q=phonegap&ref=cmdform&s=st...
[2] https://github.com/wikimedia/WikipediaMobile
[3] https://github.com/wildabeast/BarcodeScanner
The drawer UI pattern is basically a dashboard in a more textual style, which is hardly an improvement for immediate recognition of what's what, and it functions pretty much the same way. I predict the drawer will last only a little longer than the dashboard as a UI fad in Android. It is also widely abused as a mix of navigation and action. Ugh.
Aside from Titanium, we also looked at MonoTouch[0] and Xamarin[1], which I believe (didn't completely read through) is built on both Cordova and Mono.
If you were building from scratch, maybe another one of those would make sense for you. We are working within an existing project (mixed native and webview), and Cordova seemed to best fit our requirements there.
[0] http://www.mono-project.com/Main_Page [1] https://xamarin.com/
https://www.ludei.com/cocoonjs/
Also their trigger toolkit interface was messy. Browser based. Sometimes I'd enter data into one field only to have it clear other fields.
They compile remotely so if you're looking to tweak configurations in xcode (like you can with cordova) you'll need to opt for some of their modules (like plugins are to phonegap/cordova).
Just so frustrating.
Also, depending on your target user group, you may want to checkout out Ionic (ionicframework.com). It's a mobile-first front end framework built on top of AngularJS. I've been using it on top of cordova/phonegap and it's easy to get up and running with and very performant (on the modern devices it supports). With Cordova and Ionic, our app feels very close to native on iPhone 5+ and high-end Androids
I literally loaded up my code in Eclipse on a Mac, right-clicked and ran, and there way my game, running on the iphone emulator...
Pretty impressive, especially for free.
LibGDX is awesome.
Unless a unique UI is a selling point of your app is that really desirable? After all, Android and iOS user interfaces have (somewhat) different conventions.
a) We're a small company, we can't make having separate android and ios teams feasible. Writing and maintaining a single code base and separating out ui/platform concerns from that was ideal.
b) User training is much simpler if the app walks and talks exactly the same way when you have a large number of not-necessarily-technical users. Especially when some of those users may have android phones and iOS tablets and hop between the two.
c) Similar to b, customer support is much simpler when things work the same way and look the same way, again, especially for not-necessarily-technical users. Sending screenshots, directing over the phone or email, etc, all get much much simpler.
Here's a talk the founder gave about using phonegap: http://phonegap.com/blog/2013/11/13/untappd-phonegap-perfect...
Edit: Link to the new source: http://github.com/wikimedia/apps-android-wikipedia
http://docs.couchbase.com/couchbase-lite/cbl-phonegap/
http://ionicframework.com/
They have some sample code:
https://github.com/driftyco/ionic-weather/
http://codepen.io/ionic/public
And a showcase of apps built using their framework:
http://ionicframework.com/examples/showcase/
Does it support Android UI style?
We kept hitting cases where we need something from native and we had to write native plugins. Developing native plugins is no fun task and in fact very painful to develop.
So we then tried writing native apps. We actually did it faster with developing a separate iOS and Android app. We are very happy with the result. The big bonus was that we are now able to conform to platform UI interactions better now (ionic does things in a very iOS way). The debugging facilities with native apps are way more awesome than cordova (which hardly has any on android. and it's hard to debug cordova stuff on ios too)
Anyway good riddance of Cordova/phonegP
There's an app Showcase at http://www.appcelerator.com/customers/app-showcase/, with apps submitted by our users. You could use this to get an idea of who's using it. Here are some I personally like:
http://goo.gl/MHhMKr http://goo.gl/xuMzyw http://goo.gl/vJC74J
Now, if you're looking to choose between the two, here's some information that could help you to better understand how to compare them.
Phonegap and Titanium are very different tools and approach the cross-platform problem in a very different way. Phonegap is a framework for building mobile web apps. You start with a clean slate, look for a UI framework like Sencha, KendoUI, etc., and start building your app, which is a small website with some added device features.
Titanium is very different, and more in the line of tools like Xojo (http://goo.gl/bQ86R3). Titanium's approach is that you are actually a native developer, and you think of your apps as if you were developing it using the platform-provided tools. That is, if you're building an iOS app, you'd probably look for the UINavigationController. This is exposed by Titanium as NavigationWindow. All the features of that container control are available to you, but instead of writing Objective C, you're writing JavaScript. This also means that you don't have to start looking for a UI framework like mentioned above. Your app will always look native because you NEVER emulate the UI or the screen transitions using CSS; it all comes straight from the SDK, and exposed to you as Titanium Javascript Objects. Some objects will translate across platforms like textboxes, buttons, etc, and some other like the CoverFlow and the ActionBar are exclusive to iOS and Android respectively.
Now the challenge (this is a positive challenge) for a developer is that since you're thinking -native-, you're actually building multiple apps from the same source code, just like Xojo mentioned above. This is the MAIN difference between building Titanium apps or web apps. With Titanium, you don't necessarily think about building an app that looks and behave exactly the same across platforms, because that's not what a native developer does (look at Facebook, Twitter, Evernote, etc. on iOS and Android). With Titanium you plan your app to use native containers, native UI patterns and native navigation paradigms, but the code that makes up the content of your app, and the modules and classes that make up the business logic of your app, are shared across all platforms, all written in Javascript.
So, if what you want to build is a web app, then Titanium is probably not your tool. If on the other hand you want to build native apps, just like those written in Objective C or Java, but cheat using Javascript, and build them at the same time, then Titanium is for you.