Course Leader: Lela Mirtskhulava
Home Institution: Ivane Javakhishvili Tbilisi State University, Georgia
Course pre-requisite(s): Java Programming/Programming Fundamentals
This zyBook course provides a highly-interactive introduction to Mobile App Development for devices running Android™ using the Java programming language. Mobile devices have become immensely popular in the last decade, and users are spending more time on mobile devices than on desktop computers. Topics include Android Studio, model-view-controller design pattern, user interface (UI)components,
activities and intents, fragments, handling touch, persistent data in fi les and databases, using web APIs, graphics and animation, using sensors, and testing.
This course provides an exceptionally-interactive introduction to Mobile App Development, with numerous embedded learning questions and animations. Concepts are taught not just through text and figures, but also through animations and learning questions. Animations help provide tremendous insight into numerous topics, greatly aiding student understanding. If "a picture is worth a thousand words," an animation is worth five thousand. Learning questions help students thoroughly understand topics, via carefully-created incremental steps that not only keeps students engaged, but provides thorough explanations of not only right answers, but also of wrong answers(thus helping to break down common student misconceptions, as necessary to enable learning).
By the end of this course students should be able to:
explain the concepts of mobile application development;
describe the processes of mobile application development;
identify the basic knowledge on mobile application environment;
understand the mobile application technology;
discuss development and design issues specific to mobile applications;
design and develop mobile applications by using development tools and platforms.
Chapter 1: Introduction - Introduces mobile app development and how to create, run, and debug an Android app using Android Studio.
Chapter 2: Layouts and Widgets - Introduces layouts and widgets for building a user interface and how to process events.
Chapter 3: Activities and Intents - How to create apps with multiple screens, adjust the user interface for landscape orientation, and interface with other apps.
Chapter 4: Menus, Dialogs, and Touch - How to use the app bar, display dialogs, and respond to touch.
Chapter 5: Fragments - How to use fragments to create a user interface, navigate between fragments, and adjust the UI to different screen sizes.
Chapter 6: Working with Data
- How to save app data in shared preferences, fi les, and databases. How to create app settings and access web APIs.
Chapter 7: Running Background Tasks - How to start background threads to perform lengthy operations and keep the user interface thread responsive.
Chapter 8: Graphics, Animation, and Sound - How to create and display custom views, animate views, and play sounds.
Chapter 9: Censors, Camera, and Location - How to read data from motion sensors, take photos, and find and map the device's location.
Chapter 10: Testing - How to write unit, integration, and UI tests to verify an app works correctly.
Monday 18/7 / 09:00 – 13:00 Introduction:
Mobile app development, Android platforms
Android Studio, APKs, and emulators, The Pizza Party app
App resources, Value resources, Drawable resources
Debugging, App Manifest, Model-View-Controller (MVC)
Tuesday 19/7/ 09:00 – 13:00
Layouts and Widgets:
Linear, Relative, and Constraint layouts
Table, Grid, and Frame layouts
Widgets and event handling, Button widgets, Text widgets, Selection widgets, 'Bar' widgets, ImageView widge
Styles and themes, UI design New, Quiz
Wednesday 20/7/ 09:00 – 13:00
Activities and Intents:
Activity lifecycle, Restoring activity state
The Lights Out app, Handling rotations
Multiple activities and intents, Sending and receiving activity data
Implicit intents
Thursday 21/7/ 09:00 – 13:00
Menus, Dialogs, and Touch:
App Bar, The Dice Roller app
Dialogs, Context menus
Handling touch, Touch gestures
Fragments, Working with Data, Quiz
Friday 22/7/ 09:00 – 13:00
Fragments:
Fragment essentials, Lights Out with fragments
Navigation for Lights Out, The Band Database app
Fragment arguments, Fragment with RecyclerView
Hosting multiple fragments
Monday 25/7/ 09:00 – 13:00
Working with Data:
Shared preference, Working with files, The To-Do List app
SQLite, The Study Helper app
Adding, editing, and deleting questions, Adding and removing subjects
App settings, Web APIs and Volley, Room persistence library
Tuesday 26/7/ 09:00 – 13:00
Running Background Tasks:
Main and background threads
AsyncTask
Handlers and Loopers
Services and notifications
Wednesday 27/7/ 09:00 – 13:00
Graphics, Animation, and Sound:
Shape and custom drawables, Animation drawables and view animations
Property animations, Custom views
The Dotty app, Dotty animations
Playing sounds, SurfaceView
Thursday 28/7/ 09:00 – 13:00
Sensors, Camera, and Location:
Sensors overview, Motion sensors
The Rollerball app, Camera
The Photo Express app, Saving photos
Location and Google Play Services, The Find Me app
Friday 29/7/ 09:00 – 13:00
Testing:
Testing fundamentals, Unit tests and JUnit
Local and instrumented unit test
Integration tests and Espresso
UI tests
Group Projects Presentations
Group Projects Presentations
Instructional approaches to be used during the course: lectures, seminars, labworks, homeworks and group projects.
Required Course Materials
Students are encouraged to enter the code into Android Studio and run the apps on an emulator or Android device. Android Studio is a free IDE created by Google for developing Android apps. Android Studio runs on Windows, Mac, Linux, and Chrome OS. Android Studio includes emulators for a variety of phones and tablets.
This material is based on Android Studio version 4.2 and API level 30. The complete project and source files for the example apps will be provided to students by the instructor.
About Group Project
Group size is two. All group members will receive the same grade. If any student who appears to not be contributing in a group may be penalized. Each group member will be responsible for assigning tasks to its group.
Each group member is expected to cooperate with its groupmate through attending group meetings, completing your assignments on time. If there is a lack of activities by any group member, it must be brought to the instructor's attention as soon as it happens.
Grading:
Seminar 15 %
Homework 20%
Labwork 15%
Quiz 20%
Final Project 30%
Grading Scale:
A: 100%-93%; A-: 92.99%-90%;
B+: 89.99%-87%; B: 86.99%-83%; B-: 82.99%-80%;
C+: 79.99%-77%; C: 76.99%-73%; C-: 72.99%-70%;
D+: 69.99%-67%; D: 66.99%-63%; D-: 62.99%-60%;
F: 59.99%-0%.