Oct 5th 2015

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

Created by: Delivered by:

In this MOOC, we will learn how to apply patterns and frameworks to alleviate the complexity of developing concurrent applications 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 Android's Handlers, Messages, and Runnables (HaMeR) framework and its AsyncTask framework, which simplify the development of Android applications that can run long-duration operations in background threads and then publish the results of these operations to the User Interface thread, which then performs short-duration user-facing operations. Some coverage of Java threads will be included to provide background on concurrent programming. Hands-on programming projects will require students to apply these two concurrency frameworks to representative Android applications.

Suggested Readings:
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