I want to develop an application which works both in a regular browser and as an Android app. Both seem suitable but would I be right in saying if I went with Phone Gap, deploying the same html content as a regular, server hosted website is not trivial and would require modification? Also, are multi page applications not desirable in a Phone Gap wrapper?
Are there any alternatives I should consider? I'm surprised someone hasn't already written an Android wrapper with all the hardware access wiring done already. Or have they?
There are few things you should know,
If you are going to publish your app also on iOS, you can't use server hosted website for your app.
All of your basic functionality must stand on your app assets, is one of the iOS guidelines, and its also make-sense for best ui performance (both iOS & Android).
Use server-side wisely, when you want to fetch data which have to be up-to-date.
there are some new mobile browser features which will be available in the future, that allow your website to use the device hardware functions:
Device API on W3C
Good luck dude ;)
You can try with jquery mobile framework:
http://www.jquerymobile.com
It is jquery based framework for developing web apps that works on standard web and on multiple mobile devices (with cordova)
Related
I have a client that has a very large and extensive mobile site and they would like to have a mobile app as well. I know there are some services out there that will convert a mobile site into a mobile app but I have tried one in the past with poor results. So basically as my question says, are there any frameworks or premade mobile app templates that will basically function like an app but connect to your live mobile site?
Just make your own wrapped in a webview.
A previous client of mine stated with literally just that, a single activity with a webview. As he raised money for the app, I swapped portions of it out with native code. You can use a javascript bridge to handle some actions natively - share, etc.
i didn't want to ask a question, but i don't have any solution at all.
i've not seen such a kind of problem. i decided to write applications on mobile platforms (android and iOS), but nothing found.
lots of tutorials and documentations
lots of samples
lots of libraries and frameworks
but nothing found... i'm fed up, still looking for difference between mobile web application and desktop. i wanted to write simple drag and drop calculator, searched and found phonegap + jQM. first, i installed eclipse + ADT + cordova and created project. when i started writing, i decided to use jQuery (cause i needed drag and drop effects), and suddenly found that i needed applaud plugin and so on... as i understand applaud app and native phonegap app are differenet. when i searhed, i found that phonegap + jQM are web apps and needed NET to start application. I don't want to write web app, i only want 3 - 4 line to undestand what' going on... what is difference between web and client app in mobile and how i can write simple drag and drop calculator NOT WEB. i'm really fed up with these tutorials and documentations, i only need correct starting way and then i will do myself. damn, i'm tired...
A web app is an HTML5, JavaScript, CSS app running in a mobile browser typically published on a web server but can be run locally on a device without a network connection in some cases.
A native app is downloaded and installed on the mobile device and must be published to an external app store of some sort. There are also hybrid apps that combine both characteristics.
Native and hybrid apps have more complete access to the device platform and can be more performant than web apps but require more specialized language skill (Objective C, Java, C#).
Web apps can be as simple as a web site displayed on a mobile device and require much more broadly utilized skills such as HTML, JavaScript, and CSS.
The requirements of your drag and drop calculator are not specified but I would suggest that a very simple web app could meet your needs.
This IBM article might be overkill for you but it also happens to discuss the offline web app option. http://www.ibm.com/developerworks/web/library/wa-offlineweb/index.html
I am new to PhoneGap, and I have several questions:
I need a way to develop an application that will have iOS, Android, and other platform compatibility. In other words, I want to write 1 app and get compatibility versions for different platforms.
By reading the "Get Started" guide linked by the PhoneGap website, I found there are different procedures for different platforms. So to have compatibility versions across platforms, do I have to go one-by-one and change all of them if I make a modification to my app?
Also, what exactly is PhoneGap Build? It seems like I can avoid all that hassle mentioned previously and toss my app into the PhoneGap Build? Do I really not have to do anything besides writing the app? What if I need to make changes?
And finally, I've read that PhoneGap works with HTML, CSS, and Javascript, but not PHP. What if my app needs to contact a server? Can PhoneGap handle that?
Thank you for bearing with all these questions!
PhoneGap achieves platform compatibility by embedding a webview within your application. Therefore you can apply your knowledge in HTML, CSS, JavaScript and it additionally provides ways to interact with native features (e.g. camera, gps, ...).
With PhoneGap you write one general web app, tweak parts for the specific platform (sometimes you do not have to this at all) and build it for that platform. The latter can be handled with PhoneGap Build service: It takes your webapp and bundles it for the mobile operating systems out there (Embeds it within a Java app on Android, an Objective-C app on iOs)
PhoneGap is able to communicate with a server hosting a PHP script just as every other web application. Trying to dynamically load resources from remote sites can be quite a hassle but this is another question.
traumalles is correct. All your HTML/Javascript/CSS is running from within a webview on the device. Your code is, therefore, all "client-side." You can communicate with a server just like with any other page. When they say PhoneGap isn't compatible with PHP, they mean only that PhoneGap can't execute PHP code like it's a server, because it's not. It's just loading your webapp in, basically, a browser.
One other important question is what exactly do you mean with "other platforms" phonegap does provide many functionality for nearly every platform but the different webbrowser of the mobile devices have their problems and limitations.
For example are there many problems if you want to provide your application on a WindowsPhone Device because the Webbrowser has a few limitations which will cause your app to not look and behave like a native app.
Just look a bit through the phonegap API you will see that some functions are just available for IOS or for Android and there are a few only Blackberry methods and so on.
So you really have to be careful when a framework tells you it will work on all devices.
So i really don't have a problem with phonegap i worked with it very great but there will be limitations you have to deal with.
If you primarily want to develop for IOS and Android you can really achieve great native like results !
We will develop a, social network integrated mobile application which will need to access native device capabilities but 90% of the logic will be implemented in the HTML5/Javascript code posted by Ruby back end to the device. Thus, we would like to update or change the logic/GUI of the app without user involvement. We have strict deadline and have to support iOS, Android and Blackberry.
In this case, what approach would you recommend us? We considered the approaches below but could not decide since we do not have any experience with mobile development even if we are experienced in Ruby, C/C++, Java, Javascript, Flex.
Our considerations:
Develop native apps for each platform and embed the native browsers
to implement our logic, which can take too much time.
Use one of the frameworks for cross-platform development such as
PhoneGap or rhomobile. In this case, we are afraid of facing some performance issues. We would love to hear the experience of developers with those frameworks.
Use Adobe Air for accessing the device and its WebKit component for the rest.
First, I hope you understand that there is no simple answer. At this junction, having been looking at cross-platform solutions for mobile development for two years, I feel that in order to get fully native UI look, and to access all the device and UI features, one is forced to produce native application on each platform.
But, since you asked about cross-platform tools, here's a list of the main contenders:
Sencha http://www.sencha.com/products/touch “Sencha Touch is the world's first app framework built specifically to leverage HTML5, CSS3, and Javascript”
Dojo http://dojotoolkit.org “Dojo saves you time, delivers powerful performance, and scales with your development process”
Phonegap http://www.phonegap.com “PhoneGap is an open source implementation of open standards”
jQuery Mobile http://jquerymobile.com “Touch-Optimized Web Framework for Smartphones & Tablets A unified user interface system across all popular mobile device platforms”
Rhomobile http://rhomobile.com “Free and open source mobile application framework”
Titanium from Appcelerator http://www.appcelerator.com
There are plenty of comparisons online, including on SO, and this fellow actually tried to use several platforms, code included.
Anecdotally, I have seen Phonegap produce a rather iPhone-centric look, that may not mesh well with Android, plus showing performance problems when loading screens (there may be workarounds via pre-loading). Also, access to more complex devices was limited, or at least lagging. Rhomobile is a good fit for data-driven apps (simple display of large databases), but architecturally could show performance issues, so check for yourself. Personally I did not get into Sencha, Dojo seemed a little small, and Titanium showed dated architecture. So next time I'm attempting a cross-platform app, I'll give jQuery Mobile a serious try.
Let us know what you pick and how it works out.
Iam using this rhomobile rhodes for my cross-platform development App which will run in Android, Blackberry and iPhone.
We have developed application and sucessfully runned in all devices without any issues. we used ruby for backend webservice call, And remaining app is constructed with HTML5 and java Script. I didn't face any issues regarding rhomobile.
intially we faced memory issues, But later on we resolved this issue by implementing local storage for our App. For android it wont supports local storage so we used Rhom Storage only for Android Device.
Sounds like a project doomed to fail.
If I were you, I'd build a mobile-friendly site for all 3 platforms if deadline is tight. What native features do you even need, first off? If it's something like a camera, you're better off just build a native app for all 3.
What's the intent behind a framework like Dojo or jQuery Mobile in the context of developing a cross-platform app?
I want to rapidly prototype a mobile app GUI that includes a schedule/calendar. In this case, would I use Dojo instead of just PhoneGap because I would want to also have a web browser based app that goes alone with my mobile app?
Mobile JavaScript frameworks like those provided by Dojo or jQuery theoretically allow you to
write mobile browser independent client side code for web based applications. In other words, you as the developer do not need to be concerned with writing specific code for each mobile browser.
Dojo (or other JS mobile toolkit) and PhoneGap are generally complimentary. PhoneGap is for access to native device services which aren't yet reflected to the browser, like camera or telco access. Dojo and the other toolkits generally let you create mobile-style UIs (may also run on Desktop browser, but would look like a phone) and handle things like touch and scroll gestures. And, as Peter says, cross-browser issues are also handled for you.