Nov 30th 2015

Programming Mobile Services for Android Handheld Systems: Communication (Coursera)

Created by: Delivered by:

In this course, we will learn how to apply patterns and frameworks to alleviate the complexity of developing concurrent and networked applications and services on mobile devices running Android that connect to popular cloud computing platforms.

This MOOC describes by example how to apply patterns and frameworks to alleviate the complexity of developing concurrent software for mobile devices via the use of object-oriented design techniques. A pattern describes a reusable solution to a common problem that arises within a particular context. A framework is an integrated set of components that collaborate to provide a reusable architecture for a family of related apps or services. Frameworks can also be viewed as concrete realizations of patterns that facilitate direct reuse of detailed design and source code.

This MOOC will cover fundamental techniques, patterns, and frameworks related to communicating with local and remote services. In particular, this MOOC course will cover Android mechanisms for interacting with local bound and started services via Intents, Messengers, and the Android Interface Definition Language (AIDL). It will also focus on interacting with remote web services using HTTP and data marshalling with JSON. Remote interaction models, ranging from request on demand, polling, push, and sockets will be discussed. Students that complete this MOOC will have a solid understanding of how to build Android applications and local services that can interact with remote services, handle data marshaling, and perform error handling. Hands-on programming projects will require students to develop Android applications that interact with REST-based services.

Suggested Readings:
The Busy Coder's Guide to Android Development
Java Concurrency in Practice
Concurrent Programming in Java™: Design Principles and Pattern, 2nd Edition
Design Patterns: Elements of Reusable Object-Oriented Software
Pattern-Oriented Software Architecture Volume 1: A System of Patterns
Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing
Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages