Super Pseudo: How to build your first app (code)?

Sourab Kumar
7 min readJun 20, 2021

Coding is mostly about the way you think and approach a problem and very little about knowing how to follow a syntax.
Remembering syntaxes are muscle memory, which you will get to learn over time with practice.

So whenever someone asks me, how to build apps? How do I get started with coding?

My straightforward answer to this is, think of a problem that is close and personal to you and build an app that would fix it? It doesn’t matter if the app exists today in the market or not. Go about building the app, find the best tech stack to learn to build that application.

In 2017, I wanted to learn Android app development. Didn’t know the ABCD of Java. I had done some moderate level C++ programming.

I picked a problem I wanted to solve: My friend had bought a DSLR and he was clicking and editing some amazing pictures, but IG wasn’t giving him much visibility. So I thought how could I (by building an app) help him?

That’s when I came up with the idea of a wallpaper app with his signature on the pictures.

Now I am going to break down how I approached building the app (and do remember this was the first app I was building).

  1. Evaluate your strengths and weaknesses.
  2. Pick a tech stack based on your strengths.
  3. Design your UI for the app (rough pencil wireframe or use software)
  4. Break the app into smaller modules (like screens)
  5. Pick the features of each module and prioritise
  6. Find resources online to build similar features (YT, blogs, stack overflow, etc)

1. Evaluate your strengths and weaknesses:

You need to know what’s your strengths and weaknesses before you begin. I didn’t know Java to build an Android app using Java. So I had to learn it.

I had two options: either learn Java and then learn Android app development or learn Java on the go while learning Android app development. I chose the latter.

Because I didn’t have the patience to do a 30–40 hrs long course on Java alone to build. But as I came from a C++ background, I had a good hold of OOPs concepts.

So I began a free course on Udacity by Google on the basics of Android app development. I had to pay for the certificate, but I really didn’t care much about it. I JUST WANTED TO BUILD THE APP!

Questions to ask:
1. What programming language to learn?
2. What programming language should i learn to build <app_you_want_to_build> app?
3. What are the best courses to learn <programming_language>?
4. Search on Youtube: ‘Live coding of <app_you_want_to_build>’

2. Pick a tech stack based on your strengths.

This is where you access your strength and evaluate what more is needed to build the complete app?

Which tech stack has minimal efforts to implement and require a low level of maintenance? (Tbh, I didn’t even know what maintenance meant at this point)

This is the point where I came across Firebase because I didn’t know anything about backend development and how to go about writing and deploying one. Firebase took care of all that by a simple SDK implementation.

So now I had finalised, Android using Java for the Frontend and Firebase for the back-end.

Questions to ask:
1. What is required to build <app_you_want_to_build>?
2. What tech stack is used to build<app_which_exists>?
3. What is the simplest way to implement <a_feature_in_your_app>?

3. Design your UI of the app (rough pencil wireframe or use software)

This is the part where it all starts turning real and personal.

You would pick a name for your app. You would already have an idea in your head how this would look. It would mostly be influenced by a lot of apps you have been using or picked few good things from here and there. Anything and everything is alright.

But it’s very fundamental to lay the founding stones either by designing rough wireframe designs or making mock-ups of the screens on software like Adobe XD or Figma for your future reference.

I personally use Adobe XD because I find it really simple and fast to use.

Questions to ask:
1. How to use <Adobe XD/Figma/or any other prototyping software>?
2. Design inspirations for <app_you_want_to_build>
3. How should i make wireframes for an app?

Source: https://careerfoundry.com/en/blog/ux-design/how-to-create-your-first-wireframe/

4. Break the app into smaller modules (like screens)

Now that you have the mockups of each screen, You will have to divide your app into some major chunks.

For eg: In the wallpaper app, I had only 3 major parts: uploading the images, showing all the images, viewing a single image and using it.

Each of the above functionality had different screens.

(Only I had the access to upload images. I had commented out the button for upload, others could view all images and use an image as wallpaper. I did this because there was no authentication in the app and another reason was I didn’t have time, so I put a hold on Firebase authentication until the next app)

5. Pick the features of each module and prioritise

Now that you have different screens with different functionality you will have to prioritise which screen to develop first.

A lot of the apps have a login and registration screen so usually, people begin with that.

But in my case, it was a common utility app for changing wallpaper. This didn’t require users to log in.

  1. My primary focus was to upload the image. I had to upload it into Firebase storage and get the URL for the image to store it in the DB of images.
  2. Then, I had to render those URLs in a view like Pinterest (a simpler one).
  3. Then, I had to help the user download the image, like it or set it as wallpaper.

6. Find resources online to build similar features (YT, blogs, stack overflow, etc)

Now that you have a priority set, you will have to learn and build one by one. It doesn’t matter how long it takes — stick to it.

You will struggle to understand a lot of things, the learning curve will be super steep, but you have all the resources in the world available at your hands. You have to ask the RIGHT questions, you will have people answering and helping you.

Watch and read different ways to implement features. It’s very important.

Some features might take lesser time than the others and some might take unexpectedly longer.

For me, Feature 1 & 3 took only 7–10 days to build. But I struggled really hard on the 2nd one. I really couldn’t wrap my head around adapters and how recyclerviews worked in Android. This part took over 1 month. I got banned on stack overflow for a week for asking stupid questions 😂

But hey, here I am today writing this blog after building half a dozen app published (which were basically my side-projects to fuel my curiosity).

This is a cycle and with experience, you will expand this and build more robust methods to build better quality products.

At this stage, it’s very important to understand what is causing the problem you’re facing. If you don’t know that then, you have 2 problems to fix.
Questions to ask:
1. what’s causing <the_problem_you’re_facing>?
2. How to fix <the_problem_you_know_the_cause_for>?
(PS: I got banned from SO for asking questions without digging into what was causing it)

In the above blog, I have added Questions to ask — These are the questions you need to Google search, search on Youtube, ask questions on community platforms like Stackoverflow and Reddit.

I didn’t attach the links to the resources like many programming blogs do because you’re unique and you’re way of learning will be unique. The course which worked for me might not work out for you and vice versa. This is the best way you can self-learn anything.

The developer's community on the Internet is very vast!! Just ask the right questions!

This is one of the simplest ways I have learnt anything till today. I break the problem down into smaller chunks, learn/solve each one of them and put the learnings/solutions back together.

That’s all folks! I hope you liked this! If you would like similar Pseudo breakdowns of products to build for beginners. Do reach out to me with your ideas, trying to turn this into a series (Super Pseudo series) where learners learn by building projects by themselves than following a monotonous 40 hrs long course online.

Thank you for reading!
You can reach me on Twitter: https://twitter.com/sourav_bz

Some glimpse of the first mobile app (wallpaper app) I built

--

--