• Numar ore: 100 • Durata curs: 3 luni • Mod de desfasurare: in laborator, grupe de maxim 15 cursanti • Orar: cate 2 zile saptamanal, intre orele 17:00 si 21:00 • Urmatoarea serie: La cerere
Cui de adreseaza
Cursul se adreseaza programatorilor cu experienta intr-un limbaj de programare orientat pe obiecte, dornici sa se initieze in dezvoltarea de programe destinate dispozitivelor mobile bazate pe sistemul de operare Android.
Dispozitivele mobile ca smartphone-uri, tablete reprezinta acum cea mai raspandita modalitate a oamenilor de a accesa internetul si de a comunica. Cresterea continua a puterii acestora de procesare permite integrarea unei multitudini de functii.
Din acest motiv, abilitatile de dezvoltare a aplicatiilor pentru aceste dispozitive sunt foarte cautate, cererea de specialisti in dezvoltarea aplicatiilor pentru dispozitive mobile crescand de la an la an. Pentru a-si dezvolta aceste abilitati, cursantii trebuie sa stapaneasca principii informatice solide, sa aiba cunostinte despre platformele aplicatiilor mobile, sa poata proiecta interfete de utilizator. Acest curs acopera principii fundamentale de programare, arhitectura software si aspectele privind experienta utilizatorului care stau la baza aplicatiilor sofware.
Cursul include numeroase exemple practice puse in aplicare pe platforma Android. Cursantii vor aplica cunostintele dobandite din prelegerile teoretice, in lucrari de laborator folosind platforma Android, precum si prin realizarea unui proiect mai amplu in care sa poata aplica toate cunostintele dobandite in partea teoretica a cursului
Cursul este structurat pe 8 module si va fi constituit dintr-o serie de prelegeri teoretice urmate de exemple practice, exemple si exercitii individuale. De asemenea, in programa cursului este inclus in un proiect mai amplu in cadrul caruia cursantii vor putea aplica cunostintele, tehnicile si tehnologiile studiate.
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.
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).
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.
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 Art will help student draw some inspiration from the work of several Modern Art masters.
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 BroadcastReceivers and User Notifications to apprise the user of the apps behavior and state.
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.
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.
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 ContentProvider 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 ContentProvider 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.