Tuesday, January 3, 2017

Mobile App without backend and with backend

If you consider any mobile application which delivers a dynamic content for solving a 
business problem, definitely needs a back-end service. These back-end services can be developed and deployed using various languages and platforms respectively. Java will be a preferred platform for developing services which can be scalable and easily maintainable across different platforms. For example Windows, Mac, Linux, Solaris etc. are few of the famous platforms it supports.Nevertheless, for a front end ( mobile app) it does not matter in which technologies the back end is developed.But, certainly matters is the way the services are accessed and the type of content those services rendered. JSON, xml, html,pdf etc. are few of the contents.In most of the cases JSON is the preferred format.















Lets consider the above diagram for an android app. In this scenario, the user data and logic involved in serving the functionality remains on the device itself.Because of the absence of the custom back-end service for the mobile app, the application does not require internet connection.Google services like notification ,updates ,maps can be used.Still, these services are of more in generic nature.Though application runs faster, the local storage will be eaten up and if the app cache is cleared, the whole state of the application will be reset.For example any photo editing mobile app.











Let's consider the above diagram for an android app with custom service. In this case, the custom service will be hosted somewhere in the cloud or within a secure network exposed to public.Mobile app invokes the custom service and get the data and other way round submits the data to the services.The business is driven from back-end service.If there is any change in the business service functionality, here in most of the cases, mobile app also need to be updated along with back end.There should be a synchronizing between back-end service version and the mobile app client program. There is a big advantage of the data being rendered from back end services, with over head in maintaining ( future releases) the application.For example , any of the e-commerce apps like amazon, flipkart.