It’s time to get you started on your first mobile app but where do you start? There are a lot of technical decisions to make and a ton of technology options to choose from. One thing that is common among people taking their first steps into the world of mobile application is that they want to develop their product at a reasonable cost. So limiting cost is the criteria I am using to propose a mobile development plan.
Start With a Web App
What I usually propose to clients is to start with a web app and then move to native apps from there. Using estimations based on our statistics on web and mobile development I have come up with the following outline.
- All solutions (web, iOS, and Android) should use the same code base.
- The web app you start with should act like most classical web applications, with most of the logic implemented on the backend (using Python DJango, Symfony, etc.)
- The web app will use a templating engine on the backend
- The web app should use a responsive theme based on Bootstrap or some Google Material Design implementation
- The web app will be encapsulated into native apps using WebView
Below you can find a comparison of time estimates between platforms where the iOS development phase is equal to 1 unit of effort (or cost):
- iOS : 1 unit
- Android: 1.3 – 1.4 units
- React.Native for Web, iOS and Android: 1.6 – 1.7 units
- Web application + encapsulation with WebView: regular web application development 0.5-1 unit plus 5 to 15 days for encapsulation and integration of native services (like push notifications, geolocation) for iOS and Android.
Final Things to Consider
By taking this path you will have one single code base for your web, iOS, and Android apps. This means less coding, less testing, and cheaper maintenance. It also means that when you fix bugs and add features you will not have to update the apps on the app stores.
You should also think about:
- Purging your screens: make simple and focused screens with no accessories. Divide content into several screens if necessary
- Limiting the number of object types displayed on the screen at the same time
- Limiting data volume (no endless lists)
- Re-testing your app when the new iOS and Android versions are ready
- Collect statistics about the usage of your application, integrate an analytics tool (this makes it easier to optimize your apps later)
- Spending some time to design a Great UI, it really makes a difference
I am not claiming to have the perfect recipe for everyone, but this is a good starting point for a discussion. Please share your thoughts or contact me if you have a project proposal, or you can ask for a quotation. You can also peruse our price catalog if you are interested in outsourcing your mobile development project.
Take a look at some of our past mobile development projects: