Hacker News new | comments | ask | show | jobs | submit login
Ask HN: Best Open Source Phonegap and Titanium Apps?
85 points by candeira on Feb 20, 2014 | hide | past | web | favorite | 47 comments
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?

Are Phonegap and Titanium the preferred way to go for cross-platform mobile development? If not, what are people using these days? (I don't want to hijack this Ask HN, so please ignore my question if I already have a couple of replies.)

The company I work for recently decided to develop some cross-platform apps. After researching a few different things, we decided Cordova (Phonegap, but not branded) best fit our needs.

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/

MonoTouch (= Xamarin.iOS) has nothing to do with Cordova.

I wasn't sure if it was Xamarin or another framework that was ultimately using Cordova underneath. After reviewing their docs a bit more, it appears Xamarin was not the framework where this was the case.

Did you evaluate cocoon? On my tests that was the fastest although a little buggy. I think if I built from the ground up targeting that it would be the best?


We hadn't, but as one of the other comments mentioned, that seems to be game-development focused, which is unfortunately not what I'm working on. I'll keep it in mind for side projects, though.

Isnt cocoon canvas and webgl only?

oh yes. I do mainly games so that huge restriction doesn't register with me sometimes.

trigger.io is also an interesting newcomer.

I recently used trigger.io on a project. It doesn't seem much different to phonegap. Their Reload feature was useful because we had a tight deadline and many iterations but documentation was sparse. Most documentation links 404'd or referenced older versions so I end up having to manually search. If you're on the cheapest plan like I was then you only get community support, which was no good. Stackoverflow based but many questions are unanswered. There's just no community as far as I could tell.

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.

We have an internal framework sitting on top of appcelerator's titanium that makes our app look at exactly the same on iOS and android. I mean exactly the same. The app specific code does not need to think about what platform it is on. We do this because titanium does some of the leg work but -rightfully- not all the leg work in achieving that. We get close to native code performance (better performance than Phonegap - tried that first - because its native controls). We have a large data layer and phonegap performance just degraded way too far with the amount of data in play that we needed.

> I mean exactly the same.

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.

They are getting closer and closer so we're at a somewhere in the middle design where it doesn't really feel out of place on either platform. In some areas you can admittedly tell we leaned heavily towards iOS (i.e. pickers). Three factors led us this direction.

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.

Yeah. I'm curious. Does it look out of place on iOS, out of place on Android or out of place on both?

I'm currently working on a project where we started with Trigger.IO but moved to phonegap simply because more people have used phonegap, so the documentation is a lot better.

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

Ionic is definitely the best I've seen. You can whip out an app with even the most rudimentary knowledge of Angular.

I'm using LibGDX for writing games (although you could of course write other apps). They have fairly recently added RoboVM support for compiling to ios and it's amazing.

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.

Games are a bit of a special case though, since they're mostly non-platform specific logic sitting on top of OpenGL.

LibGDX is awesome.

Untappd is a quite successful phonegap app: https://untappd.com/

Here's a talk the founder gave about using phonegap: http://phonegap.com/blog/2013/11/13/untappd-phonegap-perfect...

Untappd is one of those apps with an uncanny valley. It feels not quite native because some of the gestures and view transitions are slightly off vs a 'true' native app.

And yet, it seems not to matter. The only people who are going to notice that "uncanny valley" are app developers.

I'd say this applies to all good non-native apps. The whole native vs. non-native debate is completely moot from a consumer point of view. It does, however, keep developers employed.

Ionic is a relatively new framework that plays nicely with PhoneGap to help you produce pretty looking apps that behave similarly to native apps. It is "open source front-end framework for developing hybrid mobile apps with HTML5."


They have some sample code:



And a showcase of apps built using their framework:


They all look very iOS-like.

Does it support Android UI style?

I have actually tried Cordova for my app using angular and ionic. We failed miserably.

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)

We're experiencing this quite a bit, and have only been in development several weeks. After writing native for so long, I just feel so dirty having to create a plugin for every little thing I need, and the code becomes callback hell since plugin execution is asynchronous...

And the terrible thing is the plugins integrate very badly with the Cordova/plugman toolchain. We have plugins in separate repos. The repos itself cannot be compiled by themselves because they are just source code without any app code. I found no best practices on how to do this.

Anyway good riddance of Cordova/phonegP

A quick search on github [1] revealed a few known apps. Unfortunately, I can't say whether those are the best open source apps written in Phonegap.

wikimedia/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

I am surprised no one has mentioned steroids js from appgyver (http://www.appgyver.com/steroids). It's sort of a blend between titanium (native controls with a javascript api) and phonegap. That way you can write a truly hybrid app. I've played around with it a bit and I have to say that it seems like the best of both worlds. Plus the documentation and onboarding is stellar.

I'm surprised I never came across this before. Thanks for this. I'll be giving it a try on my next project.

I created an example app using our embedded JSON sync database. Maybe someone would find this as a good introduction to data-driven apps on PhoneGap.


Rdio is an app written in Titanium, I really like it. However, you notice its not fully in new-style nadroid without the native DrawerLayout. HTML5 is really not good enough for killer mobile apps.

They're using Xamarin, according to their showcase site. This video mentions before that, they had four different codebases for four different platforms: http://www.youtube.com/watch?v=oETiK-v7rkE so I'm guessing that means native development.

I would not call the DrawerLayout a sine qua non of good Android UI. A couple of years ago Google's official advice for a "navigation hub" in an app was to make a dashboard Activity. It quickly became obvious that a dashboard Activity is a nowhere-land where the only thing you can do is to go someplace else where you can do something.

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.

What does HTML5 have to do with Titanium Android?

Yes, Titanium isn't a web wrapper. It could be, but its a native build via a js api framework.

We found that both Xamarin and Corona work really well depending on your needs; much better than Cordova for practically anything. Because sometimes clients demand it we have used Cordova and Appcelerator in the past but now we simply refuse; it creates horrible stuff which feels and looks bad unless you sink so much time in it that you could've written in natively for every platform 10x over. It's ok for fast prototyping but actually both Xamarin & Corona beats them there easily too.

good,now where is the source ? oh wait,there is none.

The Wikipedia mobile client is a Phonegap app. But it, and most such apps, are basically more-elaborate Web wrappers around a Web site's content. While they might adequately not offend each platform's conventions, they are not exemplary w.r.t. platform UI capabilities. It would be very hard to make a cross-platform app that uses Fragment and multiple layouts in a way that really captures the power of those UI capabilities.

I would hardly call the current Wikipedia app 'best' - it is rather quite terrible. I'd know, since I wrote most of it :) We're rewriting it all to be completely native now.

Edit: Link to the new source: http://github.com/wikimedia/apps-android-wikipedia

It was one of the few widely used open source Phonegap apps I could think of. I agree going native is the right answer. There are some cases where a cross-platform app is the right answer on all platforms, but that's a pretty narrow set of cases. If an app is fairly popular, it's worth doing a native implementation.

Hmm... that might explain why it crashes constantly for me.

Our http://wearscript.com project for Glass and wearables has some similarities to phonegap (we called it GlassGap at one point) but has different design goals (e.g., live coding, pub/sub communications between devices, etc).

Appcelerator is realy (totaly) free? I like this platform but I doubt about the license.

You SHOULD doubt it, last I checked their licensing was really shady. I'd stay away from Titanium for commercial products.

Why iLoch, which thing in particular?

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact