powered by
Center for Curriculum and Transfer Articulation
Advanced Android Application Development
Course: CIS265DA

First Term: 2020 Fall
Lec + Lab   3.0 Credit(s)   4.0 Period(s)   4.0 Load  
Subject Type: Occupational
Load Formula: T- Lab Load


Description: Advanced Android device programming utilizing an Android Integrated Development Environment, and an Android-focused programming language such as Java or Kotlin, utilizing various advanced activity layouts, views, and intents. Covers advanced Object Oriented Programming (OOP) practices, local and cloud-based database backends, threading, incorporating device features and sensors, and unit testing.



MCCCD Official Course Competencies
1. Create apps that utilize advanced Android device components and features such as the camera, accelerometer, light sensor, and Global Positioning System (GPS). (I)
2. Create apps that incorporate Google Maps and device location. (II)
3. Design and build responsive apps with a flexible User Interface (UI) that utilize Fragments, ResponsiveLayouts, AdapterViews, and custom views. (III)
4. Create apps that utilize multiple Activities and pass data between Activities. (IV)
5. Create apps that incorporate advanced OOP structures such as abstract classes, generics, interfaces and dependency injection. (V)
6. Design and use backend database collections in Android apps, both locally and in the Cloud. (VI)
7. Build and perform unit tests, both locally on the development machine and instrumented using a device or emulator. (VII)
8. Create apps that incorporate advanced media including video, drawing shapes, and frame-by-frame animations using timers and sprite graphics. (VIII)
9. Create apps that incorporate Asynchronous tasks and perform tasks in the background. (IX)
10. Create an app that provides localization using resources. (X)
MCCCD Official Course Competencies must be coordinated with the content outline so that each major point in the outline serves one or more competencies. MCCCD faculty retains authority in determining the pedagogical approach, methodology, content sequencing, and assessment metrics for student work. Please see individual course syllabi for additional information, including specific course requirements.
 
MCCCD Official Course Outline
I. Advanced device components
   A. Camera
      1. Retrieving a photo
      2. Capturing a photo
   B. GPS location
   C. Accelerometer
   D. Light Sensor
   E. Other hardware specific sensors
II. Incorporating google maps
   A. Displaying location
   B. Zooming
   C. Showing multiple locations (pins)
   D. Choosing target location
   E. Getting directions
III. Responsive layouts / flexible UI
   A. ConstraintView
   B. Fragments
   C. AdapterView
   D. Custom views
IV. Multiple activities
   A. Adding activities
   B. Navigating between activities
   C. Passing data between activities
V. Advanced Object-Oriented Programming (OOP)
   A. Inheritance
   B. Abstract classes
   C. Generics
   D. Interfaces
   E. Dependency injection
VI. Developing and accessing data backends
   A. SQLite (local)
   B. JavaScript Object Notation (JSON) (local or cloud)
   C. Restful Services with MySQL (cloud)
   D. Firebase (cloud)
   E. Azure mobile app Software Development Kit (SDK)
VII. Unit testing
   A. Local
      1. JUnit
      2. Robolectric
      3.Espresso
   B. Instrumented unit tests
      1. AndroidX / AndroidJUnitRunner
      2. Creating a test class
      3. Creating a test suite
      4. Firebase test lab
VIII. Advanced media
   A. Video
      1. Playing video
      2. Capturing video
   B. Drawing shapes
   C. Frame-by-Frame animations
      1. Sprite graphics
      2. Timers
IX. Threading
   A. Async tasks
   B. Background tasking
X. Resources
   A. String
   B. Images
   C. Providing localization
 
MCCCD Governing Board Approval Date: December 10, 2019

All information published is subject to change without notice. Every effort has been made to ensure the accuracy of information presented, but based on the dynamic nature of the curricular process, course and program information is subject to change in order to reflect the most current information available.