develop apps super fast with android jetpack! divya jain ... · fast with android jetpack! divya...
TRANSCRIPT
![Page 1: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/1.jpg)
Develop Apps Super
fast with Android
Jetpack!
Divya Jain @divyajain2405 Valley Devfest 2018
![Page 2: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/2.jpg)
Put the pieces of the puzzle together...
To create something beautiful , user friendly & serves a purpose
![Page 3: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/3.jpg)
Challenges in Android Dev● Tons of Boilerplate Code
● Clean Architecture
● Testing
● Backward compatibility
![Page 4: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/4.jpg)
Who wants to build robust high
quality production ready apps in an accelerated manner?
![Page 5: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/5.jpg)
![Page 6: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/6.jpg)
Android Jetpack!
![Page 7: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/7.jpg)
What is it?● Collection of individual software components -
libraries and tools● Independently adoptable● Built to work together ● Unbundled from Platform APIs
![Page 8: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/8.jpg)
FOUNDATION
AppCompat
Android KTX
Mul
tidex Testing
* Core System Components *Kotlin *Backward Compatibility *Testing Libraries
![Page 9: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/9.jpg)
UI
Layout
Fragment
Palette
Emoji
Animations and Transitions
Auto TV Wear
* Widgets and helpers
*Easy to use
*Enhanced User experience
![Page 10: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/10.jpg)
ARCHITECTURE
Lifecycles Livedata
Paging
Navigation
WorkManager
Room
Viewmodel
Data Binding
*Clean & Recommended *Data Management *Robust, scalable & Maintainable
![Page 11: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/11.jpg)
BEHAVIOUR
Notifications
Permissions
Sharing
Slices
Media & Playback
Download Manager
* Integrate with other Android services
*help interact with user
![Page 12: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/12.jpg)
Foundation
UI
Architecture
Behaviour
Easier to Develop
Follow Best Practices
Reduces Boilerplate code
Simplify tasks
Reduces Memory crashes
Lessens memory leaks
![Page 13: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/13.jpg)
Concentrate on the nitty gritty of Android platform
Focus on the Code you actually care about
![Page 14: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/14.jpg)
AndroidX
New improved Android Support Library with consistent Namespacing , faster updates , feature parity & new libraries
androidx.*androidx.<feature>.ClassName
androidx.<feature>:<feature>-<sub-feature>
![Page 15: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/15.jpg)
Migrate to AndroidXgradle.properties file :
Changes in Package and Maven Artifact names
https://developer.android.com/jetpack/androidx/migrate
![Page 16: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/16.jpg)
FOUNDATION
AppCompat
Android KTX
Mul
tidex Testing
* Core System Components *Kotlin *Backward Compatibility *Testing Libraries
![Page 17: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/17.jpg)
Android KTX
Kotlin
Extension Function
Null Safety
Default & named arguments
Higher order functions
Smart Cast
Leverages Kotlin Features
Optimizes Android APIs with Kotlin
Makes Android Development - concise - enjoyable - intuitive
![Page 18: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/18.jpg)
Android KTXParse a string to a URI
val uri = Uri.parse(custom_string)
Val uri = custom_string.toUri()
import android.view.Menuimport androidx.core.view.getimport androidx.core.view.minusAssign
fun myFunction(menu : Menu) { val firstMenuItem = menu[0] //Gets the first menu item. menu -= firstMenuItem // Removes the menu item
}
Menu Class
● Core KTX● Fragment KTX● Palette KTX● Collections KTX● SQLite KTX● Navigation KTX
Build.gradle
implementation "androidx.core:core-ktx:$androidx_version"
![Page 19: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/19.jpg)
UI
Layout
Fragment
Palette
Emoji
Animations and Transitions
Auto TV Wear
* Widgets and helpers
*Easy to use
*Enhanced User experience
![Page 20: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/20.jpg)
Layout
ViewGroup
View ViewViewGroup
View View
<androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/root_view" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/margin">
![Page 21: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/21.jpg)
Fragment
● Dynamic and Flexible UI Designs
● Support different screens
● Reusable UI components
1.
implementation 'androidx.fragment:fragment-ktx:$currentVersion'
supportFragmentManager.transaction(now = false, allowStateLoss = false) {
replace(R.id.frag_container, myFragment,FRAGMENT_TAG) }
![Page 22: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/22.jpg)
Palette API
1.
● Vibrant color
schemes
● Visually appealing
● Pick and choose
● Various layout
themes
fun createPaletteSync(bitmap: Bitmap):
Palette = Palette.from(bitmap).generate()
fun createPaletteAsync(bitmap: Bitmap) { Palette.from(bitmap).generate { palette
-> // Use generated instance }}
![Page 23: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/23.jpg)
Emoji Compat
1.
● Device up to date with Latest
● No need to wait for OS updates 😄 ● Prevents showing missing ✋● Identifies emoji for a given CharSequence,
replaces them with EmojiSpan & renders ✅
![Page 24: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/24.jpg)
Animations
1.
Visual Cue to notify users of changes!
● Informative
● Focus
● Expressive
![Page 25: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/25.jpg)
ARCHITECTURE
Lifecycles Livedata
Paging
Navigation
WorkManager
Room
Viewmodel
Data Binding
*Clean & Recommended *Data Management *Robust, scalable & Maintainable
![Page 26: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/26.jpg)
Architecture Components
● Separation of concerns
● Drive UI from model
● Persistence of data
● Independent testing
![Page 27: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/27.jpg)
Paging
➔ Lazy Loading of Data
➔ Economical use of system resources
➔ Responsive to the user input without a lag
DataSource
DataSource Factory
ViewModelPagedList PagedList Adapter
![Page 28: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/28.jpg)
Navigation Cool way to storyboard the app destinations!
![Page 29: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/29.jpg)
Navigation
❖ Actions
❖ Animations
❖ Up/Back Behavior
❖ Passing Arguments
❖ Deep Links
![Page 30: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/30.jpg)
WorkManager
Job Scheduler
Alarm Manager
Firebase JobDispatcher
Asynchronous Task
Constraints
Work Request
enqueues
![Page 31: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/31.jpg)
Data Binding
Bind UI elements to the data sources programmatically
UI Framework methods
findViewById()
Bind UI elements to the data sources in a declarative format
Remove UI Framework methods
<TextView android:text="@{viewmodel.userName}" />
![Page 32: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/32.jpg)
BEHAVIOUR
Notifications
Permissions
Sharing
Slices
Media & Playback
Download Manager
* Integrate with other Android services
*help interact with user
![Page 33: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/33.jpg)
Want to download something?
Download Manager
● System service● Handles HTTP Downloads● Background● Handles interactions● Takes care of retrying
Want to share something?
ShareActionProvider
● Menu item● Handles appearance & behaviour● Needs a share intent
![Page 34: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/34.jpg)
Want to Notify user?
NotificationCompat
● Info to user outside App● Informative/action oriented● Timely reminders● Frequent interruptions are
annoying
Permissions
<uses-permission>
● Privacy of user● Permission to access sensitive
user data● Dangerous permission on
demand
![Page 35: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/35.jpg)
Slices
Embed App content in Google Search through flexible templates
TemplatedShow relevant app content in a dynamic, app theme user interface
InteractiveEnable user to perform inline, app actions, deep link, update, toggle
Modular
![Page 36: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/36.jpg)
Valley Devfest 2018 App
Data---------------------------------------------
------------
User Interface
RepositoryModel View ViewModel
Livedata
Room
Fragments
Animations
LayoutsNavigation
Caching
NotificationsShareActionProvider
![Page 37: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/37.jpg)
Android Jetpack has all the pieces needed for putting together the app
Choose and pick the ones you need, integrate
App is Ready in no time!
![Page 38: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/38.jpg)
https://developer.android.com/jetpack/
![Page 39: Develop Apps Super fast with Android Jetpack! Divya Jain ... · fast with Android Jetpack! Divya Jain @divyajain2405 Valley Devfest 2018. Put the pieces ... *Clean & Recommended *Data](https://reader035.vdocuments.mx/reader035/viewer/2022062415/5fe5719b9b318525b9637c8b/html5/thumbnails/39.jpg)
Thank you!
Questions Please?Divya Jain @divyajain2405