I want to build some kind of multi-user blog that should mainly be used via smartphone but CAN be used at a pc/mac too. I want it to be stored in the iOS and Android AppStores, so just a webapp with mobile-view option doesn't seem right to me. Now my question. Whats the best option to start with? Create the webapp first to get the backend, databases and stuff and than write the native app that gets access to that databases? Or start with native app first and just build a simple webapp that gets access to the native app backend? Or maybe write the webapp with mobile view option and just write a simple native app that uses the UIWebView to show the mobile version of my webbapp? I hope this question is not too confusing^^
P.S. I decided to go for ruby on rails for the webapp and store that stuff on amazon aws ;)
P.S.2 How much is the UI of a native app customizable e.g. TableViews etc? Because implementing WebApp via UIWebView may be the more stylish option?
greetz
Look, Native UI will have quite good performance event on old Android devices,
but it requires some development effort to work with Android SDK. On another had you can create some hybrid webapp using Phonegap, but you shoud keep keep in mind that you may have some performance problems with slow-slow android's web view.
As for me blog app could be implemented with lightweight JS/HTML5, but in this case please don't use Jquery/ jQuery mobile - they are extremly slow, and I experienced huge performance degradation.
I have a web application developed on .NET Framework using MVC4. So now I need to create a Android Application for it.
Do I have to convert my entire C# code to Java (The code in
controllers in my MVC app)?
Will it be better if I use Xamarin?
Can I just create new Views for my application as I have controllers
and Models?
How do I approach this?
You won't be able to rip out your Models and Controllers directly from your MVC4 app and stuff it into an Xamarin.Android Application. However you will be able to reuse some of it. Especially the models.
At work I ported a Silverlight app to WP7/Android/iOS apps where a lot of the logic fetching data from servers, models and more were directly copy/pasted. However all the Views and logic for the Views had to be written from scratch as View Ports are different on a Computer monitor and a mobile device, and general UI is very different.
Also using the MVVM pattern helps separating the UI from the Model making the apps more testable and allows more code sharing. For this I use MvvmCross. There is also an MVC alternative called MonoCross. Both are free as in beer and as in speech. Both of these are for Xamarin.Android.
If you are only going to make an Android application and not going to be making it for other platforms as well and don't want to pay the price of the Xamarin products you should be able to make it in native Android. I don't see why this is possible. However you really need to find out what it is you want.
What does your Web App do? My guess is that it somehow manipulates some data in a database. So you would need to alter your Web App to expose that database in some kind of Web Service, maybe RESTful or otherwise.
You will need to layout your Android application such that the Views of the Web App you have fits into the smaller view ports of the mobile devices. A good too for this is to sketch your Android app out on paper and make arrows and annotations. You probably already know the model of your code in the Web App, it would be similar in your Android app. So get started coding the Views and then wire them up to the Web Service.
If you have read this far you might notice my answer is very vague. This is because your question is very vague.
I see more and more professional mobile app from different companies that are simply build upon the same companies' responsive Web Application (Website).
Either they use Cordova or some other technology, I can't say.
The architect is simple: 1- build a professional well-designed angularJs web application; 2- and then use Cordova to convert it to mobile apps (iOS, android, etc.).
Is it really that simple? hmmm.... maybe not! But theoretically it should work.
The good thing is Visual Studio still supports Cordova, even after Microsoft bought Xamarin.
https://www.visualstudio.com/vs/cordova/
You can start here:
https://taco.visualstudio.com/en-us/docs/get-started-first-mobile-app/
Happy Cross Platform Mobile Developing!
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)
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
So I am looking to learn both web application development and mobile app development, and I was wondering is there is an overlap between the two. More specifically, is the knowledge of developing web apps essential or even helpful when building mobile apps?
I was under the impression that one had to know basic web app development first (at least server side programming) before being able to develop mobile apps that use the internet (since I assumed a mobile app is just a different client side that would ultimately have to talk to a web application on a server somewhere). However, Googling this brings up discussions about mobile web apps vs. native mobile apps, and this has me confused (for example is Shazaam a native or a web app?).
Please help me understand.
A native app is an app that execute on your mobile.
A web app is an app that open a webPage inside your mobile app and act like a classic web browser.
You don't have to know web dev to do mobile dev, but it can help, programming is the same for every platform, you just have to know new language every time you change, but principles are the same.
Knowledge of developing web application isn't necessary for developing mobile application. But, It will help you a lot. You can also build mobile app with HTML5,CSS & JavaScript.
It depends.
You can develop mobile apps which do not need any web components at all.
I see at least two big issues which make web development extremely useful for mobile apps
You could develop non native mobile app based on web technology. Using jQuery mobile or GWT (or other framework) will support platform independence for you apps. The back-draw is this application could not use all features of the mobile device (e.g. camera), and they will in general have less performance and battery/power efficiency.
I find it very natural to use cloud techniques in combination with mobile. You could use the web to save and share data. And this allows you to build application driven by mobile AND desktop (desktop is much more efficient when it comes to data input)
I would recommend to look at web technology, too.
Sooner or later, your mobile application would need to talk to a a server to do something useful - the phone is the thin-client (relatively speaking). So yes, usually, you would use a server side language (like PHP or RoR) to build some kind of API for your mobile application to talk to and be useful.
For example, since you bought up Shazaam (which is a native application): Shazaam would record a few seconds of music using and then uploads to a web service that does all the heavy lifting of sampling the recorded music and looking it up on a (what I would imagine) giant DB of music for the 'signature' of that music and sending the identified song back to the phone so it can be presented to the user. Somewhere along the way, there is server side code that does this.
I've worked at companies when mobile app development as just starting to take off (2008-09) where there were guys who only coded Java for Android/Blackberry or Objective-C for iOS and didn't know jack about what happens in the backend. For that, they talked the server-side guys who wrote JSP or python to build the APIs their native code would talk to.
There are servics Parse that would allow you do build a "backend" for your mobile application without needing worry about getting your own server or writing server side code. Useful for certain classes of applications.
I hope that all makes sense. There is definitely an overlap between web development (as in server side) and mobile development (native code on the mobile). Learn both, specialize in one if you have to.
You can start learning Mobile App Development without any prior knowledge of Web/Enterprise Application Development.
But, it would definitely make your job easier if you do have that knowledge. You need to know the basics of RESTServices (cause this is mainly how you would interact with a Server from the Mobile App), know how HTTP POST, GET, DELETE,etc work. Also experience with MySQL or SQL whill help your for using SQLite(which is basically your DB on mobile apps). Also if you have some knoledge about ORMs such as Hibernate, may also help you in your mobile app, if you have a large model, and a large data structure that you cache on your device, and it would allow you to use ORMLite(on Android for example).
Definitely all this things will help you a lot, and any other experience regarding programming standards/ design patterns/ Java/ Objective-C will make your work easier, and your developed products more reliable/stable.
Good luck.
A web app is a website (sometimes but not always aimed at a mobile device) using a different set to technologies/languages (php/perl/.net/xhtml/ccs etc) than native app development (obj c, c++, java).
Yes it's useful to have some knowledge of both, but if I was you I would concentrate on one path (one thing at once) either server/back-end/web-app/web-site building or mobile development. I worked over 10 years in a web software development environment before deciding to move to mobile app development. Now I do no web coding, I use existing web-services or work with someone else who does the web-services side of things.
It also depends what types of apps you want to build. If you want to write games for mobile devices then you don't need to learn any web stuff. Use Apple' Game Center for the leader boards etc.
Even if you want to write mobile apps that communicate with web services, I suggest writing a few apps that consume existing web-services first, so you can concentrate on building something that works without trying to learn more than one programming language at once. There are plenty of web-sites out there with web-services you can use to create your own apps.
There are options out there for writing apps using web technologies (phoneGap, titanium etc.) but I would avoid them personally.
Well, basic knowledge on web applications is very useful. After all, as you said, a mobile app is just another type of client. Knowing the principles of web communications is essential. The server side of an application is quite the same. As far as the client side is concerned, transferring your code from java to android is quite easy...!
I think it is upto how you want to build you mobile app. If your app can do something locally, then there is no need to know web programming. But if your app wants to communicate with server, or wants to use web stuff (such as rendering the HTML5 and javascript), then you'd better know web programming. Both native and web app can do the thing, but different pros and cons. There are also platforms that helps you develop the mobile app using html and js then turn it to native code such as titanium.
IMHO, the processing of mobile app should be done on server if possible. In that way, the app can do more and is more efficient. Therefore, knowing web app development will be a big plus.
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).