Department of Information Network The University of Babylon LECTURE NOTES ON SYLLABUS OF PROGRAMMING MOBIL APPLICATIONS FOR ANDROID By Dr. Samaher Hussein Ali College of Information Technology, University of Babylon, Iraq Samaher@inet.uobabylon.edu.iq 15 October 2014 Introduction this course is logically organized into two parts. Part one introduces the Android platform, and its development tools, and it explains the basic concepts you ll need to create simple Android apps. Part two on the other hand, dives into additional services that come into play when you re ready to create more advanced apps. And each of these parts runs for four weeks. In week one, we ll talk about the Android platform and the Android development environment. In week two, we ll cover how apps are created and we ll go over the activity class, which is the primary class that s responsible for presenting an app to user interface. The following week, I ll introduce intents and permissions, which allow one app or activity to start up and use other apps and activities. And I ll also talk about the fragment class, another class that plays a key role, in presenting an app s user interface. And finally in week four, I ll go into detail on the full range of classes and patterns, used to create sophisticated user interfaces. And at this point we ll have finished part one, and we ll be ready to start in on part two. In week five we ll discuss a number of topics including user notifications, event notifications using the BroadcastReceiver class. And handling concurrency, with threads, AsyncTasks and handlers. I ll also include two optional lectures. One on using alarms to invoke code at scheduled times. And another one on acquiring data, over the internet. Week six gets into more visual topics, including graphics and animation, touch processing and multimedia. And during week seven, we ll focus on using the many sensors that now come standard on most hand held devices, and we ll talk about how to acquire and display, location information. And finally in week eight, we ll close out with lectures on how to manage data, how to share data across application using The ContentProvider Class. And how to do work in the background and across processes, using the service class. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS Schedule • Week #1: Objective: In this lesson, I discuss the Android Platform and the Android Development Environment. By the end of this lesson you should understand the components comprising the Android Platform and be able to use various tools found in the Android Development Environment • Lecture #1 – The Android Platform • Lecture #2 – The Android Development Environment • Lab #1: Setup: Students identify required software & install it on their personal computers. Students perform several tasks to familiarize themselves with the Android Platform and Development Environment. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS • Week #2: Objective: In this lesson, I explain the basic components from which all Android applications are created. I also present the Activity class - one of the main class responsible for displaying an application's user interface. By the end of this lesson, you should recognize the four fundamental components of Android applications, be able to create a simple Android application and understand the lifecycle of the Activity class. • Lecture #3 – Application Fundamentals • Lecture #4 – The Activity Class • Lab #2 – The Activity Lifecycle & Reconfiguration: Students build applications that trace the lifecycle callback methods issued by the Android platform and that demonstrate Android's behavior when the device configuration changes (e.g., when the device moves from portrait to landscape mode and back). 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS • • Week #3: Objective: In this lesson, I explain the Intent class and Permissions. I also present the Fragment class - another key class responsible for displaying an application's user interface. By the end of this lesson, you should be able to create applications comprising more than one Activity, understand how to define and enforce permissions and be able to design applications that run on multiple, differently-sized devices. • Lecture #5 – The Intent Class • Lecture #6 – Permissions • Lecture #7 – The Fragment Class • Lab #3a - Intents & Permissions: Students build applications that require starting multiple Activities via both standard and custom Intents. • Lab #3b - Permissions: Students build applications that require standard and custom permissions. • Lab #3c – Multi-pane and single-pane User Interfaces: Students build an application that uses a single code base, but creates different user interfaces depending on a device's screen size. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS • • Week #4: Objective: In this lesson, I summarize and demonstrate the many class Android provides for creating user interfaces. By the end of this lesson, you should be able to define and deploy applications with sophisticated user interfaces. • Lectures #8 – User Interface Classes - Part I • Lectures #9 – User Interface Classes - Part II • Lab #4 – ToDoManager: Students build a ToDo list manager using the user interface elements discussed in lecture. The application allows users to create new ToDo Items and to display them in a ListView. • Mini-project - Modern Art User Interfaces: Students will build a complete app from scratch. Collaborators from the Musuem of Modern will help student draw some inspiration from the work of several Modern Art masters. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS • Week #5: • Objective: In this lesson, I dive deeper in Android, focusing on advanced some of the advanced capabilities it provides. I discuss using User Notifications to interact with the user, listening for and responding to events using the BroadcastReceiver class, and handling concurrency with Threads, AsyncTask & Handlers. There are also two optional lectures dealing with using Alarms to run code at pre-scheduled times and with understanding how to access data over the network. By the end of this lesson, you should understand how these key technologies are used to support more advanced Android applications. • Lecture #10 – User Notifications • Lecture #11 – The BroadcastReceiver Class • Lecture #12 – Threads, AsyncTask & Handlers • Lecture #13 - Alarms • Lecture #14 - Networking • Lab #5 – Tweet app: Students build an app that downloads and displays Tweet data. The app uses an AsyncTask for downloading data over the network. The app will also user Broadcast Receivers and User Notifications to apprise the user of the apps behavior and state. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS Week #6: Objective: In this lesson, I present a number of technologies related to presenting and interacting with dynamic content. This includes graphics and animation, handling touch input from the user, and recording and playing multimedia. By the end of this lesson, you should be able to animate your applications, create apps that respond to both standard and custom gestures, and display and use multimedia content. • Lecture #15 – Graphics & Animation I • Lecture #16 – Graphics & Animation II • Lecture #17 – Multi-touch & Gestures • Lecture #18 – MultiMedia • Lab #6 - Bubble Popper: Students write an application to display and animate bubbles (graphics that look like 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. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS • • Week #7: Objective: In this lesson, I go over the many sensors that now come standard on most mobile devices. I also provide a focused discussion of using sensors to capture location information and using maps to display that information. By the end of this lesson, you should be able to create context aware applications whose behavior changes based on environmental conditions. • Lecture #19 – Sensors • Lecture #20 – Location & Maps • Lab #7 - Place Badge Collector: Students build an application that uses location information to collect Badges for the places they visit. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture SYLLABUS • • Week #8: Objective: In this lesson, I wrap up with a discussion of some behind the scenes Android capabilities. I discuss how to manage structured data, how to share that data across applications using the Content Provider class, and how to run operations in the background and across processes using the Service class. By the end of this lesson, you should be able to design complex applications that leverage complex structured data sets and that perform processing in the background. • Lecture #21 – DataManagement • Lecture #22 – The ContentProvider Class • Lecture #23 – The Service Class • Lab #8 - Place Badge Collector Content Provider: Students build a Content Provider to store the Place Badges they collect with the app from Week 7 application that uses location information to collect Badges for the places they visit. • Mini-project - TBD 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture References • Book of “Beginning Android 4 Application Development”, 2012 by John Wiley & Sons, Inc., Indianapolis, Indiana, www.itebooks.info • Lectures of Dr. Adam Porter, Programming Mobile Applications ,2014. 15 October 2014 Dr. Samaher Hussein Ali Notes of Lecture