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!
Related
I need some directions and advice. :)
I have a project for a mobile app in mind (look below), but am confused about all the different programming languages, frameworks and so. Confused about what to focus on.
Also, I'm not sure if I should focus on a solution specifically for this project or just try to get good at developing mobile apps in general?
I have learned the basics of JavaScript and Swift. Have never tried working with a framework.
The app has to be able to do the following:
Store user data (strings and numbers)
Show various graphs and stats based on the user data
Look like a native iOS/Android app (e.g. like iTunes and App Store with the menu at the bottom)
Send push messages to the user
Ideally work for both iOS and Android
I’m of course looking for as easy and fast a solution as possible, but more important is that the solution looks and works like a quality app.
So, which solutions would be best for the project above? And what about developing apps in general? (or does it vary from app to app?)
This is a very basic question, and I would suggest getting familiar with iOS/ Android development in general before making your own app.
There are tons of great tutorials out there on how to do both, I would suggest getting started with either one based on what equipment you have available and what you're familiar with.
If you want to make an app that runs on both platforms you could make it in HTML5, but I'd suggest making a native iOS app in either Obj-C or Swift, and a native Android app in Java.
I am working on a project requirement.the project will be a ASP.Net Web application.
Database will be Microsoft SQL Server.this ASP.Net Web application will contain all the business logic and functionalities.
I have another requirement that all the functionalities in that web application should be accessible through mobile(IOS/Android) devices.
I hope we can do this in 2 ways.
1.Develop that web application with Responsive UI Design that supports all IOS/Android mobile devices.
2.Develop the web application business logic functionalities as .Net WebServices.Then Develop Separate Android/IOS applications to communicate with .Net Web Services and provide Better user interaction in Mobile.
Which way is the best way? Is there any other ways to accomplish this task?
among above two ways,How hard to make it possible / which is the hardest way?
Please somebody give a good solution.
Thanks
It depends on how "native" the app should be. Is it ok for the client to open a browser to visit the app? Or maybe it's enough to use phone gap to "emulate" a native app. From the actual point of view it`s hard to say what solution would fullfill the requirements. However, developing a native app arises a new maintenance channel. If you develop a reponsive web app it will be the only app that needs to be maintained. With every additional app you create (android, IOS and maybe Windows) you will create an additional app that needs to be maintained and to be tested, rolled out etc. Just keep that in mind while designing the architecture.
I think you should go with responsive web application.
Because as your are developing a new application then if you go with responsive then will save you time and the version problems which users face with **Android/IOS** will not occur with you.
Although you can provide full functionality to user with responsive. If you develop mobile application then it has some limits.
I am involved in developing application for mobile sensors, data from these sensors is to be collected using Android/iOS mobile apps. We want the end users to be able to view this data from desktops also. This data is uploaded to be uploaded to our own database(s) from the mobile apps. I have done this development of the prototypes using native applications (iOS/Android) and implemented web services using Django 1.6 with SQL database. This was just for prototype.
We are at stage where we really need to make this into real product with paying customers, so we are in position to revisit our technology stack question. So I am looking for suggestions.
Currently I am thinking of using Play Framework on the server side. I really haven't seen anything compelling that can provide Native app like feel so we will have to keep developing mobile apps using native libraries. We will interface with our web services using REST API. My concern with Play framework is it doesn't seem to have lot of plugins similar to django, but its early days hoping that situation will improve.
Is this right approach we are very small team ( 4 people, we can hire 2 more probably). Given this is this right technology path I am choosing anything I should be looking at?
I have looked at Parse library but doesn't seem to offer too much data flexibility, geared towards more social media aspects.
We will be using StromPath for user management, any other choices I should be looking at for user management?
We really don't want to do a lot of MVC programming on client side, so on desktop app we will keep it simple jQuery/Javascript & html
-Sam
With jQuery mobile you can assure the look and feel like in a native app. The library it self does media queries and stretch or shrink the content accordingly. So in terms of UI you will not face any problem providing native app like look and feel to the users. For client/server communication I recommend normal ajax functionality so you can dynamically add content.
When working with JQM there are certain rules that you will have to obey.
How does one approach building the mobile app version of one's Rails app, with little to no mobile development experience? iOS, Android, one or the other, or both.
First, you might want to create (private) APIs for services your web app provides. The de facto standard for Android apps is REST-like endpoints that accept/return JSON. You can use whatever Ruby REST framework works best. Then you need to consider how you would authenticate Android apps, if needed. Do you use the same authentication database? Can you allow anonymous access, what parts of the app do you expose, etc.
Finally, you need to build the frontend. A few options here:
learn Android
hire someone to do it
use a framework that lets you develop using Web(-like) technologies: Thitanium, Rhodes, etc. The upside is that you get to use what you know and might also get an iOS app for free.
The downside is that you can never get the native performance, and look-and-feel might not be completely Android-like (never used Rhodes, so maybe it does this well enough, but still)
Consider using http://www.rhomobile.com/.
I'm considering developing apps for Android and Windows Phone 7 that allow the user to read content from an online producer (newspaper/magazine/blogs etc). This provider has a REST API that should allow for straightforward access to the content. A few questions I have:
I saw an OData demo, where getting data from a feed was super easy, with no parsing of any sort required. Is it worth building an OData provider on top of the publication's existing API, just to make it easier for the mobile apps to get data?
I have heard that C++ can be used on wp7 and Android. Is there any reason to develop an app core in C++, then interact with the device APIs in C#/Java? Or is the core logic layer of the app so thin that it's not worth the hassle? It seems like there's really not that much to developing a publication reader app - basically just a GUI on top of an API that provides all the data.
Or, would it make more sense to just develop a mobile version of this publication's web site? Then there could be one service for all mobile platforms. What are the pros and cons of an app that runs on the device as opposed to a website specially built for mobile devices? (Like the Gmail, Google Docs, and GTalk "apps" for the iPhone.)
Thanks.
C++ is not a development language for Windows Phone 7. There are two development platforms for WP7: Silverlight and XNA. There is no possibility of interop with a C++ module.
As far as I know, C++ cannot currently be used to develop WP7 applications. I would check on that before you try to go too far down a cross-compatibility road.
That said, the UI between WP7 and the iPhone is really, really different - the backend code is so small in comparison to well-written UI later, I'd just write two separate apps. It may seem like a time savings but either your app is going to look like it does not belong to one platform or the other, or you'll be spending more time trying to keep the compatible stuff working OK on two platforms.