How to go from idea to beta mobile app in 3 months
This was written assuming you already tested your idea with various MVPs, have done your research and know what essential features your audience needs. This does not include App Store or Play Store review requirements, which may take more time.
There is no specific recipe to deploy something in 3 months, but these are the steps that have worked for me and my co-founder. We’re both technical, but if you’re non-technical, don’t get discouraged… it may take longer but it will make things easier once you grasp how the tech works. I became technical 1.5 years ago and I’m still not 100% aware that I am, so you can do it too!
Design checklist (2 weeks) :
- Make sure your idea is clearly designed in your head and on scrap paper
- Get Adobe XD or whatever other software
3. Don’t go crazy on designs, no need to make things from scratch. Don’t think about animations.
4. Take screenshots of various apps and the views that make sense for your idea. Keep it lean and essential
5. Take notes of margins, various alignments, fonts, sizes and define some standard layouts so that your design looks consistent
6. If you have repeating items, like buttons that have the same color, make them components so that you can re-use them every time
7. Make sure the pages and components in Adobe XD have specific names and make sure they’re not untitled (you’ll need their names later on)
8. What actions are the users doing in each page? Define “user does X” or “user does Y” in each page or button.
9. Show your prototype with your audience and get feedback. Focus on 10 people who you consider early adopters and trust them with your heart.
10. Make fixes from feedback (again, I assume you already are pretty confident that people are interested in your concept)
Front-end (2 months):
We use Angular and Ionic to build things fast. There may be easier/faster way out there but this is what worked for us.
- Remember those repeatable items in Adobe XD? Alright, now make them Ionic components in Angular. Ionic has already predefined components, so no need to remake the wheel.
- Remember all those pages in Adobe XD? Alright, now make them pages in Angular
- Call components and pages in Angular with the same names defined in Adobe XD, so that you don’t get confused
- Remember those actions you defined in Adobe XD? Now make them API requests
- If you use Camera, Push Notifications, Social Login, you’ll have to check that you’re using the right native components.
- If the app will have a login, you’ll have to spend a good amount of time understanding authentication and how it will work in the front-end
- Really dive in front-end and get all those ideas built
- For faster deployment use Ionic Appflow. Every time you’ll do a Git push to your repository you can create a web preview of your app online. You can start showing this to your users.
Backend (2 months in parallel with front-end)
We use Laravel and it’s working great so far!
- You really have to make sure your concept will not change drastically.
- Define your database, primary keys, foreign keys.
- Implement the right authentication system based on your framework. In our case, it’s called Laravel Passport.
- Build your APIs in the backend, define what’s gonna happen in each API.
- Make sure the front-end is satisfying your backend API requests.
- If your front-end is not ready yet, just use Postman to test your APIs.
- Start an AWS EC2 server so that you can host your backend in the cloud.
- For faster deployment, we’re using Laravel Forge. It takes 10 mins to link it to your Gitlab account and to integrate it with your AWS server.
Make it native (2 weeks)
Ionic and Angular use Capacitor to deploy to XCode. With couple commands you can easily export your app to XCode and then handle the mobile simulation. Things to consider:
- Xcode has couple steps to learn. Understand the flow with development and distribution.
2. Decide whether you want to use Firebase App Distribution (no approval needed) or TestFlight (takes about 1 hour to get approved)
3. Distribute to users right away
4. Prioritize authentication issues (login, token, etc). This could eat most of the time
5. Do not worry about bugs, if you’re distributing to early adopters first, they’ll definitely understand.