Mobile Cloud Computing with Android

Mobile Cloud Computing with Android

Certificatehttps://www.coursera.org/account/accomplishments/specialization/TE4PBTL79Q23

Source – Coursera

Year – December 2015

Review – This specialization is a good place to learn Android Development. The first two courses and last two courses are great and fun. The middle two courses on concurrency and design patterns are very hard to understand. Those lectures contain lot of theory and hence becomes boring and difficult to understand. I specially enjoyed working on the capstone project – SelfieU app.

Overview- 

*taken from coursera’s course description

Programming Mobile Applications for Android Handheld Systems: Part 1

Programming Mobile Applications for Android Handheld Systems: Part 1
Programming Mobile Applications for Android Handheld Systems: Part 1

This course focuses on following concepts

  • understand the components comprising the Android Platform
  • use various tools found in the Android Development Environment
  • recognize the four fundamental components of Android applications
  • work with the lifecycle of the Activity class
  • create a simple Android application
  • create applications comprising more than one Activity
  • understand how to define and enforce permissions
  • design applications that run on multiple, differently-sized devices
  • define and deploy applications with sophisticated and elegant user interfaces.
  • An app iRemember that allows user to capture ‘life stories’ by recording audio and video and taking pictures, as well as saving the date and location of events.

Programming Mobile Applications for Android Handheld Systems: Part 2

Programming Mobile Applications for Android Handheld Systems: Part 2
Programming Mobile Applications for Android Handheld Systems: Part 2
  • Threads, AsyncTask & Handlers
  • Networking
  • Display Tweet Data: Students build an app that downloads and displays Tweet data. The app uses an AsyncTask for downloading data over the network.
  • User Notifications
  • The BroadcastReceiver Class
  • Alarms
  • Tweet app: Students build an app that displays Twitter data. The app will use BroadcastReceivers and User Notifications to apprise the user of the app’s behavior and state.
  • Graphics & Animation
  • Multi-touch & Gestures
  • MultiMedia
  • Bubble Popper: Students write an application to display and animate bubbles on the device’s screen. When users touch the screen where a bubble is displayed, the bubble pops. The app will also accept gesture input, allowing the user to change the direction and speed of the bubble, using a fling gesture.
  • Sensors
  • Location & Maps
  • Data Management
  • Place Badge Collector: Students build an application that uses location information to collect Badges for the places they visit.

Programming Mobile Services for Android Handheld Systems: Concurrency

Programming Mobile Services for Android Handheld Systems: Concurrency
Programming Mobile Services for Android Handheld Systems: Concurrency
  • Overview of Patterns and Frameworks 
  • Overview of Android Layers
  • Java Threading Mechanisms
  • Java Built-in Synchronization Mechanisms
  •  Java Semaphores
  • Android Concurrency Frameworks: Programming
  • Overview of Android Concurrency Framework Classes
  • Overview of the Threaded Downloads Application
  • Overview of  Handlers, Messages, and Runnables (HaMeR) Framework
  • Overview of the AsyncTask Framework
  • Evaluating Android Concurrency Frameworks
  • Android Concurrency Frameworks: Internals
  • Android Looper
  • Android Handler 
  • Posting and Processing Runnables with the Android HaMeR Framework
  • Sending and Handling Messages with the Android HaMeR Framework
  • Blackbox and Whitebox Frameworks with AsyncTask
  •  Overview of Android Concurrency Framework PatternsCoordinating Concurrent Access with the Monitor Object Pattern
  • Ensuring Only One Looper Per Thread with the Thread-Specific Storage Pattern
  • Passing Commands to Handlers with the Command Processor Pattern
  • Passing Messages to Handlers with the Active Object Pattern
  • Decoupling Synchronous and Synchronous Processing with the Half-Sync/Half-Async Pattern

Programming Mobile Services for Android Handheld Systems: Communication

Programming Mobile Services for Android Handheld Systems: Communication
Programming Mobile Services for Android Handheld Systems: Communication
  • Overview of Started and Bound Services
  • Activity and Service Communication
  • Service to Activity Communication Using Android Messenger
  • Programming Started Services
  • Android IntentService
  • Programming Bound Services with Messengers
  • Overview of the Android Interface Definition Language (AIDL)
  • Programming Bound Services with AIDL
  • Overview of Hyper-Text Transfer Protocol (HTTP)
  • Designing Mobile Applications with HTTP Communication
  • Better Client-side Communication Abstractions for HTTP
  • Communication Patterns in Android
  • Activating Services on Demand with the Activator Pattern
  • Passing Commands to Services with the Command Processor Pattern
  • Automating Marshaling and Demarshaling of Data with the Proxy Pattern
  • Supporting Object-Oriented Remote Method Calls with the Broker Pattern

Programming Cloud Services for Android Handheld Systems: Spring

Programming Cloud Services for Android Handheld Systems: Spring
Programming Cloud Services for Android Handheld Systems: Spring

This MOOC describes by example how to connect Android mobile devices to clouds via the use of object-oriented design techniques; Java programming language features; Android Content Providers, Content Resolvers, and SQLite databases; Jetty middleware; Java Servlets, the Java Spring Framework; and cloud computing platforms, such as Google App Engine

An extended case study project will be used throughout the required core of the MOOC to showcase architectures for communicating with the cloud using HTTP, server-side processing of mobile data using servlets and the Java Spring Framework, and scalable storage of data using no-SQL databases and other platforms. Due to the importance of building secure and scalable mobile/cloud platforms, this MOOC will not only show you how to program handheld systems that talk to the cloud, but how to do so securely, scalably, and efficiently. Security and scalability topics will be woven into discussions of cloud service creation so that students learn, from the start, how to create robust cloud services for mobile devices.

Programming Cloud Services for Android Handheld Systems: Security

Programming Cloud Services for Android Handheld Systems: Security
Programming Cloud Services for Android Handheld Systems: Security

This MOOC describes, by example, the basics of securing mobile applications and back-end cloud services, OAuth.

Capstone Project – Daily Selfie Application

Capstone Project
Capstone Project

Github – https://github.com/megha14/SelfieU

Description – The app enables users to take pictures of themselves – selfies – over an extended period of time. It periodically reminds the user to take a selfie and presents the selfies in a list that makes it easy to see how the user has changed over time. This extended implementation also allows users to process their selfies to add effects, such as blurring or charcoaling.

App Features

  • App supports multiple users via individual user accounts
  • App contains at least one user-facing function available only to authenticated users
  • App comprises at least 1 instance of each of at least 2 of the following 4 fundamental Android components: Activity, BroadcastReceiver, Service, ContentProvider
  • App interacts with a remotely-hosted Java Spring-based service.
  • App interacts over the network via HTTP/HTTPS.
  • App allows users to navigate between 3 or more user interface screens at runtime.
  • App uses animation.
  • App supports an operation that is performed off the UI Thread in one or more background Threads of Thread pool using AsyncTask.

Detailed description of how these features are implemented can be seen in this document.