In my interactions with customers trying to mobilize their enterprise applications and their workforce, especially the ones starting on this journey, one of the common thread that I come across is focus on client apps. Of course , UI/UX is a critical part of the project but its just a tip of the iceberg. There is a lot more that is happening behind the scenes. As with any other application development project, there are so many other parts of the projects like the business layer, common services layer, data access layer or what is commonly referred to as MBaaS(mobile-backend-as-a-service) in the mobility jargon, source-code version control, build process, security, scalability etc.
Building an enterprise mobile app is arguably the easiest part of the mobile project. You are spoilt for choice in terms of tools and technology options that are available ranging from building native iOS, Android, Windows apps to hyrbid apps using frameworks like Apache Cordova, Xamarin and Appcelerator to pure HTML5 apps where there are new frameworks popping up by the day, AngularJS, Ionic, Backbone and React being few of them. At the same time, resource availability for these skills is not that big an issue as well. The only thing to watch out for is a platform that gives you the flexibility to develop the client apps using any of these toolkits. After a lot of debate about web vs hybrid vs native apps, the industry has come to accept the fact that there is no one-size-fits-all.
Building the client app only constitutes about 10% of the cost over the entire life-cycle of the mobile project.
Some of the things to consider while building a mobile project:
- Integration with Back-end systems – How to easily connect to backend enterprise applications in a reusable manner. Mature organisations may have an API Management layer so exposing these APIs may not be a big challenge. But for the majority of the organisations still using using legacy systems, integrating these applications to the mobile apps is a big ask in itself.
According to a recent survey by TechValidate, nearly half of the respondents named security(45%) and back-end integration(43%) as their top challenges for mobile app development.
- Security – How to secure various aspects of the solution like data that may have to be stored on the device, transport security, having the right access control to back-end applications. Retrofitting security to the solution may prove costly so its important to consider a mobility platform which offers a comprehensive security architecture.
- Private App store – Enterprise are wary to publish their employee/partner apps on the public app stores due to security concerns hence need an alternative app distribution mechanism like a private app store to be able to safely and securely distribute the apps to their employees/partners.
- Mobile Project Life cycle Management – As with any other software project, mobile projects need to go through multiple environments before they go in production starting from development, testing, pre-production to finally a production environment. The platform needs to able to offer support multiple environments.
- Version Control – Mobile projects can have a lifespan in years and they undergo multiple changes during this time. At the same time, some of the large organisations can have 100s of mobile projects. To manage this complexity, a source code version control tool is a must have. This tool should seamlessly integrate with your mobile projects and toolchain.
- Common services – There are a set of services which almost every mobile project ends up using like a push notification, caching, authentication, data sync for offline use-cases. The question that needs to be answered is whether an organiztion should build and maintain these common services or explore to buy platforms which provide some of these services OOB.
- Build Farm – OS platforms like Windows and iOS mandate you to have the respective hardware to be able to generate the mobile app binaries for these platforms. Mobile projects needs to either budget for this hardware costs or explore platforms which offer build farm capabilities.
- Collaboration – With distinct layers in the architecture UI/Biz Layer/MBaaS requiring different skillsets, there is a need to enable collaboration between different team members for an agile mobile project development.
Mobile projects are much more than just the mobile app so while planning to mobilize your enterprise applications, it is worthwhile to explore and evaluate mobile development platforms which can offer these capabilities. For more information contact us at firstname.lastname@example.org