How I built an app from scratch | Part 1

petertill
4 min readMar 17, 2023

Lately, I’ve been totally immersed in Android app development. In addition to being able to do something useful, it is a very good source of passive income.

As I promised in one of my previous posts, I will now show you how to create a mobile application from the design table to uploading. Since I’ve struggled a lot with discovering a good development flow, I thought I’d help you too with this great series of posts.

1. The idea

Nothing can be made without an idea. Without an idea, we just build in nothing, hoping that somehow the application will just come together. First of all, we have to figure out the theme of the application.

The goal of the whole thing is to make a unique app. You don’t have to invent a completely new thing in this case, it’s enough to realize that your app can do more than other applications within the same genre. When creating an app, the target audience must be defined as narrowly as possible and the app should be developed accordingly. I will not go into market research and such, but simply how an application is made from design to scaling. If you are interested in tips on how to start a SaaS (Software as a Service) business, let me know in the comments or subscribe to the newsletter to be notified when I post.

Well, back to our topic, for the sake of simplicity, I’m going to make an income and expense tracking app. I know there are a lot of such apps, but I miss a lot of things. For example, it is not possible to connect to a bank, or if possible, even then for a fee, and it would be nice if everything was synchronized and available either from the mobile application or from the browser. I am sure that if I implement this, a lot of people would still use it despite the competition. 🚀

2. Planning the functions

Even before writing or designing the app, there should be a list of what functions the app should have. These functions should be prioritized and the main functions will be implemented first during development. Our app list looks like this:

  • Multiple currencies support
  • Login/signup system
  • Data synchronization
  • Add income and expenses (using categories)
  • Edit categories
  • Recurring expenses
  • Finance tipps/quotes

At the very beginning of the development, you should rather focus on including the basic functions and later you can add more functions. This is called MVP (Minimum Viable Product) or MLP (Minimum Lovable Product). If you want to add all the features while still in the development phase, then either your app will never get past the beta version, or no one will use that army of useless features. Rather, focus on creating a minimal app that people can use. You can expand it later based on feedback.

3. Design plan, onboarding

Now comes the phase when we create the first visual designs for the application, create a color palette and get creative. You don’t have to think about anything serious here, it’s simply about the location of the buttons and other elements, as well as the color scheme of the application. I personally use the Figma website for UI/UX design, where you can easily design prototype elements similar to the ones in the real development environment and position them so that the application looks good on devices of all sizes. I first started by choosing the main colors and fonts for the application. After that, I designed the onboarding screens.

The color palette of the application (not final)
The onboarding/signup design

Compared to the fact that I’m not good at design, I think it turned out quite well 🤓

4. Choosing tech stack

The stage has now arrived when it is necessary to decide on which platform we want to develop the application, and which technology we use during the development and scaling of the app. Obviously, the simplest solution would be the native Flutter or React application, but on the one hand, I’m not very familiar with native things, and such applications are not the best in terms of performance. So I decided to leave iOS out of the party and write the application for a separate web and a separate Android environment. Obviously, the web is not interesting now, because now we are only dealing with the mobile application. Then, since we would be building an Android app, the simplest choice would be Android Studio (Java). In terms of database and analytics, I choose Google Firebase because it can be added to the application with the push of a button and all useful things are on one platform.

That’s it for now! In the next part, we will start the development!

If you are interested in similar blog posts and don’t want to miss any of them, follow me and subscribe to email notifications about new content.

Happy Coding!

--

--

petertill

I'm Peter Till, a student software engineer. I usually spend my time with creating projects in PHP, Java, C# and Python. I follow back everyone