Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am planning to create a web solution for the desktop, I would be dividing my task into three steps

  1. Design
  2. Coding
  3. Automated use case

I am wondering if in the future I have to port my web solution as mobile phone native application. How would I do that? Will I go back again to the design phase to redesign or will I just recode some of the already written stuff meant to be for the desktop?

share|improve this question
The answer to the question depends quite a bit on your design and coding phases. Specifically if your design separates your display mechanism from your logic, then you'd only have to create new display logic for the mobile version. If you mix the two together then you'll end up writing new logic code, no matter what. Also, if there are additional capabilities on the mobile or web side, that may change your design. – Joshua Drake Apr 9 '12 at 14:31
This question is very broad. It would be easy to give you broad, vague pointers, but a lot of the most helpful information would depend on knowing more about the application and your design approach. One thing I can say for certain, though, is that if you plan on having a desktop UI and a mobile UI, separate the underlying interaction with data from the UI as much as possible from the start. – asfallows Apr 9 '12 at 15:05
Easiest way to get portability is to write a code generator. It can have two separate backends creating two completely different user interfaces from the same description. – tp1 Apr 12 '12 at 16:21
up vote 2 down vote accepted

I don't think there is a "safe" way to design your web application to be easily converted to a native mobile application. You can look at solutions like Appcelerator's Titanium and PhoneGap that allow you to build native mobile applications through common web technologies (HTML, JS, CSS). Probably not exactly what you want, but you may get some valuable tips on how to structure your application to be a little bit easier to convert when the time comes.

As one of the comments mentions, the simplest thing you could do right now is approach your design in a way that cleanly separates the user interface from the interaction with the data. A common way to do that for web applications is to build a REST API and have your interface interact only with that. This way, when time comes to move to mobile, you only need to build a mobile interface that will interact with the already existing API to get access to your data, so half your work will already be done.

Hope that helps ;)

share|improve this answer

As for your GUI, Microsoft Silverlight offer a functionality that allows you to do this. However, Silverlight has limitations in that it does not run on all devices. See MS SL Compatibility Tab on This Page. Alternatively, you may want to use some of the new tools such as Telerik Kendo UI that utilizes JavaScript on the GUI. As for the future, HTML-5 and JavaScript may be the winner platform so Kendo may be a safer choice (Other choices exist of course).

As for the back end, if you use the advice from @Roc Martí you should be OK.

When designing the interface, it is kind of difficult to ignore the differences between a 19-inch monitor and a mobile's monitor and its orientation change feature, so I guess some attention is required for the GUI, however, that totally depends on your application of course.

As for the steps you mentioned, I find that they are not in line with any of the methodologies I am aware of. For example, there is no Planning or Analysis or Requirements determination. Also, there is no Deployment/Production activities listed. So, be careful.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.