How to Define a Tech-stack for your Enterprise App
Working as a software consultant, I have to be ready with answers related to tech-stack selection for my clients who see technology as a multi-headed hydra. Though there are numerous ways to create an App, the adoption of right tools and tech-stack offers huge benefits in terms of speed and flexibility – which are crucial to the success of any software project.
All such tech-stack related decisions usually fall into two broad categories:
Server Side (back-end) Decisions
Stack Selection LAMP (Linux, Apache, MySQL, PHP) Vs MEAN (MongoDB, ExpressJS, AngularJS, Node.js)
Nobody likes slow running Apps. According to several benchmarks, Node.js is faster than PHP, and its event-driven architecture can significantly improve your App’s performance and user experience. Having said that, not every enterprise would find it prudent to recode everything in the new framework. LAMP is still reliable and can continue to support your enterprise App expansion strategies.
Client-Side (front-end) Decisions
Selection between Native, Hybrid, and Progressive Web App
Developing mobile apps for multiple platforms and channels is not an easy task. However, the technology is gradually consolidating with increased mobile cross platform development support and integration. Nonetheless, you might have to select between Native, Hybrid, and Progressive Web Apps depending on your business requirement.
|Native Apps||Hybrid Apps||Progressive Web Apps|
Toolkit: Apple Xcode, IntelliJ AppCode (iOS),
Android Apps (Java)
ToolKit: Android Studio, Android Developer Tools for Eclipse
Major advantages of developing a Native App:
- Access to device features (camera, GPS, compass, contacts, accelerometer etc)
- Gesture controls
- Device Notifications
A Hybrid App offers similar advantages. Also, as one can reuse the HTML code components in the website development, it saves a lot of hours in the development. Despite these advantages, it is not easy to force people to install your App on their smartphones. That’s why if you are building a mobile App; you might also be interested in Progressive Web Apps.
Decisions based on Non-Functional Requirements
Businesses often do the mistake of relying heavily on their trusted IT guy for mobile application development projects. It is true that the person in-charge of your IT has the maximum amount of information on your enterprise systems and the underlying technology challenges. However, it is also possible that the person would make most of the decisions based on his/her comfort with a particular technology. These decisions might or might not serve your business needs. To ensure that the technology supports your business goals effectively you might have to consider the following:
It is possible to make your App function without a net connectivity if you are developing a Native App. Though the same is also possible with HTML-5, the in-browser caching has its limitations.
It’s also important to evaluate and define how you would like your App to behave in a low bandwidth and high latency network. This will involve defining clear SLAs for response time, processing time and acceptable query time.
Content Delivery Network (CDN)
Consider, for example, if your website is hosted in San Francisco, and a user is visiting your page in Singapore, then each request obviously has to traverse a long distance. This can increase the load time on mobile by 2-3 seconds – which can be long enough for a mobile user to leave your page.
A CDN caches static resources in distributed server nodes which being geographically closer to your users, ensure faster response and downloads. While a CDN is the most effective solution for most B2C websites seeking speed enhancement, it is also effective for mobile users.
Mobile Apps are inherently vulnerable to data caching. That’s why if you are creating a mobile App with access to critical resources, you might consider enabling password or pin based access to the App. It’s not a popular security measure, but you will find it invariably on all payments and banking applications. Further, you may want to disable application access over insecure public networks or allow VPN only access to your enterprise resources.
Mobile Application Development Platform (MADP) Selection
To meet the ever increasing demand for mobile application development, unification, and governance, enterprises are turning towards MADPs which now offer a host of low code development features. Though not exactly a part of the tech stack, selecting a right MADP can significantly boost your application development work. MADPs can be evaluated on the basis of:
- Integrated Development Environment – features for multi-platform (devices and OSs) and multichannel (web, apps, wearables) development
- Support for core mobile back-end services such as geolocation services, push notifications, offline synchronization, authentication and certificate/token management etc.
- Ease of integration with back-end systems, database, and APIs
- Lifecycle management – tools for the mobile application architecture design and development, testing, deployment, and support
Credencys Solutions Inc is a leading mobile application development company and solutions provider. You can contact us for mobile strategy consulting and developing mobile apps for multiple platforms. Subscribe to our blogs for getting similar articles on management, strategy, leadership and more.