PhoneGap or Appcelerator Implementation - mobile

This is more of an advice question rather than a specific question. I am developing an application for mobile devices. Its basic functionality will be to open PDF files, Video files, and to open certain webpages. Would this be best implemented in PhoneGap or Appcelerator?

PhoneGap and Appcelerator Titanium are both very popular open-source JavaScript frameworks for packaging and deploying mobile applications. At Universal Mind, we have clients that leverage both and clearly both frameworks have countless successful implementations on numerous platforms. However, there are enough significant differences between the two products that it doesn’t really make that much sense to compare them directly. The fundamental difference is that PhoneGap is a web-based solution where Appcelerator Titanium is a pure JavaScript API that creates native code. At the core, they serve different functions for an organization.
PhoneGap:
JavaScript API that provides access to Native Functions
Supports HTML5/CSS3
Supports Web Standards & Re-use Across Enterprise Apps
Supports DOM based JavaScript Libraries/Frameworks
Supports the most platforms
Appcelerator Titanium:
JavaScript API that provides access to Native Functions
Compiles to Native Code
Could provide better performance.
So as per my view i prefer Phonegap

I think a key difference implied is that PhoneGap uses HTML and CSS to render the user interface while Appcelerator renders platform specific native user interface components.

Phonegap have very small list of api that enables it to adapt itself to all(partially) platform, whereas appcelerator have larger api. That's is why they are emphasized on only two platform(completely).
I think with this understanding i would prefer appcelerator for complex applications and phonegap for multiple platform.

Related

Toolkit options to write a crossplatform mobile app in 2012?

I'm currently investigating the alternatives for crossplatform development for Android and iPhone (Windows 8 could be a nice addition). The app is basically a "map with an asociated app", and certainly not a game.
Searching here I see many outdated advice and tools from 2010/2011, but since then Apple has changed their policies and surely new things have appeared.
My current list and light research (might have facts wrong) is:
Monotouch/Monodroid: .NET (Mono) framework. Create "native" apps on both platforms. Requires rebuilding UI code (or similar things).
Appcelerator: Javascript framework to compile native apps.
Corona: Similar to Appcelerator.
Phonegap: Similar idea, but looks like it uses a wrapper to appify HTML5 content
SenchaTouch: Another HTML5 based platform.
Wink: Yet another HTML5 toolkit.
XVLM: Android to ObjC compiler, probably creating ugly iOS apps.
Unity3D: For games only.
Moai: For games only.
So, there are three main ideas, with some frameworks implementing each, it seems to me:
Have an abstraction layer over native iOS/Android code and build for each platform using the provided layer. (Monotouch, Unity3D)
Use HTML5 (coding in Javascript) and some kind of wrapper to "appify" the web content. (PhoneGap,Sencha,Wink)
Code using a framework that will output as a compilation pass (or similar) a native app for each supported platform (Moai, XVLM,Appcelerator,Corona)
The questions:
Is there a fourth idea I haven't yet found?
Is there any blatant mistake in my research for any of the specified frameworks?
Is there any known problem for map integration with any of these ideas or specific frameworks?
Only a partial answer:
Ad 2. Appcelerator / Titanium is more than just HTML5. I read this pretty extensive comparison between PhoneGap and Titanium the other day on Hackers News. I found it very informative. The link points to the HN comments, the link to the actual article is at the top.
My main experience is with Mono for Android and MonoTouch, so I can't personally speak much to the other options. I personally find it to be the best option there is, as it allows you to share a large amount of your code across the platforms (even extending to non-mobile platforms if you stick with .NET), while still allowing for a 100% native UI, which is extremely important. If you're looking for resources on getting started, I have this video which discusses approaches and libraries for sharing a lot of code across platforms, and also this book which covers the same thing, but also expands to talk about how to do things like store data, use maps, access the network, etc.
I also want to mention MonoGame, which is absent from your list. MonoGame is an open source XNA implementation that sits on top of Mono to allow you to target iOS/Android/Max OS X.
From what I have experienced, if you want to have a native app go Mono, if you don't need native go PhoneGap. Native is best of the UI is very important, ie games or fairly graphical apps. But from business type app, CRUD, Phone gap works well.

Moving from web to native applications

Got a problem, and I am pretty sure there is a solution for this.
Currently we have a Website that sells goods & integrates with a thirty party for shopping cart. The shopping cart integration is through standard web re-direct.
Product works well on desktop browser. Its not that bad on browsers on tablets. Not so great on phone browsers. The problem on mobile device is for obvious reasons, as the pages are optimized.
The standard approach we can do is go about optimizing for mobile browsers, and be happy. My team is flying with optimizing for mobile web, because they think apps will be very difficult to do.
If we choose to go the native app model, is developing a library or package for each platform the only way? I am thinking, no in current world with so much technology advancement. I am not a fan of browser view on device, not the smooth experience.
Are there other options available? I was looking at HTML5 hybrid applications, but can't put a finger to be sure that will work for what I am looking for.
Frameworks aside, often times you can use a stylesheet meant for mobile devices and hide everything that is not absolutely vital. You could also consider WML, but I think you could live without it IMAO.
Writing apps for the iOS will require an investment in Apple developer tools and training in Objective-C. Android will call for Java and Eclipse, to name a few things.
When it comes to "native apps", you will need to code for whatever platform you are depending on. The number of platforms you work with is entirely up to you, but yes, each new platform may require a different implementation.
Personally, I would add some specialized markup/styles to make as many browsers as possible happy. If you want to expand, try to see where your target audience really lies and reach out to them on any medium you can afford to build on. I would zone in on specialized applications if there are benefits really worth chasing down that road.
Hybrid applications is a good option, but probably the devil in a box.
The hybrid approach with HTML5 fits your developer, because they will still use HTML, CSS and JS (e.g. with PhoneGap), but on the other hand you will get an medium satisfying UI (what you said you are not a fan of).
Pure native applications is probably a bit too much of all good, if your web app runs fine in a browser.
A way could be to go with compiled hybrid and cross-platform compatible solutions like xamarin or appcelerator, especially appcelerator uses JS, which is an advantage for you. This could result in a native UI (implemented in JS) and shared business logic code. So there are two benefits for you; first, just use JS, second, shared business logic code -> less work.
Other alternative would be to go with responsive or adaptive websites, realized with the help of CSS.
If you are looking for developing a hybrid app (phonegap + angularJS + backend), I would like to recommend Monaca. I've just recently discover it. It is very cool since it has phonegap inside its framework and its own backend. Moreover, it also has a fast and lightweight UI framework called OnsenUI which is based on Topcoat and AngularJS.
Even it is a hybrid app but it will give users the native application feel since it also provides native components to use in your hybrid apps. What is impressive about it, you don't even need to build and install your app to your device every time during development. That's what I love the most about this.
I hope it helps since I think it is just like what you are asking for. I'm just a novice developer and I find it is very easy to use.

Mobile application development frameworks : The Good, bad and ugly?

Over the last couple of years( or maybe less ) a number of different mobile application development frameworks have come up that promise you the ability to create cross platform( in some cases ) mobile applications without native device SDK programming. Some of these are OpenPlug, Redfoundry, Appcelerator, PhoneGAP, RhoMobile , Ansca-Corona
This list is steadily becoming bigger so it’s a bit of a challenge to know which are the good ones from the not so good and bad ones out there. Anyone in this group has any good/bad/ugly experience with any of these these ? If you've used any of these , are these really good enough to build real world applications ?
I'm just getting into rhomobile (Rhodes 3) and finding it very very good, mainly because I'm a Ruby/RoR developer and I am not having to face learning yet another development language and I'm finding this to be a thoroughly enjoyable experience although a little confusing to start with.
I'm tending to shy away from rhohub and develop on my local machine which I find a lot simpler to do for many reasons.
I previously had a play with buzztouch but it didn't produce a native looking app, however it works very well if you don't want to do anything too complex (functionality is quite limited)
I guess the best advice I can give you is to try out the different platforms starting with the platform that covers the language you prefer and see how you get on
We have used Phonegap to develop many cross platform applications. PhoneGap, also known as Apache Cordova, is a technology that lets programmers build a mobile application and then wrap it in the PhoneGap framework that can be installed as a native mobile application across multiple mobile device platforms easily.
Our experience with this has been very good in relation to the kind of data driven apps we have built.
If you are web programmer proficient in HTML5, CSS and JavaScript then PhoneGap brings you new opportunities! You can build native mobile apps using the web technologies that you know and love: HTML, CSS, and JavaScript. Applications that are developed using PhoneGap are hybrid applications. Parts of the application – mainly the UI, the application logic, and communication with a server, is based on HTML/JavaScript. The other part of the application that communicates and controls the device (phone or tablet) is based on the native language for that platform. PhoneGap provides a bridge from the JavaScript world to the native world of the platform, which allows the JavaScript API to access and control the device (phone or tablet).

Rhodes v/s Titanium

Which is the best framework to develop cross platform application. Especially for android and iphone. I have been through the reviews present over the internet, but those seem to be pretty old. I believe both Titanium and Rhodes have developed much over the past couple of years.
One of the basic differences is the nativeness of the two frameworks. Both Rhodes Framework and Titanium claim to be native. Rhodes however is not really native i.e. it uses an embedded Web Browser to display the HTML-coded website. Titanium, however, takes your JavaScript code, and create real native widgets on the respective platforms.
So what's so important about native? Well, it makes the user experience a whole lot better.
Rhodes Framework is best described as a competitor to PhoneGap.
From my knowledge, Rhodes is best for enterprisey apps. I would generally recommended Titanium for most app developers.
Though I have not used Rhodes, I feel Titanium is better based on what I read about Rhodes. The JS syntax in Titaniums is also easy to ramp up on. But, from what I have seen, understanding the working of the native code is useful to understand and explain some of the behavior. There is one more comparison of the frameworks that I found recently here.

Mobile UI frameworks & other UI scripts

I'm looking for the best cross browser compatible swipe script for android, iphone and other touch phones. Has anyone used any of the available frameworks or have you used custom scripts? What is your experience with these?
SenchaTouch
jQTouch
Phone Gap
Unify Project
Any others? I am joining a mobile task force and would like to get more involved in one or more of these communities so I can provide some UI support.
Thanks,
Seth
First of all, let's sort out the apples and oranges.
PhoneGap and Appcelerator Titanium are NOT UI frameworks. They are both Web to Native bridging technologies. They provide JavaScript API's for mobile capabilities like accelerometer, contacts, GPS, telephony, etc. Also, they facilitate the creation of a deployable mobile app (versus a web page)
Sencha Touch, jqTouch, and jQuery Mobile are mobile UI frameworks that provide support for mobile UI concepts, like touch, swipe, transitions, small screen sizes, etc. They can run in a pure web page or be used in conjunction with PhoneGap or Appcelerator Titanium in a mobile app.
I'm not too familiar with the Unify Project, but it seems to be a bundle of PhoneGap plus their own UI framework.
Both Sencha Touch and jQuery Mobile are in early days, but already have some great capabilities and they're moving fast.
SenchaTouch is good, but be aware that it provides no native hardware support, so if you need access to the phone hardware, you will need PhoneGap or equivalent.
I hear good things about jqTouch, but haven't tried is personally.
Another option is Appcelerator. If you need to write an app for mobile devices, it is a really approachable framework. You write javascript code, and their machinery compiles it to the appropriate platform. Note that this is for writing apps that run on a mobile device directly, not for writing apps that run in a browser on a mobile device.
I found jqTouch to be great on top of the PhoneGap technology however you need to understand that all the "good looking" UI kits are built on HTML 5 and so far you'll be disappointed with the HTML 5 support from Android devices. You'd think Google would be on this like ants on syrup but you'd be wrong. The jqTouch works like a dream on almost all iOS based devices and quite poorly on most Android devices.
As for Titanium, it still appears and feels web based and there are no UI styles to my knowledge. This means it "attempts" to look native whereas with PhoneGap and JQT you can get a really nice theme. So if you want "snazy" then go PG and something else. Titanium is far more stable than JQT when you're building for iOS and Android so that is a plus but it would be really nice if they did some kind of theme engine.
note over time this answer will become irrelevant as Android improve their HTML 5 support and those UI frameworks become more stable :)

Resources