Google App Engine- The Myriad Advantages
By Larry Schiefer, CTO & Co Founder, HiQES and Google Developer Expert for Android
Useful mobile apps not only provide beautiful user interfaces and value to customers, but also enable more opportunity for the business. Opportunity in this sense can mean a variety of things, such as more sales, more customer engagement and value added features. What is interesting is that upon further inspection the possibilities become daunting. Time to market is always a competitive advantage, but so are multi-platform support, scalability, ease of development and collecting big data. Google's extensive service offerings in each of these areas provide immense value for businesses as they foray into the mobile space. At HIQES we leverage these technologies to provide superior mobile solutions for our customers. Implementing Google's service offerings in our mobile solutions is a multi-faceted approach which provides successful solutions today while keeping our solutions prepared for tomorrow's growth needs.
Time to Market
Quickly getting a product or service to market is one of the most essential things for any business. The mobile app space is no exception. Google’s services in this regard apply to both the back end web side and the mobile devices. Accelerating the creation and maintenance of an app and its backing web service is critical for rapid deployment.
The vast majority of mobile apps are connected apps: they leverage Internet connectivity to provide some or all of their functionality. In the not so distant past, companies had to build out backend infrastructure to handle the mobile and web interface apps. This added to the overhead and maintenance of the company’s product or service. Google’s options to alleviate this burden fall right in a sweet spot of productivity and flexibility. Using Google App Engine, a business can rapidly develop the backend application in a PaaS style environment. We will often use this as a starting point for our clients requiring custom backend work due to its ease of use. For those who wish to have more flexibility and control, Google Compute Engine can utilize the same code running in App Engine, but in a customizable, managed virtual machine. Data storage is similarly flexible, leveraging NoSQL style storage or Google Cloud SQL for relational database support. These are only the tip of the iceberg in terms of backend APIs and services available from Google.
On the mobile device side, Google enables app authors to create feature rich apps with a much smaller development effort.
Another advantage gained by using Google App Engine or Compute Engine is scalability and load balancing
Tying into the back end for the app can be done quickly using Google’s Cloud Endpoints to access REST APIs. Cloud Endpoints reduces the amount of work required by developers by taking the data model and API definition you create and auto generating the tedious boilerplate code required to bridge the gap between the API and the backend service. One ubiquitous feature in mobile apps is location and Google Maps is an easy choice to provide this expected functionality. Additionally, many businesses choose to include advertising in their app as a revenue stream. This is particularly true for apps which are provided free of charge. Not surprisingly, Google offers one of the more popular advertising networks with AdMob. All of these features are available for Android and iOS devices, making them excellent choices for businesses targeting one or both of these platforms.
Scaling for the Future
Another advantage gained by using Google App Engine or Compute Engine is scalability and load balancing. These systems and their data stores are replicated throughout Google’s data centers. This not only makes a business app’s backend available worldwide, but also grows to meet the demands of a business’ expanding user base. Going hand in hand with this is the reliability which comes from the app backend being replicated within Google’s data centers. For those who have developed web applications or other backend services on custom infrastructure, the relief in knowing your app instantly scales to meet demand worldwide is refreshing.
Having top notch technology to enable mobile app features is great, but what if it is hard to use? Documentation is an obvious need here and the Google Services I’ve outlined so far have some of the best developer documents I’ve seen. But, that’s only part of the picture. Just like doing construction work, creating something with the blueprints is a much easier job with the right tools. For Android devices, Google provides numerous SDK tools as well as IDE integration with popular tools like IntelliJ and Eclipse. When working with the backend software, Maven artifacts are readily available to speed development and deployment. But why stop there? Backend app development is not tied down to using one or two languages, such as Objective-C or Swift in iOS. Google App Engine supports development in Java, Python, PHP and Go. Google Compute Engine is a superset of App Engine so it has additional flexibility, offering support for Ruby, Node.js and others.
Ask any business owner and they will tell you understanding their customer’s demands are essential. Embedding analytics into an app allows insight into the consumer’s mindset. Are they never using a specific feature? Are sales via the app not closing because the user gets stuck? Google Analytics for mobile is available for Android and iOS, and can be tailored to the app’s specific functionality. Examining and pulling the data looks very much like Google Analytics for websites, making it an easy choice. But, what about the backend? The backend may track its own set of analytics. Depending on the user base between mobile and web app interfaces, this data set could be enormous. Using the Google Big Data API, the backend app can acquire and analyze large data sets asynchronously. The APIs are very intuitive, using a SQL-like syntax.
Any mobile or web application must ensure the security of its customers’ data as well as the business’ data. Mobile platforms are particularly challenging due to ease at which physical access to the device can be acquired. Following best practices, such as using the platform’s provided crypto are essential. When leveraging Google’s App Engine or Compute Engine, communication with the backend is secured using HTTPS connections. The backend instances are isolated from each other, keeping the data similarly isolated. Additionally, each backend instance allows access to only authorized web or mobile apps using cryptographic signatures. If end user authentication is required for the app, Cloud Endpoints has built in support for authentication using industry standard OAuth 2.0. The combination of these features and following best practices during development helps HIQES create robust, secure applications and frameworks for our customers.
Consumers and enterprise users alike are adopting mobile devices for their everyday use. This presents an exciting opportunity for businesses to get directly into the hands and pockets of customers and users. However, creating a beautiful, value-added mobile app requires more than meets the eye. Google’s services both in the device and the backend facilitate rapid development, scalability and long term viability.