I am about to start a project to develop app that will run on iOS and Android. Most of the functionalities are very basic. Creating membership, login, viewing some content, entering forms data etc. However, there will be many pages. It is like a Web Site. iOS and Android App will have same functionalities.
I am considering developing this as Web App then creating a native iOS and Android App with a WebView. In that case, my users will download the apps from App Store and Play Store but my Web App will work inside that native apps.
I am willing to do that because apps functionalities will be same and there many simple pages in the apps. This will give me huge benefits. For example, i will implement once and use it in two different app, create new releases mostly without publishing the apps again etc.
I am planning to implement mobile app related things on the native apps like Push Notifications, Crash Reporting, Google Analytics etc. and rest of the functionalities in the Web App
Is this a common practice?
Is there any name for it? (I believe this is not a Hybrid App since Web App will be remote on the cloud)
What are the possible technical difficulties?
What other technologies i need?
How can i done Authentication / Authorization securely (My users will login to app once and then use it without login each use of the app)
Is there any rule against it? Like does the Apple App Guideline allow it?
Is there any framework to use for such need?
Thanks
I wouldn't recommend you to build a native app just for the use of a wrapper. In this case it is better to write a responsive web app. You can bookmark the website on your home screen and it will use the favicon as the apps icon.
Check out progressive web apps. This may be what you are looking for:
Progressive Web Apps
Related
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
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'm developing an iOS app and Android app that have to read data from (and maybe write data to) my web app. On the web app the users login, modify a dashboard (their data), and their changes are reflected in the iOS and Android apps. Pretty basic stuff. I just don't know what a good design for me is.
Things I'm considering:
The web app is a client. The web app makes calls to an API I build where
all the user's data is added/modified. Android and iOS apps both
make calls to this API as well.
The web app lets users login and modify the dashboard. As changes are made they are fired off to a BaaS (such as QuickBlox, StackMob, Parse, CloudMine, etc...). The iOS and Android apps make calls to the BaaS.
The web app is everything. User logs into web app, modifies data. Android and iOS both make calls to web app.
Your recommendation...
Considerations:
I'm a junior dev with limited but growing experience. I'm fairly comfortable with Ruby. Java and Objective-C is a WIP.
I want to get this up and running ASAP. Willing to do a V2 the "correct" way once I get customers or funding.
Please advise on architecture. Thank you.
You can use Webview for Android. Read this link:
http://developer.android.com/reference/android/webkit/WebView.html
I am having a browser-oriented web app build on Rails (3.1). I want to make some features of the web app available on mobile devices, too.
Besides...
1.) Building native apps for each vendor of devices and interacting with my rails web app using JSON/XML, ...
I am thinking about reusing as much as business logic already implemented in my rails app by reusing controllers/models and add some new views targeted to mobile devices (in terms of screen size and the like...).
With this approach, I see two alternatives:
2.) Let the end user access the part of the rails app targeted to mobile devices in the mobile browser.
3.) Set up a native mobile app wrapper, e.g. using PhoneGap, and refer to the same part of the rails app used for 2.).
The advantage of 3.) is that I can reuse business logic of my rails web app and having a "phantom" native app for mobile devices at the same time. (I used the term "phantom" because besides the wrapper, it's not really native, this approach actually just mimics a native app.)
Question 1: Are there any other alternatives besides 1.) to 3.) ?
Regarding 3.)
Question 2: Does Apple accept this kind of apps (which fetch large portions remotely) to be uploaded to the app store?
-> I would be surprised if it is so, because it would allow one to change large parts of the app without the notice of Apple.
Question 3: From an architectural/technical point of view, is it recommended to remotely fetch prerenderd html/js to be executed in a "phantom" native mobile app build on top of e.g. PhoneGap?
-> Wouldn't it be better to set up an independent client app within the native mobile app (maybe using backbone.js), keeping all html, css, js locally within the mobile app, and communicate with the backend using JSON/XML or whatever?
I think this is a good question and I've recently come across similar difficulties. I've ended up using (Q3) vaadin with touchkit. Fine if you're doing free but a bit expensive if you're doing commercial (although then you can probably afford it). I realise this doesn't relate to rails but still, I'm assuming the main point of the question was should I build native apps which use web services / middleware or go for pure web apps.
RE (Q2), during my trawl of this current technology, I did read a few articles suggesting that apple are not allowing the web app style. As in, app which simply masks browser window loading remote web app. Essentially, I think where apple are concerned, you'd need to have the functionality tied down to what they agreed to. This doesn't really affect web apps though as you can surely just access them directly from the browser.
RE (Q1), the only alternatives I can see would be different middleware (e.g. MQ, SOAP etc).
I am developing basic android applications. I am doing a BE project on web application which is a resort management portal. I will be giving Room booking, cancellation and lots of services using JSP..
For addition, I would like to prepare an Android application from which user will be able to book rooms (it will be a registration form and later data will be sent to JSP page) again, there should be page for room booking status update too..
I know, we can use webview to view webpages in android but does it need any specific layout of an webpage?
I am bit confused..
Your layout needs to be mobile optimized, that is you need to consider the resolution of the devices consider the user experience for mobile device. For a very good example, check out gmail in Mobile vs. the one in desktop or even stackoverflow in both desktop and mobile. They both provide same functionality but have their own mobile optimized layout.
Additionally, in building the webpages, you would want to consider Javascript Framework that is optimized for touch such as Sencha or jQueryMobile