

Show HN: Practical Guide to Mobile Apps Using Phonegap and Famo.us - nicholasreed
http://www.practicalguidetomobileapps.com/

======
thebokehwokeh2
As someone working on a phonegap project, I'd really advise against committing
to this framework for mobile app development. It is good for really quick and
dirty proof of concept things for devices, but for fully fledged mobile apps
on iOS and android, there is an enormous gap in terms of performance. In order
to get performance at least on par with native, you'd have to sacrifice TONS
in terms of user experience.

Want gestures? You'll have to look towards things like iScroll and hammer.js,
which work "sometimes". Add that to framework issues, and momentum based
scrolling that you will have to implement yourself numerous times... Oh boy.
Basically, things that come out of the box on native will have to be manually
implemented by yourself, and none of these solutions will even come close to
native experiences.

Add this to the fact that phonegap documentation is all over the place, and
all you will get are senseless headaches. Save yourself the frustration of
hacking the web into a mobile device and go native all the way. You will thank
your self later.

~~~
gagege
Just spending 5 minutes with PhoneGap was enough to convince me that it isn't
ready for professional app development, performance wise. That was 2 years ago
and I'd hoped it had improved quite a bit since then.

~~~
thebokehwokeh2
The thing is, the web will never ever catch up to native. The web is too
fragmented, has too many libraries, differing philosophies and paradigms, and
is too far removed from the hardware to even compete. You think you'll ever
see something like Flipboard built on Phonegap? Pretty unlikely.

~~~
adamcmiel
Hey guys, I work at Famo.us and we've recreated the Flipboard flipping
interaction in Famo.us as an internal demo and wrapped it in Cordova with
great success. I'll look into publishing this as a demo or making it public.

~~~
brandon272
Look forward to seeing it. Thanks!

------
nicholasreed
I've been working on putting my PhoneGap/Famo.us knowledge into a consumable
form. I hope this "playbook" (with the sample apps and examples) can be useful
some folks who are building apps! It is still a WIP on both the copy and code
ends, but I'll be adding improvements consistently.

~~~
sbarre
Thank you very much for writing this, I will pay for the book when it comes
out (assuming you provide a way to do so) even if you give it all away for
free...

This kind of step-by-step start to finish guide is exactly the kind of
resource I find the most useful when I want to learn new things..

~~~
nicholasreed
Seriously, it means the world to hear this. Thank you!

------
dchuk
Anyone done any comparisons of PG/Famo.us with Ionic
([http://ionicframework.com/](http://ionicframework.com/))? Seems Ionic is
making a really strong case for hybrid app viability

~~~
yesimahuman
(one of the Ionic creators here). The focus right now is definitely different
for us vs famo.us. We are focusing on building tools for the future of web
standards instead of eschewing it for a custom solution. I just don't think
that's going to be the right approach in the future (see Flash). I also think
requiring a 3D development background to build 2D apps is unnecessary (unless
you are building 3D games or apps, then go for it!)

I think the community agrees. Collectively they've started hundreds of
thousands of apps this year and are installing our SDK at a rapidly growing
rate. One of the benefits they see is a small learning curve, much closer
parity with their existing web code, ability to have designers or non JS
hackers contribute, and access to tons of existing resources for Angular
development.

~~~
malandrew
I normally hesitate to respond like this, but this comment is pure
unadulterated self-promotion and FUD that does not belong on HN.

(1) The web standards that you speak of are currently as much a standard as
what we are doing at Famo.us. Web Components, as they exist today and as is
being promoted by/using Angular/Polymer/Material, is merely an idea in the
guise of a standard. Google is the only one really promoting it as such and
they got a lot of flak early this year from the Safari and Opera teams over
their intent to ship the feature half baked and without consensus support from
the other browser makers [0]. Until at least two major browser makers fully
implement something and properly document it, it's not a web standard.

(2) There is no requirement to know about 3D development unless you plan on
incorporating 3D effects into your app. All the 2D math/development we know
and love today is merely an elevation view into a 3D world. You can use
famo.us using all your 2D experience without ever really needing to understand
3D math/development. Furthermore, many of the interfaces widgets already
available in famous and being created by the famo.us community are
sufficiently high-level that the API should be enough to manipulate/modify
that widget without any 3D knowledge. Only if you want to be a creator of 3D
widgets or design higher order 3D compositions do you have to learn 3D
development. Most developers will use famo.us the same way they use the web
today (at least for now). i.e. 2D with occasional "Z-index" manipulations.
Eventually some will explore what they can do with 3D since it's available
[1]. Famo.us always leaves that option open unlike pretty much all other
frameworks.

(3) I don't think the community agrees on anything just yet. If you look at
the numbers, there are a lot of ideas out there with varying degrees of
traction. Things could really not be more fragmented. It's going to be a long
time before any framework is declared a winner in this area (if any). Even if
a framework is ahead today, history is littered with frameworks that have
fallen out of favor like prototype.js, script.aculo.us, YUI and MooTools. Any
real student of computing history will be wise to remember Brooks: "No silver
bullet"[2]

My suggestion to the OP is to install both and try them out to see how they
are different.

disclaimer: I work at famo.us

[0] [http://lists.w3.org/Archives/Public/www-
style/2014Feb/0103.h...](http://lists.w3.org/Archives/Public/www-
style/2014Feb/0103.html)

[1] [http://alistapart.com/article/the-z-axis-designing-for-
the-f...](http://alistapart.com/article/the-z-axis-designing-for-the-future)

[2]
[http://faculty.salisbury.edu/~xswang/research/papers/serelat...](http://faculty.salisbury.edu/~xswang/research/papers/serelated/no-
silver-bullet.pdf)

------
lnanek2
Kind of sad the state PhoneGap push support is in. I checked the links and
they have an if else for two completely different code branches for Android or
iOS and don't support anything else:
[http://www.practicalguidetomobileapps.com/resources/book/ful...](http://www.practicalguidetomobileapps.com/resources/book/full_app/device_readyjs.html)

Ideally you would support more platforms and not have to make any distinction
in the JavaScript and could have a single code path. Right now I pay
Pushwhoosh a hefty fee per month for exactly that.

I hate working with closed source stuff that I can't bug fix and improve
myself. Just the current state as evidenced by this guide is so far behind
commercial offerings it would take months just to get it even comparable.

~~~
nicholasreed
I totally agree with the sentiment, and iOS/Android support only is
unfortunate at the moment. It's only getting better though, and in a few
months the improvements in Famo.us/PhoneGap will be impressive.

(un)Fortunately, I've wasted the hours of getting the payload/etc support
working pretty seamlessly, so handling incoming Push's is all done in one
place:
[https://github.com/nicholasareed/internal_app/blob/master/sr...](https://github.com/nicholasareed/internal_app/blob/master/src/lib2/utils.js#L840)

------
liquimoon
Just downloaded the book! Thanks for making it free. You are very generous! I
am looking to build a quick and dirty prototype for Tinder for X, and this is
a great starting point for me. Thanks Nick!

------
angryasian
I just tried out the ulu app on OnePlus(top of the line hardware) and in terms
of performance I wouldn't call this acceptable.

~~~
kirubakaran
It is an app optimized to teach. From what I see, it looks great for that.

~~~
angryasian
for such a small app I imagine, that the performance issue is from the tech
stack itself vs anything he's coded. I would put that as a warning to those
that are considering to using this stack. If it is within the code itself, he
shouldn't be teaching bad code.

------
untog
I'm still confused as to why I'd want to use famo.us over an open source UI
framework. From these screenshots it doesn't even look particularly good.

~~~
nicholasreed
It is open source... Some development (a majority) has been behind closed
doors, but they are now opening everything up.

------
pbreit
Feedback on
[http://www.practicalguidetomobileapps.com/resources/book/pho...](http://www.practicalguidetomobileapps.com/resources/book/phonegap_and_cordova/phonegap_build.html)

3\. don't see [New App] button 5\. Broken URL (missing ".git") 6\. "App must
be less than 20 MB" (I'm on the Free Plan, I assume like most)

~~~
nicholasreed
Thanks for the feedback! Did you see a different button? (+ new app) perhaps?
I updated the url to use the git:// one. I'll have to look into the 20mb
limit, I never noticed!

~~~
pbreit
Perhaps if you do not have any apps yet, it goes straight to the new app page.

------
notoriousjpg
Does anyone know if there is a PG like tool which will help me make an app for
camping/hiking routes? As in it's mostly a map, with some filters and it finds
nearby locations.

Been looking around but it goes from "learn to code' straight to 'map
technology' to 'map access api' which combines to be pretty darn hard.

Cheers

~~~
mgkimsal
intel's xdk platform might be worth looking at, as is titanium.

~~~
general_failure
I encourage you to see Intel XDK screenshots. Just type "intel xdk" in google
images. If that doesn't scare you...

------
stardrive
Come on people, HTML5 is winning! Another awesome and seemingly overlooked
option here is ludei.com with their Cocoon platform, launcher and cloud build
service. Put that together with React/Flux and some soon to be released
Famous-React for flavour and its all possible. Then top it off with Webpack
and your laughing.

------
alashley
This looks great! I've been wanting to get into mobile dev but stuck between
choosing one of C#, Java, or Objective-C. I work with Javascript every day so
this should be more familiar.

~~~
allsystemsgo
I'd do yourself a favor and take the time to learn native mobile development.

~~~
Winningest
Why? (non-rhetorical)

~~~
untog
It's very difficult to get webviews to be as performant and "right feeling" as
native.

That said, I think the case is very overstated, and that majority of users
(i.e., not 20-somethings from Silicon Valley) won't notice or care if your app
has some rough edges.

I've been working on a mobile webapp, and I'm happy with the trade offs - it's
cross-platform, and it's "good enough".

~~~
mwcampbell
I suspect that the majority of people, meaning those who aren't 20-somethings
in Silicon Valley, can feel that something isn't right in non-native apps;
they just can't articulate what or why. It might actually be more frustrating
for them, since they don't understand what's going on, and it just contributes
to their general frustration with the all-around crappy state of software.

~~~
untog
I'd love to see a study that proves any of that.

