So You Want to Build an App?
People are often asking me, a seasoned app developer what it takes to make an app these days and the answer is not always simple. First it totally depends on what type of app you want to build such as:
Simple: One programmer in a bedroom
Flappy Birds type game, or app that performs one or two simple functions such as unit conversion.
Medium: One or two programmers/designers, one platform
More ambitious with a fair amount of functionality but mostly limited to in-app and not relying on a large back-end service.
Complex: Team effort with a database, API and two platforms (iOS/Android)
Ambitious requiring smart, scalable architecture, backend services for database and API’s, push notifications, and well-designed
Of course, there are many shades between these but generally the cost tracks the complexity and scope/ambition of the app.
Let me make an example of an app used to replicate or expand the functionality of a Movie Rating/blog website called Peachy Picks.
The data model is the foundational information your app will act upon and it’s usually a relational database where things like User Profiles, Movies, Ratings, Threads, Blogs, etc. each become a database table with various properties such as name, id, location, title, date released and much more. Designing a good database is not trivial and not just anybody can do it. You have to understand how everything relates and will be used. This is where you start because without a clear data model you can’t really get off the ground.
API (Applications Programming Interface)
This is software that runs on a web service that receives requests and talks to the database and then replies to the app with the requested data. The individual parts of the API are often referred to as Endpoints. For example one endpoint might be auth and it’s only purpose is to authenticate users so you know who they are and can serve them data tailored to them or that belongs to them. Another might be movie_listing that serves up the current list of movies based on today’s date. This could also involve pictures or video clips which are served as private URL’s where the resource resides. The API should be platform-independent and work identically for iOS or Android apps making requests.
Any app that will be dynamically serving up content such as pictures or videos will need a place to store this content. It is common in smaller scale operations to use a website that you own or in a larger enterprise to rent space (and/or services) from Amazon or Microsoft which is usually priced very competitively.
Security, Privacy and Legal Considerations
Of paramount importance is to make sure your app and developers use the latest best practices in data security. This means the API web services the app uses must connect with https protocol and not plain http (testing is ok). It also means that any of your users’ sensitive information such as passwords must be encrypted before storing in your database. Never store passwords as plain text! Passkeys are soon going to replace passwords so ask your developer if they will support Passkeys.
Apple also requires you to provide a function in your app for users to be able to delete their account so make sure this is covered If you have an account based app in mind.
Design and UX
Then you’ll need to have a pretty clear idea of how you want your app to look and function. This usually results in an iterative design process where mockups are created and various assets such as icons and graphic details, colors, etc. are decided upon. This will eventually become a blueprint for the developer to follow. If it’s based on an existing website, then the job is a bit simpler because a lot of the thinking and basic design has already been done.
In the case of Apple, they have very specific Human Interface Guidelines (HIG) that they recommend so make sure your app mostly conforms to these which are largely expected by most users such as reacting properly to Dark Mode and standard icons for common functions and good use of clear space around buttons and such and much more.
UX Designers must keep in mind they are not designing for one screen but many, such as small phones, big phones and tablets, and now even desktops that can all run the same app. This is including portrait and landscape rotation so design elements can naturally reflow. Good developers understand this well, sometimes referred to as Auto Layout.
Not all programmers are created equal and some are beginners (cheaper) and some are experienced pros (more expensive). Like anything, you get what you pay for and saving money up front might come back and cost you later. There are lots of highly qualified app development services around the world and outsourcing is a normal thing but you always want to have one lead developer in your inner team who can monitor and check and manage the remote work. Any developer worth their salt will do Code Management where all changes versions are tracked. Make sure they are using something like BitBucket of GitHub to manage their source code.
Timelines and Roadmaps
Don’t start your app until you have a clear idea of how long it will take. If it’s a 1.0 release of something like a movie rating app it should take a two to four months or so depending on “feature creep” (the tendency to add more features as you think of them) and developer availability (some devs are juggling a lot of projects). Also, have ideas ready for future releases and don’t try to put it all into your first release. Try to use discipline for your acceptance of a 1.0 release that is good but not perfect and not everything you want. Just make sure it does what it does well and provides a useful service.
If you already have a well-built website that uses a database and an API, your apps should be able to use the same services, hopefully with minimal modifications. If you have a “dumb” website that doesn’t use a database then you are in for a longer haul because apps can’t work that way.
Releasing an app is only the beginning. Expect ongoing maintenance, new features and keeping up with operating systems over the long term. So make sure you work with developers who can ensure a long-term engagement with occasional maintenance and updates.
Right up front, make sure that you have full rights to the source code produced for you. This is usually the case but get it in writing. Indeed, make sure you have someone local or trusted who can inspect the source code for quality and compliance. Also, by having the source code, you are free to find other developers to maintain the app going forward. Also, make sure to have a non-compete if you outsource so the developer can’t make their own version of your app and market it elsewhere or to competitors.
Once an app is created, then you need to get users so that’s up to you how much you want to spend or which methods you want to use to promote it. It starts by creating compelling copy and keywords and screen shot previews in the App Store.
I can’t really go into it any better than this article: App Dev Costs
Basically, expect it to cost no less that $40–50,000 and likely more.
In addition, you will need to create a Developer Account with Apple and/or Google which starts at $99/yr.
Many apps are basically the same type such as apps that offer menus for ordering or some type of chat. For these cookie cutter type apps there are developers that can offer you a customized version of a sort of template they own and since this is a lot easier than building from scratch can be way more affordable. End users won’t likely know or care it was from a template since it will have your identity.
Do It Yourself
App creation is not usually rocket science, though it certainly can be. If you have some basic programming skills or perhaps have a friend or relative willing to help, you may find it more satisfying to work slower and learn-as-you go to build your own. There are many example apps and source codes and huge resources such as Stack Overflow, Google and YouTube to learn anything or solve any problem in programming.
Trade for Equity
If you are low on cash but have an awesome idea and can convince a developer it is worthwhile, sometimes you can barter coding for equity or stock or perhaps barter other services or products. I know someone who bartered programming for a couple of paintings while working with a famous artist and it was quite worth his while.
Having an app may or may not be worth it. It’s certainly more prestigious to have one and depending on your target audience it could even be crucial to long-term success and lead to creating a more robust community for your services. Only you can make that determination. You can start with iOS or Android and then if it seems to be popular create the other one after. There are Cross-platform Frameworks such as Xamarin that are used to develop for both iOS and Android at the same time using the same code and some simpler listing/page navigation type apps are more suited to that but there are limitations to this approach too.
No matter what, if you do dive in, make sure to learn the basics I have mentioned above so you are a more informed consumer/client and you will have a more productive relationship with your chosen developer(s).