As cloud computing is getting popular and easy to use, mobile frontend development tends to rely on cloud for even simple storage and compute needs. It is true that cloud computing is one of the most used buzz word in tech industry. We will see cloud computing gain even more momentum as cloud computing doesn’t refer anymore just to leasing the infrastructure – as in servers. Rather, cloud computing is moving more towards ‘Serverless cloud native’ offerings. In this case developers can simply deploy their code in a fully cloud managed services and the cloud provider will take care of the rest.
But, what are some things that we may need to consider while utilizing cloud computing in our mobile application development?
Cloud may not be cheaper always (What type of cloud?) – Depending on the choice of cloud – IaaS or FaaS, the price will vary. However nothing is completely free. So do analyze whether you have to goto cloud or not. If you decide to go to cloud, determine what type of cloud will be cheaper and easy to maintain for your use case.
Cloud compute engines may not be needed to load the data again and again (When does a request goto cloud?) – Determine when do we want our app to request the cloud for any data. If the mobile has to fetch the needed information for the initial launch of the application, connect with cloud and determine on-device caching mechanism based on the business case. This would eliminate the need for the mobile app to go to cloud for the same data again and again.
Cheaper storage options in cloud vs free storage on device (Do we need data across multiple shared devices?) – If the data captured by the mobile application can be stored locally to be utilized by the mobile app for a later time and if this data need not be shared across multiple devices or to multiple users then the data can be stored locally than maintaining over cloud. Even if the data has to be shared by the user across multiple devices or the user needs the data to store in cloud, determine whether utilizing users personal cloud storage is an option or not.
Secure your customers data by implementing federated learning on device (How much data privacy is needed?) – As data privacy like CCPA or GDPR are much in place, federated learning comes in handy to decouple the ability to do machine learning from the need to store the training data in cloud there by protecting the customer privacy.
Prepare for offline support – no infrastructure is guaranteed to run with 100% availability (Increase the usability of the application) – Mobile application without internet connectivity should still be usable. As we discussed earlier, adopt appropriate caching mechanism to increase the usability of the application. The locally collected data later can be synced up with the cloud based on the bandwidth availability.
Simple strategies to follow –
- While you have to pull the data from server – Implement “Push from server” over “Pull from mobile device”.
- While you have to push the data to server – Implement “Push from mobile device”
How does these changes impact the mobile development?
Over a period of time, more emphasis was given towards developing mobile frontend in the form of cross-platform or native apps development. Less emphasis was given on mobile compute or storage based computing capabilities because of the size constraints. But that is not the case anymore. This will put the mobile development team to focus not just on the presentation layer but also on the application processing layer to some extent. And year by year this area would grow as more compute and storage capabilities are added by the mobile manufacturers every year with every upgraded release of their smartphones.
Please write your comments on how would you use cloud computing to better enhance mobile user experience.