7 ms·
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?
- antoinec 13y agohttp://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story/ http://www.sencha.com/blog/the-making-of-fastbook-an-html5-l...
- camus2 13y agogood,now where is the source ? oh wait,there is none.
- valevk 13y agoA 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=stars&type=Repositories https://github.com/search?o=desc&q=phonegap&ref=cmdform&s=st... [2] https://github.com/wikimedia/WikipediaMobile https://github.com/wikimedia/WikipediaMobile [3] https://github.com/wildabeast/BarcodeScanner https://github.com/wildabeast/BarcodeScanner
- deleted 13y ago[deleted]
- TeeWEE 13y agoRdio 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.
- Rafert 13y agoThey'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 http://www.youtube.com/watch?v=oETiK-v7rkE so I'm guessing that means native development.
- joewrong 13y agoWhat does HTML5 have to do with Titanium Android?
- mrharrison 13y agoYes, Titanium isn't a web wrapper. It could be, but its a native build via a js api framework.
- Zigurd 13y agoI 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.
- brandynwhite 13y agoOur http://wearscript.com 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).
- IbJacked 13y agoAre 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.)
- shortstuffsushi 13y agoThe 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 http://www.mono-project.com/Main_Page [1] https://xamarin.com/ https://xamarin.com/
- tlarkworthy 13y agoDid 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? https://www.ludei.com/cocoonjs/ https://www.ludei.com/cocoonjs/
- kayoone 13y agoIsnt cocoon canvas and webgl only?
- tlarkworthy 13y agooh yes. I do mainly games so that huge restriction doesn't register with me sometimes.
- shortstuffsushi 13y agoWe 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.
- marknutter 13y agoUntappd is a quite successful phonegap app: https://untappd.com/ https://untappd.com/ Here's a talk the founder gave about using phonegap: http://phonegap.com/blog/2013/11/13/untappd-phonegap-perfect-pint/ http://phonegap.com/blog/2013/11/13/untappd-phonegap-perfect...
- dan1234 13y agoUntappd 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.
- marknutter 13y agoAnd yet, it seems not to matter. The only people who are going to notice that "uncanny valley" are app developers.
- joesmo 13y agoI'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.
- Zigurd 13y agoThe 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.
- yuvipanda 13y agoI 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 http://github.com/wikimedia/apps-android-wikipedia
- Zigurd 13y agoIt 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.
- inigoesdr 13y agoHmm... that might explain why it crashes constantly for me.
- kinur 13y agoAppcelerator is realy (totaly) free? I like this platform but I doubt about the license.
- jchrisa 13y agoI 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. http://docs.couchbase.com/couchbase-lite/cbl-phonegap/ http://docs.couchbase.com/couchbase-lite/cbl-phonegap/
- goatforce5 13y agoIonic 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." http://ionicframework.com/ http://ionicframework.com/ They have some sample code: https://github.com/driftyco/ionic-weather/ https://github.com/driftyco/ionic-weather/ http://codepen.io/ionic/public http://codepen.io/ionic/public And a showcase of apps built using their framework: http://ionicframework.com/examples/showcase/ http://ionicframework.com/examples/showcase/
- fidotron 13y agoThey all look very iOS-like. Does it support Android UI style?
- general_failure 13y agoI 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)
- shortstuffsushi 13y agoWe'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...
- general_failure 13y agoAnd 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
- cannuk 13y agoI am surprised no one has mentioned steroids js from appgyver (http://www.appgyver.com/steroids 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.
- navs 13y agoI'm surprised I never came across this before. Thanks for this. I'll be giving it a try on my next project.
- ralcocer 13y agoFull disclosure: I work for Appcelerator. There's an app Showcase at http://www.appcelerator.com/customers/app-showcase/ 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/MHhMKr http://goo.gl/xuMzyw http://goo.gl/xuMzyw http://goo.gl/vJC74J 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 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.
- tluyben2 13y agoWe 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.