SlideShare a Scribd company logo
This work is licensed under the Apache 2.0 License
What are Android Study Jams?
Android Study Jams are community-organized study groups
for people to learn how to build Android apps
using an online training course*
* Note: One session will utilize Kotlin
Koans material
This work is licensed under the Apache 2.0 License
New to Programming Track
Pre-requisites
Android Basics in Kotlin Course (here) with six
pathways currently available! More to come.
Learn the basics of building Android apps with the
Kotlin programming language and develop a collection
of simple apps to start your journey as an Android
developer!
● Basic computer
literacy
● Basic math skills
Curriculum used
This work is licensed under the Apache 2.0 License
What will you learn?
2
3
4
1 Introduction to
Kotlin
Create your
first Android
app
Build a basic layout
Add a button to an
app
(3 hours)
(1 hour)
(1 hour)
(1 hour)
Learn to code in Kotlin, a modern
programming language that helps
developers be more productive.
Learn to create and run your first
Android app in Android Studio.
Learn the basics of layouts in Android by
creating your very own birthday card app!
Learn how to use classes, objects, and
conditionals to create an interactive dice
roller app.
Badges
Earn badges
at the end of
each
pathway!
New to Programming Track
This work is licensed under the Apache 2.0 License
What will you learn?
6
5 Get user input
Display a
scrollable list
(3 hours)
(3 hours)
Learn how to get user input within an app
by building a tip calculator app.
Learn how to display a list of text
and images in an app.
Badges
More pathways for this course will be released in the
future!
New to Programming Track
This work is licensed under the Apache 2.0 License
First learn the essentials of the Kotlin programming language. Then learn the
fundamentals of Android development and best practices by building a variety
of Android apps in Kotlin.
Start off with Kotlin Koans exercises to become familiar with Kotlin syntax and
language features. If attendees are already familiar with the Kotlin programming
language, they can skip this step. Then begin the Android Kotlin Fundamentals
course which has ten pathways available.
Pre-requisites
● Prior programming experience in an object-oriented programming
language
● Familiar with how to use an IDE
● Familiar with GitHub
Curriculum used
● Kotlin Koans (here)
● Android Kotlin Fundamentals
(here)
Prior Programming Experience Track
This work is licensed under the Apache 2.0 License
1
2
3
What will you learn?
Kotlin Koans (2 hours)
Go through a series of exercises to
become familiar with basic Kotlin
language features.
Build your first
app
Install and set up Android Studio, so you
build your first "Hello, World!" Android
app in Kotlin.
(0.5
hours)
Layouts
Create different types of layouts, add
user interactivity, and use data binding
while creating two apps.
(1 hours)
Build an
interactive app
Learn the basic anatomy of an Android app
project, how to add images to your app, and
how to enable backward compatibility of an
app while creating a Dice Roller app.
(1 hours)
(No badge
for pre-
work)
Badges
Earn
badges
at the end
of each
pathway!
Prior Programming Experience
Track
Pre-
Work
This work is licensed under the Apache 2.0 License
4
5
6
7
What will you learn?
Navigation (3 hours)
Learn how multi-screen navigation works by
creating a fragment, define navigation paths,
and start an external activity through
developing a trivia app.
Activity and
Fragment
lifecycles
Learn about Activity and Fragment lifecycles,
how to handle complex lifecycle situations, and
use logging to help debug and track the state of
the app by creating the Dessert Clicker app that
will preserve its state on rotation.
(2 hours)
Architecture
components
Learn about ViewModel, LiveData, data binding
with ViewModel and LiveData, and LiveData
transformations by completing a charades game
app.
(3 hours)
Databases and
RecyclerView
Create a database using the Room library, use
coroutines to simplify asynchronous programming,
and display a list with RecyclerView in the
TrackMySleep app.
(4 hours)
Badges
Prior Programming Experience
Track
This work is licensed under the Apache 2.0 License
8
9
10
What will you learn?
Connect to the
internet
(2 hours)
Learn how to get data and images from the
internet and display them in the app by
developing a MarsRealEstate app.
Repository and
WorkManager
Create a repository, add an offline cache,
and schedule background tasks with
WorkManager by completing an app called
DevBytes, handling background processes
with best practices.
(2 hours)
Design for
everyone
Learn the basics of Android's styling
system, how to apply Material Design
principles to the UI of your app, and how
to make your app more accessible for all
users by creating a Google Developer
Groups Finder app.
(2 hours)
Prior Programming Experience
Track
Badges
This work is licensed under the Apache 2.0 License
Learning Objectives
० Learn the essentials of the Kotlin programming language
० Build a variety of Android apps
० Best practices for Android development
० Discover resources to continue learning
This work is licensed under the Apache 2.0 License
What’s your favorite programming
language and why?
This work is licensed under the Apache 2.0 License
Feature Highlight
No more nulls. The big
difference between
Kotlin and Java
This work is licensed under the Apache 2.0 License
Null Safety is here to stay
• Tony Hoare, who famously developed
the Quick Sort algorithm regards the
null reference as a ‘billion dollar
mistake’
• Kotlin partially does away with the null
reference by introducing a type system
that differentiates between nullable and
non-nullable references. For example:
This work is licensed under the Apache 2.0 License
Concept Overview
What is Kotlin?
This work is licensed under the Apache 2.0 License
Kotlin is a modern programming language that
helps developers be more productive.
This work is licensed under the Apache 2.0 License
Android Development is Kotlin-First
This work is licensed under the Apache 2.0 License
Let’s dive into
some code..
This work is licensed under the Apache 2.0 License
fun main() {
println("Hello world!")
}
What does this code
do?
This work is licensed under the Apache 2.0 License
fun main() {
println("Hello world!")
}
What does this code
do?
>>> Hello world!
This work is licensed under the Apache 2.0 License
fun main() {
println("Hello world!")
}
What do you notice about
Kotlin?
This work is licensed under the Apache 2.0 License
fun add(a: Int, b: Int): Int {
return a + b
}
fun display(): Unit {
println("Welcome")
}
Parameters and Return Type
This work is licensed under the Apache 2.0 License
mutable variable var counter: Int = 5
val name: String = "Rebecca"
immutable variable
This work is licensed under the Apache 2.0 License
var length = 5
val message = "Welcome"
What’s interesting about
these variable
declarations?
This work is licensed under the Apache 2.0 License
if (score < 20) {
println("Low")
} else if (score < 70) {
println("Medium")
} else {
println("High")
}
when (x) {
0 -> endGame()
1 -> moveNext()
2 -> skipTurn()
}
This work is licensed under the Apache 2.0 License
side
// This is the Square class
// definition
class Square(val side: Int)
// This is a Square instance
val s = Square(10)
println(s.side)
Classes
This work is licensed under the Apache 2.0 License
val numList = listOf(1, 2, 3)
val numSet = setOf(4, 5, 6)
val numMap = mapOf("a" to 10, "b" to 20, "b" to 30)
Collections
This work is licensed under the Apache 2.0 License
Break
This work is licensed under the Apache 2.0 License
Let’s get started
This work is licensed under the Apache 2.0 License
Start here:
g.co/android/studyjams
Collect your first
badge!
This work is licensed under the Apache 2.0 License
Carrie Sawyer
Build Your First
App Pathway
Build an Interactive
App
Layouts Pathway
Create a Developer
Profile
This work is licensed under the Apache 2.0 License
New to Programming
track
Start Course
This work is licensed under the Apache 2.0 License
New to programming? Start Here
Go to g.co/android/studyjams
Start Android Basics in Kotlin Course
Work on Unit 1, Pathway 1
This work is licensed under the Apache 2.0 License
Prior Programming
Experience track:
Start Kotlin Koans
This work is licensed under the Apache 2.0 License
Exercises
Check Error
Messages
Run Code &
Check
Output
Re-read
Instructi
ons
Show
Answers
Introduction, Conventions,
Collections
Go to g.co/android/studyjams and start Kotlin Koans
Coders: Start Here
This work is licensed under the Apache 2.0 License
Thanks!
This work is licensed under the Apache 2.0 License
Share what you’ve
learned with
#AndroidStudyJams
This work is licensed under the Apache 2.0 License
Additional Resources
Online curriculum
● Android Basics in Kotlin
Course
● Android Kotlin Fundamentals
Course
Android Resources
● Official Android Developers website
● Android Developers YouTube channel
● Android Developers Twitter
● Android Developers Medium blog
● Android Developers Official blog
● Android Developers Newsletter
● Android Codelabs
● Android GitHub page
Kotlin Language Resources
● Official Kotlin Language website
● Kotlin Learn by Example
● Kotlin Vocabulary series
Version
1.0
This work is licensed under the Apache 2.0 License
Let’s Play!
To find slides, content, links and more relating to
Android Study Jams visit the repo 👉
github.com/beauwilliams/Android-Study-Jams

More Related Content

What's hot

IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
Christopher Judd
 
TensorFlow - La IA detrás de Google
TensorFlow - La IA detrás de GoogleTensorFlow - La IA detrás de Google
TensorFlow - La IA detrás de Google
Israel Blancas
 
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile PoetsMobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
MobileFest2018
 
Google I/O 2018 Extended, Baghdad - Flutter
Google I/O 2018 Extended, Baghdad  - FlutterGoogle I/O 2018 Extended, Baghdad  - Flutter
Google I/O 2018 Extended, Baghdad - Flutter
AbdElmomenKadhim
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
Kumaresh Chandra Baruri
 
Flutter festival Info session -2022
Flutter festival Info session -2022Flutter festival Info session -2022
Flutter festival Info session -2022
Apoorv Pandey
 
Flutter vs React Native 2019
Flutter vs React Native 2019Flutter vs React Native 2019
Flutter vs React Native 2019
Rockers Technology
 
TensorFlow Lite for mobile & IoT
TensorFlow Lite for mobile & IoT   TensorFlow Lite for mobile & IoT
TensorFlow Lite for mobile & IoT
Mia Chang
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
Steven Cooper
 
Choose flutter
Choose flutterChoose flutter
Choose flutter
SamuelAdetunji2
 
Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
Vladimir Parfenov
 
Flutter101
Flutter101Flutter101
Flutter101
인수 장
 
Flutter festival - Write your first Flutter application
Flutter festival - Write your first Flutter applicationFlutter festival - Write your first Flutter application
Flutter festival - Write your first Flutter application
Apoorv Pandey
 
Mobile Devolpment Slides
Mobile Devolpment SlidesMobile Devolpment Slides
Mobile Devolpment Slides
Luke Angel
 
What is flutter and why should i care?
What is flutter and why should i care?What is flutter and why should i care?
What is flutter and why should i care?
Sergi Martínez
 
Flutter - DevFestDC
Flutter - DevFestDCFlutter - DevFestDC
Flutter - DevFestDC
Michael R. Traverso
 
Flutter
Flutter Flutter
Flutter
Mohit Nainwal
 
T2 Web Framework
T2 Web FrameworkT2 Web Framework
T2 Web Framework
Shinpei Ohtani
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
RobertLe30
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React Native
Korhan Bircan
 

What's hot (20)

IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
TensorFlow - La IA detrás de Google
TensorFlow - La IA detrás de GoogleTensorFlow - La IA detrás de Google
TensorFlow - La IA detrás de Google
 
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile PoetsMobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
 
Google I/O 2018 Extended, Baghdad - Flutter
Google I/O 2018 Extended, Baghdad  - FlutterGoogle I/O 2018 Extended, Baghdad  - Flutter
Google I/O 2018 Extended, Baghdad - Flutter
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
 
Flutter festival Info session -2022
Flutter festival Info session -2022Flutter festival Info session -2022
Flutter festival Info session -2022
 
Flutter vs React Native 2019
Flutter vs React Native 2019Flutter vs React Native 2019
Flutter vs React Native 2019
 
TensorFlow Lite for mobile & IoT
TensorFlow Lite for mobile & IoT   TensorFlow Lite for mobile & IoT
TensorFlow Lite for mobile & IoT
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
 
Choose flutter
Choose flutterChoose flutter
Choose flutter
 
Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
 
Flutter101
Flutter101Flutter101
Flutter101
 
Flutter festival - Write your first Flutter application
Flutter festival - Write your first Flutter applicationFlutter festival - Write your first Flutter application
Flutter festival - Write your first Flutter application
 
Mobile Devolpment Slides
Mobile Devolpment SlidesMobile Devolpment Slides
Mobile Devolpment Slides
 
What is flutter and why should i care?
What is flutter and why should i care?What is flutter and why should i care?
What is flutter and why should i care?
 
Flutter - DevFestDC
Flutter - DevFestDCFlutter - DevFestDC
Flutter - DevFestDC
 
Flutter
Flutter Flutter
Flutter
 
T2 Web Framework
T2 Web FrameworkT2 Web Framework
T2 Web Framework
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React Native
 

Similar to Google DSC Android Study Jams Session 1

Info session on android study jams
Info session on android study jamsInfo session on android study jams
Info session on android study jams
ArjavDesai3
 
Intro session kotlin
Intro session kotlinIntro session kotlin
Intro session kotlin
MohammedMehdiPatel
 
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENMAndroid Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
GDSCBVCOENM
 
Vit bhopal android study jams 2.0 session 1
Vit bhopal android study jams 2.0 session 1Vit bhopal android study jams 2.0 session 1
Vit bhopal android study jams 2.0 session 1
ishik1
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info Session
AITIKDANDAPAT
 
Compose Camp 1.pdf
Compose Camp 1.pdfCompose Camp 1.pdf
Compose Camp 1.pdf
AbhishekS325285
 
Compose Camp 1.pdf
Compose Camp 1.pdfCompose Camp 1.pdf
Compose Camp 1.pdf
AbhishekS325285
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
NancyMariaAS
 
Android study jam iiitv kick-off sesson
Android study jam iiitv   kick-off sessonAndroid study jam iiitv   kick-off sesson
Android study jam iiitv kick-off sesson
AshutoshSingh1124
 
Final session 1
Final session 1Final session 1
Final session 1
IpsitaSanyal1
 
Android study jams info session 2021 new GDSC GECBSP
Android study jams info session 2021 new GDSC GECBSPAndroid study jams info session 2021 new GDSC GECBSP
Android study jams info session 2021 new GDSC GECBSP
Domendra Sahu
 
GDSC - IIITB: Android Study Jams - Introductory Session
GDSC - IIITB: Android Study Jams - Introductory SessionGDSC - IIITB: Android Study Jams - Introductory Session
GDSC - IIITB: Android Study Jams - Introductory Session
Shreytripathi6
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
DSCBVRITH
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
DSCBVRITH
 
Android Study Jams Session 01
Android Study Jams Session 01Android Study Jams Session 01
Android Study Jams Session 01
DSC BIT Mesra
 
Gdsc android introduction
Gdsc android introductionGdsc android introduction
Gdsc android introduction
ShambhaviGupta14
 
ASJ intro session
ASJ intro sessionASJ intro session
ASJ intro session
SEJALGUPTA44
 
GDSC Info session and Compose Camp.pptx
GDSC Info session and Compose Camp.pptxGDSC Info session and Compose Camp.pptx
GDSC Info session and Compose Camp.pptx
AbraarAhmadKhan
 
The First Ever Android Meet-up
The First Ever Android Meet-upThe First Ever Android Meet-up
The First Ever Android Meet-up
vriddhigupta
 
Week 1 - Android Study Jams
Week 1 - Android Study JamsWeek 1 - Android Study Jams
Week 1 - Android Study Jams
JoannaCamille2
 

Similar to Google DSC Android Study Jams Session 1 (20)

Info session on android study jams
Info session on android study jamsInfo session on android study jams
Info session on android study jams
 
Intro session kotlin
Intro session kotlinIntro session kotlin
Intro session kotlin
 
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENMAndroid Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
 
Vit bhopal android study jams 2.0 session 1
Vit bhopal android study jams 2.0 session 1Vit bhopal android study jams 2.0 session 1
Vit bhopal android study jams 2.0 session 1
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info Session
 
Compose Camp 1.pdf
Compose Camp 1.pdfCompose Camp 1.pdf
Compose Camp 1.pdf
 
Compose Camp 1.pdf
Compose Camp 1.pdfCompose Camp 1.pdf
Compose Camp 1.pdf
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
 
Android study jam iiitv kick-off sesson
Android study jam iiitv   kick-off sessonAndroid study jam iiitv   kick-off sesson
Android study jam iiitv kick-off sesson
 
Final session 1
Final session 1Final session 1
Final session 1
 
Android study jams info session 2021 new GDSC GECBSP
Android study jams info session 2021 new GDSC GECBSPAndroid study jams info session 2021 new GDSC GECBSP
Android study jams info session 2021 new GDSC GECBSP
 
GDSC - IIITB: Android Study Jams - Introductory Session
GDSC - IIITB: Android Study Jams - Introductory SessionGDSC - IIITB: Android Study Jams - Introductory Session
GDSC - IIITB: Android Study Jams - Introductory Session
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
 
Android Study Jams Session 01
Android Study Jams Session 01Android Study Jams Session 01
Android Study Jams Session 01
 
Gdsc android introduction
Gdsc android introductionGdsc android introduction
Gdsc android introduction
 
ASJ intro session
ASJ intro sessionASJ intro session
ASJ intro session
 
GDSC Info session and Compose Camp.pptx
GDSC Info session and Compose Camp.pptxGDSC Info session and Compose Camp.pptx
GDSC Info session and Compose Camp.pptx
 
The First Ever Android Meet-up
The First Ever Android Meet-upThe First Ever Android Meet-up
The First Ever Android Meet-up
 
Week 1 - Android Study Jams
Week 1 - Android Study JamsWeek 1 - Android Study Jams
Week 1 - Android Study Jams
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

Google DSC Android Study Jams Session 1

  • 1. This work is licensed under the Apache 2.0 License What are Android Study Jams? Android Study Jams are community-organized study groups for people to learn how to build Android apps using an online training course* * Note: One session will utilize Kotlin Koans material
  • 2. This work is licensed under the Apache 2.0 License New to Programming Track Pre-requisites Android Basics in Kotlin Course (here) with six pathways currently available! More to come. Learn the basics of building Android apps with the Kotlin programming language and develop a collection of simple apps to start your journey as an Android developer! ● Basic computer literacy ● Basic math skills Curriculum used
  • 3. This work is licensed under the Apache 2.0 License What will you learn? 2 3 4 1 Introduction to Kotlin Create your first Android app Build a basic layout Add a button to an app (3 hours) (1 hour) (1 hour) (1 hour) Learn to code in Kotlin, a modern programming language that helps developers be more productive. Learn to create and run your first Android app in Android Studio. Learn the basics of layouts in Android by creating your very own birthday card app! Learn how to use classes, objects, and conditionals to create an interactive dice roller app. Badges Earn badges at the end of each pathway! New to Programming Track
  • 4. This work is licensed under the Apache 2.0 License What will you learn? 6 5 Get user input Display a scrollable list (3 hours) (3 hours) Learn how to get user input within an app by building a tip calculator app. Learn how to display a list of text and images in an app. Badges More pathways for this course will be released in the future! New to Programming Track
  • 5. This work is licensed under the Apache 2.0 License First learn the essentials of the Kotlin programming language. Then learn the fundamentals of Android development and best practices by building a variety of Android apps in Kotlin. Start off with Kotlin Koans exercises to become familiar with Kotlin syntax and language features. If attendees are already familiar with the Kotlin programming language, they can skip this step. Then begin the Android Kotlin Fundamentals course which has ten pathways available. Pre-requisites ● Prior programming experience in an object-oriented programming language ● Familiar with how to use an IDE ● Familiar with GitHub Curriculum used ● Kotlin Koans (here) ● Android Kotlin Fundamentals (here) Prior Programming Experience Track
  • 6. This work is licensed under the Apache 2.0 License 1 2 3 What will you learn? Kotlin Koans (2 hours) Go through a series of exercises to become familiar with basic Kotlin language features. Build your first app Install and set up Android Studio, so you build your first "Hello, World!" Android app in Kotlin. (0.5 hours) Layouts Create different types of layouts, add user interactivity, and use data binding while creating two apps. (1 hours) Build an interactive app Learn the basic anatomy of an Android app project, how to add images to your app, and how to enable backward compatibility of an app while creating a Dice Roller app. (1 hours) (No badge for pre- work) Badges Earn badges at the end of each pathway! Prior Programming Experience Track Pre- Work
  • 7. This work is licensed under the Apache 2.0 License 4 5 6 7 What will you learn? Navigation (3 hours) Learn how multi-screen navigation works by creating a fragment, define navigation paths, and start an external activity through developing a trivia app. Activity and Fragment lifecycles Learn about Activity and Fragment lifecycles, how to handle complex lifecycle situations, and use logging to help debug and track the state of the app by creating the Dessert Clicker app that will preserve its state on rotation. (2 hours) Architecture components Learn about ViewModel, LiveData, data binding with ViewModel and LiveData, and LiveData transformations by completing a charades game app. (3 hours) Databases and RecyclerView Create a database using the Room library, use coroutines to simplify asynchronous programming, and display a list with RecyclerView in the TrackMySleep app. (4 hours) Badges Prior Programming Experience Track
  • 8. This work is licensed under the Apache 2.0 License 8 9 10 What will you learn? Connect to the internet (2 hours) Learn how to get data and images from the internet and display them in the app by developing a MarsRealEstate app. Repository and WorkManager Create a repository, add an offline cache, and schedule background tasks with WorkManager by completing an app called DevBytes, handling background processes with best practices. (2 hours) Design for everyone Learn the basics of Android's styling system, how to apply Material Design principles to the UI of your app, and how to make your app more accessible for all users by creating a Google Developer Groups Finder app. (2 hours) Prior Programming Experience Track Badges
  • 9. This work is licensed under the Apache 2.0 License Learning Objectives ० Learn the essentials of the Kotlin programming language ० Build a variety of Android apps ० Best practices for Android development ० Discover resources to continue learning
  • 10. This work is licensed under the Apache 2.0 License What’s your favorite programming language and why?
  • 11. This work is licensed under the Apache 2.0 License Feature Highlight No more nulls. The big difference between Kotlin and Java
  • 12. This work is licensed under the Apache 2.0 License Null Safety is here to stay • Tony Hoare, who famously developed the Quick Sort algorithm regards the null reference as a ‘billion dollar mistake’ • Kotlin partially does away with the null reference by introducing a type system that differentiates between nullable and non-nullable references. For example:
  • 13. This work is licensed under the Apache 2.0 License Concept Overview What is Kotlin?
  • 14. This work is licensed under the Apache 2.0 License Kotlin is a modern programming language that helps developers be more productive.
  • 15. This work is licensed under the Apache 2.0 License Android Development is Kotlin-First
  • 16. This work is licensed under the Apache 2.0 License Let’s dive into some code..
  • 17. This work is licensed under the Apache 2.0 License fun main() { println("Hello world!") } What does this code do?
  • 18. This work is licensed under the Apache 2.0 License fun main() { println("Hello world!") } What does this code do? >>> Hello world!
  • 19. This work is licensed under the Apache 2.0 License fun main() { println("Hello world!") } What do you notice about Kotlin?
  • 20. This work is licensed under the Apache 2.0 License fun add(a: Int, b: Int): Int { return a + b } fun display(): Unit { println("Welcome") } Parameters and Return Type
  • 21. This work is licensed under the Apache 2.0 License mutable variable var counter: Int = 5 val name: String = "Rebecca" immutable variable
  • 22. This work is licensed under the Apache 2.0 License var length = 5 val message = "Welcome" What’s interesting about these variable declarations?
  • 23. This work is licensed under the Apache 2.0 License if (score < 20) { println("Low") } else if (score < 70) { println("Medium") } else { println("High") } when (x) { 0 -> endGame() 1 -> moveNext() 2 -> skipTurn() }
  • 24. This work is licensed under the Apache 2.0 License side // This is the Square class // definition class Square(val side: Int) // This is a Square instance val s = Square(10) println(s.side) Classes
  • 25. This work is licensed under the Apache 2.0 License val numList = listOf(1, 2, 3) val numSet = setOf(4, 5, 6) val numMap = mapOf("a" to 10, "b" to 20, "b" to 30) Collections
  • 26. This work is licensed under the Apache 2.0 License Break
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. This work is licensed under the Apache 2.0 License Let’s get started
  • 36. This work is licensed under the Apache 2.0 License Start here: g.co/android/studyjams Collect your first badge!
  • 37. This work is licensed under the Apache 2.0 License Carrie Sawyer Build Your First App Pathway Build an Interactive App Layouts Pathway Create a Developer Profile
  • 38. This work is licensed under the Apache 2.0 License New to Programming track Start Course
  • 39. This work is licensed under the Apache 2.0 License New to programming? Start Here Go to g.co/android/studyjams Start Android Basics in Kotlin Course Work on Unit 1, Pathway 1
  • 40. This work is licensed under the Apache 2.0 License Prior Programming Experience track: Start Kotlin Koans
  • 41. This work is licensed under the Apache 2.0 License Exercises Check Error Messages Run Code & Check Output Re-read Instructi ons Show Answers Introduction, Conventions, Collections Go to g.co/android/studyjams and start Kotlin Koans Coders: Start Here
  • 42. This work is licensed under the Apache 2.0 License Thanks!
  • 43. This work is licensed under the Apache 2.0 License Share what you’ve learned with #AndroidStudyJams
  • 44. This work is licensed under the Apache 2.0 License Additional Resources Online curriculum ● Android Basics in Kotlin Course ● Android Kotlin Fundamentals Course Android Resources ● Official Android Developers website ● Android Developers YouTube channel ● Android Developers Twitter ● Android Developers Medium blog ● Android Developers Official blog ● Android Developers Newsletter ● Android Codelabs ● Android GitHub page Kotlin Language Resources ● Official Kotlin Language website ● Kotlin Learn by Example ● Kotlin Vocabulary series Version 1.0
  • 45. This work is licensed under the Apache 2.0 License Let’s Play! To find slides, content, links and more relating to Android Study Jams visit the repo 👉 github.com/beauwilliams/Android-Study-Jams