This programme, developed in collaboration with Google, will prepare you to become a professional Android developer while also allowing you to build a diverse portfolio of projects to show potential employers. By the end of this programme, you will be able to build your own apps for the world's most popular mobile platform using Android development platform best practises, Android Studio, Android Jetpack, and Kotlin.
Course 1: Developing Android Apps, Part 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.
- Learn different kinds of views and resources
- Explore arranging elements with the Android Studio’s Layout Editor
- Connect views with data through data binding
- 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
Activity and 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
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
Project: Build a Shoe Store Inventory App
You will create an Android application using Kotlin in this project! You will create a multi-screen Android app and a navigation graph to guide the user through it. You will use fundamental Android development skills to create a development environment for an Android app, use the Layout Editor in Android Studio, and implement best practises for navigation and user interface in Android. You'll also use the ViewModel and LiveData lifecycle classes to follow recommended Android app architecture guidelines.
Course 2: Developing Android Apps, Part 2
- 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.
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
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
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 push- button navigation
Project: Build an Asteroid Radar App
You will create an app in this project by utilising a free, open source API provided by the NASA JPL Asteroid team. You will design an application that connects to the internet to retrieve and display live data, as well as a database to store and access user data over time. You will also learn how to use RecyclerView to create a clear and compelling user interface for displaying the data. Finally, you will test your app with Talkback enabled to ensure that it is as accessible to as many users as possible.
Course 3: Advanced Android Apps with Kotlin, Part 1
- Send messages to users using notifications
- Design and style notifications
- Add buttons and actions to notifications
- Send push messages using Firebase Cloud Messaging
Creating Custom Views
- Create custom views for your app
Drawing on Canvas Objects
- Build an app that allows users to paint directly on the screen
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
Android Property Animations
- Use animations to draw attention to important UI elements and beautiful designs
- Animate UI elements with property animations
Using Motion Layout to Animate Android Apps
- Use declarative XML with MotionLayout to coordinate animations across multiple views
Project: Design an App with Application Loading Status
In this project, you will create an Android app that will download a file from the internet, as well as notifications, custom views, and animations to build a status bar. You will be able to design and style notifications as well as create a notification to send messages to a user within an Android app. You'll also create custom views with canvas and paint, animate UI elements with property animations, and use MotionLayout to improve your app's user experience.
Course 4: Advanced Android Apps with Kotlin, Part 2
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
Virtual Treasure Hunt with Geofences
- Enable location services and tracking
- Learn how to test your app before distribution to avoid crashes or unpredictable behavior
Introduction to Test Doubles and 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
Survey of Advanced Testing Topics
- Implement end to end testing using navigation, coroutines, room and databinding.
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
Project 1: Build a Location Reminder App
You will create a To-Do List app that uses Google Maps and location services in this project. You'll learn how to incorporate Google Maps and style map views into your Android app, as well as how to enable location services and tracking. Your app will remind users to perform an action when they are in a specific location using location services and reminders.
Project 2: Capstone Project Design and Build an Android Application
You will have the opportunity to design and build either 1) a custom Android application inspired by your own idea or 2) a Political Preparedness application that will deliver civic data to end users via the app in this project. You'll use the knowledge you've gained throughout the Nanodegree to create an engaging user interface that incorporates data from RESTful interfaces and web APIs and makes use of mobile hardware to improve application functionality and provide an engaging user experience. You will be able to show off your skills as a result of this project. Android app architecture patterns that are recommended, delivering a application that is highly functional and scalable and makes full use of the Android operating system.