A few months ago, I had an idea for a mobile app that would be cool and useful. I had no delusions of hitting it big in the Apple or Android app — it was just a fun side project for myself. I had never built a mobile app before, and owning a Galaxy Note 4, I saw a great opportunity to teach myself Android Studio and build an Android app. So I downloaded Android Studio, got it all setup, and watched some online tutorials to learn the basics. I then mapped out what I needed for my app, and this is when the feeling of dread set in. For my app to work, I needed:
- User sign-in screen/verification
- A database to store user data
- Storage for content
- Push notifications
Being an experienced AWS user, I knew that I could turn to AWS as a provider of all four services that I needed.
- User sign-in screen/verification -> AWS Cognito
- A database to store user data -> AWS DynamoDB
- Storage for content ->AWS S3
- Push notifications -> AWS SNS
So my dread wasn’t that I didn’t know where and how to provision these services for my app — it was that I had to write the code to integrate them. I am not a professional coder; at best, I am a hobbyist. That means that I can write basic code and figure out how to make things work. However, it just takes me way longer than I’d like to admit. So in my head, I am already picturing the hours/days I will spend digging through AWS documentation to learn how to write the proper API calls to integrate those AWS services into my app.
Then a little voice in the back of my head said to me (not a real voice — don’t worry), “Hey idiot, what are you doing? Think! What new AWS service can solve all your problems?” Then it hit me, AWS recently (as of Oct. 2015) announced a service called AWS Mobile Hub, that’s purpose is to simplify the processes of integrating AWS services into a mobile app. Not having spent any time learning about AWS Mobile Hub to this point, I immediately navigated to it in the AWS console and started to read up on it. And boy, was I pleasantly surprised. Here is what I found:
AWS Mobile Hub allows you to select from a group of seven AWS services. For each service you use, Mobile Hub will configure, provision, and, most importantly, provide usable, prewritten code for integration with you mobile app. Regarding service integration, here are the features that Mobile Hub offers and the AWS services that back them:
In terms of workflow, here is an example of how a developer can use Mobile Hub to set up their mobile app:
Once you configure the services in Mobile Hub, you are presented with a “sample package” that you can download. For Android, this package is meant to be imported directly into your Android Studio project. (Mobile Hub also supports Swift and Object-C for iOS developers.) The sample package contains working code (with examples) for how to integrate your app with each AWS service. You can then choose to take snippets of that code and integrate it into your project, or use the sample code as a starting point, and just build your app on top of it (which is what I did).
In the end, using AWS Mobile Hub saved me days (if not weeks) of time that I would have spent on back-end coding and configuration. Instead, I was able to spend that time on front-end design, testing, and implementation. And AWS Mobile Hub cost nothing to to use, as you only pay for the AWS services that it provisions on your behalf.
If you are looking for a solution to help you with back-end development for you mobile app, I highly suggest you take a look at AWS Mobile Hub.