Manuel Schneider
2011-08-27 08:34:01 UTC
Hi,
is this maybe also useful for ZIM - to make ZIM readers which are
working cross-platform?
As far as I understood phonegap is mainly a framework to create mobile
apps based on HTML 5. At least the display of ZIM contents should be
simple then as we just need a HTML widget for that.
But what about libraries needed to read file contents, such as zimlib? I
couldn't find out if Phonegap itself supports native file access (so we
could re-implement ZIM features with that) or if it allows the use of
native libraries.
/Manuel
is this maybe also useful for ZIM - to make ZIM readers which are
working cross-platform?
As far as I understood phonegap is mainly a framework to create mobile
apps based on HTML 5. At least the display of ZIM contents should be
simple then as we just need a HTML widget for that.
But what about libraries needed to read file contents, such as zimlib? I
couldn't find out if Phonegap itself supports native file access (so we
could re-implement ZIM features with that) or if it allows the use of
native libraries.
/Manuel
Thanks for the super detailed write up Brion. I've been actively
talking with the PhoneGap guys after doing some more research on this
and it seems like a really good fit to have a consistent experience
across a whole host of devices.
What were looking at is not necessarily a lot of depth in every single
platform but a lot of horizontal range. Phonegap platform support
beats out Titanium pretty easily there.
We'll be working a lot closer with the PhoneGap team going forward to
quickly have something in the android store to start.
If anyone is interested in helping then we'll have plenty of
opportunities to join in. Over the next weeks we'll be adding bugs and
sending out more calls to get involved.
--tomasz
Titanium Appcelerator, which is another framework in that space, in working
on StatusNet's iPhone & Android app.
Between the two I'd recommend PhoneGap for our usage as preferable over
Titanium, but would appreciate more feedback from people who've done fuller
PhoneGap work.
PhoneGap models around extending a full-screen web view with additional
JavaScript-accessible APIs to use device & OS capabilities (camera, address
book, notifications, etc). This gives you few/no "native widgets" for your
primary screens, but can make it relatively easy to create an HTML/JS-based
web application that's extended with native abilities and can be shipped
into native app stores.
Titanium was originally based on a similar model, but switched to a native
widget bridging system, where your JavaScript code instantiates and
manipulates objects which are bridged to native UI components and such. This
can make your widgets look & feel more native, and can make some UI bits
faster. But it also makes behavior less consistent between platforms; many
widgets or features simply aren't available on all platforms, and last I
checked there was basically *no* working support other than iOS and Android.
(An early BlackBerry demo came out, was insufficient to do anything we
needed, and never got updated that we saw.)
Since the Wikipedia app is mostly a webview and ...... maybe a menu?
PhoneGap is probably a good choice. Titanium can also embed a webview, but
it's a lot more work to deal with two levels of JS! PhoneGap has much
broader device support, but be warned -- it'll use the native webview on
each system, so JS and HTML/CSS support will still vary across platforms.
Debugging in PhoneGap basically devolves to being able to debug a web
application; various tools like http://phonegap.github.com/weinre/ can help
with this (or if you code carefully you may get away debugging your app in
your favorite desktop browser directly ;)
Titanium was always a bear to debug things in and basically came down to
'watch the system log output in Android, that's the only place you'll
actually see low-level errors'; this may be better now with their IDE
support.
Titanium also pretty aggressively pushes their support & training services
which I find offputting; their project build tool wants you to login to
their 'cloud' stuff to let you hook up to their remote build & analytics
services, which we didn't ever really use.
Support seemed to center on getting people to take training webinars or
pointing people at the documentation and examples when they ask how to do
something; I didn't find them very responsive about platform bugs or missing
documentation except by contacting their couple of Android developers
one-on-one in IRC to ask for merges -- which was usually a pretty good
experience! Getting fixes for iOS merged was very difficult; I could never
get ahold of their iOS developers directly, and they didn't seem to be any
more responsive to low-level bugs we filed through their customer support
system.
We had to build with a patched version of the iOS and Android runtimes for
quite some time as there were serious bugs. On the plus side, maintaining a
patched branch in git was very easy -- a lot of 'git pull origin master' and
occasionally tidying up conflicts. Their source is all on github and is easy
to fork and not too awful to build, at least for the mobile runtime.
Note that both PhoneGap and Titanium frameworks are open source & hosted on
github, though both require a CLA to submit code upstream. (I have signed
the Titanium CLA to submit patches to them last year; haven't done for
PhoneGap yet.)
-- brion
_______________________________________________
Wikitech-l mailing list
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
talking with the PhoneGap guys after doing some more research on this
and it seems like a really good fit to have a consistent experience
across a whole host of devices.
What were looking at is not necessarily a lot of depth in every single
platform but a lot of horizontal range. Phonegap platform support
beats out Titanium pretty easily there.
We'll be working a lot closer with the PhoneGap team going forward to
quickly have something in the android store to start.
If anyone is interested in helping then we'll have plenty of
opportunities to join in. Over the next weeks we'll be adding bugs and
sending out more calls to get involved.
--tomasz
I've been asking around on IRC but thought it would be good to open up
to a larger audience.
Has anyone here used PhoneGap (http://www.phonegap.com/) for mobile
app development? I'm eager to get your thoughts and potentially
brainstorm some new ideas.
I haven't used PhoneGap except for some brief testing, but I have usedto a larger audience.
Has anyone here used PhoneGap (http://www.phonegap.com/) for mobile
app development? I'm eager to get your thoughts and potentially
brainstorm some new ideas.
Titanium Appcelerator, which is another framework in that space, in working
on StatusNet's iPhone & Android app.
Between the two I'd recommend PhoneGap for our usage as preferable over
Titanium, but would appreciate more feedback from people who've done fuller
PhoneGap work.
PhoneGap models around extending a full-screen web view with additional
JavaScript-accessible APIs to use device & OS capabilities (camera, address
book, notifications, etc). This gives you few/no "native widgets" for your
primary screens, but can make it relatively easy to create an HTML/JS-based
web application that's extended with native abilities and can be shipped
into native app stores.
Titanium was originally based on a similar model, but switched to a native
widget bridging system, where your JavaScript code instantiates and
manipulates objects which are bridged to native UI components and such. This
can make your widgets look & feel more native, and can make some UI bits
faster. But it also makes behavior less consistent between platforms; many
widgets or features simply aren't available on all platforms, and last I
checked there was basically *no* working support other than iOS and Android.
(An early BlackBerry demo came out, was insufficient to do anything we
needed, and never got updated that we saw.)
Since the Wikipedia app is mostly a webview and ...... maybe a menu?
PhoneGap is probably a good choice. Titanium can also embed a webview, but
it's a lot more work to deal with two levels of JS! PhoneGap has much
broader device support, but be warned -- it'll use the native webview on
each system, so JS and HTML/CSS support will still vary across platforms.
Debugging in PhoneGap basically devolves to being able to debug a web
application; various tools like http://phonegap.github.com/weinre/ can help
with this (or if you code carefully you may get away debugging your app in
your favorite desktop browser directly ;)
Titanium was always a bear to debug things in and basically came down to
'watch the system log output in Android, that's the only place you'll
actually see low-level errors'; this may be better now with their IDE
support.
Titanium also pretty aggressively pushes their support & training services
which I find offputting; their project build tool wants you to login to
their 'cloud' stuff to let you hook up to their remote build & analytics
services, which we didn't ever really use.
Support seemed to center on getting people to take training webinars or
pointing people at the documentation and examples when they ask how to do
something; I didn't find them very responsive about platform bugs or missing
documentation except by contacting their couple of Android developers
one-on-one in IRC to ask for merges -- which was usually a pretty good
experience! Getting fixes for iOS merged was very difficult; I could never
get ahold of their iOS developers directly, and they didn't seem to be any
more responsive to low-level bugs we filed through their customer support
system.
We had to build with a patched version of the iOS and Android runtimes for
quite some time as there were serious bugs. On the plus side, maintaining a
patched branch in git was very easy -- a lot of 'git pull origin master' and
occasionally tidying up conflicts. Their source is all on github and is easy
to fork and not too awful to build, at least for the mobile runtime.
Note that both PhoneGap and Titanium frameworks are open source & hosted on
github, though both require a CLA to submit code upstream. (I have signed
the Titanium CLA to submit patches to them last year; haven't done for
PhoneGap yet.)
-- brion
_______________________________________________
Wikitech-l mailing list
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Wikitech-l mailing list
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
--
Regards
Manuel Schneider
Wikimedia CH - Verein zur Förderung Freien Wissens
Wikimedia CH - Association for the advancement of free knowledge
www.wikimedia.ch
Regards
Manuel Schneider
Wikimedia CH - Verein zur Förderung Freien Wissens
Wikimedia CH - Association for the advancement of free knowledge
www.wikimedia.ch