What app should I build?

JC Smiley Jr
codeconnector
Published in
6 min readJun 3, 2019
Photo by Kaleidico on Unsplash

At a past Code Connector tech meetup, I was asked for advice from an aspiring developer on what to build. This developer had a passion building apps, but didn’t know how to start things up from scratch. How do you build a Facebook or Uber by yourself and at the beginning of your career? How many versions of to-do lists, Twitter clones, or calculators can you build? In that moment, I gave that developer a short suggestion. This article is what I would have said if I had given it more thought.

Turning passions and problems into ideas to build

Super Daddy to the rescue

Photo by Humphrey Muleba on Unsplash

First things first, look for problems or passion that you, your family, or your friends have. For example, my daughter was taking an extremely long amount of time writing practice tests in preparation for tests at school. Since she learns best by repetition, it became obvious that an app which lets her write a test once and practice as much as she wants would be beneficial. This app needed to be a web or mobile app since she is always on the go, but keeps her phone on her. With the above criteria in mind, I built an app called Index Cards. With the app help my daughter’s report card grades rose by a letter in a single semester. On top of that, the feedback from my daughter lead me to gamify the app and add new features. In the end it forced me to learn new technologies and create something that mattered. Interested in checking this project out? You can view the demo here.

Work Smarter Not Harder

Photo by Daniele Riggi on Unsplash

A great way to gain experience in software is building tools to fix repetitive tasks at in your daily workflow. As a new hire, I didn’t understand why I needed to search through several 300-page books of standard operating procedures for an answer. As a senior level employee, I found a deep desire to automate or digitize many of these process. These tasks pushed me to build a web app called Agent-pedia. This apps focus was to help new hires search for answers quicker. Basically, I digitized my company’s standard operating procedures into an app for easy accessibility. The content was formatted based on frequent asked questions or most common tasks/issues. You can view the demo here.

You have to crawl before you can walk

Screenshot of my “I Love Math” app

Always take the time to rebuild something that you have done before. It’s a great moment to flex those new skill and knowledge muscles. A personal example of this is a math practice app called I Love Math. I built it for my daughter and her younger half brother using Angular JS. Where things get interesting is where I decided to go for the rebuild. Because I was being pulled into a freelance gig with a friend I decided to give it another shot using React Native. Was it a challenge? Most definitely! Was I able to utilize new skills and knowledge while building upon those along the way? Oh yeah!

You have two ears and one mouth. Listen more than you speak.

Perhaps the simplest (and best) way to find things to build is to listen to other people talk about their problems. Someone explained to me that this is thinking about an issue from the user perspective and gathering the requirements for the project. After all, without knowing the problem you’re about to tackle, how can you expect to start let alone finish?

How to start from scratch

Failing to plan is planning to fail

A approach to building out a new project is to write a short description of your app, the purpose, and describe the users. Plan your app with one or two features that the app must have and that you can absolutely do. This is called a MVP (Minimum Viable Product).

Write out a short list of the most logical steps that must happen for the finished product to come about. For example let’s focus in on an email app. The user must start a email, enter a title, write the body, push a send button, and be alerted that the email was sent.

Now, with some planning behind you, pick a technology that you’re most comfortable with and stick to it. If you are feeling like a super coder add one additional technical feature. For example, if you know basic HTML and CSS, build a static website first and then add some basic JavaScript functionality.

A picture says a 1000 words

Lo-Fi Wireframe of my Wheel of Fortune mobile app

Draw out a lo-fi wireframe (using pencil and paper to draw a black and white rough draft) of your idea. Go crazy and draw as many versions as you want or need. This will help you brush aside the horrible ideas and lead you down better design paths.

Hi-Fi Wireframe of my Wheel of Fortune mobile app

Use a hi-fi wireframe/prototype software (like Adobe XD) to really flesh out the components of your product. Add colors, words, and mock out the functionality. The idea is to test how the app will look and behave before you build.

A closed mouth won’t get fed

Throughout the above process of building any app, do not be afraid to ask someone for their opinion of the product. You are not on an island. Use the people around you - family, friends, co-workers, Facebook, Twitter, Reddit, etc. to validate your product and get motivation.

My personal validation process is to take a my mockups (lo-fi and hi-fi), post them to social media (Slack, Discord, Twitter, LinkedIn), and/or send them to someone (mentor, dev friends, family) for their feedback. I include a super brief title and description and ask for a quick critique. “Is it something that you would use?” “Do you like the way this makes you feel?”

Run this race one step at a time

Photo by Quino Al on Unsplash

Like we walk by putting in front of the other, you’ve got to build out one feature or one unit at a time. Test and validate what you have created before continuing on to the next task. For a website just focus on building the landing page before moving on to additional pages and features. For a calculator app, develop additional features that easily within reach. This will drastically lower the chance of over-complication and failure as you progress along.

As you learn new things, adding complexity to your past projects is a great way to level up your skills.

Tools to help build faster, smarter, and more efficiently

● A great code editor is your best friend. I recommend Visual Studio Code or Brackets but there are so many to choose from.

● Using version control with a repository like GitHub or GitLab is essential.

● A fantastic hi-fi prototype software is Adobe XD.

● Trello to organize tasks from idea to completion

List of Online Resources

If you still don’t know what to build, here is a list of online articles that literally give you things to build.

https://github.com/florinpop17/app-ideas

https://github.com/tastejs/awesome-app-ideas

https://www.ideaswatch.com/startup-ideas/app#

At the end of the day, you are only going to finish a project when you have something to lose if you don’t. Find something to build that you are passionate about or someone you know needs. Plan to succeed by planning. Do not learn in a bubble but show your work.

Above all else, build build build. Build something, anything, big, small, ugly, or bad. Just have fun doing it.

--

--

JC Smiley Jr
codeconnector

Front End Developer, Tech Meetup Organizer, Gardener, and Outdoor Enthusiast