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 have this idea that I want to build. I want to start the idea as a web-app, then move into mobile-app and possible desktop application.

The project should have databases (mostly strings). Also users would have accounts and access to these databases. So the project provides access to the user-resources through the Internet. I want the database easily accessible through different platforms. The project is also to sharpen my IT, so I don't want the easy road, but the better one.

  • What are my best options of frameworks/skills?
  • Good tools to manage the project?
  • Is starting as a web-app a good choice, or should I build it as a mobile-app first?

I have some knowledge (but not a lot of experience) in:

C, C++, Java, PHP, Javascript, MySQL, HTML/CSS.

Edit: I know that my question is too general, all I wanted is some ideas and guiding to have a good start.

@Nathan Taylor, regarding the web-app, I don't mind any option (should I learn Python, or stick with php in this regard)?

I'll probably implement the project in Android, and possibly iPhone.

share|improve this question
Before asking for technology recommendations, perhaps you could outline some general requirements. Are there any languages or platforms you have a specific interest in using over others or any unique demands the application(s) must meet? There are many ways to cook a fish, after all. – Nathan Taylor Nov 10 '10 at 17:49
up vote 2 down vote accepted

The shared part of your code will be the server-side component. I assume you will be building a set of web services, e.g. SOAP services. The various front-ends will all communicate with this same services API. It's very important to think long and hard about what API will be able to cater to all the target platforms and devices. Think about the different user expectations between a desktop and a mobile app, and what this means for the underlying API.

Don't bother trying to use the same client-side code for the different target platforms (mobile, web, desktop). You'll never get a solid user experience that way. For the various front-ends, it's probably best to focus on a single technology stack that can stretch to all the platforms you want to aim for. Otherwise you're going to drown in the amount of things to learn. Picking the web stack is a safe choice, because you can adapt it to mobile devices and to desktop devices with various solutions (e.g. Adobe Air, Sencha Touch, ...). If you absolutely have to you can pick up objective c for writing native iphone apps later.

If it were me, I would use the following technology choices:

  • Server-side: PHP or node.js
  • Client-side (web): Ext JS
  • Client-side (mobile): Sencha Touch
  • Client-side (desktop): Adobe Air

I'm not saying those are the best choices for you. They would just be the best choices for me.

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.