SlideShare a Scribd company logo
1 of 104
Download to read offline
Jetpack Compose
Android development using
Jetpack Compose
Individual Consultant
🎯@aditlal
🔗aditlal.dev
India
Adit Lal
GDE Android
Jetpack Compose
/ jet ·pak kuhm· powz /
noun
Jetpack Compose is a declarative & modern toolkit for building native
Android UI. It simpli
fi
es and accelerates UI development on Android.
Why do we
need
Compose?
Why do we need Compose?
UI Toolkit is tied to the OS
State Management is tricky
Lots of context switching
Simple things still require a lot of code
Why do we need Compose?
UI Toolkit is tied to the OS
State Management is tricky
Lots of context switching
Simple things still require a lot of code
Why do we need Compose?
UI Toolkit is tied to the OS
State Management is tricky
Lots of context switching
Simple things still require a lot of code
Why do we need Compose?
UI Toolkit is tied to the OS
State Management is tricky
Lots of context switching
Simple things still require a lot of code
Why do we need Compose?
UI Toolkit is tied to the OS
State Management is tricky
Lots of context switching
Simple things still require a lot of code
Compose Syntax
Activity
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
.
.
.
}
}
}
Activity
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
.
.
.
}
}
}
setContent
public fun ComponentActivity.setContent(
parent: CompositionContext? = null,
content: @Composable ()
-
>
Unit
) {
/
/
some magic code🪄
}
}
● Thinking in Compose
● Layouts
● Managing State
● Side Effects
Imperative
<ConstraintLayout>
<ImageView />
<TextView />
<TextView />
</ ConstraintLayout>
Imperative
View Group
View
Imperative
val textView = findViewById(R.id.textView)
Imperative
val textView = findViewById(R.id.textView)
textView.text = ...
Imperative
Declarative UI
Widgets are stateless
No getters or setters to update state
Benefits
Faster development
Build UI with less code
Hello Adit
Declarative UI
Declarative UI
@Composable
fun Greeting(name: String) {
}
Declarative UI
Hello Adit
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
Update state?
Hello Mike
Declarative UI
Modifiers
Text (
modifier = Modifier
Hello World
. padding ( 10 . dp ) ,
text = "Hello World"
)
Modifiers
Text (
modifier = Modifier
Hello World
. background (Color.Green) ,
text = "Hello World"
)
Modifiers
Text ( Hello World
modifier = Modifier
. border ( width = 2 . dp , Color. Green ) ,
text = "Hello World"
)
Modifiers
● Order matters
Modifiers
Text (
modifier = Modifier
. border ( width = 2 . dp , Color. Red )
Hello World
. background (Color. Green )
. padding ( 12 . dp ) ,
text = "Hello World"
)
Modifiers
Text (
modifier = Modifier
Hello World
. padding ( 12 . dp )
. border ( width = 2 . dp , Color. Red )
. background (Color. Green ) ,
text = "Hello World”
)
Modifiers
https://developer.android.com/jetpack/compose/modi
fi
ers-list
Layouts
Column
Column {
}
Column
Column {
Text ( "Hello
Text ( "Hello
Text ( "Hello
}
World" )
World" )
World" )
Hello World
Hello World
Hello World
Column
Column(
verticalArrangement =
)
}
{
X
Y
Column
Column(
verticalArrangement = Arrangement. Center
) {
Hello World
Hello World
Hello World
}
Column
Column(
Arrangement. SpaceBetween
) {
}
Hello World
Hello World
Hello World
Column
Column(
horizontalAlignment =
)
}
{
X
Y
Column
Column(
horizontalAlignment
) {
}
= Alignment. End
Hello World
Hello World
Hello World
Column
Column(
Alignment.CenterHorizontally
Hello World
)
}
{ Hello World
Hello World
Column
Row
Row {
Text ( “Hello" )
Text ( "World" )
Text ( “!" )
HelloWorld!
}
Row
Row(
horizontalArrangement =
)
}
{
X
Y
Row
Row(
Arrangement. SpaceBetween
)
}
{ Hello World !
Row
Row(
verticalAlignment =
)
}
{
X
Y
Row
Row(
Alignment.CenterVertically
) {
HelloWorld!
}
Row
Column Row
Vertical Arrangement Horizontal Arrangement
Horizontal Alignment Vertical Alignment
Row & Column
Row & Column
Row {
Image(…)
}
Row & Column
Row {
Image(…)
Column {
}
}
Row & Column
Row {
Image(…)
Column {
Text ( “…” )
Text ( “…” )
}
}
Row & Column
Layout modifiers
Column (
Modifier. background (Color. Green ) Hello World
) { Hello World
Text ( text = “ Hello World” )
Text ( text = "Hello World" )
}
Layout modifiers
Column (
Modifier
. background (Color. Green )
. fillMaxWidth ()
) {
}
Hello World
Hello World
Layout modifiers
Column (
Modifier
. background (Color. Green )
. fillMaxSize ()
) {
}
Hello World
Hello World
Layout modifiers
Column (
Modifier
. background (Color. Green )
. width ( 200. dp )
Hello World
Hello World
)
}
{ 200dp
Layout modifiers
Box
Box {
Image(…)
}
Box
Box {
Image(…)
Column {
Text(…)
Text(…)
}
}
Box
Box {
Image(…)
Column(
Modifier.align(
Alignment.BottomEnd
)
) {
Text(…)
Text(…)
}
}
Box
List
fun EmployeeListView (items: List<Item>) {
LazyColumn {
}
}
List
@Composable
fun EmployeeListView (items: List<Item>) {
LazyColumn {
items (items) { item ->
}
}
}
List
@Composable
fun EmployeeListView (items: List<Item>) {
LazyColumn {
items (items) { item ->
ItemRow(item)
}
}
}
List
Slot layouts
Scaffold (
topBar = {
}
) {
}
Slot layouts
Home
Scaffold (
topBar = {
Text ( text = "Home" )
}
) {
}
Slot layouts
Home
Scaffold (
topBar = {
Text ( text
}
) {
= "Home" )
Hello World
Text ( text = “Hello World” )
}
Slot layouts
● Column
● Row
● Box
● Scaffold
Layouts
Managing State
● Setup state using mutableStateOf
State
0
+ -
State
var counter by remember {
mutableStateOf ( 0 ) 0
}
State
Column {
Text (
text = counter.toString()
0
)
...
}
State
Button (
) { onClick = { counter ++ } 0
Text ( text = "+" )
} + -
State
Button (
) { onClick = { counter -- } 0
Text ( text = “-" )
} + -
State
Event Composable UI-Redraw
Recomposition
var counter by remember {
mutableStateOf ( 0 ) 0
} + -
Recomposition
● Setup state using mutableStateOf
● Setting up search
State
Search
State
View Model
Event
Search
Search View
State
Side Effects
What is a side effect?
● Work outside of composable function
● Open new screen when tapping button
● Show no network message
● Launched Effect
● Disposable Effect
What is a side effect?
● Triggers on first composition or key change
Launched Effect
@Composable
fun HomeView () {
var counter by remember { mutableStateOf ( 0 ) }
}
LaunchEffect
@Composable
fun HomeView () {
var counter by remember { mutableStateOf ( 0 ) }
LaunchedEffect {
while ( true ) {
counter ++
}
}
}
LaunchEffect
@Composable
fun HomeView () {
var counter by remember { mutableStateOf ( 0 ) }
LaunchedEffect ( {
while ( true ) {
delay( 2000 )
counter ++
}
}
}
LaunchEffect
@Composable
fun HomeView () {
var counter by remember { mutableStateOf ( 0 ) }
LaunchedEffect ( key1 = Unit) {
while ( true ) {
delay( 2000 )
counter ++
}
}
}
LaunchEffect
● Calls onDispose on terminate
DisposableEffect
@Composable
fun HomeView () {
DisposableEffect (... ) {
onDispose {
callback.remove()
}
}
}
DisposableEffect
Code
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
NotesApplicationTheme {
/
/
A surface container using the 'background' color from the theme
Surface(
modif
i
er = Modif
i
er.f
i
llMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting("Android")
}
}
}
}
Code
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
NotesApplicationTheme {
/
/
A surface container using the 'background' color from the theme
Surface(
modif
i
er = Modif
i
er.f
i
llMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting("Android")
}
}
}
}
Code
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
NotesApplicationTheme {
/
/
A surface container using the 'background' color from the theme
Surface(
modif
i
er = Modif
i
er.f
i
llMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting("Android")
}
}
}
}
Code
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
NotesApplicationTheme {
/
/
A surface container using the 'background' color from the theme
Surface(
modif
i
er = Modif
i
er.f
i
llMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting("Android")
}
}
}
}
Code
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
NotesApplicationTheme {
/
/
A surface container using the 'background' color from the theme
Surface(
modif
i
er = Modif
i
er.f
i
llMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting("Android")
}
}
}
}
Composable
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
NotesApplicationTheme {
Greeting("Android")
}
}
Demo
Check out
https://github.com/aldefy/Andromeda
https://bit.ly/3Nic0JF - Sample catalog app
Andromeda is an open-source Jetpack Compose design system. A
collection of guidelines and components can be used to create
amazing compose app user experiences. Foundations introduce
Andromeda tokens and principles while Components provide the bolts
and nuts that make Andromeda Compose wrapped apps tick.
Thats all folks!
https://cal.com/adit/30min
🎯@aditlal
🔗aditlal.dev

More Related Content

Similar to compose_speaker_session.pdf

Reactive UI in android - Gil Goldzweig Goldbaum, 10bis
Reactive UI in android - Gil Goldzweig Goldbaum, 10bisReactive UI in android - Gil Goldzweig Goldbaum, 10bis
Reactive UI in android - Gil Goldzweig Goldbaum, 10bisDroidConTLV
 
React Native Workshop - React Alicante
React Native Workshop - React AlicanteReact Native Workshop - React Alicante
React Native Workshop - React AlicanteIgnacio Martín
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Nelson Glauber Leal
 
Design Summit - UI Roadmap - Dan Clarizio, Martin Povolny
Design Summit - UI Roadmap - Dan Clarizio, Martin PovolnyDesign Summit - UI Roadmap - Dan Clarizio, Martin Povolny
Design Summit - UI Roadmap - Dan Clarizio, Martin PovolnyManageIQ
 
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017eMan s.r.o.
 
XIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game developmentXIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game developmentmatheuscmpm
 
Flutter vs Java Graphical User Interface Frameworks.pptx
Flutter vs Java Graphical User Interface Frameworks.pptx Flutter vs Java Graphical User Interface Frameworks.pptx
Flutter vs Java Graphical User Interface Frameworks.pptx Toma Velev
 
Svcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilderSvcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilderAndres Almiray
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeRamon Ribeiro Rabello
 
Net conf BG xamarin lecture
Net conf BG xamarin lectureNet conf BG xamarin lecture
Net conf BG xamarin lectureTsvyatko Konov
 
New Features of SQL Server 2016
New Features of SQL Server 2016New Features of SQL Server 2016
New Features of SQL Server 2016Mir Mahmood
 
Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)Yongjun Kim
 
mobl - model-driven engineering lecture
mobl - model-driven engineering lecturemobl - model-driven engineering lecture
mobl - model-driven engineering lecturezefhemel
 
High Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScriptHigh Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScriptLeonardo Borges
 

Similar to compose_speaker_session.pdf (20)

Reactive UI in android - Gil Goldzweig Goldbaum, 10bis
Reactive UI in android - Gil Goldzweig Goldbaum, 10bisReactive UI in android - Gil Goldzweig Goldbaum, 10bis
Reactive UI in android - Gil Goldzweig Goldbaum, 10bis
 
Refactoring
RefactoringRefactoring
Refactoring
 
Compose camp 2.pptx
Compose camp 2.pptxCompose camp 2.pptx
Compose camp 2.pptx
 
Scala on Your Phone
Scala on Your PhoneScala on Your Phone
Scala on Your Phone
 
React Native Workshop - React Alicante
React Native Workshop - React AlicanteReact Native Workshop - React Alicante
React Native Workshop - React Alicante
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021
 
Design Summit - UI Roadmap - Dan Clarizio, Martin Povolny
Design Summit - UI Roadmap - Dan Clarizio, Martin PovolnyDesign Summit - UI Roadmap - Dan Clarizio, Martin Povolny
Design Summit - UI Roadmap - Dan Clarizio, Martin Povolny
 
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017
eMan Dev Meetup: Kotlin For Android (part 03/03) 18.5.2017
 
XIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game developmentXIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game development
 
Flutter vs Java Graphical User Interface Frameworks.pptx
Flutter vs Java Graphical User Interface Frameworks.pptx Flutter vs Java Graphical User Interface Frameworks.pptx
Flutter vs Java Graphical User Interface Frameworks.pptx
 
To-Do App With Flutter: Step By Step Guide
To-Do App With Flutter: Step By Step GuideTo-Do App With Flutter: Step By Step Guide
To-Do App With Flutter: Step By Step Guide
 
Refactoring
RefactoringRefactoring
Refactoring
 
Svcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilderSvcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilder
 
shiny.pdf
shiny.pdfshiny.pdf
shiny.pdf
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
 
Net conf BG xamarin lecture
Net conf BG xamarin lectureNet conf BG xamarin lecture
Net conf BG xamarin lecture
 
New Features of SQL Server 2016
New Features of SQL Server 2016New Features of SQL Server 2016
New Features of SQL Server 2016
 
Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)Android DataBinding (ViewModel, UI Modularization and Testing)
Android DataBinding (ViewModel, UI Modularization and Testing)
 
mobl - model-driven engineering lecture
mobl - model-driven engineering lecturemobl - model-driven engineering lecture
mobl - model-driven engineering lecture
 
High Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScriptHigh Performance web apps in Om, React and ClojureScript
High Performance web apps in Om, React and ClojureScript
 

Recently uploaded

Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 

Recently uploaded (20)

Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 

compose_speaker_session.pdf