Things I Wish I Knew Before Building My First App

in programming •  6 years ago 

Have you ever said: "I've got this idea for an app…"? Maybe you've even approached one of your friends that's "good with computers" and pitched it to them. Or better yet, you've Googled around to see what it would take to build it yourself. Even if you were put off by code, jargon, or the million or so acronyms, then CONGRATULATIONS! You've already taken your first step towards turning your idea into an app!

I've spoken and worked with many self-taught developers (I'm one myself) and it's extraordinarily common to have a difficult time getting over the hump that separates mere mortals from mere mortals that also have an app. Pretty much every developer will tell you that the secret to crossing that threshold is…

"There is no secret!"

In this brief article, I hope to illuminate some strategies on how to set yourself up for success, set realistic expectations, and how to follow through from the first steps to maintaining and updating your app. There's nothing in here specific to any one type of app or platform, they're general guidelines that I've put into practice and can be a roadmap for new and future developers.

So you've got an idea. Now what?

Your idea is the largest factor in whether or not you're ultimately successful in carrying through to the finish line. As you embark on your project, be sure to spend a decent amount of time refining and planning what exactly you're going to make. There's a lot going on at this stage, so I'll unpack this for you in steps:

Are you committed?…like really committed?

The most important thing at this stage is to choose an idea that you find personally interesting and compelling. Find something that you have an vested interest in. Perhaps there's a task in your day-to-day that could be streamlined. Or maybe theres an app that you use that you think you can improve. Whatever it is, if you're not one-hundred and ten percent into your idea, you are going to be far less likely to be successful. On the other hand, if you come up with something that you would personally use on a regular basis, you'll probably put in the extra effort it takes to get to the end.

Build a "paper app"

Now that you have an idea your excited about, pull out a pencil and some paper and start sketching your app. Imagine you're opening the app for the first time. What is the first thing you see? Sketch what you see on the screen (nobody will be judging your sketching skills!). Then mentally go through everything you can do in the app and sketch each screen. Index cards are really great for this because you can easily sort, add, and remove as your ideas evolve.

Simplify!

Ok, so you have a good idea. Great! Now lets look a little closer at what it'll take to build it. A good idea will be one that will challenge you to build, but not be so large and daunting that you get frustrated and give up. The biggest mistake I see people making is biting off more than they can chew. You might have an idea for building a new social network or an expansive 3d game, but dial it back a bit (or a lot) and remember that you're going to be learning a lot even tackling the least complex of apps. Identify what your app does at its core and focus your energy on building only that. We call this stripped down version a "Minimum Viable Product" (MVP) which performs the basic functionality but without the bells and whistles that you might have imagined in your ideation process. Grab a pencil and jot down a list with two columns labeled "MVP" and "Future". Under "MVP," write things that your app must have to provide basic functionality. Under "Future," write things that would improve the app experience but aren't technically necessary. Be absolutely ruthless and only add the most necessary things to the MVP and put off everything else for later.

Focus

Now that your have your list does your MVP seem a little basic? Good! Even the simplest app is going to take a lot of work, so the smaller it is at the start, the better off you'll be in the long run. Don't get distracted by thinking that what you're building is too simple because it's probably not. Pretend you're a racehorse, put on blinders and resist the urge to add features. Don't worry, you'll have a chance to put them in later.

Code

There are so many ways to learn how to code. Figure out which way works best for you, but I think no matter your style, find someone who knows more than you and ask them if they'll mentor you. I'm not suggesting that you hand over your files when you get stuck so they can write it for you. Rather work something out that is good for both of you. Like meet once a week for an hour where you can ask specific questions and get advice. Don't be worried about looking dumb, everyone has been where you are now! Just keep in mind, that the you're going to feel the biggest sense of accomplishment when you figure something out on your own, so keep trying and ask for help when things just don't seem to be working out.

The Long Haul

Building an app is a lot of work doing things that aren't super fun. But here's a trick I've used:

Work on your app👏every👏single👏day👏

Even if the task is small, just make sure you do at least one a day. You'll likely end up doing more than that, but even if it's just the minimum some days, at least you'll have consistent progress. This is the most important piece of advice I can impart on anyone who wants to build or get good at anything.

The Last 10%

There is common wisdom that says the first 90% takes 10% of the work and the last 10% takes 90% of the work. This is absolutely true. As you approach the end of your project you're going to have to deal with a lot of dumb stuff like bug fixing, accounting for edge cases, app store prep, build options, etc. etc. Keep your eyes on the prize and just keep on doing at least one thing per day and you'll get there. Better yet, sit down one weekend, put your phone on do not disturb, and knock it out!

Publish

Put it on the App Store ASAP! Dont' worry about it being too simple, or not pretty enough (have you seen the apps already on the app store, it can't be any worse!). Do it now!

Celebrate!

Take some time off and pat yourself on the back for making it through to the other side! Not many do. Share the app over your social networks and get feedback from friends and family. A little self promotion never hurt anyone :)

Update It

Now that you have v1.0 out the door, what's next? As users use your app, you may get feature requests or notice bugs. Fix those bugs and figure out which features you want to build next. Add a bell or whistle, but do one at a time and keep your updates manageable in size. Or maybe you're on to the next thing?

Go Forth

Each one of these sections could be an entire post by themselves. There is so much that goes into app design and development that it's difficult to encapsulate it into a short post. Just keep persisting, do something every day, and you will be successful.


Each one of these short sections could be an entire post, so which ones are you most interested in? If you're an experienced developer, do you have your own tips that I left out? If you're just starting out, do you have any questions? Let me know in the comments!


Joseph Bergen is a Staff Software Engineer at BuzzFeed and has helped launch a bunch of iOS apps, React JS apps, and one defunct Mac app. Follow me @jbergen for more content like this and the occasional tutorial

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Well written and totally reflects my personal experience. Would love to see your advices for every section, would be a cool series! 😎✌️

Congratulations @jbergen! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @jbergen! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!