Android App Development with Kotlin

Duration: 3 Months
Trainer(s): Surhid Amatya

1. Kotlin Basics

  • Basic Syntax
  • Idioms
  • Coding Conventions

Basics

  • Basic Types
  • Packages
  • Control Flow
  • Returns and Jumps

Classes and Objects

  • Classes and Inheritance
  • Properties and Fields
  • Interfaces
  • Visibility Modifiers
  • Extensions
  • Data Classes
  • Generics
  • Nested Classes
  • Enum Classes
  • Objects
  • Delegation
  • Delegated Properties

Functions and Lambdas

  • Functions
  • Lambdas
  • Inline Functions

Other

  • Destructuring Declarations
  • Collections
  • Ranges
  • Type Checks and Casts
  • This expressions
  • Equality
  • Operator overloading
  • Null Safety
  • Exceptions
  • Annotations
  • Reflection
  • Type-Safe Builders
  • Dynamic Type

Interop

  • Calling Java from Kotlin
  • Calling Kotlin from Java

Objectives : Knowing  Basics of Kotlin Language

2. Android Introduction

  • IDE and SDK
  • First App using Android Studio
  • Project Structure and resource directories
  • Activity and Fragment Lifecycle
  • Emulator vs real device
  • Android Manifest and Permissions/Runtime Permissions
  • Gradle
  • Intents (Explicit and Implicit)

Objectives:
Knowing  Basics of android and becoming familiar with Development IDE

3. UI Basics

  • Widgets
    a. TextView
    b. Button
    c. EditText
    d. Spinner
    e. CheckBox
    f. Radio Button
    g. ImageView
  • Layouts (ConstraintLayout, RelativeLayout, FrameLayout, LinearLayout, etc)
  • [dp, sp] versus px
  • Custom drawables
    a. Drawable
    b. Shape
    c. Selector
  • Using Font Icons — rem
  • Styles/Themes
  • Ripple Effect

Assignment :​
Create Login Form and User Identity form

Objectives :
One should be able to build an app (Putting all the knowledge together)

4. Alerts and Dialogs

  • Toast
  • Menu
  • Popup Menu
  • Alert Dialog
  • Custom Dialog

5. Navigation, Tabs, Fragments

  • Toolbars
  • Navigation Drawer
  • Tabs
  • Viewpager
  • Fragments
  • Dialog Fragment
  • Fragment Pager Adapter
  • Communication between Fragments

6. Recyclerview and Adapters

  • List and Hashmap
  • Recyclerview
  • GridView and Staggered View
  • ViewHolder
  • Adapters
  • DiffUtil
  • Nested Recyclerview

7. Concurrency

  • Thread /Runnable Handler – rem
  • AsyncTask With examples – rem
  • Service

8. Data Storage

  • Shared Preferences
  • File Storage
    a. Reading and Writing Sd card
  • Database : SQLite
    a. . SQLite Basics
  • Creating database
  • CRUD operation
  • Content Provider

Assignment: ​
Database Related Project.
Taking input from the Form and saving it to the database and display the information in Recyclerview.

Objectives:
Knowing use of Database.

9. Data Exchange format

  • Json/Xml
  • Parsing json using Retrofit
  • Multipart Uploads
  • Loading remote images using Glide Library.

Assignment:
Create an app using open source API.

10. Notifications

  • Broadcast Receivers
  • Services and notifications
  • Alarms

11. Some Advanced Topics (Brief)

  • Material design and its implementation
  • Permission Handling
  • Integrating external libraries
  • Location, Maps, GPS
  • How and what you need to publish App
  • Introduction to VCS (Github/bitbucket)

12. Final Project

  • Weather app using forecast.io
  • Movie app using imdb
  • Calculator App
  • FM Streaming App