I have to make a project for android tablets, But i don't know if I can use Phonegap instead of learning Java. My application has to:
Talk with SQL server: update, delete, etc (using web-services) if there is no connection with server application has to store data in local then has to update to remote
Show current location of user in map (like navigation)
User can add location or information on the map, (like tracking objects on locations)
Application will use Internet, so application has to be secure, application doesn't have a lot of users maximum users will be 50.
So what do you think? If you work in Phonegap can you suggest me to use it or I have to learn Java?
Short Answer is No You don't Have to , You can use PhoneGap or if you are a .NET Fan-boy then use Mono For Android instead
PhoneGap
when you start your new application project you will just need to load your html page to the app and this is all you need to know about java , and from this point you will start implementing in your HTML document using javascript , html , css , phonegap to access mobile APIs , jquery mobile etc
The best way to Access a remote server data from you "Web based app " is to make ajax calls to the remote server so keep in your mind that you will use Jquery Mobile (or any other UI frame work that support this functionality )
PhoneGap Storage Provides access to the devices storage options.
PhoneGap Geolocation The geolocation object provides access to the device's GPS sensor.
if you will use PhoneGap and looking to have a native look app recommended is kendo ui it is a little pricey $200 but worth it
plus what Ridcully said in his answer "If you want to program for Android in earnest, you will have to learn Java and the Android API."
If you want to program for Android in earnest, you will have to learn Java and the Android API.
If this is just a one time task, I think all of the required issues might be doable with Javascript/Phonegap.
Related
Suppose , i have a website and its running well . Now i want to make an android apps using website information or My apps will contain all the information of that website already contain or how can i connect an android apps with any website.
Some solution :
1. convert website into android apps (i don't need this).
2. JSON API (i think this is best option for me ).
May be there has so many option but this time i can't remember. option is best for me if it is possible . but i don't how to create a JSON API from website .
but i don't know how to do it. please let me know share something for better understand.
or if has any other better solution for this problem please let me know .
You could create a web app, using android native web view or some technologies like ionic, etc..., or create a comprehensive API endpoint in your backend/website and start build an android app from scratch.
creating a web app is a simpler approach but has so many shortcomings in design, functioning and flexibility aspect, so if you want a competitive app with a fine extendibility feature the best option is native android development. but it could be more costly as it needs both backend and android development.
If your website is already implemented and running, you can just create an Application using a https://developer.android.com/reference/android/webkit/WebView. Basically, this is an injected Browser, allowing the user to access your Website without actually open chrome/firefox etc. on the smartphone.
To improve the usability, the layout of your website should be able to dynamically resize the content.
If you wish to actually implement an application (Activities/Fragmets...) you need to connect to your backend server the same way your website is retrieving the information.
Basically, I'm trying to make use of this website called PhoneGap that recives html codes and converts them into mobile applications.
So I'm trying to make an application that tells you how much money you owe people and how much money people owe you.
IS this possible?
HTML alone isn't enough to develop your application. It's a simple mark-up language and unable to create any real functionality. But HTML if used together with javascript (which adds the required functionality) will work great for building what you mentioned.
So if, for any reason, you'd prefer to not develop a standard native application (one which is installed locally on a user's device), then another option is to build a web-based application. These have much in common with typical websites (though optimized for mobile devices) and are generally easier to build. Another advantage is that they can run on almost any device that has a browser installed, and therefore not tied to any one specific OS, such as Android. Web applications - despite not being installed on the user device - can none the less make use of local storage to save data. This is one example for when javascript is needed.
Here is a great resource for learning about javascript: http://www.w3schools.com/js/
You should read about HTML5 and hybrid apps. A hybrid app is what you are after.
Yes, you can use html to build an app with Phonegap, but you'll need JavaScript too.
I suggest the following technologies for you: Ionic, Angularjs and localStorage for recording the data.
What I want to develop: Crude Overview?
Suppose 10 web links present on my (native/web) app, and user will scroll through links. And when user clicks on any of the link, it will open that website. And user might wish to close this website and again views the list of those URLs on my app and the cycle may go on as per his wish. Also, user can create custom list of those links. Also, these lists will be updated regularly, may be on monthly basis. Which I guess I just need to update data files and not app.
No, it is not similar to browser bookmarks but in very crude terms you can relate it. Anyways, I will accessing user's bookmarks with his permission which I guess can be easily done with the APIs available.
Right now, technologies in my mind.
1) Phonegap ( to be precise, its phonegap build - as I don't have MAC) with JQuery mobile and deploy as native app,or
2) SenchaTouch and deploy as web app or native app using sencha cmd.
3) I want to use MongoDB along with above 1st or 2nd option. Is it required or JSON can suffice? Also, I may need some security by encrypting this data while storage at user's mobile and also while collecting user's custom lists.
4) In future, I would also need Node.js for the purpose of collecting MongoDB or JSON data files in above 3rd point. Is there any other way so that it can be integrated with phonegap or senchaTouch.
Please suggest things if existing resources can help me develop my idea and guide me what to use!
Note: All technologies I am picking up are focused on single code base with minimal focus on platform specific changes-iOS/android/Windows/Blackberry.
I want to go for Native app rather than web app. Why?
1) I feel that it would perform faster if I deploy my idea as android/iOS/Windows app rather than web application.
2) My cost of hosting the application on server will go to null because I am using local storage of the user's mobile.
3) Since I want a feature in my app which stores user custom settings so it would be better if I deploy it as mobile app rather than web app so that I don't have to maintain user specific settings which may make my DataBase hosted on server to grow immense in future.
4) Also,I feel that there is no sense in hosting this application on a dedicated server because there would be less user interaction with my backend. But later I would plan a feature to collect data/settings done by user to improve feed for which I think I need to use Node.js. But then also there is no requirement of hosting frontend to a dedicated server. Hence, I can use dedicated server to serve my own purpose of analytics to improve feed rather than service user's purpose of unnecessary access to my web application always through the server and fetching lists of links which are maintained on server in custom manner for him.
My dilemma!
My above points are valid to prefer deploying as native app over rather than web app. But I feel what if I keep my app as offline web app which runs on the default browser of the user but loads the jquery and other data and scripts from the storage in mobile. Is this possible? I am unaware of this.
If this is available then it is the best thing for me to adopt as my application redirects to other websites. Because, if I am deploying my app as native app then it would ruin user experience of opening my app and selecting an option whose URL opens up in default user's mobile browser which is a different app and then there are many chances that user will switch back to my app and then again he would be redirected to that mobile browser. And obviously I cannot develop my own browser in my app as I would have to develop several things from security and other perspective which would be a cumbersome task. So, having my offline web app will be opened in user's default browser itself without annoying him to switch back and forth between my app and browser as in previous case and thus creating seamless experience.
Also, I am not sure whether we can create offline inbuilt browser plugins as we can do in chrome browser on desktop. If so, then I think I would have to concentrate differently on different mobile browsers Safari, Chrome, mozilla which I feel is not worthy. Please throw some light on this for me.
I have no idea why people are downvoting my question as I feel that it is kind of unique question.
Here is what I found more and with the help of my friend
1) I don't have to use MongoDB as my application is not much complex. So simple JSON will suffice.
2) I'll be using Phonegap for android and windows phone and phonegap build for iOS along with jQMobile. So the app will be in the native form only.
3) I'll be using inApp browser for seamless experience although it is not as perfect as having my idea as web app.
4) No need for senchaTouch as it is heavier than phonegap and not required for me idea.
5) My next look forward is comparing the above points with offline web app built using JQMobile and JSON and finally whatever I decide I will share.
EDIT:
I am finally going with phonegap for native deploy rather than offline web app or web app hosted on server for reasons that I found on several blogs.
People downvoted my ques so I feel that it is not worth writing answer further but if you want the detailed reason you can always add a comment.
Thank you
You should definitely go for web. It is cross platform. If you do an android App, or iOS App, they are restricted to the specific devices. So I definitely recommend Web App
This maybe a basic question, but I really wanted to ask it.
Consider a web application which is deployed on a cloud server and I want it to be available offline on a mobile(android device). Is it possible? Or will there be a separate installation on every mobile? How does phone gap or cordova help achieve it?
Yes it is possible. Cordova is an android application that has a webview (like a browser) for you to display an html app which is normally build with html+javascript. But cordova/phonegap applications should be made simpler than usual web application since smartphones has limited resources, unlike normal servers. There will be separate installation per mobile.
Phone Gap, Cordova etc. build native application, each user must install it to work offline. You can also build such native application manually by yourself with WebView. It can be easy to build but may require to changes in business logic to separate handle offline case, like store data locally and then sync when go online - this depend of application.
I'm working on a HTML5 cross-platform Survey application using jquery mobile, phoneGap , and sqlite database with web Storage !!!!
For Now I'm testing this App on Android Plateform using eclipse .
I'm new to the mobile world , I'm more familiar with j2ee web applications
So i'm wondering what can we call this type of architecture especially that I'm not working with a real server such glassFish ,TomCat .. or even a real SGBD and that everything is on the web browser (I'm using chrome)
Could Any one Help me with this ?
thank u :)
Here is the list of possible styles of architecture but I can't find the suitable one for my case !!!
You're building HTML5 loader apps on multiple platforms, depending on if you are storing your HTML5 locally or pulling it off a server, that's your answer for Server/Client.
You'll want object orient your javascript so you don't pollute the namespace. If you are scripting on the backend, also a good practise... I think object oriented goes without saying these days.
You can tier out your javascript to have a frontend generator, business logic layer, and data layer to handle your transactions with sqlite. Or you could also follow a MVC tiered setup.
If you are pushing data from the device to a central repository (which I think you must), you could build SOA on the server to handle the ingestion of data.