A checklist for defining your mobile application architecture
Many mobile projects are agile, and we start application development without having an architecture strategy in place. Given the wide range of technology available in the mobile space and the rapidly evolving nature of a mobile enterprise, it is important to go through a process to define the application architecture blueprint.
In this post, I will discuss the key components and benefits of mobile application architecture. This will give you a checklist of items that you can use to define a strategy before you start your mobile app development.
Key components of a mobile application architecture
- Device. First, you need to decide on the devices you’d like to run your app on. This decision really depends on the device market in your geography. The majority of my mobile enterprise clients focus on one or two of the most popular devices to launch their first mobile applications.
- Operating system. My mobile enterprise clients typically support the most current OS version along with the previous release. If you want to support even older OS versions than the previous release, you really need to evaluate if the additional cost of development and, especially, testing is worth the extra coverage.
- Form factor. Some apps are just better fits for a tablet than a smartphone. Very few of my customers started their mobile journey by building two sets of unique designs for both the tablet and the smartphone. All your application development project activities—including design, build and testing—will be better served if you focus on one.
- App versus website. Developing apps is typically more complex than making a website, as it requires deployment to a user device using an app store and access to your enterprise data over the public network. Many businesses are fine with simply having a website, while others want to take full advantage of device capabilities to offer a more personalized experience to the user by developing apps. If you go for apps, be sure to make your app task-oriented and don’t try to put all your web features on one app.
- Native versus hybrid apps. This is the hottest debate for most mobile application development projects right now. The answer depends on your business needs; thus I recommend a strategic analysis process to make this decision. In a future blog post, I will go through a sample technique you can use to decide between native and hybrid technologies. I have developed this decision framework with some of my fellow IBM Interactive Experience consultants and refined it over the years through many mobile strategy engagements with our clients.
- Omni-channel versus mobile websites. If you have decided to create a mobile website, you should look for the opportunity to create an omni-channel experience by creating a device-agnostic website. Using responsive design techniques, your website can tailor the user experience based on the device capabilities and you can support desktop, tablet and smartphone browsers from a single code base. However, oftentimes you will not be able to redevelop your desktop website for various constraints and may have to create a standalone mobile site.
Tools and frameworks
- Native tools.If you are making an app, regardless of native or hybrid, you will have to set up and use many of the native tools that are required for each mobile platform. So be sure to check the developer guidelines for each of your target mobile platforms.
- Development platforms.To simplify mobile development, a variety of solution platforms have emerged over the past few years with the goal to generate and maintain cross-platform applications using a single code base. For example, you can use the MobileFirst Foundation mobile application development platform that helps you efficiently develop, run and manage HTML5, hybrid and native applications. If you are supporting a wide range of devices, form factors and OS platforms, then you should consider using a mature mobile application development platform.
A robust architecture is not just for the current release; it will help you build a long-term mobile foundation. There are many other architectural decisions you will have to make around integration, testing and hosting for your mobile solution. In this post, I focused on the key components of the mobile application architecture that will serve as a guideline to the application development team.