I’ve seen - for quite a while now - this idea on the internet that making apps is an exceptionally difficult task. Videos such as “Apps: Everything You Didn’t Know You Needed to Know” make it seem as if developing an app was an extraordinary mission, but it really isn’t, it is in fact quite easy * , and I’m here to prove it.

* Making a really succesfull app that serves millions of users every day may really be a titanic task, but I’m talking about a not-that-complex, useful app.

Esentially, far from a calculator but not even close to a Twitter.

Get an idea

Really important part. Usually you wanna fix a problem or create a new one.

My idea: Help international students, such as myself, to visit other students from my college that are abroad and arrange trips together.

Get your own, it can be whatever.

Mock up the idea

Literally just daydream about what the concept could be, stretch it and contract it as much as you want, no one is watching. After you’ve dreamt a bit about what this idea could be, select the ABSOLUTELY necessary parts to make it work. I generally do 3. This procedure probably has a fancy technical name, but that doesn’t matter, make it simple. Just think: if your app was a building, which features would be the pillars. You need good pillars.

My Apps’ 3 absolutely necessary parts:

  • Make a map that shows the people
  • Make a multi person trip organizer (so that if some people want to visit a country others can join them)
  • Make a simple contact system with all the necessary information (if you have an apartment maybe you could host someone on the couch!)

Now just draw how this would be displayed on the app:

paper-1

Then just think ok, what other screens do I need? It’s important to think in terms of screens, specially at the beginning.

For example, I probably need a Log In Page, a Register Page and so on. Check your apps on your phone for inspiration! Draw them as well:

paper-2

Nice, you’ve now got a decent wireframe. You can make it as complex as you want, but usually it’s not worth it, just focus on the really, really important parts and get to work.

Design the idea

You’ve got

  • your plan (concept),
  • the MUSTs (pillars),
  • an OK wireframe (screens),

now its time to design the thing.

You might be asking yourself “ok, how? I know nothing about design” Doesn’t matter, do you know rectangles? Do you have more than 1 app installed on your phone? If you do, you’re good to go!

First we need software, install Adobe XD if you can (it’s free if you’re in university). If not, that’s fine, guess what? Someone took 7 years out of their life to code Photoshop on the web for free. Yeah. Photopea. Also, Figma is basically Adobe XD but better? Figma

— If you know nothing about Adobe XD go on Youtube for a while, there are tons of really good tutorials, it’s very intuitive. —

Here’s a quick User Interface breakdown: Everything is a rectangle. Just use that over and over again, maybe sprinkle a circle somewhere around.

You really don’t need a super expensive designer to make something look decent. Google some free use illustrations to use as placeholders (or keep them, as long as they’re explicitly free for comercial use you are fine) and just square things up.

Look at mine:

design

They’re literally, in order, a red circle with the word “logo”, some nice looking text (Poppins font), a random figure I did with the pen as background (you can ignore it, it’s not that important), a good looking illustration and finally some text inside rectangles, except this time the corners are smooth. Rectangles with sprinkled circles and some text on top, real easy.

If you need inspiration just google some deisgn ideas or look at the apps on your phone.

Design the MUSTs you defined and inked on the step before.

Here are mine (3 simple screens):

design-2

If you don’t know where to get the icons or anything else, simply google them.

Reflection on time

I thought really hard about the app for maybe a week, designed it in an afternoon and wrote this on the night. What I’m trying to say is that this process is really not that hard once you know what I’ve detailed before (creativity and a bit of deisgn). Note that every single step COULD take a veeery long time, but we don’t concern ourselves with that. I am not necessarily a designer, I make the app look good and move on.

Most projects are sacrificed on the name of perfeccionism, so don’t bother with it a lot, I’ve learnt this the hard way. Of course make it as well as you can, but a super simplified running app is 69 times better than a perfectly thought out never to be realized app.

Don’t get stuck making a super optimized design for an app that doesn’t exist.

Code it up

Now this is the “hard” part, if you know nothing about apps then you better make some time to learn this stuff up, but I assure you, it’s really not that difficult.

Here’s quick rundown:

  • You can make either an Android app or an iOS app. Either will make you lose half the market, so the correct answer most likely is to choose both. What? Yeah, you can code once and run them both. It has its disadvantages, but it’s not that bad, especially if you’re just starting.
  • Now you have to choose between Flutter, React Native and the thousand other libraries and tools. My advice? Just learn React, its painfully simple, it will take you a couple weeks max (from knowing absolutely nothing) and afterwards you’ll be able to make web pages and other fun stuff as well.

Ok, this is basically how an app works:

  • Frontend -> What the user looks at, all the pretty stuff -> Learn HTML, CSS, JS and React (should take a week each at most)
  • Backend -> What the user doesn’t look at, the “database and algorithms” -> Since you already know JS from above, learn ExpressJS (maybe a week as well) OR if you’re too cool for it, just don’t learn anything and use a premade backend such as Firebase, Supabase, Parse (a couple of days to learn, I swear).

So if you really wanted, from knowing absolutely nothing, you could learn everything in a solid month. That’s really good.

For frontend there are a ton of tutorials on Youtube. I’ve taken a couple (e.g. Code With Mosh). If that’s not your thing just read the docs, copy paste code and stare at it until you know what it does (copy pasting is great as long as you know what you’re looking at).

This is the hardest part, but honestly HTML and CSS are so easy and tedious it makes a man want to lock himself up in the oven to reheat the brain. JS is comparatively harder, but not by a lot. And React is (literally) just HTML + JS, so basically nothing new, I know people that learn it in hours.

Now, getting decent at any of these is relatively complicated, knowing the “best pratices” takes time and is mostly practice over pratice. But hey, you can build your first app with the worst code ever, learn from it and keep going. It really doesn’t matter as long as you go on learning, for example, I built my first app some 4 years ago in probably the worst way I could, it was really bad, and now I’m able to code them up decently in an afternoon (it’s mostly battling pixels, copying your design to code, so once you get the hang of it you’re set).

For the backend, if you know nothing, simply learn a pre made backend. I believe it is better to build your own (I use Django), but then again there is no reason to make it harder for yourself. Use a pre made backend, learn from it, and eventually get to learning a custom one. This ain’t school, you don’t have to learn every single subject to build something good.

Here are some screenshots from my app:

codeSS-1 codeSS-2 codeSS-3

This is the end of the first part, as shown, building an app is definitely not a hard task, it just takes time as mostly everything meaningful in life