I work for a development consulting company that was founded in 2005. Up until 2011 or so, we worked exclusively on websites and web-based applications. Since then, we have aggressively transitioned to a web and mobile app development company. Over that time, we have nearly doubled in size, our client-base has become increasingly diverse, and today mobile apps make up almost 70% of our recent portfolio.
This is a logical, and often necessary, transition that many developers and development companies have made over the past few years. Some are adapting exceptionally well, whereas others are having to lower their rates/salaries and are finding that their services are not in as high of demand as they once were. In this article, I will discuss how we made this transition and provide insight into how other web developers and web development companies can adapt to an increasingly mobile world.
Web Development in Support of Mobile Apps
Many (if not almost all) mobile apps interact with an API. Any experienced web developer should already be quite familiar with this sort of development. In this role, developers will be designing databases, accepting data from a 3rd-party, performing some application logic, ensuring data validation, processing any server-side transactions (such as search), and returning the requested data to the app. There is not much difference between being a back-end developer for a web application or a mobile app. Sometimes the back-end is even the same code base.
However, these differences are worth noting, and understanding them will make your transition much smoother. The first thing to remember is that unlike web apps, which can be updated basically as-needed, mobile apps can take weeks to update. Additionally, mobile app users can elect to not update their applications. This means your API will have to support multiple versions of the app. There are many solutions to this problem (versioning your API, over the air updates, minimum supported app versions, etc.), but it is important to design your API with this in mind. Another big difference is authentication. Many websites are moving away from cookies in favor of a token-based approach. This transition is very important for mobile apps, where the token approach is typically the best way to go.
Here are a few more things to keep in mind before writing your first mobile app API:
- Remember users can have multiple devices and try not to build logic that assumes a one-user-one-device relationship.
- Remember that mobile devices might have moderately slower network conditions and design your response objects accordingly.
- Remember to always test API updates against all supported app versions.
There are many other things to consider and other small ways in which your development approach will change, but the thing to remember is that the fundamentals are the same. Just because your resume has ten web apps and no mobile apps listed, does not mean the 11th can’t be a phone or tablet app.
Web Technology for Mobile Apps
If you are less of a back-end developer or you simply like working on every aspect of a project, there are other ways in which you can put your web development skills to work on a mobile app. There are several frameworks that enable developers to use web technologies (HTML, CSS, and Javascript) to build mobile applications. These apps are typically called hybrid apps and are typically written using Cordova, Phone Gap, Ionic, or some other framework.
Not only are these apps written in a familiar language, but they also have the added benefit of being cross-platform. If you are a web developer or a web development company, this is something that you can highly leverage when competing for a project. Rather than having to build an iOS app and an Android app separately, you can share code between both platforms. This will likely make your bid highly competitive. It is important to note the nature of this shared code, and hybrid apps, in general, do have some drawbacks. Ultimately, it is important that you understand that hybrid apps are a great solution for some projects and that you capitalize on those opportunities.
If the drawbacks of hybrid apps scare you away from that approach, another technology to consider is React Native. React Native is maintained by a team at Facebook and is very similar to their extremely popular React framework. If you are familiar with that framework, or other client-side Javascript frameworks like AngularJS, you should definitely consider React Native. It has the cross-platform benefits of hybrid apps, but actually runs natively.
Additionally, the UI/UX can be shared or platform-specific, as needed. So, your app does not feel poorly ported. Despite it being newer on the scene, it has already proven to be a powerful tool. Over the past two years, we have released a number of apps using this approach, and it has become our method of choice for any new projects.
Whether you decide to take the hybrid, React Native, or some other approach (Xamarin, NativeScript, etc.), it is important to know that there are ways to repurpose your existing expertise. If you want to learn Java, Objective-C, and/or Swift, go ahead! But, if you don’t, then you don’t have to. In many ways you can be at an advantage by taking one of these cross-platform approaches.
More Specialized Web Development
This final section is meant to be a bit of a sanity check. Right now everyone is crazy about apps, and with good reason. There are lots of people making tons of money on apps. But, that does not mean that every company in the world needs a mobile app. In many ways, having a mobile-first or fully-responsive website is much more important. Every company having an app might be a fad, but mobile devices definitely are not. If you, as a web developer or web development company, choose to not pursue mobile apps, you will very likely have to be building mobile websites.
Not only should you be building websites, but with the advent and growth of things like Wix and Squarespace, you need to be building increasingly specialized web applications, rather than simple websites. Companies and individuals love using these website building platforms, and that is not going to change. They don’t want to have to contact their developer every time they want to change some copy or add an image. They want to do it themselves. They don’t want to pay you thousands of dollars to build something for them that they can build in an evening. That does not mean that your services are not valuable and that you could not build them something better, it just goes to show that you are fighting an uphill battle.
It is important that any web developer or web development company sets themselves apart from these services and avoids being commoditized. Here are some ways in which you can do this:
- Focus on more complex web apps, rather than simple brochure sites.
- Work on sites within a particular problem set that have not been commoditized. This can include sites that need to be particularly performant or provide a highly customized user experience.
- Offer accompanying services, such as search engine optimization (SEO) that are in high demand, but is best completed in alignment with a site’s development.
- Assist companies in migrating from their existing site to a newer solution. This is a particular skill because of the data-migration and URL-structuring concerns that need to be handled properly.
The final point here is that just because mobile app developers and mobile app development companies can be highly profitable, does not mean a strictly web development company can’t flourish. It’s just as important to understand the changing environments and respond purposefully.
Conclusion
Having recently gone through the transition from being a web development company to being much more of a mobile app development company, I promise that it can be a worthwhile transition. If you are unsure about making the move, consider starting with a small hybrid app or simply take an existing web app and wrapping it with Cordova. You don’t have to start out by hiring a whole new team or taking several mobile development courses. Both of those things might make sense in the long run, but definitely consider some of the intermediary options available to you.
Finally, please don’t forget the best practices and skills you acquired from working on websites. This is still software development and a solid foundational understanding of programming constructs is vital to your success. A developer with a stronger foundation is almost always more valuable than someone with more experience using a particular technology.
Related Topics
Top