For at least the last decade, organizations have been looking to leverage mobile devices such as smartphones, tablets and, more recently, wearables to open up new markets, make employees more efficient and give their customers more control over their experiences. Building a mobile application is not a simple endeavor; however, and it’s very easy to go about entering this new realm without asking the right questions first.
One of those main questions is whether to go with native or hybrid development and in my experience, the failure to adequately look into this is a major fault of early project development. In this overview, we'll show how to work through these decisions on what type of mobile application to create and point out a few helpful tips for developing your first mobile application. With this knowledge, you will be more prepared to take your mobile application initiative from idea to reality.
In the mobile application world, we commonly look at developing an application as the idea of putting our brand into the Apple App Store for iOS devices or the Google Play Store for Android devices, but there is also one other way to attract mobile users, and that is through a responsive web application. When looking into getting an application in front of mobile users, one must consider all three main possibilities: a native mobile application, a hybrid mobile application or a responsive web application.
Native mobile applications
A native mobile application is able to take advantage of all of the most up-to-date features that the developers of the mobile operating system (such as Android or iOS) have made available. These applications are available from each platform’s respective application store and can benefit from unique capabilities not available to the other types of mobile apps.
At this time, Android native applications are commonly written in Java or Kotlin and use the Android SDK or Software Development Kit, while iOS native applications are written in Objective-C or Swift and use the iOS SDK. User experiences are tailored for the specific operating systems using recommendations from Google and Apple respectively, and specific software development skills using the above languages are needed.
- Most access to device features.
- User experience is highly modifiable to suit your needs.
- Very mature development communities with a myriad of 3rd party libraries.
- Experts in this technology can be difficult to recruit and retain.
Hybrid mobile applications
Ever since there have been multiple devices to run code on, there have been efforts to develop a way to write code once and have it run on anything. (As an aside, during research for this article, I found out “write-once, run anywhere” was actually a 1995 slogan for the Java programming language). Mobile applications are no different, and very early on there have been efforts to create these hybrid mobile frameworks that can build an application to run on any popular mobile device.
These applications can benefit from a lot of the same features and functionality available to native mobile apps but may lag behind in new features as the hybrid tech catches up with the newest iterations of the Android and iOS SDKs. They are also available for download from the respective application stores. User experience can be tailored to each device but typically will follow one design paradigm (such as Material design), and the development skills necessary are dependent on the hybrid technology used, but they are generally easy to pick up by most veteran software developers.
- Fairly extensive access to device features or you can usually assist in open source projects to integrate device features with varying levels of difficulty.
- Build once, run everywhere.
- User experience is still fairly modifiable, depending on the hybrid framework choice.
- Easy to learn.
- Very young/relatively smaller development communities than native. It can be difficult to find help when bugs in the libraries are encountered.
- Relatively less performant than native.
- Can be considered risky, as hybrid is usually not technology that has stood the test of time, and may have bugs, security holes and other unpredictable elements.
Responsive web applications
Quite simply put, a responsive web app is just a website that a user will access through their mobile device’s web browser. Additional development effort is done to ensure that the website looks good on multiple mobile device sizes, as well as higher resolution monitors for your PC or Mac.
- Build once, run everywhere.
- You may already have a website that serves the purpose of the mobile idea you have but just needs a bit of a redesign.
- Development skills are relatively common among software engineers.
- It may be difficult to redesign an existing web property, and so it may require greenfield development, thus increasing costs.
- Limited access to device features – but more may become available in the future.
- No app-store presence, which could be a missed marketing opportunity.
Questions to ask yourself
Deciding which mobile application development direction you would like to pursue is not simple, but there are some simple questions to ask yourself early on to help narrow down your choices.
Q1. Do you wish to be early adopters of any new functionality in future mobile product releases?
A native application will be the way you want to go. When Apple Pay initially came out, it was only available to native iOS apps. When wearables were first released, the only integrations with them were through native development SDKs.
Q2. Does your product need to be identical across popular mobile devices?
In this case, you will probably want to create a responsive web application, as even a hybrid solution may have platform-dependent design paradigms already built in to make applications more familiar to users of that device.
Q3. Do you have a development team with specific skills that limit them to a specific technology?
For example, you may already have some ReactJS talent and could quickly cross-train them to get comfortable developing a React Native application, which is a common hybrid mobile app development framework. Your development team will be able to help direct you more towards what they would be most comfortable working with.
As always, business funding limitations, schedules, marketing, legal and a myriad of other things may also affect your decisions. Commonly, a large organization wanting to put a mobile application together will also create their own custom Mobile Center of Excellence to ensure the highest chance of success.
This effort can take a long time depending on which types of concerns will need to be tackled by the organization. A simple implementation of a mobile center of excellence will commonly include some of the following:
- Selection of project management tools and methodologies.
- Creation of common guidelines for mobile application development within this organization (e.g. selection of supported languages and SDKs, test strategies, continuous integration and continuous delivery standard tools, etc.).
- Processes for approvals of anything from third party libraries and licensing, purchasing development equipment, user experience concerns, localization, vendor management, updating dependencies, etc.
- Communication channels between different parts of the organization that may need to collaborate, especially common when there are legacy backend systems that will be integrated with.
It is completely reasonable and even encouraged to figure this out with an initial low-risk application, where experimentation and innovation will be the norm to find the truly best fit for your organization. Some will want a lot of controls on their decision-making processes, and some will not. It all depends on what makes sense for you. Through this discovery, you may even determine which type of mobile app will be most beneficial for you to prioritize next!
Overall, the world of mobile application development is still very exciting. It is a great chance to modernize your appeal to customers around the world and equip your workforce with a wide range of tools where imagination is the only limit. The choice of whether to develop a hybrid, responsive web or native application can be daunting, but now you know where to get started.
Far too many organizations have wasted time and money duplicating their web offerings into a sub-par hybrid or native mobile application, where it would have just made more sense to update their web offerings with a responsive user experience. As with most things, the flip side is also true, and sometimes a truly great app idea is hindered by the limitations of being delivered as a responsive web app or misses the opportunity to use future technology due to being stuck on an old version of a hybrid framework.
The choice comes down to what you are offering your users and whether it will be possible and efficient for you to achieve with your choice. Once you make it, it’s a hard choice to change, so spend some time thinking about it and doing your own additional research as well.