SlideShare a Scribd company logo
Get Started with Android
Who we are
Toan Tran
Thuy Phan
Content
1. Android Development Introduction
2. Kotlin Crash Course
3. Android Development with Kotlin
4. Android Best Practices
Check-in Application
Specifications
● Show the list of check-in entries of the event.
● Allow users to add/edit/delete check-in entry.
● Add/Edit/Delete attendee with basic info(name, age, address, profession)
to each check-in entry. (TODO as your homework)
Get started with android DSC HCMUT
Kotlin Crash Course
What is Kotlin
A modern programming language that makes developers happier.
GDG Location
Kotlin Timeline
2016 2017 2018 2019 2020
GDG Location
Kotlin Timeline
2016 2017 2018 2019 2020
1.0
GDG Location
Kotlin Timeline
2016 2017 2018 2019 2020
1.0 Google I/O: Kotlin officially supported language for Android
GDG Location
Kotlin Timeline
2016 2017 2018 2019 2020
1.0
Google I/O: Kotlin officially supported language for Android
Google I/O: Android goes Kotlin-first
GDG Location
2016 2017 2018 2019 2020
1.0
Google I/O: Kotlin officially supported language for Android
Google I/O: Android goes Kotlin-first
Coroutines preferred
Kotlin Timeline
GDG Location
2016 2017 2018 2019 2020
1.0
Google I/O: Kotlin officially supported language for Android
Google I/O: Android goes Kotlin-first
Coroutines preferred
You are here
Kotlin Timeline
GDG Location
Why Kotlin?
Expressiveness Safety
Interoperability Structured
concurrency
class MainActivity : AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
...
fab.setOnClickListener { view ->
Snackbar.make(view,
"Hello ${name.capitalize()}",
Snackbar.LENGTH_LONG).show()
}
fab.backgroundTintList = backgroundTintList
}
}
Why Kotlin?
class MainActivity : AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
...
fab.setOnClickListener { view ->
Snackbar.make(view,
"Hello ${name.capitalize()}",
Snackbar.LENGTH_LONG).show()
}
fab.backgroundTintList = backgroundTintList
}
}
Nullability in the
type system
Why Kotlin?
class MainActivity : AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
...
fab.setOnClickListener { view ->
Snackbar.make(view,
"Hello ${name.capitalize()}",
Snackbar.LENGTH_LONG).show()
}
fab.backgroundTintList = backgroundTintList
}
}
Nullability in the
type system
Lambdas
Why Kotlin?
class MainActivity : AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
...
fab.setOnClickListener { view ->
Snackbar.make(view,
"Hello ${name.capitalize()}",
Snackbar.LENGTH_LONG).show()
}
fab.backgroundTintList = backgroundTintList
}
}
Nullability in the
type system
Lambdas
Extension
functions
Why Kotlin?
class MainActivity : AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
...
fab.setOnClickListener { view ->
Snackbar.make(view,
"Hello ${name.capitalize()}",
Snackbar.LENGTH_LONG).show()
}
fab.backgroundTintList = backgroundTintList
}
}
Nullability in the
type system
Lambdas
Template
expressions
Extension
functions
Why Kotlin?
class MainActivity : AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
...
fab.setOnClickListener { view ->
Snackbar.make(view,
"Hello ${name.capitalize()}",
Snackbar.LENGTH_LONG).show()
}
fab.backgroundTintList = backgroundTintList
}
}
Nullability in the
type system
Lambdas
Template
expressions
Extension
functions
Property access
syntax for getters
and setters
Why Kotlin?
Android Development with Kotlin
Room, LiveData, ViewModel
Android Best Practices
MV* patterns
MV* patterns for presentation layer.
○ Refactoring Activity/Fragment into MVI pattern.
○ Link to use-case
Manage Dependencies with DI
● Manage Dependency with Dependency Injection.
○ Introduction to DI with manual Injection.
○ Moving to Dagger2 for managing dependency
injection (advanced - optional)
Git usage on a daily basis
1. Git configuration and convention to manage changes
and feature integration.
a. Convention of git branch/ branch naming/ Pull
Request.
b. Code Review and approval.
Resources
Android
● https://developer.android.com/guide/components/fundamentals
● https://developer.android.com/courses/fundamentals-training/overview-
v2
Kotlin
● https://kotlinlang.org/
Contact - Toàn
https://www.linkedin.com/in/toan-tran-988a2616b/
Contact - Thủy
https://www.linkedin.com/in/yoyocoder/

More Related Content

PPTX
Hello to Kotlin
PPTX
GDG Kuwait - Modern android development
PPTX
Why kotlininandroid
PPTX
Exploring Kotlin language basics for Android App development
PDF
Compose Camp session 2.pptx.pdf
PPTX
Introduction to kotlin
PDF
Kotlin for Android - Vali Iorgu - mRready
PDF
Android 101 - Kotlin ( Future of Android Development)
Hello to Kotlin
GDG Kuwait - Modern android development
Why kotlininandroid
Exploring Kotlin language basics for Android App development
Compose Camp session 2.pptx.pdf
Introduction to kotlin
Kotlin for Android - Vali Iorgu - mRready
Android 101 - Kotlin ( Future of Android Development)

Similar to Get started with android DSC HCMUT (20)

PDF
Lightning talk: Kotlin
PPTX
Android & Kotlin - The code awakens #03
PDF
Summer of Tech 2017 - Kotlin/Android bootcamp
PDF
Google DSC Android Study Jams Session 1
PPTX
Building Mobile Apps with Android
PDF
Having Fun with Kotlin Android - DILo Surabaya
PDF
Why Kotlin is your next language?
PDF
Exploring Koltin on Android
PPTX
MOOC_PRESENTATION_KOTLIN[1].pptx
PPTX
moocs_ppt.pptx
PPTX
Kotlin: lo Swift di Android (2015)
PPTX
Kotlin - lo Swift di Android
PDF
What's in Kotlin for us - Alexandre Greschon, MyHeritage
PPTX
Kotlin for android 2019
PDF
Save time with kotlin in android development
PPTX
Improve your Android-Fu with Kotlin
PPTX
Introduction to Koltin for Android Part I
PDF
Android 101 - Building a simple app with Kotlin in 90 minutes
PDF
Kotlin a problem solver - gdd extended pune
PDF
Practical tips for building apps with kotlin
Lightning talk: Kotlin
Android & Kotlin - The code awakens #03
Summer of Tech 2017 - Kotlin/Android bootcamp
Google DSC Android Study Jams Session 1
Building Mobile Apps with Android
Having Fun with Kotlin Android - DILo Surabaya
Why Kotlin is your next language?
Exploring Koltin on Android
MOOC_PRESENTATION_KOTLIN[1].pptx
moocs_ppt.pptx
Kotlin: lo Swift di Android (2015)
Kotlin - lo Swift di Android
What's in Kotlin for us - Alexandre Greschon, MyHeritage
Kotlin for android 2019
Save time with kotlin in android development
Improve your Android-Fu with Kotlin
Introduction to Koltin for Android Part I
Android 101 - Building a simple app with Kotlin in 90 minutes
Kotlin a problem solver - gdd extended pune
Practical tips for building apps with kotlin
Ad

Recently uploaded (20)

PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
history of c programming in notes for students .pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
ai tools demonstartion for schools and inter college
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administraation Chapter 3
PDF
Digital Strategies for Manufacturing Companies
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Essential Infomation Tech presentation.pptx
CHAPTER 2 - PM Management and IT Context
history of c programming in notes for students .pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
ai tools demonstartion for schools and inter college
How to Choose the Right IT Partner for Your Business in Malaysia
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PTS Company Brochure 2025 (1).pdf.......
2025 Textile ERP Trends: SAP, Odoo & Oracle
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administraation Chapter 3
Digital Strategies for Manufacturing Companies
Reimagine Home Health with the Power of Agentic AI​
Understanding Forklifts - TECH EHS Solution
Wondershare Filmora 15 Crack With Activation Key [2025
Essential Infomation Tech presentation.pptx
Ad

Get started with android DSC HCMUT