everythingpossible - Fotolia
The technology world has hit a mobile tipping point, as there are currently more mobile devices than desktop and laptop devices. An increasing number of mobile developers create apps that expand the convenience of a smart phone. The challenge in this, however, is quite significant. If innovators want their apps to be successful, they have to strategically find a way to speed up development, test and time to market -- all while trying to ensure quality performance.
The demands on developers are also changing, with more tools hitting the market to support rapid development. This has allowed for faster growth in the mobile backend as a service (MBaaS) market. MBaaS helps web and mobile app developers link applications to back-end cloud servers and storage using APIs. Some popular MBaaS vendors include FeedHenry, Kinvey and Appery.io. And the three major public cloud providers -- AWS, Google Cloud Platform and Microsoft Azure -- provide their own MBaaS platforms, which shake up the MBaaS market.
Through AWS mobile app development tools, the cloud provider has the opportunity to lead the mobile dev market -- as it does in infrastructure as a service. AWS offers various services for mobile apps, and it bundles those services to allow developers to add, manage and configure features for apps.
AWS Mobile Hub provides an integrated console experience to help developers build, test and monitor mobile app use. Developers create a project and then select and configure features for AWS mobile app development. AWS Mobile Hub automatically provisions resources based on desired configurations and generates a working quick-start app.
The mobile world has three pillars that let it come to life: app development, app distribution and app engagement. AWS Mobile Hub works in all three aspects.
The following AWS mobile app development tools are available to enterprises:
- Most mobile apps require back-end logic to execute code. AWS Lambda allows developers to create a mobile back end without provisioning or managing servers. The user can upload code directly to Lambda and implement it into a mobile app.
- AWS Device Farm allows automated testing on a large collection of physical devices, as well as remote access to mobile devices in real time.
- The scalable and high-performing Amazon DynamoDB offers a fully managed NoSQL database. It supports documents and key value concepts, and offers reliable performance with scalability.
- Amazon API Gateway helps create, publish, maintain, monitor and secure APIs. The mobile app will make a call to Amazon API Gateway, which will redirect the call to the database, Lambda function or another service. With AWS Lambda at the back end and API Gateway at front, AWS can help create a scalable serverless cloud for MBaaS.
- An AWS user can use Elastic Compute Cloud, Relational Database Service, Elastic Load Balancing and Auto Scaling for application back-end hosting and scale management.
When the app is ready, developers can distribute it on app platforms to attract more users, but will need an authentication system for user login, data storage and content distribution. Amazon Cognito allows the end user to sign in with public identity providers, like Facebook and Google+; it will also grant them access using a custom identity management system. This means the developer won't have to create a new identity system from scratch.
If an end user needs to store data, such as images, game scores and videos, Amazon Simple Storage Service (S3) offers static content storage for the internet. The app can use Amazon Cognito to directly upload data to S3. Even with Cognito, the app can make a call to DynamoDB to store persistent data, such as game scores, login details and friends.
If an app uses static content, Amazon CloudFront can distribute that content through AWS regions globally. This helps reduce latency, as content caches at edge locations.
After distributing an app, it's important to market it. AWS offers multiple services to engage more end users.
Amazon Simple Notification Service (SNS) allows an app to send push notifications to Apple, Google, Fire OS and Windows devices, as well as to Android devices in China with Baidu Cloud Push. Developers can then create updates and notifications for end users, such as one to inform end users about a new feature. SNS notifies users immediately from an installed mobile application.
Analytics are at the core of successfully marketing an app. Usage patterns and user behavior are key metrics; Amazon Mobile Analytics help track them and optimize user engagement. The user can also turn to Amazon Redshift for custom analysis.
Google counters AWS mobile app development options
Everyone with an Android smartphone knows that Google rules the OS world. Google provides many software as a service offerings, including Google Docs, Gmail and Google Talk. In the mobile world, Google's MBaaS offering is Firebase. And Google's end-to-end mobile app development suite creates some stiff competition for AWS.
Firebase is a fully managed platform for building iOS, Android and web apps; it provides automatic data synchronization and authentication services. Firebase is an efficient way to build or prototype mobile back-end services. This real-time, cloud-hosted, NoSQL database includes a REST API that is optimized for low latency and has a login service with several types of built-in authentication. But Firebase has some limitations, specifically regarding management and scalability.
Combining Firebase with Google App Engine or managed VMs might give more options for mobile application development, management and scale. Firebase can integrate with Ruby, Node.js, Python, Java, Clojure, PHP and Perl servers through third-party libraries or its REST API.
User needs should be the primary driver of mobile application development. As Colin Steele of SearchMobileComputing explains, forcing existing concepts on a mobile platform can result in a square peg in a round hole situation.
Google also offers Cloud Messaging, which sends messages and notifications, including push notifications. Firebase Cloud Test Lab provides a cloud-based infrastructure for testing Android apps. Google Cloud Security Scanner identifies security vulnerabilities in App Engine web applications. Stackdriver Trace monitors performance, with automated health monitoring for App Engine and Managed VMs.
Firebase currently runs only in its own public cloud and doesn't provide storage location options. Firebase does not currently comply with HIPAA, PCI DSS or FIPS standards, and it does not allow data storage in the EU.
Cognito synchronizes end users' mobile experience
AWS' competition gains ground
What's in store for AWS' second decade?