Developing a Mobile App?

The proliferation of mobile applications in all areas of our lives, may leave some of us thinking that they must be easy to develop.  To some extent, this is true; the reality is that advances in mobile software tool chains and improvements made at the mobile platform level, along with cross-platform frameworks have made mobile application development much simpler than it once was.  Nevertheless, to make a successful mobile application still takes quite a bit of effort and there are many details to keep in mind, or risk the project never seen the light of day or the app store.

Below are some guidelines to follow when considering a mobile application development project.

Requirements and Target Audience

Identify who you are trying to reach out to and the overall objective of your app. This exercise answers the questions:

  • Who will use this app?
  • What will they do with it?
  • What problem does it solve?

The requirements phase is so important as it will help define how the app will be used, the features it will provide the users, and will help clarify what is required by the app vs. what is optional, or perhaps a future offering.

Many projects suffer from “feature creep” or basically the addition of more features as the project progresses which tends to translate into added development stress, budget overruns and sometimes apps that never get published.  This is typically due to not spending enough time thinking about the “MVP”, or the Minimum Viable Product.  The MVP is the set of minimum features the application needs to have in order for it to be useful in the market.  While having an MVP does not necessarily stop feature creep, having solid requirements for an MVP will help keep the feature creep to a minimum and keep the team focused on getting the application published.

Once you have your functional requirements, you can start working on your UI design and wireframes.  This would be the best time to engage with a professional Software Development firm to take your idea from paper to reality.

Make it friendly and easy to use

It is no secret that a user will come back to apps that are easy to use.  That means that the app behaves in the way the user expects them to; basically the way all their other apps do.  Things to consider here are navigation, buttons, login rules, terms and conditions, notifications, etc..

When choosing a team to implement your app, you want to look for teams that understand best practices for iOS and Android user experience and design.  These teams will be sensitive to UI elements that may make the app seem off or not quite right to users.

To get this native experience, clients often ask for native implementation, meaning developing the iOS on Objective-C/Swift and the Android app in Java/Kotlin.  The drawback with this approach is that the app is developed twice, there are two code bases to maintain and often times you need two teams to do it since many developers are experienced on one or the other.  

An attempt to reduce the overhead of two separate implementations is to use any number of WebApps frameworks or basically an app that is basically showing a page that is being served from a web server.  Because the app is mostly on the server, these apps are generally quicker to implement, but they are limited in what they can provide the user and they tend to be significantly slower than native apps.

Consider Cross-Platform Development

True Cross-Platform development is another option available to clients.  This is where the same codebase can be used to implement a native app on both iOS and Android.  One such Cross-Platform framework is Xamarin (Microsoft). Xamarin, for example, allows developers to use C# to develop the application and have it compiled for both iOS and Android.  The resulting applications will run natively on each platform.

This approach saves clients a lot of time and cuts down on costs since both applications are developed in parallel.  The effort isn’t the same as only developing it once, since each platform may require some special considerations during development and testing, but in general, it should be less than twice the effort.

Knowing Which Devices Will Support the App

When developing a mobile app, it is essential to know what platforms you want your app to run on and what specific devices that are supported by these platforms.  It is noble to want the app to be supported in all iOS devices and all Android devices; however, that may add additional effort to the schedule that may not be worth the investment.  This is of particular significance when considering Android devices since they are so many and so different from one another. You will want to consider your user base and initially target those devices most use within that base. 

Something else to consider is that older phones may not provide support for some features your app requires, and in that case, you will want the app to recognize this and either notify the user during installation/launch or perhaps refuse to install.

Partner with experienced mobile developers

Users have certain expectations when it comes to apps; they demand apps that are easily downloaded, work properly and offer seamless User experiences (UX).   Getting your app to the store can be a very satisfying experience and for certain businesses, it can be a critical component of their operation/service. When hiring a developer or a firm, look for those that good references and track record and will be able to help maintain and continue to enhance the app after launch.  Such a firm will help navigate through these and other hurdles along the way, ensuring that your app gets to the App store and to your customers.