6 Things Developers Forget When Building a Mobile App
Many businesses realize they could benefit greatly by having a mobile app. They heard their neighbor had one, so why shouldn’t they? But, in their rush to get caught up with the Jones Soda next door, they likely forgot several key points to consider before building an app.
This list is meant to help prepare businesses for their mobile app development projects, but can also help developers set their bosses’ and clients’ expectations. Let’s begin.
1. Your website will not automatically integrate with your app
Most organizations realize that they need to create a holistic approach to mobile development. This means that their mobile apps should enhance their existing online offering. For example, if you have a website with customer accounts, that same account information should be shared with the mobile app. It is important to realize that depending on how your database and server-side code is written, this could be a sizable project in itself.
Many methods of development, such as Classic ASP.NET and many php sites, have a tight coupling between their client-side and server-side code. This means it could be very difficult, or impossible, to decouple the server-side code into a usable API for your app.
It is crucial that your app integrates with your web services, but just remember to include this effort in your project estimations.
2. You are not in control of your own destiny
Unlike the web, which is a much more open environment, mobile platforms have gate keepers. Apple is particularly stringent when considering apps for admittance into its hallowed app store. They often take up to two weeks to review each app deployment (initial and updates). They review each in-app product and will reject you if you do not follow their requirements exactly. These requirements include having several images for each screen size supported, complete descriptions of your app that contain various legal clauses, as well as providing several external support web pages. Even after having published dozens of apps, we often have to alter or amend our app store listing in response to Apple’s review. As long as you monitor your progress and their feedback closely, this is not a big deal since you are not sent to the back of the line each time Apple rejects something about your listing. You can simply make the change and resume the process.
Once you are in the app stores, Google and Apple will both take a cut of your profits. Depending on your products and services, you might be able to partially or fully avoid these cuts. However, it is crucial that you understand how these cuts will affect your app’s monetization and plan your financial projections accordingly.
Finally, please make sure you create your Apple and Google developer and publisher accounts well before it is time to deploy your app. If there are any issues in this process, you will have to wait for Apple or Google to work with you to resolve them. This has taken up to a week in our experiences.
3. Apps run on thousands of devices
Web developers LOVE to complain about supporting older browsers. But even in the worst case, they are supporting a dozen or so version and browser combinations. Moreover, issues of older browsers are fairly well defined, thanks to sites like caniuse.com. Android apps can typically run on thousands of devices and the physical specifications and operating systems can vary significantly. It is not uncommon to find StackOverflow threads where developers are looking for help addressing an issue that only appears on a single device and OS combination. You would be amazed at how different two Android phones can be!
This means developers and project owners need to be prepared to test their apps on various devices, platforms, and OS versions. It also means being prepared to make decisions on what bugs get addressed based on the number of customers using the affected versions.
4. Apps require much more testing than websites
The fact that there are thousands of phone/OS combinations is just one reason that apps require significantly more testing then websites. When a website has an issue, you simply fix the code, deploy an update, and the bug is dead. For mobile apps, you often can’t (or at least don’t want to) force your users to upgrade their apps. This means that once you publish a few versions of your app, you will be supporting a fragmented customer base. To support this, you will likely need to begin versioning your APIs. This essentially means you will be hosting one version of your server-side code for every version of your app. If you want to be extra careful, you might consider testing every version of your app whenever you update your API.
Many businesses either do not realize this complication exists or significantly underestimate the time and complexities involved in testing each version of their apps.
5. There are many ways to build your app
Many project owners don’t ask enough questions before beginning development. There are so many approaches to mobile development now that it makes deciding which path to take very difficult. Between native, cross-platform (Xamarin, React Native, etc.), and hybrid (Cordova, Ionic, etc.), it can be overwhelming. Some project owners might not think to ask how their app is being developed or might not understand the benefits and limitations of each approach. Many projects begin down one path only to later realize they made a fundamental mistake and have to basically start over. Others elect to go with a native approach (almost always the most expensive), when they would have been just fine with one of the cheaper approaches.
The methodology chosen can affect your app in the following ways:
- Cost. Native involves writing code specific to each targeted platform, whereas hybrid and cross-platform increase the amount of code that is shared. Therefore, Native is often the most expensive approach. However, sometimes businesses learn too late that they should have gone native from the beginning, which is even more costly.
- Performance. Native will typically have the best performance, but with some smart decisions and effort the other two approaches can get quite close.
- Testability. Each approach has its own set of challenges when it comes to testing. The important thing to remember is to test on all platforms extensively, regardless of the approach taken.
- Feature viability. Going with a hybrid approach can limit the sort of features your app can contain. Native and in almost all cases cross-platform, do not have this concern.
If you are working with an outside development shop, I highly recommend you find one that offers all of the above approaches. If you are building it internally, make sure your staff considers all options, rather than just going with what they already know. It is crucial that you take your time and make a thoughtful decision regarding your app development approach.
6. Marketing an app is hard
Each day, there are over 1,000 apps published to app stores. It is foolish to think that you can simply release your app and get thousands of downloads; you need to market your app for it to succeed.
Here are some common marketing approaches that can lead to more downloads:
- Leverage existing customers through email and online campaigns
- Reach out to app reviewers and industry leaders
- Online advertising through other apps or through programmatic advertising
- Offline advertising at trade shows or relevant events
- Encourage social sharing of the app or app content
Most companies realize this, but it is important to know that simply publishing an app does not mean you will instantly get downloads. You need to thoughtfully and aggressively promote your app.
Please do not let this article deter you from creating a mobile app. Apps can make a huge difference for your business and are becoming increasingly more important each day. Just keep in mind that, as with any development project, there is often more work and time needed than one might initially think.
Author bio: Paul Francis is a Developer Advocate at The BHW Group, where he designs and develops custom native, cross-platform, and hybrid mobile apps for their clients. He frequently writes about mobile development, technology, and business-related topics.