gujarat technological university ~°6~lrt …...(1) annexure-1 (lesson plan of the course) 1'...
TRANSCRIPT
![Page 1: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/1.jpg)
GUJARAT TECHNOLOGICAL UNIVERSITY (Established by Government of Gujarat under Gujarat Act No. : 20 of 2007)
~°6~lrt 2.!f...-a_tC-tl~hC-t ~~ct~2l (~°t~kt ~H_,l~1.l ~°t~lrt ~~R4ll ~lli_, : <0/ <00-9 ~l~l ~l{l{rt)
No: GTU/Academic/2020/ S02.5 Date: 13/07/2020 .-(S
CIRCULAR
Google's Developer Training Team has designed a course named "Android Development
with Kotlin". The course is online and will be of 40 hours (13 theory hours and 27 practical
hours). The aim of this course is to teach how to build Android apps in Kotlin language. Under
the 'Train to Trainer' sessions of this course, the faculty members will be trained in the
month of August-2020. One can find the lesson plan of this course in Annexure-1.
GTU has taken an initiative to provide this opportunity to the faculty members of its PG
Schools and affiliated colleges. There are no course fees, however given below are
·- prerequisite and resource specification,
1) Prerequisites: Participants taking the course must have Object oriented programming
experience ( eg Java, .NET etc).
2) Machine Hardware specifications required for this course:
Processor : i3 or Higher RAM : 8GB or higher Virtualization Technology - enabled
Operating System: Windows 10/ Macintosh/ Linux
Internet: Good Internet speed(recommended 10 Mbps at least)
Interested faculty members of GTU PG Schools and affiliated colleges can register themselves
at given below link on or before 17th July, 2020.
https://forms.gle/YWlkymt821CYvYp4A
Later on, further communication regarding the course will be done on faculty member's email
id.
Attachment:
(1) Annexure-1 (Lesson Plan of the course)
1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 ❖ Mantlw11 Award - 2009 ❖ GESl 1 Award -20 I I
❖ Digital Leaming WES - 20 I 1 Award ❖ Alil.tfS Intemationa/ Innovative Cniversity All'ard - 20 I J
Chandkheda : GTU _ca_mpus, Nr. Visa! Three Road, Chandkheda, Ahmedabad - 382 424. Gujarat, India Ph. : 079 - 23267521 /570
e-mail : [email protected] URL: www.gtu.ac.in
![Page 2: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/2.jpg)
Android Development with Kotlin Course:
Lesson Plan Last updated May 2020
By Lalit Singh Manral
Copyright Google LLC 2020
Android Development with Kotlin is an instructor-led course created by the Google Developers Training team.
Developers taking the course learn the basics of the Kotlin programming language, and core Android app
development concepts. They will build a variety of apps, starting with Hello World and working their way up to
apps that use a Room database and fetch data from the network.
Each lesson includes a slide deck with speaker notes for the lesson content, and one or more hands-on tutorial
exercises (also known as codelabs). As developers work through the exercises, they create apps to practice and
perfect the skills they're learning.
The course is offered as an in-person course at selected colleges, facilitated by college faculty. All instructors are
invited to use our materials to run their own courses, in accordance with the Apache 2 license used in the course.
The materials are also available online for self-study.
After completing this course, students may consider preparing for and taking the Kotlin version of the exam for the
Associate Android Developer certification.
Prerequisites
Android Development with Kotlin is intended for computer science and engineering undergraduates, who have
object-oriented programming experience (e.g., Java, .NET, etc.).
Total course hours
Lecture hours: 13, Codelab hours: 27
The total course takes approximately 40 hours to teach. The classroom portion consists of 13 lessons taught from
slide decks, 1 hour each, and 38 codelabs which in total take most students about 27 hours to complete. Each
codelab takes a different amount of time to complete and also depends on students' experience and work style. An
estimated time to complete is mentioned in this lesson plan.
Unit 1 – Get started with Kotlin
This unit covers installing IntelliJ IDEA, understanding project structure in Kotlin, and learning
![Page 3: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/3.jpg)
fundamentals of the Kotlin programming language, such as functions, classes and inheritance, interface,
lambdas, higher order functions, and extension functions.
First, you write a simple Hello World program. You go on to create additional programs to learn more
basic Kotlin concepts, such as operators, variables, and conditional statements. Then you start learning
about functions in Kotlin, followed by object-oriented concepts including classes, objects, and
inheritance. You also learn about extension functions in Kotlin.
Lecture hours: 3
Codelab hours: 4
Lesson 1. Getting Started & Kotlin Basics
This lesson covers:
- Introduction to Kotlin
- Benefits of using Kotlin
- Use Kotlin REPL to practice basic expressions
- Control flow statements in Kotlin
- Null safety with Kotlin
Lesson hours:
1 hour Lecture
1.5 hours Codelabs (2)
1.0: Getting Started & Kotlin Basics
1.1: Getting Started
Install IntelliJ IDEA and create Hello World program in Kotlin
Codelabs
1.1 IntelliJ IDE and Hello World
30 min
![Page 4: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/4.jpg)
1.2: Kotlin Basics
Learn about Kotlin REPL, operators, types, conditional statements, null safety,
arrays, lists and loops in Kotlin.
Codelabs
1.2 Kotlin Basics
60 min
Lesson 2. Functions
This lesson covers:
- Creating and calling functions with default and named arguments
- Writing concise and compact functions
- Passing functions as arguments to other functions
- Writing simple lambdas
Lesson hours:
1 hour Lecture
1 hours Codelabs (1)
2.1: Functions
Understand how to define functions in Kotlin.
Codelabs
2.1: Functions
60 min
![Page 5: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/5.jpg)
Lesson 3. Classes, Objects and Extensions
This lesson covers:
- Introduction to object-oriented programming in Kotlin
- Classes and objects in Kotlin
- Constructors
- Visibility modifiers
- Subclasses and inheritance
- Interfaces
- Data classes, Singleton class enums
- Pairs, triples and collections in Kotlin
- Extensions in Kotlin
Lesson hours:
1 hour Lecture
1.5 hours Codelabs (2)
3.1: Object-oriented programming
Learn about how to define classes, objects, constructors, visibility modifiers,
inheritance, abstract classes, interfaces, interface delegation, data classes, singleton
classes, and enums.
Codelabs
3.1: Object-oriented programming
60 min
3.2: Extensions
Overview of pairs, triples, collections, constants, and extensions in Kotlin.
Codelabs
3.2: Extensions
30 min
![Page 6: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/6.jpg)
Unit 2 – Introduction to Android
This unit covers installing Android Studio, understanding project structure, building your first app,
creating activities and fragments, user interfaces and layouts, creating navigation graphs, and navigating
between screens in an Android app.
First, you deploy a simple Hello World app. You go on to create an app with a single Activity, learn about
layouts, and then you create a multi-screen Trivia app using a navigational library. You also learn how to
use the AndroidX Library to provide backward-compatibility with earlier versions of the Android system
for your app.
Lecture hours: 3
Codelab hours: 7
Lesson 4. Build your first app
This lesson covers:
- Installing Android Studio
- Creating an Android app project
- Deploying the app to an emulator or a device
- Building an Android app that contains images and a click handler
- Modifying views within the layout of an app
- Adding libraries to module gradle file
Lesson hours:
1 hour Lecture
2 hours Codelabs (5)
4.0: Install Android Studio
Instructions for downloading and installing Android Studio
30 min
4.1: Get started
Understand the motivation for developing Android apps and the development
process for building Android apps.
Codelabs
4.1 P Get started
30 min
30 min
![Page 7: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/7.jpg)
4.2: Basic app anatomy
Learn how to add interactive UI elements to your app and understand the range of
UI elements available.
Codelabs
4.2 Basic app anatomy
4.3: Image resources and compatibility
Learn how to add images to your app and understand API levels and compatibility.
Codelabs
4.3: Image resources and compatibility
15 min
4.4: Learn to help yourself
Understand the ways that developers can learn for themselves.
Codelabs
4.4: Learn to help yourself
15 min
![Page 8: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/8.jpg)
Lesson 5. Layouts
This lesson covers:
- Creating layouts in Android Studio using XML and the Layout Editor
- Adding interactivity to your app
- Working with ConstraintLayout
- Data binding basics
Lesson hours:
1 hour Lecture
2.5 hours Codelabs (4)
5.1: LinearLayout using the Layout Editor
Understand Views, ViewGroups, and creating Views in an Activity using
LinearLayout.
Codelabs
5.1: LinearLayout using the Layout Editor
40 min
5.2: Add user interactivity
Learn about adding EditText, Buttons, styling views, and click listeners.
Codelabs
5.2: Add user interactivity
40 min
5.3: ConstraintLayout using the Layout Editor
Understand how to use ConstraintLayout.
Codelabs
5.3: ConstraintLayout using the Layout Editor
40 min
![Page 9: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/9.jpg)
5.4: Data Binding basics
Understand basic Data Binding concepts and apply them to your Android app.
Codelabs
5.4: Data Binding basics
30 min
Lesson 6. Navigation
This lesson covers:
- Creating Fragments
- Defining NavHostFragment, navigation graphs, navigational paths
- Functionality of Back and Up buttons
- Defining the options menu
- Creating a navigational drawer
- Using the Safe Args plugin and passing of arguments
- Starting an external Activity
Lesson hours:
1 hour Lecture
2.5 hours Codelabs (3)
6.1: Create a fragment
Learn about how to create a fragment in your Android Trivia starter app.
Codelabs
6.1: Create a fragment
15 min
6.2: Define navigation paths
Overview of Android Navigation component, Navigation graph, Back and Up
button, Options menu, and Navigation drawer.
Codelabs
6.2: Define navigation paths
90 min
![Page 10: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/10.jpg)
6.3: Start an external Activity
Learn how to use the Safe Args plugin and pass arguments between screens.
Codelabs
6.3: Start an external activity
45 min
Unit 3 – Android Application Architecture
This unit covers the lifecycles of Activity and Fragment through the Dessert Clicker app. Create a
Charades app to understand App Architecture within the UI layer. Build a Sleep Tracker app to learn
about the persistence layer of App Architecture, and use a RecyclerView to display the data. You also
learn how to connect to the Internet and display data in your app using RecyclerView. Then learn how to
implement a Repository and use WorkManager for background processing.
Lecture hours: 6
Codelab hours: 14
Lesson 7. Activity & Fragment Lifecycle
This lesson covers:
- Understanding Activity and Fragment Lifecycles
- Exploring logging options in your app
- Using the Android Lifecycle library
- Exploring configuration changes
Lesson hours:
1 hour Lecture
1 hour Codelabs (2)
7.1: Lifecycles and logging
Understand Activity and Fragment Lifecycles and logging lifecycles methods.
Codelabs
7.1: Lifecycles and logging
30 min
![Page 11: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/11.jpg)
7.2: Complex lifecycle situations
Learn to use Android Lifecycle library and handle configuration changes in your
app.
Codelabs
7.2: Complex lifecycle situations
30 min
Lesson 8. App Architecture (UI Layer)
This lesson covers:
- Using the recommended Android App Architecture
- Using the LifeCycle, ViewModel,and ViewModelFactory classes
- Adding LiveData and LiveData observers
- Adding Data Binding with ViewModel and LiveData
- Adding LiveData transformations
Lesson hours:
1 hour Lecture
2.5 hours Codelabs (4)
8.1: ViewModel and ViewModelFactory
Learn to use the ViewModel and ViewModelFactory classes in your Android app.
Codelabs
8.1: ViewModel and ViewModelFactory
45 min
8.2: LiveData and LiveData observers
Learn how to add LiveData and LiveData observers to your app.
Codelabs
8.2: LiveData and LiveData observers 45 min
8.3: Data binding with ViewModel and LiveData
Learn how to add data binding with ViewModel and LiveData classes.
40 min
![Page 12: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/12.jpg)
Codelabs
8.3: Data binding with ViewModel and LiveData
8.4: LiveData transformations
Learn how to use LiveData transformations in your Android app.
Codelabs
8.4: LiveData transformations
20 min
Lesson 9. App Architecture (Persistence)
This lesson covers:
- Overview of Room Persistence Library
- Introduction to coroutines
Lesson hours:
1 hour Lecture
2.5 hours Codelabs (3)
9.1: Create a Room database
Learn how to add a Room database to your Android app.
Codelabs
9.1: Create a Room database
60 min
9.2: Coroutines and Room
Learn how to implement coroutines with Room.
Codelabs
9.2: Coroutines and Room
50 min
![Page 13: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/13.jpg)
9.3: Use LiveData to control button states
Add control button visibility and a snackbar to your app.
Codelabs
9.3: Use LiveData to control button states
40 min
Lesson 10. Displaying Lists with RecyclerView
This lesson covers:
- Introduction to RecyclerView Fundamentals
- Implementing data binding with RecyclerView
- Using GridLayout with RecyclerView
- Interacting with RecyclerView items
- Adding headers in RecyclerView
Lesson hours:
1 hour Lecture
3 hours Codelabs (4)
10.1: RecyclerView fundamentals
Understand how to implement a RecyclerView in your Android app.
Codelabs
10.1: RecyclerView fundamentals
50 min
10.2: DiffUtil and Data Binding with RecyclerView
Learn how to use Data Binding with RecyclerView.
Codelabs
10.2: DiffUtil and Data Binding with RecyclerView 50 min
![Page 14: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/14.jpg)
10.3: GridLayout with RecyclerView
Use a GridLayout with RecyclerView.
Codelabs
10.3: GridLayout with RecyclerView
20 min
10.4: Interacting with RecyclerView items
Add interaction with items of RecyclerView.
Codelabs
10.4: Interacting with RecyclerView items
25 min
10.5: Headers in RecyclerView
Adding headers in the RecyclerView and coroutines in your app.
Codelabs
10.5: Headers in RecyclerView
35 min
Lesson 11. Connect to the Internet
This lesson covers:
- Connecting to a web service with the Retrofit library
- Parsing a JSON response with the Moshi library
- Using coroutines with Retrofit
- Loading and displaying images from the Internet
- Filtering data from the Internet
Lesson hours:
1 hour Lecture
3 hours Codelabs (3)
![Page 15: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/15.jpg)
11.1: Getting data from the internet
Learn about connecting to the internet using Retrofit and Moshi libraries, and using
coroutines with Retrofit.
Codelabs
7.1 Getting data from the internet
60 min
11.2: Loading and displaying images from the internet
Learn how to display images from the internet using RecyclerView.
Codelabs
11.2 Loading and displaying images from the internet
60 min
11.3: Filtering and detail views with internet data
Learn how to filter the results from the Internet and display on the detail page.
Codelabs
11.3: Filtering and detail views with internet data
60 min
Lesson 12. WorkManager for Background Processing
This lesson covers:
- Adding an offline cache and repository
- Implementing WorkManager
- Working with background workers and periodic WorkerRequest
Lesson hours:
1 hour Lecture
2 hours Codelabs (2)
12.1: Repository
Learn how to create an offline cache and a repository for your Android app.
![Page 16: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/16.jpg)
Codelabs
12.1: Repository
60 min
12.2: WorkManager
Learn how to use WorkManager in your DevByte Viewer app.
Codelabs
12.2: WorkManager
60 min
Unit 4 – App Design
This unit covers basic app design and guidelines, as well as styles, themes and Material Design.
Lecture hours: 1
Codelab hours: 2
Lesson 13. Designing for Everyone
This lesson covers:
- Introduction to basic app design
- Understanding Styles and Themes
- Implementing Material Design
- Designing for everyone
Lesson hours:
1 hour Slide Deck
2 hours Codelabs (3)
13.1: Styles and themes
Learn how to define your own styling and theme in a GDG Finder app.
Codelabs
13.1: Styles and themes
30 min
![Page 17: GUJARAT TECHNOLOGICAL UNIVERSITY ~°6~lrt …...(1) Annexure-1 (Lesson Plan of the course) 1' inner., of : /CT Enabled Unil'ersi(I' AH'ard £-India - 2009 Mantlw11 Award - 2009 GESl](https://reader034.vdocuments.mx/reader034/viewer/2022050120/5f5038b01f7c8302033d423f/html5/thumbnails/17.jpg)
13.2: Material Design, dimens, and colors
Learn how to implement Material Design, dimens, and color features in your app.
Codelabs
13.2: Material Design, dimens, and colors
45min
13.3: Design for everyone
Learn how to make your GDG Finder app more accessible.
Codelabs
13.3: Design for everyone
45 min