Developing Scalable Apps in Java

About this Course

You will learn about challenges of building applications that can serve hundreds of thousands of users, and how you can prepare for them as a developer. And more importantly - you will learn how to harness the power of App Engine - Platform as a Service, run by Google, so you can focus on your application's features, not on managing infrastructure that runs your app. Let Google run and scale the infrastructure and do what you do best - write code!

However, to use App Engine effectively, you have to learn how it works, and this is exactly what this course will teach! You will also learn the best practices of using Cloud Endpoints that allow you to easily create RESTful services and make them accessible to iOS, Android and Javascript clients. They allow you to automatically generate client libraries to make wiring up the frontend easy. And there are some nifty built-in features, like denial-of-service protection and OAuth 2.0 support.

Lesson 6

App Engine and Mobile Apps

Generate native libraries for Android and iOS that can talk to your backend.

Recompile the Android app provided with the course, to work against your own project.

Prerequisites and Requirements

You should be fairly comfortable programming in Java, preferably with some experience developing web applications and working with databases for at least a year. You will be developing the backend of a sample app, so you don’t have to worry about HTML or JavaScript.

You should have sufficient permissions to install new software on your computer, and comfortable configuring it, including setting up system variables.

We will be using Maven and Eclipse for this course, and we strongly suggest that you use them as well.

Why Take This Course

Cloud computing is one of the fastest growing fields right now. And no wonder - it provides an easy and affordable way to run your applications. However, the traditional way of hosting and scaling applications on Virtual Machines in the Cloud comes with a cost - even if the infrastructure is virtual, you still have to manage it - do load balancing, bring instances up and down, take care of patching your software and in general spend a lot of your time and resources on just the infrastructure.

Google is one of the pioneers in the business of scaling, and now you can use their infrastructure, and let them do all the scaling work so that you can focus on the unique features your app provides.

Project

There will be an overarching project throughout the course, starting from Lesson 2. You will develop an application for organizing conferences, similar to sites like meetup.com or eventbrite.com. We have provided the frontend of the app, and all your effort will go into making the backend.

And because you will be using Cloud Endpoints, it’s really easy to hook up your backend with a native mobile app. We have created an Android app that uses the same backend as the web frontend. You will able to recompile it against your backend, if you so wish!

At the end of the course you will do a final project, where you will have to expand the functionality of the same app.