Nanodegree Program Syllabus
Android Kotlin Developer
I N D I V I D U A L L E A R N E R S
S C H O O L O F P R O G R A M M I N G A N D D E V E L O P M E N T
Android Kotlin Developer 2
A graduate of this program will be
able to:
•
Design engaging interfaces that implement modern Android components to effectively build compelling
features for the end user.
•
Incorporate remote data into an app by utilizing RESTful interfaces and web APIs.
•
Organize, store, retrieve, and display content on an Android device to provide users with a more
consistent, performant, and accessible experience, even while offline.
•
Integrate hardware capabilities such as location to provide users with mobile enriched features within an
Android app.
•
Architect an Android app using the established MVVM pattern for scalability and performance.
Learning Objectives
Overview
Built in collaboration with Google, this program will prepare learners to become professional Android developers, and allow
them to create a diverse portfolio of projects to show employers. By the end of this program learners will be able to use
Android development platform best practices, Android Studio, Android Jetpack, and Kotlin to build their own applications for
the world’s most used mobile platform.
Built in collaboration with:
Android Kotlin Developer 3
Program information
A well-prepared learners should:
•
Be comfortable with object-oriented programming and the Android platform.
•
Have experience navigating GitHub and be comfortable using a Modern IDE.
•
Be familiar with threads and concurrency, and with modular app architectures.
Learners need access to:
•
A personal computer that is capable of running Android Studio.
•
An Android device (helpful, but not necessary).
4 months at 10hrs/week*
Estimated Time
*The length of this program is an estimation of total hours the average student may take to complete all required
coursework, including lecture and project time. If you spend about 5-10 hours per week working through the program, you
should finish within the time provided. Actual hours may vary.
Prerequisites
Required Hardware/Software
Intermediate
Skill Level
Android Kotlin Developer 4
Course 1
Developing Android Apps, Part 1
Use common Android UI components to create a basic user interface, handle user input and Android lifecycle events, and
create dynamic and navigable interfaces using constraint-based layouts. Learners will also find out how to use the Gradle build
process to declare library dependencies and establish app parameters, and integrate app functionality with other apps or
components with Android.
Build a Shoe Store Inventory App
Build an Android app with Kotlin! Learners will build an Android app with multiple screens and create a
navigation graph to take the user through the app. They will use fundamental Android development skills to
set up a development environment for an Android app, use Android Studio’s layout editor, and implement
best practices for navigation and user interface in Android. Learners will also follow recommended Android
app architecture guidance with ViewModel and LiveData lifecycle classes.
Course Project
Lesson 1
Build Your First App
•
Explore the basics of Android, such as creating text, images, and interactive
buttons.
•
Set up the development environment and create a dice roller Android app.
•
Navigate the main map anatomy of an Android app.
Lesson 2
Layouts
•
Learn different kinds of views and resources.
•
Explore arranging elements with the Android Studio’s layout editor.
•
Connect views with data through data binding.
Android Kotlin Developer 5
Lesson 3
App Navigation
•
Learn how to build apps that contain multiple screens known as destinations.
•
Use Android Studio tools to create and visualize a map, or graph, of
destinations that show navigation paths in your app.
•
Learn the navigation patterns and user interface that Android users expect to
see, so that your app will be intuitive and familiar.
Lesson 4
Activity & Fragment Lifecycle
•
Learn all about the Android activity lifecycle.
•
Create a one-screen app called “Dessert Pusher.”
•
Debug common issues through an understanding of lifecycles.
Lesson 5
App Architecture (UI Layer)
•
Learn one way to structure an Android app and the benefits that come with
this design.
•
Learn about two classes in the lifecycle library: ViewModel and LiveData.
Developing Android Apps, Part 2
Learn how to implement data persistence in an app, display collections of data to users using RecyclerView, and use APIs to
connect to, store, and retrieve data. Learn best practices of material design to create a quality user experience and boost
accessibility to as many users as possible.
Course 2
Android Kotlin Developer 6
Build an Asteroid Radar App
Build an app using a free, open source API provided by the NASA JPL Asteroid team. Learners will create an
app that connects to the internet to retrieve and display live data, implement networking best practices to
fetch and display data and images, and create a database to store and access user data over time. They will
also learn to use RecyclerView to create a clear and compelling UI to display the data. Finally learners will
test their app with Talkback enabled and make their app more accessible for as many users as possible.
Course Project
Lesson 1
Recycler View
•
Implement the ViewHolder pattern to optimize performance when displaying
large sets of data with RecyclerView.
•
Display large collections of data in a user consumable and navigable format.
•
Optimize application performance when updating data collections that affect
the UI.
Lesson 2
Connect to the Internet
•
Build an application that connects to an internet server to retrieve and display
live data.
•
Simplify fetching data and images, to make sure the app reasonably conforms
to networking and image loading best practices.
Lesson 3
Behind the Scenes
•
Learn how to implement offline caching by building an app that lets users
watch DevByte videos.
•
Take an online-only app and transform it to work offline by adding offline
caching.
Android Kotlin Developer 7
Lesson 4
Designing for Everyone
•
Improve your app design to support multiple languages as well as support
multiple device sizes and orientations.
•
Learn how to make your app accessible for users who might need assistance
navigating, like supporting talkback and pushbutton navigation.
Advanced Android Apps with Kotlin, Part 1
Learn how to enhance your app’s functionality and drive user engagement using Android’s robust notification system, build
custom views, and use canvas drawing to allow for the update of a display based on user interactions. Learners will also be
able to create simple animations to enhance the presentation of content and overall usability of the app.
Course 3
Design an App with Application Loading Status
Create an Android app that will download a file from the internet and create notifications, custom views and
animations to build a status bar in the app. Learners will be able to create a notification to send messages
to a user within an Android app, and design and style the notifications. They will also build custom views
using canvas and paint, animate UI elements with property animations, and use MotionLayout to enhance
the user experience of the app.
Course Project
Android Kotlin Developer 8
Lesson 1
Using Notifications
•
Send messages to users using notifications.
•
Design and style notifications.
•
Add buttons and actions to notifications.
•
Send push messages using Firebase Cloud Messaging.
Lesson 2
Creating Custom Views
•
Create custom views for your app.
Lesson 3
Drawing on Canvas Objects
•
Build an app that allows users to paint directly on the screen.
Lesson 4
Clipping Canvas Objects
•
Create and display transformed and clipped regions to the screen.
•
Translate the origin of a drawing surface of a region.
•
Draw multiple shapes on a canvas.
Lesson 5
Android Property Animations
•
Use animations to draw attention to important UI elements and beautiful
designs.
•
Animate UI elements with property animations.
Lesson 6
Using Motion Layout to
Animate Android Apps
•
Use declarative XML with MotionLayout to coordinate animations across
multiple views.
Android Kotlin Developer 9
Advanced Android Apps with Kotlin, Part 2
Learn how to build an app with the location awareness and Google Maps. Find out best practices and techniques for testing
to enable quick scalability, while mitigating any negative effects. Lastly, learn to use Firebase for authentication and remote
storage.
Course 4
Build a Location Reminder App
Build a to-do list app that includes Google Maps and location services. Learn how to add Google Maps and
style map views in an Android application, and enable location services and tracking. With location services
and reminders, the app will remind users to perform an action when the user is at a specific location.
Design and Build an Android App
In this final project, learners will have the opportunity to design and build either a custom Android app
inspired by an original idea or a political preparedness app that will deliver civic data to end users via
the app. Learners will apply skills acquired throughout the program to design an engaging user interface
that incorporates data from RESTful interfaces and web APIs, and utilizes mobile hardware to enhance
app functionality and provide an engaging user experience. The project will allow learners to showcase
recommended Android app architecture patterns, delivering a highly functional and scalable app that takes
full advantage of the Android platform.
Course Project
Capstone Project
Android Kotlin Developer 10
Lesson 1
Wandering in Google Maps
with Kotlin
•
Add Google Maps functionality to an Android app.
•
Style Google Maps views in multiple ways in an Android app.
Lesson 2
Virtual Treasure Hunt with
Geofences
•
Enable location services and tracking.
Lesson 3
Testing: Basics
•
Learn how to test your app before distribution to avoid crashes or
unpredictable behavior.
Lesson 4
Introduction to Test Doubles
& Dependency Injection
•
Use test doubles and dependency injection to test an app.
•
Write tests with Espresso for UI testing.
•
Use Mockito to create an integration test.
Lesson 5
Survey of Advanced
Testing Topics
•
Implement end to end testing using navigation, coroutines, room, and
databinding.
Lesson 6
Implementing Login on
Android with FirebaseUI
•
Implement user login and identity management for your app using the
open-source library FirebaseUI.
•
Enable login and logout for your app’s users.
•
Control navigation in your app based on whether a user is logged in.
Android Kotlin Developer 11
|