Ever heard of an appreneur? It’s that kamikaze trying to launch an idea in a marketplace where the growth rate is 25,000 apps per month (only on Google Play Store, according to appbrain.com statistics).
In such an environment, changes happen more frequently than appreneurs are comfortable with, so the only certainty to rely on is that at least their app works adequately.
They just want a decent app, what could go wrong? Right?
So they have some tech specialist (a CTO, a freelance/in-house developer, a freelance/in-house/remote development team) take the infant project and start fleshing it out towards adulthood. And when it reaches that point, the challenge is that it passes the test of maturity a.k.a. the uninstall-after-3-uses threshold.
If you’re an appreneur yourself - both with or without tech background - you’re probably well-aware of what I’ve been talking about so far. And chances are you have this in mind when you head over to pick a development option for your app project.
But if it’s your first attempt to build an app, you might welcome a brief introduction to the process and thus:
- lay the foundation for efficient communication through and through.
- save time (by avoiding unnecessary calls where the specialists justify their options).
- know how to approach your requests with the complete understanding of where the tech guys will stand.
A Bit of Terminology
Suppose you validated your app idea, did your market research and got the funds to kick it off. Now, please don’t just dive headfirst into the initial call with your software partners unless you took the time to see the bigger picture.
To navigate all this, it's wise to first get a rough idea about main development options.
Native is an equivalent for platform-specific, meaning that, in case you want to address both iOS and Android you’ll basically have a separate development process (both design and coding) for each.
If the idea seems slightly daunting, it’s good to understand that Native development equips an app with a highly reliable user experience, the advantage of push notifications, and the ability to run without an Internet connection.
Optimize a website for mobile and you have a web app which keeps the website’s design plus its core functionality.
Note that, albeit being device-independent and less demanding in terms of coding, they need a browser connection to function and are overall less intuitive.
An app that doesn’t reach its full set of functionalities unless it has Internet connection is a hybrid app.
Due to this added benefit, there’s no need to go through the app development process again (like you’d do with native development) - which makes hybrid apps a more flexible solution allowing for quicker market penetration.
The Big Ol’ Android vs. iOS
Considering what I stated above, it seems tempting for people to want their apps on both Android and iOS for maximum Return on Investment. But you know what they say - quality above quantity. Something that applies here as well because the decision to develop in Android or iOS is not limited to programming language only (Swift for iOS, Java for Android). It’s more about the device your audience is bound to use.
Then, it can also be about the budget and the human resources a client has at their disposal. When comparing the two mobile app development processes, Android’s comes across as more technical and harder to carry without the help of a dev team who really knows the ins-and-outs of the whole thing.
The actual challenge is developing for both Android and iOS, so one has to be absolutely sure they are willing to invest all the time and resources needed.
When the communication between both parties is optimal, you can even speed up the process like we did for one of our projects. We used React Native to develop for iOS first, then deployment to Android implied reusing 90% of the code we already had. Way smoother process in way less time than regular.
With a fullstack app development team, the technical possibilities are virtually endless. Mind you: this doesn’t mean you won’t hear no when the context dictates.
You kinda have to trust your team with every decision because it is them who have the overview and it is them who have to follow the best path towards delivering the app.
They’ll hold their ground even if this means you won’t get, say, the shiny, animated popup which you think will be the Holy Grail of Conversions.
Timeline and Stages
Before digging into the specifics of mobile app development process, I have to set some expectations right: depending on the architecture and the specifics of a product, a development team will need:
- 2 to 3 months - for a standalone app;
- 3 to 4 months - for an app with server support (backend + integration);
- 6 to 12 months - for a graphic-intensive app (it needs design expertise + backend online support).
Add to that some extra time put into multi-platform apps. Plus, a good heads-up is Android vs iOS: Android takes approximately 20% more time to build.
In an ideal world, the steps to completing an app would look something like:
- Idea validation
- Specs hand-off and discussion
- Creating the architecture of the application
In an ideal world, clients will have an in-detail idea of how their app will work and look like. But from our experience at least, it’s not an ideal world and more often than not they’ll ask for design changes that’ll impact the development process. When developers stop to rewrite UI or fix design issues, well…you can imagine this will affect the timing of the remaining tasks - not to mention the ability to stick to the deadline.
You may be reading tons of articles on mobile app development. Most of them talk extensively about the research phase and the importance of knowing one’s audience for best defining the solutions the app will deliver.
There’s a good reason for that: if the appreneur is not clear on the purpose of the app, this influences everything from design to UX to overall communication with the app developer.
Just an example: your app is lifestyle-oriented? This means you’ll want push notifications to keep users hooked in the so-called ‘habit loop’ (read more about this here). This alone makes for an entire set of decisions the development team will have to take.
Methodologies evolve rapidly, but the core blueprint, the modus operandi is roughly the same. And so is the core key word: ‘intuitive’.
If you’re asking yourself what the aim of our mobile dev team is, this is it: building an intuitive product that gets people from action A to action B as quickly and easily as possible. No detours. No clunky interface. No eyebrows raised.
That’s why you can’t have a fully-fledged app built in a month and this is why we need to take our time to work on the core functionalities and flow of it all.
With every app we create (note: by using React Native), we go through all the stages of mobile app development, sure, but there are 3 aspects we absolutely have to nail if we want to ensure the best-quality app we can possibly build:
- Swift performance
- Solid UI
- Strong UX.
Let me dwell on each.
Adequate performance means seamless UI interaction supported by a solid backend architecture ensuring UI responsiveness. Speaking of UI, we’re striving to make it engaging by adding animation elements and top-notch design.
As for the UX part, the goal is for it to be as intuitive as possible. Which means that, no matter how first-class the prototypes may have looked in the initial stages, they will most likely suffer some changes if the usability level is not there.
For the transition between prototyping and development to be seamless, we have the great advantage of in-house design, so the design-to-development handoff is always monitored.
After the initial discussion, we’ll analyze the specifications, then craft a development strategy together with a time and cost estimate.
We’ll then proceed to outlining a visual representation of the project (a.k.a. mockups and storyboards detailing the flow between in-app screens). This will serve as a canvas for the UI implementation.
The developers then get to kick off the work on back-end, where the API (Application Programming Interface) and server are created. These are fundamental elements to your app’s scalability and performance, so they’ll require the most significant time slot in the development timeline.
The final development sprint implies deployment in two stages:
- Deployment of the web server (API) to a production environment - servers have to be properly configured so that they’re scalable as the app grows and experiences traffic spikes.
- Deployment to app stores - apps have to be properly configured for release (the Apple app store might require some changes so as to comply to regulations - in case it’s not possible to negotiate deployment of the app in its current state).
Quality Assurance is provided until the release phase, then there’s the maintenance period which effects changes and improvements to the product, based on monitoring aspects like:
- Analytics (provided by app monitoring platforms or Google Analytics)
- Technical performance (for fixing optimization issues)
- Crashes (i.e. tracking how the functionalities of the app are performing post-launch).
Bumps on The Road
An essential ingredient to successful mobile app development process is mutual understanding.
That’s why - as per this Clutch survey - almost 70% of app development agencies ask for a discovery stage from their new clients.
We want our partners’ goals to be clear, we want to avoid stumbling blocks like major changes after an app version has already been implemented.
Still, there might be some initial back-and-forth about the tools to be used. Or unclarities regarding implementation, i.e. some functionalities will need a longer time to be introduced due to potential lack of components or due to limitations implied by the framework the project is run on.
Also, what may seem like minor adjustments (say, in design) can imply much more time and effort than an untrained eye can perceive.
Ideally, this kind of aspects is brought up during the initial calls, when the dev team explains the documentation for architecture and functionalities. So if your dev team does not provide in-depth knowledge on all technologies to be used with the project, you have all the right in the world to ask them for it. As stated previously, it’s a mutual benefit.
Summing It up
The thing with app development is - as you were able to get an idea in this article - dozens of decisions are taken along the way, and each one of them will impact the outcome.
So that’s why an app:
- Takes a rather long time to build.
- Is a costly process.
- Is not straightforward if the initial specifications suffer alterations.
Plus, app development technology is anything but stationary. So you need your software partners to be trustworthy, firm, and genuinely interested in your app’s success. In over a decade of web and app development, we strived to be this kind of collaborators - and if we take our clients' word for it, we succeeded.
If you want to learn more about our process, if you want to validate your idea, or if you need our app development expertise, we’re waiting for your message here. Who knows, you might just be the next success story.