SlideShare a Scribd company logo
1 of 33
This work is licensed under the Apache 2.0 License
Android Study Jams
Prior Programming Experience Track: Sessions 1
This work is licensed under the Apache 2.0 License
Prior Programming Experience Track: Session 1
Android Study Jams
This work is licensed under the Apache 2.0 License
० Programming experience in an OOP language
० Basic math skills
० Basic computer literacy
० Computer & headphones
० Internet connection
Prerequisites
This work is licensed under the Apache 2.0 License
Learning Objectives
० Introduction to android
० Build your first android apps
० Set up Android Studio on your computer
० Learn the basics of the Kotlin programming language
० Discover resources to continue learning
This work is licensed under the Apache 2.0 License
Introduction to
Android
This work is licensed under the Apache 2.0 License
What is Android
● Linux kernel based Mobile OS
● Used on over 80% of all smartphones
● Powers devices such as watches , TVs,
And cars
● Highly customizable for devices
● Open source
This work is licensed under the Apache 2.0 License
What is an Android app?
● One or more interactive screens
● Written using Java or Kotlin Programming Language and XML
● Uses the Android Software Development Kit(SDK)
● Uses Android libraries and Android Application Framework
● Executed by Android Runtime Virtual machine(ART)
This work is licensed under the Apache 2.0 License
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
Benefits of Kotlin
● Expressive & Concise
● Safer Code
● Interoperable with Java
● Structured Concurrency
This work is licensed under the Apache 2.0 License
Pathway 1 Pathway 2 Pathway 3
Use Kotlin to start writing Android apps
Kotlin helps developers be more productive
Kotlin Programming Language
This work is licensed under the Apache 2.0 License
Write and run Kotlin
code in the browser
Kotlin Playground
Pathway 1 Pathway 2 Pathway 3
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 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
Pathway 1 Pathway 2 Pathway 3
Official tool to build Android apps
Android Studio
This work is licensed under the Apache 2.0 License
Android Emulator
Emulate an Android device on your computer.
Run your app on the emulator
Pathway 1 Pathway 2 Pathway 3
This work is licensed under the Apache 2.0 License
The part of your app where
the user interacts with it
User Interface
Pathway 1 Pathway 2 Pathway 3
This work is licensed under the Apache 2.0 License
Aa
Button
Layouts
Views
Layouts
Pathway 1 Pathway 2 Pathway 3
This work is
licensed under
the Apache 2.0
License
Hello Android!
Views
TextView ImageView Button
Pathway 1 Pathway 2 Pathway 3
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
Unit 1
Pathways 1 through 3
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
Developer profile
Carrie Sawyer
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
Stay tuned for Session 2
This work is licensed under the Apache 2.0 License
THANK YOU
and have fun helping your communities
become Android developers!
Version 1.0

More Related Content

What's hot

Android SDK and PhoneGap
Android SDK and PhoneGapAndroid SDK and PhoneGap
Android SDK and PhoneGap
Doncho Minkov
 

What's hot (20)

Google I/O 2019 - what's new in Android Q and Jetpack
Google I/O 2019 - what's new in Android Q and JetpackGoogle I/O 2019 - what's new in Android Q and Jetpack
Google I/O 2019 - what's new in Android Q and Jetpack
 
Android study jams - new to programming track sessions 2
Android study jams - new to programming track sessions 2Android study jams - new to programming track sessions 2
Android study jams - new to programming track sessions 2
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info Session
 
The First Ever Android Meet-up
The First Ever Android Meet-upThe First Ever Android Meet-up
The First Ever Android Meet-up
 
Android SDK and PhoneGap
Android SDK and PhoneGapAndroid SDK and PhoneGap
Android SDK and PhoneGap
 
The Ring programming language version 1.10 book - Part 5 of 212
The Ring programming language version 1.10 book - Part 5 of 212The Ring programming language version 1.10 book - Part 5 of 212
The Ring programming language version 1.10 book - Part 5 of 212
 
Webinar on Google Android SDK
Webinar on Google Android SDKWebinar on Google Android SDK
Webinar on Google Android SDK
 
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
 
Android tutorial1
Android tutorial1Android tutorial1
Android tutorial1
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
 
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
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
 
Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
 
Flutter bus 2018
Flutter bus 2018Flutter bus 2018
Flutter bus 2018
 
D8 Dexer
D8 Dexer D8 Dexer
D8 Dexer
 
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
 
Android OS & SDK - Getting Started
Android OS & SDK - Getting StartedAndroid OS & SDK - Getting Started
Android OS & SDK - Getting Started
 
Develop FOSS project using Google Code Hosting
Develop FOSS project using Google Code HostingDevelop FOSS project using Google Code Hosting
Develop FOSS project using Google Code Hosting
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fast
 
React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.React Native: Is It Worth It? UA Mobile 2017.
React Native: Is It Worth It? UA Mobile 2017.
 

Similar to Android study jams

Android Study Jams - New to Programming [27th december]
Android Study Jams - New to Programming [27th december]Android Study Jams - New to Programming [27th december]
Android Study Jams - New to Programming [27th december]
PragatiVerma31
 
[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx
[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx
[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx
shahipc
 

Similar to Android study jams (20)

Android study jam session 1
Android study jam session 1Android study jam session 1
Android study jam session 1
 
Week 1 - Android Study Jams
Week 1 - Android Study JamsWeek 1 - Android Study Jams
Week 1 - Android Study Jams
 
DSC Android Study Jam
DSC Android Study JamDSC Android Study Jam
DSC Android Study Jam
 
Android Study Jams - Session 1
Android Study Jams - Session 1Android Study Jams - Session 1
Android Study Jams - Session 1
 
Final session 1
Final session 1Final session 1
Final session 1
 
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 Jams - New to Programming [27th december]
Android Study Jams - New to Programming [27th december]Android Study Jams - New to Programming [27th december]
Android Study Jams - New to Programming [27th december]
 
ASJ Workshop - Introduction
ASJ Workshop - IntroductionASJ Workshop - Introduction
ASJ Workshop - Introduction
 
[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx
[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx
[EXTERNAL] Android Basics Sessions 1 _ 2 - Android Study Jams.pptx
 
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
 
Prior programming experience track
Prior programming experience trackPrior programming experience track
Prior programming experience track
 
Introduction to android study jams
Introduction to  android study jamsIntroduction to  android study jams
Introduction to android study jams
 
Compose Camp Slide.pptx (1).pdf
Compose Camp Slide.pptx (1).pdfCompose Camp Slide.pptx (1).pdf
Compose Camp Slide.pptx (1).pdf
 
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 2021 [collab] [master]
Android study jams 2021 [collab] [master]Android study jams 2021 [collab] [master]
Android study jams 2021 [collab] [master]
 
Session-1 edited.pptx
Session-1 edited.pptxSession-1 edited.pptx
Session-1 edited.pptx
 
Compose Camp Slide Session 1
Compose Camp Slide Session 1Compose Camp Slide Session 1
Compose Camp Slide Session 1
 
Android Study Jams Session 01
Android Study Jams Session 01Android Study Jams Session 01
Android Study Jams Session 01
 
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
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Android study jams

  • 1. This work is licensed under the Apache 2.0 License Android Study Jams Prior Programming Experience Track: Sessions 1
  • 2. This work is licensed under the Apache 2.0 License Prior Programming Experience Track: Session 1 Android Study Jams
  • 3. This work is licensed under the Apache 2.0 License ० Programming experience in an OOP language ० Basic math skills ० Basic computer literacy ० Computer & headphones ० Internet connection Prerequisites
  • 4. This work is licensed under the Apache 2.0 License Learning Objectives ० Introduction to android ० Build your first android apps ० Set up Android Studio on your computer ० Learn the basics of the Kotlin programming language ० Discover resources to continue learning
  • 5. This work is licensed under the Apache 2.0 License Introduction to Android
  • 6. This work is licensed under the Apache 2.0 License What is Android ● Linux kernel based Mobile OS ● Used on over 80% of all smartphones ● Powers devices such as watches , TVs, And cars ● Highly customizable for devices ● Open source
  • 7. This work is licensed under the Apache 2.0 License What is an Android app? ● One or more interactive screens ● Written using Java or Kotlin Programming Language and XML ● Uses the Android Software Development Kit(SDK) ● Uses Android libraries and Android Application Framework ● Executed by Android Runtime Virtual machine(ART)
  • 8. This work is licensed under the Apache 2.0 License Kotlin
  • 9. This work is licensed under the Apache 2.0 License Kotlin is a modern programming language that helps developers be more productive.
  • 10. This work is licensed under the Apache 2.0 License Android Development is Kotlin-First
  • 11. This work is licensed under the Apache 2.0 License Benefits of Kotlin ● Expressive & Concise ● Safer Code ● Interoperable with Java ● Structured Concurrency
  • 12. This work is licensed under the Apache 2.0 License Pathway 1 Pathway 2 Pathway 3 Use Kotlin to start writing Android apps Kotlin helps developers be more productive Kotlin Programming Language
  • 13. This work is licensed under the Apache 2.0 License Write and run Kotlin code in the browser Kotlin Playground Pathway 1 Pathway 2 Pathway 3
  • 14. This work is licensed under the Apache 2.0 License fun main() { println("Hello world!") } What does this code do?
  • 15. This work is licensed under the Apache 2.0 License fun main() { println("Hello world!") } What does this code do? >>> Hello world!
  • 16. 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
  • 17. This work is licensed under the Apache 2.0 License mutable variable var counter: Int = 5 val name: String = "Rebecca" immutable variable
  • 18. This work is licensed under the Apache 2.0 License var length = 5 val message = "Welcome" What’s interesting about these variable declarations?
  • 19. 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() }
  • 20. 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
  • 21. This work is licensed under the Apache 2.0 License Pathway 1 Pathway 2 Pathway 3 Official tool to build Android apps Android Studio
  • 22. This work is licensed under the Apache 2.0 License Android Emulator Emulate an Android device on your computer. Run your app on the emulator Pathway 1 Pathway 2 Pathway 3
  • 23. This work is licensed under the Apache 2.0 License The part of your app where the user interacts with it User Interface Pathway 1 Pathway 2 Pathway 3
  • 24. This work is licensed under the Apache 2.0 License Aa Button Layouts Views Layouts Pathway 1 Pathway 2 Pathway 3
  • 25. This work is licensed under the Apache 2.0 License Hello Android! Views TextView ImageView Button Pathway 1 Pathway 2 Pathway 3
  • 26. This work is licensed under the Apache 2.0 License Let’s get started
  • 27. This work is licensed under the Apache 2.0 License Start here: g.co/android/studyjams Collect your first badge!
  • 28. This work is licensed under the Apache 2.0 License Unit 1 Pathways 1 through 3
  • 29. This work is licensed under the Apache 2.0 License New to Programming track Start Course
  • 30. This work is licensed under the Apache 2.0 License Developer profile Carrie Sawyer
  • 31. This work is licensed under the Apache 2.0 License Share what you’ve learned with #AndroidStudyJams
  • 32. This work is licensed under the Apache 2.0 License Stay tuned for Session 2
  • 33. This work is licensed under the Apache 2.0 License THANK YOU and have fun helping your communities become Android developers! Version 1.0

Editor's Notes

  1. Hi everyone! My name is Kaviarasu and welcome to Android Study Jams! This is session 1 of the Prior Programming Experience Track. This track is for people who already have prior programming experience, but who are new to building Android apps. If you are new to programming and Android, consider the New to Programming track. The content will be introduced at a slower pace and programming fundamentals will be explained along the way.
  2. Here are some the prerequisites that will be helpful for this first session of the track. As mentioned earlier, we assume that you already have programming experience in an object-oriented programming language. You will also need a computer with internet connection to do the exercises in this session. [Mention WiFi instructions if necessary. Having access to an Android device is a nice-to-have starting in the next session, but not needed for this first session.]
  3. Let’s talk about what you will learn as part of this track of Android Study Jams. First you will learn the essentials of the Kotlin programming language, the language you’ll use to develop Android apps. Then you will install Android Studio on your computer and build a variety of Android apps in Kotlin by following the codelabs provided in the curriculum. Along the way, you will be learning best practices for Android, including app architecture and UI development. Another goal is to introduce you to the resources for where you can continue to learn Android development on your own.
  4. Alright, let’s dive in and answer this question: what is Kotlin?
  5. Alright, let’s dive in and answer this question: what is Kotlin?
  6. Kotlin is a modern programming language that helps developers be more productive. It was started as a project by JetBrains in 2010 and was made open source under the Apache 2.0 license, with Kotlin 1.0 released in 2016. The language has quickly gained traction among the developer community and in industry. Kotlin is one of the fastest growing programming languages, according to GitHub. Resources: Kotlin GitHub State of the Octoverse
  7. How does this relate to Android development? In 2017, Google announced that Kotlin would be another officially supported language on Android. Then in 2019, Google announced that Android development would become increasingly Kotlin-first, so that new tools and libraries will first be made available in Kotlin. To further their commitment, Google and JetBrains formed the Kotlin Foundation to protect, promote, and advance the Kotlin language. Within the span of several years, Kotlin has seen rapid adoption in the Android developer ecosystem. Over 70% of the top 1000 Android apps use Kotlin and 60% of professional Android developers use Kotlin. There has never been a better time to start learning Kotlin to take advantage of the latest features on Android. On that note, let’s dive in and look at the basics of what Kotlin code looks like. Resources: Android's Kotlin-first approach
  8. These are some of the key benefits that developers enjoy with Kotlin: The Kotlin language is expressive and concise, allowing you to express your ideas with less code. This reduces the amount of boilerplate code in your project. Kotlin helps you write safer code, with features that help you minimize common programming errors like NullPointerExceptions. Kotlin is 100% interoperable with Java, which means you can call Java-based code from Kotlin and vice-versa. If you already have an existing Android app in Java, you can add as little or as much Kotlin to the project as you want. Another key benefit that Kotlin offers is structured concurrency with Kotlin coroutines. They simplify background task management for everything from network calls to accessing local data, which are common for mobile apps. Kotlin has many great language features, and Kotlin is now the #4 most loved programming language according to the Stack Overflow’s 2020 Survey. Resources: Kotlin Stack Overflow Developer Survey in 2020
  9. In this course, you’ll be learning how to code in Kotlin. Kotlin is a programming language that you’ll use to build Android apps. Kotlin is a modern and popular programming language, known for helping developers be more productive. Kotlin allows you to be more concise when writing your code, and you can write safer code that’s less prone to errors. As a result of many great language features, Kotlin has quickly gained momentum in industry. It is reportedly one of the fastest growing programming languages, according to GitHub, and ranked as the #4 most loved programming language among developers, according to the 2020 Stack Overflow Developer Survey. Pathway 1 of the course is focused on helping you understand the basics of Kotlin. [Read about Android’s Kotlin-first approach]
  10. To make it easier for you to learn, you’ll be writing your code in the Kotlin Playground which you can access via the web browser. The site looks something like this. You can write your code in this window and hit the green arrow to run it. The result of your code (known as the output) will show up at the bottom of the window (where it says “Hello, world!”).
  11. What does everyone think this code does? [Continue to get audience participation until someone says “It prints Hello World!”.]
  12. Right! It prints Hello world!
  13. Here’s other examples of functions in Kotlin Declare them with the fun keyword as you saw before. What’s new here is seeing how function parameters are defined. Following each parameter name, insert a colon followed by a space and then the data type of the parameter. After the parameters, insert a colon followed by a space and then the return type of the function (which is Int in this case). Within the function body, specify the return value of a function with the return keyword in Kotlin. If there is no return value, you can specify Unit as the return type. Or for more concise code, you can just omit the return type from the function declaration, as you saw with the main() function earlier. For more info https://kotlinlang.org/docs/reference/functions.html
  14. Next, let’s discuss variables. You can declare variables with the var keyword (for mutable variables) or with the val keyword (for immutable variables). Use var if you want change the value it’s assigned to, like a counter variable that would be updated. Use val if you only need to assign the variable once. In this case, we don’t expect the name to change. It is recommended to use val over var when possible. Note that regardless of whether the keyword var or val was used, the objects themselves may still be mutable or not. For example, you can declare a mutable list with val myList = mutableListOf(). While the reference to the list doesn’t change, you can still add or remove items from myList. For more info https://kotlinlang.org/docs/reference/basic-syntax.html https://play.kotlinlang.org/byExample/01_introduction/03_Variables
  15. These are also valid ways to declare variables in Kotlin. What do you notice about this code? [Get some audience participation] No data type is specified. We didn’t need to specify that length is an integer or that message is a String. Kotlin supports type inference, which means you can omit the type in your code when the compiler can infer it. In this case, the Kotlin compiler can infer that length is an integer and message is a String. Type inference is a powerful feature in Kotlin and allows your code to be more concise!
  16. Control flow statements in Kotlin may look similar to what you’ve seen in other languages, with some differences. You can write if-else statements as shown here. If the condition within the parentheses is true, then that branch will be executed. If none of the conditions are met, then we fall into the else block. You can also use the when keyword for conditionals, similar to a switch statement in Java. In this example, when x is equal to 0, call the endGame() function. When it’s equal to 1, call moveNext(). And so on. When statements can make your code more compact, instead of creating multiple if/else branches checking the value of a variable. In Kotlin, you can also write for loops and while loops, which aren’t shown here but you can check the documentation for examples. For more info https://kotlinlang.org/docs/reference/control-flow.html https://kotlinlang.org/docs/reference/basic-syntax.html#using-conditional-expressions https://play.kotlinlang.org/byExample/02_control_flow/01_When
  17. Kotlin supports both functional and object-oriented programming styles. For OOP, you can create classes and object instances as shown here. Within a single line of code, we can define a class called Square, and it has one property: the length of its side. Then, we instantiate a Square object instance with a length of 10 and store it in a variable called s. Looking at this code, what does this line s.side print? [Answer should be 10] For more info: https://kotlinlang.org/docs/reference/classes.html
  18. Pathway 2 is where you create your first app! You will need to download and install Android Studio on your computer. This is the official tool that professional developers use for Android development. This is where you’ll be writing your Kotlin code and building your apps.
  19. In Android Studio, you can also use the Android Emulator, which can emulate various Android devices on your computer. The emulator allows you to run your app and it provides almost all capabilities that a real Android device would have. If you do have a physical device and want to use it, there are also instructions in Pathway 2 to get you setup. [Students can either use the emulator or a physical device to test their app, it’s up to personal preference.]
  20. Lastly, in Pathway 3, you’ll learn the basic concepts of customizing the user interface of a simple app. The user interface (also known as UI) of your app includes what the app looks like and how the user interacts with it.
  21. The layout of an app is the design or arrangement of what the user sees on the screen. In Android, a layout is made up of Views.
  22. Here are some examples of types of Views that are provided by Android: TextView for displaying text, ImageView for displaying images, and Button to perform some action when tapped.
  23. Okay that’s it! In a moment, I’ll let you get started on the course. Work at your own pace. If you get stuck, you can ask me or the other facilitators who will be available. [Introduce facilitators if applicable.] We’re here to answer whatever questions you have, for example, if you need help installing Android Studio or getting your app to run on your Android device. Also feel free to ask each other for help and work together to find solutions.
  24. Open the course page with the link we provided you, and you will automatically be awarded this badge for attending Android Study Jams! Save it to your developer profile, and create a profile if you haven’t already.
  25. Start by working on the first pathway in Unit 1 of the Android Basics in Kotlin course.
  26. Then under the New to Programming track in the left hand box, click the green button to start the Android Basics course.
  27. The badges you earn can be saved to your developer profile. When you are taking the course, be sure to sign in (in the top right corner) and create a developer profile if you haven’t already. It’s very quick to create. As you earn more badges, you can see them on your developer profile and favorite them, as shown here. [Read more on the Google developer profile]
  28. Thank you so much for participating today, everyone! Hope you learned more about Kotlin and feel free to share what you learned on social media. You can post photos or highlights from today’s session on social media using #AndroidStudyJams. [Include your own developer community and chapter hashtags (i.e. #developerstudentclubs #dsccmu)]
  29. Stay tuned for our next session -- you’ll be learning more about Android and Kotlin to build an interactive app! Thank you for coming and see you soon. [Insert details for Session 2 if it will start later in the day or on another day.]