gujarat technological university ~°6~lrt …...(1) annexure-1 (lesson plan of the course) 1'...

17
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 17 th 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 : 1nfo@gtu. ac .1n URL: www. gtu .ac .in

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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