SlideShare a Scribd company logo
This work is licensed under the Apache 2.0 License
Android Study Jams
Prior Programming Experience Track: Session 2
Navigation
Activity and Fragment Lifecycles
This work is licensed under the Apache 2.0 License
About Me
Roman Jaquez
● Mobile Developer (Flutter, Android, IOS)
● Google Cloud Certified Architect
● GDG Lawrence Lead
● GDG Northeast Mentor
@drcoderz
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
à„Š Join the Slack #studyjam2021 channel to share your progress
https://shorturl.at/dpsRV
à„Š The labs are online, take your time
à„Š Create an app to demo and share in the last session
à„Š Win a raffle prize, compete in the demos
à„Š Earn this certificate of completion
Learn with the Boston Android Group
This work is licensed under the Apache 2.0 License
This work is licensed under the Apache 2.0 License
Codelab 1: Navigation
https://developer.android.com/courses/pathways/kotlin-fundamentals-four
Codelab 2: Activity and Fragment
https://developer.android.com/courses/pathways/kotlin-fundamentals-five
Android Study Jams
Prior Programming Experience
Track
Session 2
This work is licensed under the Apache 2.0 License
Commit to 4 Mondays
SEP 20, Koans - Studio, XML layout
SEP 27, Activity/Fragment basics
OCT 4, LiveData and ViewModel!!
OCT 11, Databases, Design
This work is licensed under the Apache 2.0 License
Logistics
This work is licensed under the Apache 2.0 License
Be excellent to each other. Treat everyone
with respect, everyone deserves to be here.
Consider what you are saying and how it
would feel if it were said to you.
Speak up if you see or hear something. If
someone is making you feel uncomfortable
they may not intend to do that. Politely
letting them know is encouraged.
https://developers.google.com/community-guidelines
This work is licensed under the Apache 2.0 License
The plan
● 90 mins
● Work at your own pace
● Full path? g.co/android/studyjams
● Each session will end with a Door Prize
● Demo at the final session - the best can
win Google Pixel Buds
Tonight’s prize
Google Nest Mini
This work is licensed under the Apache 2.0 License
Use the Slack Team
#studyjam2021
Find us on Twitter
@bostonandroid
Tag @GDG
Share what you’ve learned
with #AndroidStudyJams
This work is licensed under the Apache 2.0 License
QUICK ANDROID TRIVIA
How well do you know Android?
Android 8 (O) is called
ⓘ Start presenting to display the poll results on this slide.
Android 9 (P) is called
ⓘ Start presenting to display the poll results on this slide.
Android 10 (Q) is called
ⓘ Start presenting to display the poll results on this slide.
Android 11 (R) is called
ⓘ Start presenting to display the poll results on this slide.
Android 12 (S) is called
ⓘ Start presenting to display the poll results on this slide.
Android 13 (T) is called
ⓘ Start presenting to display the poll results on this slide.
When did the Android come
out in the US?
ⓘ Start presenting to display the poll results on this slide.
The first iPhone from Apple came
out in June 2007. Who made the
first Android phone?
ⓘ Start presenting to display the poll results on this slide.
This work is licensed under the Apache 2.0 License
Let’s Start!
This work is licensed under the Apache 2.0 License
Android Fragments
A Fragment represents a behavior or a portion of user interface (UI) in an
Activity.
● You can combine multiple fragments in a single activity to build a multi-pane UI
● You can reuse a Fragment in multiple activities.
● A Fragment has its own lifecycle and receives its own input events
● You can add / remove a Fragment while an activity is running
● A Fragment is defined in a Kotlin class
● A Fragment’s UI is defined in an XML layout file
This work is licensed under the Apache 2.0 License
The Navigation component is a library that can manage complex navigation,
transition animation, deep linking, and compile-time checked argument passing
between the screens in your app.
Navigation Components in Android
This work is licensed under the Apache 2.0 License
A navigation host fragment acts as a host for the fragments in a navigation
graph. The navigation host Fragment is usually named NavHostFragment.
● As the user moves between destinations defined in the navigation graph,
the navigation host Fragment swaps fragments in and out as necessary.
● The Fragment also creates and manages the appropriate Fragment back
stack.
NavHostFragment
This work is licensed under the Apache 2.0 License
Lifecycles in Android / Activity Lifecycle
This work is licensed under the Apache 2.0 License
Lifecycles in Android / Fragment Lifecycle
This work is licensed under the Apache 2.0 License
Log is the default Android Logging API.
● Enables you to write short messages that are displayed in the Logcat with
Android Studio
● Use Log.i() to write an informational message. Takes two parameters:
○ tag: the name of the class
○ message: a short string
● Use the Logcat page in Android Studio to view system logs
Logging using Log
This work is licensed under the Apache 2.0 License
Timber is a popular logging library.
● Has several advantages over the built-in Android Log class.
● Generates the log tag for you based on the class name
● Helps you avoid showing logs in a release version of your Android app
● Allows for integration with crash-reporting libraries
● Use Timber.i() to write log messages. Takes only one parameter:
○ message: the message to write
○ tag: (name of the class) is added automatically
Logging using Timber
This work is licensed under the Apache 2.0 License
To help catch errors caused by missing keys or mismatched types when you
pass data from one Fragment to another, use a Gradle plugin called Safe Args.
● For each Fragment in your app, the Safe Args plugin generates a
corresponding NavDirection class. You add the NavDirection class to the
Fragment code, then use the class to pass arguments between the
Fragment and other fragments.
● The NavDirection classes represent navigation from all the app's actions.
Safe Args
This work is licensed under the Apache 2.0 License
● An implicit intent declares an action that your app wants some other app
(such as a camera app or email app) to perform on its behalf.
● If several Android apps could handle an implicit intent, Android shows the
user a chooser.
Implicit Intents
This work is licensed under the Apache 2.0 License
● Explicit Intents specify which application will satisfy the intent, by supplying either the
target app's package name or a fully-qualified component class name
● PendingIntent is a token that you give to a foreign application (e.g. NotificationManager ,
AlarmManager , Home Screen AppWidgetManager , or other 3rd party applications),
which allows the foreign application to use your application's permissions to execute a
predefined piece of code.
● Extras are a form of key — value pairs that give your intent additional information to
complete its action.
a. putExtras() / getExtras()
Other Types of Intents
This work is licensed under the Apache 2.0 License
Prior Programming Experience Track: Session 2
Android Study Jams
This work is licensed under the Apache 2.0 License
Want to learn more?
● Official Android Developers Site: https://developer.android.com/
● Android Samples on GitHub
● Official Android Developers Blog (for announcements)
● Android Developers Medium Blog (for more technical articles)
● Android Developers YouTube channel
● Follow @AndroidDev on Twitter
● Subscribe to the Android Developer Newsletter
● Kotlin Vocabulary series
● Official Kotlin language site
Version 1.0
This work is licensed under the Apache 2.0 License
Thank you!!!

More Related Content

What's hot

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
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
DSCBVRITH
 
Android Workshop Part 1
Android Workshop Part 1Android Workshop Part 1
Android Workshop Part 1
NAILBITER
 
Android study jams iiitv sesion 3
Android study jams iiitv  sesion 3Android study jams iiitv  sesion 3
Android study jams iiitv sesion 3
AshutoshSingh1124
 
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
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session final
Domendra Sahu
 
Intro session kotlin
Intro session kotlinIntro session kotlin
Intro session kotlin
MohammedMehdiPatel
 
Android Study Jams Session 2 - Android Basics in Kotlin
Android Study Jams Session 2 - Android Basics in KotlinAndroid Study Jams Session 2 - Android Basics in Kotlin
Android Study Jams Session 2 - Android Basics in Kotlin
Domendra Sahu
 
GDSC GECBSP Android Study Jams Session 3
GDSC GECBSP Android Study Jams Session 3GDSC GECBSP Android Study Jams Session 3
GDSC GECBSP Android Study Jams Session 3
Domendra Sahu
 
Info session on android study jams
Info session on android study jamsInfo session on android study jams
Info session on android study jams
ArjavDesai3
 
Android study jam
Android study jamAndroid study jam
Android study jam
AjaySingh1938
 
Android study jam session 1
Android study jam session 1Android study jam session 1
Android study jam session 1
DSCIIITLucknow
 
Final session 1
Final session 1Final session 1
Final session 1
IpsitaSanyal1
 
Android Study Jam 2021 Session 4 slides
Android Study Jam 2021 Session 4 slidesAndroid Study Jam 2021 Session 4 slides
Android Study Jam 2021 Session 4 slides
Boston Android
 
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 Jams Session 01
Android Study Jams Session 01Android Study Jams Session 01
Android Study Jams Session 01
DSC BIT Mesra
 
Introduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding libraryIntroduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding library
Kaushal Dhruw
 
Mobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionMobile Programming - 1 Introduction
Mobile Programming - 1 Introduction
AndiNurkholis1
 
Android Studio vs. ADT
Android Studio vs. ADTAndroid Studio vs. ADT
Android Studio vs. ADT
Dominik Helleberg
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
Lars Vogel
 

What's hot (20)

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
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
 
Android Workshop Part 1
Android Workshop Part 1Android Workshop Part 1
Android Workshop Part 1
 
Android study jams iiitv sesion 3
Android study jams iiitv  sesion 3Android study jams iiitv  sesion 3
Android study jams iiitv sesion 3
 
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
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session final
 
Intro session kotlin
Intro session kotlinIntro session kotlin
Intro session kotlin
 
Android Study Jams Session 2 - Android Basics in Kotlin
Android Study Jams Session 2 - Android Basics in KotlinAndroid Study Jams Session 2 - Android Basics in Kotlin
Android Study Jams Session 2 - Android Basics in Kotlin
 
GDSC GECBSP Android Study Jams Session 3
GDSC GECBSP Android Study Jams Session 3GDSC GECBSP Android Study Jams Session 3
GDSC GECBSP Android Study Jams Session 3
 
Info session on android study jams
Info session on android study jamsInfo session on android study jams
Info session on android study jams
 
Android study jam
Android study jamAndroid study jam
Android study jam
 
Android study jam session 1
Android study jam session 1Android study jam session 1
Android study jam session 1
 
Final session 1
Final session 1Final session 1
Final session 1
 
Android Study Jam 2021 Session 4 slides
Android Study Jam 2021 Session 4 slidesAndroid Study Jam 2021 Session 4 slides
Android Study Jam 2021 Session 4 slides
 
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 Session 01
Android Study Jams Session 01Android Study Jams Session 01
Android Study Jams Session 01
 
Introduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding libraryIntroduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding library
 
Mobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionMobile Programming - 1 Introduction
Mobile Programming - 1 Introduction
 
Android Studio vs. ADT
Android Studio vs. ADTAndroid Studio vs. ADT
Android Studio vs. ADT
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 

Similar to Study Jam Session 2

Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
DSCBVRITH
 
Introduction to android study jams
Introduction to  android study jamsIntroduction to  android study jams
Introduction to android study jams
Google Developer Student Clubs - UIT RGPV, Bhopal
 
compose camp 1.pptx
compose camp 1.pptxcompose camp 1.pptx
compose camp 1.pptx
bcedsc
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
NancyMariaAS
 
Android Study Jams Info Session 2021 | GDSC IIITA
Android Study Jams Info Session 2021 | GDSC IIITAAndroid Study Jams Info Session 2021 | GDSC IIITA
Android Study Jams Info Session 2021 | GDSC IIITA
TejasMane18
 
Android study jams
Android study jamsAndroid study jams
Android study jams
NaveenK158
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
GDSCAtharvaCollegeOf
 
Android Study Jam - Introduction
Android Study Jam - IntroductionAndroid Study Jam - Introduction
Android Study Jam - Introduction
HitanshDoshi
 
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
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
Jetpack compose session1 (1).pptx
Jetpack compose session1 (1).pptxJetpack compose session1 (1).pptx
Jetpack compose session1 (1).pptx
ShubhamJogdand8
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development
divyawani2
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
fantasy zheng
 
Android Study Jams - Session 1
Android Study Jams - Session 1Android Study Jams - Session 1
Android Study Jams - Session 1
AditiSaxena72
 
Compose Camp-intro.pptx
Compose Camp-intro.pptxCompose Camp-intro.pptx
Compose Camp-intro.pptx
GanpatParmar1
 
Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best Practices
Solstice Mobile Argentina
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDSC_ GHRCE_  flutter_firebase.pptxGoogleDSC_ GHRCE_  flutter_firebase.pptx
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDeveloperStude22
 
Flutter study jam 2019
Flutter study jam 2019Flutter study jam 2019
Flutter study jam 2019
Ahmed Abu Eldahab
 
Gdsc android introduction
Gdsc android introductionGdsc android introduction
Gdsc android introduction
ShambhaviGupta14
 
Compose Camp 1.pdf
Compose Camp 1.pdfCompose Camp 1.pdf
Compose Camp 1.pdf
AbhishekS325285
 

Similar to Study Jam Session 2 (20)

Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
 
Introduction to android study jams
Introduction to  android study jamsIntroduction to  android study jams
Introduction to android study jams
 
compose camp 1.pptx
compose camp 1.pptxcompose camp 1.pptx
compose camp 1.pptx
 
Android study jams 1
Android study jams 1Android study jams 1
Android study jams 1
 
Android Study Jams Info Session 2021 | GDSC IIITA
Android Study Jams Info Session 2021 | GDSC IIITAAndroid Study Jams Info Session 2021 | GDSC IIITA
Android Study Jams Info Session 2021 | GDSC IIITA
 
Android study jams
Android study jamsAndroid study jams
Android study jams
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
 
Android Study Jam - Introduction
Android Study Jam - IntroductionAndroid Study Jam - Introduction
Android Study Jam - Introduction
 
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
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
Jetpack compose session1 (1).pptx
Jetpack compose session1 (1).pptxJetpack compose session1 (1).pptx
Jetpack compose session1 (1).pptx
 
Flutter technology Based on Web Development
Flutter technology Based on Web Development Flutter technology Based on Web Development
Flutter technology Based on Web Development
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android Study Jams - Session 1
Android Study Jams - Session 1Android Study Jams - Session 1
Android Study Jams - Session 1
 
Compose Camp-intro.pptx
Compose Camp-intro.pptxCompose Camp-intro.pptx
Compose Camp-intro.pptx
 
Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best Practices
 
GoogleDSC_ GHRCE_ flutter_firebase.pptx
GoogleDSC_ GHRCE_  flutter_firebase.pptxGoogleDSC_ GHRCE_  flutter_firebase.pptx
GoogleDSC_ GHRCE_ flutter_firebase.pptx
 
Flutter study jam 2019
Flutter study jam 2019Flutter study jam 2019
Flutter study jam 2019
 
Gdsc android introduction
Gdsc android introductionGdsc android introduction
Gdsc android introduction
 
Compose Camp 1.pdf
Compose Camp 1.pdfCompose Camp 1.pdf
Compose Camp 1.pdf
 

Recently uploaded

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-UniversitÀt
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
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
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 

Recently uploaded (20)

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 

Study Jam Session 2

  • 1. This work is licensed under the Apache 2.0 License Android Study Jams Prior Programming Experience Track: Session 2 Navigation Activity and Fragment Lifecycles
  • 2. This work is licensed under the Apache 2.0 License About Me Roman Jaquez ● Mobile Developer (Flutter, Android, IOS) ● Google Cloud Certified Architect ● GDG Lawrence Lead ● GDG Northeast Mentor @drcoderz
  • 3. 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
  • 4. This work is licensed under the Apache 2.0 License à„Š Join the Slack #studyjam2021 channel to share your progress https://shorturl.at/dpsRV à„Š The labs are online, take your time à„Š Create an app to demo and share in the last session à„Š Win a raffle prize, compete in the demos à„Š Earn this certificate of completion Learn with the Boston Android Group
  • 5. This work is licensed under the Apache 2.0 License
  • 6. This work is licensed under the Apache 2.0 License Codelab 1: Navigation https://developer.android.com/courses/pathways/kotlin-fundamentals-four Codelab 2: Activity and Fragment https://developer.android.com/courses/pathways/kotlin-fundamentals-five Android Study Jams Prior Programming Experience Track Session 2
  • 7. This work is licensed under the Apache 2.0 License Commit to 4 Mondays SEP 20, Koans - Studio, XML layout SEP 27, Activity/Fragment basics OCT 4, LiveData and ViewModel!! OCT 11, Databases, Design
  • 8. This work is licensed under the Apache 2.0 License Logistics
  • 9. This work is licensed under the Apache 2.0 License Be excellent to each other. Treat everyone with respect, everyone deserves to be here. Consider what you are saying and how it would feel if it were said to you. Speak up if you see or hear something. If someone is making you feel uncomfortable they may not intend to do that. Politely letting them know is encouraged. https://developers.google.com/community-guidelines
  • 10. This work is licensed under the Apache 2.0 License The plan ● 90 mins ● Work at your own pace ● Full path? g.co/android/studyjams ● Each session will end with a Door Prize ● Demo at the final session - the best can win Google Pixel Buds Tonight’s prize Google Nest Mini
  • 11. This work is licensed under the Apache 2.0 License Use the Slack Team #studyjam2021 Find us on Twitter @bostonandroid Tag @GDG Share what you’ve learned with #AndroidStudyJams
  • 12. This work is licensed under the Apache 2.0 License QUICK ANDROID TRIVIA How well do you know Android?
  • 13. Android 8 (O) is called ⓘ Start presenting to display the poll results on this slide.
  • 14. Android 9 (P) is called ⓘ Start presenting to display the poll results on this slide.
  • 15. Android 10 (Q) is called ⓘ Start presenting to display the poll results on this slide.
  • 16. Android 11 (R) is called ⓘ Start presenting to display the poll results on this slide.
  • 17. Android 12 (S) is called ⓘ Start presenting to display the poll results on this slide.
  • 18. Android 13 (T) is called ⓘ Start presenting to display the poll results on this slide.
  • 19. When did the Android come out in the US? ⓘ Start presenting to display the poll results on this slide.
  • 20. The first iPhone from Apple came out in June 2007. Who made the first Android phone? ⓘ Start presenting to display the poll results on this slide.
  • 21. This work is licensed under the Apache 2.0 License Let’s Start!
  • 22. This work is licensed under the Apache 2.0 License Android Fragments A Fragment represents a behavior or a portion of user interface (UI) in an Activity. ● You can combine multiple fragments in a single activity to build a multi-pane UI ● You can reuse a Fragment in multiple activities. ● A Fragment has its own lifecycle and receives its own input events ● You can add / remove a Fragment while an activity is running ● A Fragment is defined in a Kotlin class ● A Fragment’s UI is defined in an XML layout file
  • 23. This work is licensed under the Apache 2.0 License The Navigation component is a library that can manage complex navigation, transition animation, deep linking, and compile-time checked argument passing between the screens in your app. Navigation Components in Android
  • 24. This work is licensed under the Apache 2.0 License A navigation host fragment acts as a host for the fragments in a navigation graph. The navigation host Fragment is usually named NavHostFragment. ● As the user moves between destinations defined in the navigation graph, the navigation host Fragment swaps fragments in and out as necessary. ● The Fragment also creates and manages the appropriate Fragment back stack. NavHostFragment
  • 25. This work is licensed under the Apache 2.0 License Lifecycles in Android / Activity Lifecycle
  • 26. This work is licensed under the Apache 2.0 License Lifecycles in Android / Fragment Lifecycle
  • 27. This work is licensed under the Apache 2.0 License Log is the default Android Logging API. ● Enables you to write short messages that are displayed in the Logcat with Android Studio ● Use Log.i() to write an informational message. Takes two parameters: ○ tag: the name of the class ○ message: a short string ● Use the Logcat page in Android Studio to view system logs Logging using Log
  • 28. This work is licensed under the Apache 2.0 License Timber is a popular logging library. ● Has several advantages over the built-in Android Log class. ● Generates the log tag for you based on the class name ● Helps you avoid showing logs in a release version of your Android app ● Allows for integration with crash-reporting libraries ● Use Timber.i() to write log messages. Takes only one parameter: ○ message: the message to write ○ tag: (name of the class) is added automatically Logging using Timber
  • 29. This work is licensed under the Apache 2.0 License To help catch errors caused by missing keys or mismatched types when you pass data from one Fragment to another, use a Gradle plugin called Safe Args. ● For each Fragment in your app, the Safe Args plugin generates a corresponding NavDirection class. You add the NavDirection class to the Fragment code, then use the class to pass arguments between the Fragment and other fragments. ● The NavDirection classes represent navigation from all the app's actions. Safe Args
  • 30. This work is licensed under the Apache 2.0 License ● An implicit intent declares an action that your app wants some other app (such as a camera app or email app) to perform on its behalf. ● If several Android apps could handle an implicit intent, Android shows the user a chooser. Implicit Intents
  • 31. This work is licensed under the Apache 2.0 License ● Explicit Intents specify which application will satisfy the intent, by supplying either the target app's package name or a fully-qualified component class name ● PendingIntent is a token that you give to a foreign application (e.g. NotificationManager , AlarmManager , Home Screen AppWidgetManager , or other 3rd party applications), which allows the foreign application to use your application's permissions to execute a predefined piece of code. ● Extras are a form of key — value pairs that give your intent additional information to complete its action. a. putExtras() / getExtras() Other Types of Intents
  • 32. This work is licensed under the Apache 2.0 License Prior Programming Experience Track: Session 2 Android Study Jams
  • 33. This work is licensed under the Apache 2.0 License Want to learn more? ● Official Android Developers Site: https://developer.android.com/ ● Android Samples on GitHub ● Official Android Developers Blog (for announcements) ● Android Developers Medium Blog (for more technical articles) ● Android Developers YouTube channel ● Follow @AndroidDev on Twitter ● Subscribe to the Android Developer Newsletter ● Kotlin Vocabulary series ● Official Kotlin language site Version 1.0
  • 34. This work is licensed under the Apache 2.0 License Thank you!!!

Editor's Notes

  1. 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.
  2. 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.
  3. 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.]
  4. Let’s start with a question so I can get to know a little more about you. What is your favorite programming language and why? You can take out a piece of paper and write your answers down. [Give 2-3 minutes to work and when most people have put down their pencils, proceed.] So, what did everyone write down? [Generate a list of people’s answers] Okay let’s keep those qualities in mind throughout today’s session, where you’ll be learning a new programming language: Kotlin!
  5. 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.]
  6. If you want to continue learning, here are some resources.
  7. If you want to continue learning, here are some resources.
  8. If you want to continue learning, here are some resources.
  9. Hope you all enjoyed the game and learning to create your first Android apps! On social media, you can post photos, highlights, or app screenshots from today using #AndroidStudyJams. [Include your own developer community and chapter hashtags (i.e. #developerstudentclubs #dsccmu)]
  10. If you want to continue learning, here are some resources.