Course Description

Welcome to the Android Kotlin course. This course provides a series of codelabs that lead you through the fundamentals of building Android apps using Kotlin.

Course Objective

• Lesson One -
   Explore the basics of Android, such as creating text, images, and interactive buttons
   Set up the development environment and create a Android app
   Navigate the Main Map Anatomy of an Android app
• Layout And Data Binding -
   Learn different kinds of views and resources
   Explore arranging elements with the Android Studio's Layout Editor
   Connect views with data through data binding
• App Navigation & Navigation Library -
   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.
   Learn the navigation patterns and user interface that Android users expect to see.
• 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
• 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
• App Architecture (Data Layer) -
   Build a Sleep Quality Tracker app and use a database to store the data over time
   Use SQLite to manage your database (Room Library)
• RecyclerView -
   Use RecyclerView to make significant improvements in the UI of your app
• 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 (View Model, Live Data, Repository Design Pattern) -
   Learn how to implement offline caching by building an app
   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


• Notifications
   Send messages to users using notifications
   Design and style notifications
   Add buttons and actions to notifications
   Send push messages using Firebase Cloud Messaging
• Advanced Graphics
   Create custom views for your app
   Create and display transformed and clipped regions to the screen
   Build an app that allows users to paint directly on the screen
• Animation
   Use animations to draw attention to important UI elements and beautiful designs
   Animate UI elements with property animations
   Use declarative XML with MotionLayout to coordinate animations across multiple views
• Geo
   Add Google Maps to your Android apps
   Style maps to fit your design
   Enable location services and tracking
• Testing
   Learn how to test your app before distribution to avoid crashes or unpredicatable behavior
   Write and run tests for Android, including AndroidX Test
   Test your whole app: UI, data, and code using coroutines, Room, Espresso, and data binding
• Login
   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