In part four of our series, we’ll go over the big questions like whether to build a native or hybrid app, what dev frameworks to use, and how to evaluate your development talent options.
How To Bring a Killer App Idea Into Reality: This six-part series is designed to give a basic roadmap on how to get your app into the hands of the people whose lives you want to improve. Whether you just have an app idea floating in your head, or a team of coders ready to go, you’ve come to the right spot.
Building Your App Overview
Thus far in the process you’ve accomplished several major steps:
- Validating your problem through market research
- Deciding that a mobile app is the right solution for your users
- Planning the features you need for your MVP
- Prototype testing with target users to validate your solution
What still remains to be done, of course, is the most important step of all: building the app itself. Taking your app from idea to execution requires a firm understanding of the logistics involved, even before you write a single line of code.
For one thing, you’ll need to decide which mobile devices your app will run on, and which tools, languages, and SDK’s you’ll use to develop it. This may be relatively simple if you’re using a mobile app development platform, but if not it may be a complex hierarchy involving dozens of technologies.
Three Key Questions on Building Your App: What, Who, How?
1. What kind of app will I build?
2. Who will create my app?
3. How will I develop my app?
Key Question 1) What Kind of App Will I Build?
There are two big questions to ask when you’re deciding the type of app you’re going to build.
The first is, do you want to build a native, hybrid, or web app?
The second is, where will your data be coming from?
Let’s look at the first question: The jury is still out when it comes to deciding between native and hybrid mobile apps. Right now, the most that can be said is that both options have their benefits and their tradeoffs. Some of the most important factors include:
Time and Cost
If you want to build your app from scratch and take it to market as soon as possible using web based technologies, then a hybrid app is a viable option. Building a native mobile app from scratch, doing everything from designing the user interface to testing and backend integration, can easily be a project of a few months or more depending on the app’s complexity.
In this case, native apps are the clear winner because they are tailor-made to fit the device and platform they’re running on. This means they can benefit from better performance and graphics and can access all of the device’s hardware native functionalities such as geolocation and push notifications. Hybrid apps typically use a “write once, run anywhere” approach, which is convenient but up until recently could be quite limiting in terms of what they can achieve functionally.
If you decide to go with a native app; you’ll need to choose whether you’ll develop for iOS, Android, or both (and maybe Windows Phone and BlackBerry too, lol jk). Developing for iOS natively will mean apps are written in Swift using Xcode. Android apps are typically written in Java or Kotlin using Android Studio.
Cross-platform IDEs like Xamarin allow you to build a single code base in the C# programming language and then compile it for deployment on different mobile operating systems. Cross-platform frameworks like Flutter require programming in Dart, but provide developers a very portable UI toolkit for building “beautiful, natively-compiled applications” for iOS, Android, web and desktop. More on these frameworks below.
Looking into backend data sources, which is essential to any data-driven app, can be overwhelming, but there are resources available to simplify the process. Experienced developers are more often turning to combining a REST API (application programming interface) and microservices / serverless approach for building mobile backends, using tools like AWS Mobile Hub and Serverless.
For those who have never worked with data before, the terminology around databases and APIs are another concept of software development to get comfortable with. Put simply, it’s likely your app will rely on pulling data from either your own database, or third-party services like Google, Facebook, or WordPress. Your app will also likely post data back to the database or backend of its own, through forms, user emails and passwords, file uploads, etc.
If you have little to no experience working with data, check out products like Backendless, Bubble or Firebase, which are intended to reduce the difficulty of building and managing a backend database for web and mobile apps.
Want to know more about data and mobile apps? Check out these blog and documentation articles.
Key Question 2) Who Will Create My App?
If you’re already a mobile development virtuoso, then just open up an IDE (Integrated Development Environment) like Xcode or Android Studio and get cracking. In most cases though, you’ll need a little assistance along the way.
DIY: Do (Build) it Yourself
One serious option out there today is to build it all yourself, even if you are not a programmer (yet). There are tons of online courses and bootcamps that can teach you to code, if that’s the direction you want to go. That said, there are also no-code products out there that enable non-developers to build sophisticated software (we should know, we built one.)
We’ll list more of your no-code options below in the “How to build” section, but just be sure to consider the potential timelines for learning a new tool, the technical limitations it has and the overall effort it’ll take to build it yourself, no matter what method you choose. DIY can be very satisfying and budget-friendly, but also can be the most challenging choice as it requires a good deal of learning, potential sacrifices, and certainly is a big time investment.
If you have the budget for it, hiring in-house developers is a strong option. Developers on your payroll understand your organization better, are more invested in the project’s success, and can be involved in support, maintenance, and development of new features after the app is released. Building a team of all these methods will require significant time and likely the highest capital investment unless you can find a team willing to work for equity. That said, building a core team of technical people to bring your app to life will most likely be a great long-term investment.
Hiring freelance developers has two advantages: potential cost savings over hiring in house (particularly overseas) and expertise. Outsourcing can help you temporarily bring expert developers on board for the project without having to retain them and pay a full-time salary after the project is complete.
One thing to be aware of is, as with many things, you get what you pay for here. If you opt for the absolute lowest cost provider, you may find the quality and results to be, well, appropriate for the price. In our experience, it’s better to pay for it to be done right up front, rather than to, very likely, be forced to pay even more to get it fixed later on.
Key Question 3) How Will I Develop My App?
You have options! Whether you opt to hire a team, outsource, or DIY, there are a range of effective ways for your mobile app get built.
As we mention above, building your app natively using Xcode (Swift) or Android Studio (Java or Kotlin) is a great way to build a powerful and complex mobile app. For the most part, if you can imagine it, and figure out (or hire someone who knows) how to code it, then you can probably make it happen in your app. This means there will be few limits on the functionality and features you can include in your app, as long as you have the time and expertise.
The obvious challenge is that unless you’re coming in with strong coding skills, or have hired the best, building natively can take time. Especially if a lot of learning and research is required along the way, which it probably will be.
Another reality of native development is that the building and maintenance of the apps has to be done completely separately. This means as you build, and later update, your iOS or Android apps, there are going to be two separate code bases that require what will seem like duplicate work.
These apps are then generally compiled or run using libraries that allow for one single code-base to be “cross-platform”, meaning the app can be run on iOS and Android devices as well as in a web browser. Be careful however, as some hybrid apps in the past have been known to suffer from performance and functionality issues, especially when connectivity is an issue.
That said, the web technology powering these frameworks is improving quickly and new platforms are emerging that have resolved many of the previous issues. Flutter is one framework that we’re very excited about and have been using internally for client projects.
A few popular cross-platform frameworks include:
Visual Development Platforms
Visual development platforms allow you to build mobile apps yourself within simple drag-and-drop interfaces. Dropsource, for example, allows you to create truly native mobile apps, offer easy integration with external REST APIs, efficient browsing testing, or on your device, and it provides access to truly native source code (Swift/Java).
Visual platforms are great for the non-developer looking to drag-and-drop their way to a mobile app. Visual platforms do have limitations, and can at times require custom code in order to accomplish complex or custom functionality. Make sure to research whether the visual platform you’re exploring can enable the core functionality your app requires, as getting half-way there only to discover a critical feature isn’t possible can be a real bummer.
A few popular visual development platforms include:
Most organizations have moved away from the waterfall software development life cycle model, in which development proceeds sequentially because of its longer development timescales and offers little to no opportunities for critical user feedback along the way.
Many organizations now favor more flexible and iterative approaches such as Agile or Lean process. The benefits of Agile/Lean development include a better product quality, reduced risk; and faster ROI.
In most cases, it’s beneficial to use an iterative or ‘“feedback loop” approach during the development stage, just as you did with your market research and prototyping phase. This will ensure that you find issues early on in the process, as well as helping you to understand and anticipate the needs of your key stakeholders and target users.
Whatever method you choose for your development process, whether it’s coding from scratch yourself, using a visual platform, hiring internally or outsourcing, we hope this information was useful. Our next entry in this series Part Five: “3,2,1… Wait!” Why It’s Better To Beta Test Before Launch will examine and answer the following questions:
- How do I beta test my app?
- Why should I beta test my app?
- How do I launch my app?
Having trouble getting your big idea off the ground? Let us help you with the heavy lifting!
The Dropsource team of mobile app experts is here to help you strategize, design, and build powerful mobile apps that delight. Get in touch with us for a free consultation to see how we can help bring your killer app idea to life.