SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
Android
Jetpack, with new
features in 2021
02 	New in Stable
01	 Overview
04 Debut in Alpha
05 	Additional Talks
03 	Up to Beta
Workshop Host
Jetpack,


with new features in 2021
Wonyoung Choi - AVP, Mobile Developer, OCBC

@TORU_0239
android


jetpack
Of top 1K apps


using two or more non-core Jetpack
Libraries
How increased?
97%
2021
47%
2020
Pre-release cycles and what they mean for developers
Versioning
Alpha, Beta
• Active development


• API may be added,
changed, removed


• Tested and highly-
functional
• Feature Stabilization


• No API changes


• APIs changed only in
response to critical
issues or community
feedback
Alpha Beta
Metadata that helps tools and other developers
understand your code
Experimental Annotations
Metadata
androix:annotation:annotation-experimental
builder.setAutoCloseTimeout(2000, SECONDS)


@ExperimentalRoomApi


Or


@OptIn(ExperimentalRoomApi::class)
The Opt-in usage should be marked with
either one from the right.


[UnsafeOptInUsageError]
androix:annotation:annotation-experimental
@OptIn(ExperimentalRoomApi::class)


builder.setAutoCloseTimeout(2000, SECONDS)
02 	New in Stable
01	 Overview
03 	Up to Beta
04 Debut in Alpha
05 	Additional Talks
Unified API surface for accessing camera functionality
across the various OS versions and devices
CameraX
Hardware
• Adjusting exposure compensation

• Access to the information about


camera state and features

• Interoperability via Camera2Interop
CameraX
The latest improvements to the
common requests
androidx.camera:camera
CameraX
• HDR (High Dynamic Range) preview*

• Zoom ratio controls

• Do-Not-Disturb
Supports for the latest device and


OS features
* Supported for Pixel 4A and 5 only, but soon on more devices
androidx.camera:camera
CameraX
• Faster image capture

• Faster initialization*
Performace enhancement for
better experience
* Up to 25% on legacy devices, according to Google
androidx.camera:camera
// Set up the CameraController


val cameraController = LifecycleCameraController(context)


cameraController.bindToLifecycle(lifecycleOwner)


// Attach the CameraController to PreviewView


val previewView = findViewById(R.id.previewView)


previewView.setController(cameraController)


// Use the CameraController


cameraController.takePicture(...)
Simplified dependency injection solution


built on top of Dagger2, for Jetpack
Architecture
Hilt
• ViewModel support into the core Hilt

• SavedStateHandle added as a default

• Integrated with Navigation and
Compose
Hilt
Reached Stable stage with changes
androidx.hilt:hilt
@HiltViewModel


class MyViewModel @Inject constructor(


val handle: SavedStateHandle,


val repository: Repository


) : ViewModel {


// ...


}
@HiltViewModel


class MyViewModel @Inject constructor(


val handle: SavedStateHandle,


val repository: Repository


) : ViewModel {


// ...


}


@AndroidEntryPoint


class MyFragment : Fragment() {


val viewModel: MyViewModel by viewModels()


val navigationGraphScoped: MyViewModel by


hiltNavGraphViewModels(R.id.nav_graph)


}
@HiltWorker


class MyWorker @AssistInject constructor(


@Assisted context: Context,


@Assisted params: WorkerParameters,


repo: Repository


) : Worker {


// ...


}
@HiltAndroidTest


@UninstallModules(RepositoryModule::class)


@RunWith(AndroidJUnit4::class)


class Test {


@Module


@InstallIn(ApplicationComponent::class)


object FakeRepositoryModule {


@Provides


fun provideRepo() = FakeRepository()


}


}
@Module


@TestInstallIn(


components = SingletonComponent::class,


replaces = RepositoryModule::class


)


object FakeRepositoryModule {


@Provides


fun provideRepo() = FakeRepository()


}
The recommended data persistence layer, providing increased usability and safety
over the platform
Architecture
Room
Experimental support for Kotlin Symbol Processing

Built-in support for enums and RxJava3

Introduction to QueryCallback

New annotation @ProviderTypeConverter
Room
2.3.0 Stable version
androidx.room:room
Support for Auto-Migrations
2.4.0 Alpha version
@ProvidedTypeConverter


class TimeStampConverter(timeformat: String) {


@TypeConverter


fun fromTimestamp(value: Long) {


// implementation


}


}


Room.inMemoryDatabaseBuilder(context, CacheDatabase::class)


.addTypeConverter(TimeStampConverter(getPreferredTimeStamp()))


.build()
Support for Auto-Migrations
Room
2.4.0 Alpha version
androidx.room:room
@Database(


- version = 1,


+ version = 2,


entities = { Penang.class },


+ autoMigrations = {


+ @AutoMigration (from = 1, to = 2)


+ }


)


public abstract class DoggosDatabase extends RoomDatabase { }
Load and display small chunks of data to improve


network and system resource consumption
UI
Paging Library
Complete rewrite in Kotlin, supported for Kotlin coroutines and Flow

Asynchronous loading with RxJava and Guava primitives

Improvements to the repository and presentation layers


Supports for headers, footers, separators, and loading state
Paging Library
androidx.paging:paging
Paging Library
androidx.paging:paging
RxPagingSource for RxJava Flow for stream
Paging Library
androidx.paging:paging
ListenableFuturePagingSource for ListenableFuture
Safely and easily encrypt files


and SharedPreferences
Data
Security Crypto
val prefs: SharedPreferences = EncryptedSharedPreferences.create(


context,


"preference_file_name",


mainKey,


prefKeyEncryptionScheme = AES256_SIV,


prefValueEncryptionScheme = AES256_GCM,


)


// Use the resulting SharedPreferences object as usual.


prefs.edit()


.putBoolean("launch_completed", true)


.apply()
Can it be combined with
Room or DataStore?
Encrypted DataStore will be provided, Room can already be used with SQLCipher, not decided
yet if it’ll be included out of the box.
Answer
Schedule deferrable, asynchronous


tasks that must be run reliably
Architecture
WorkManager
WorkManager
androidx:work.work
Support in version 2.5 and later for apps that use multiple processes

Version 2.7 handles Android S foreground restrictions

Newly introduced Workmanager Inspector
androidx:work.work
WorkManager Inspector
Available in Android Studio Arctic Fox
Flexible, intuitive system for positioning


and animating user interfaces
UI
ConstraintLayout
• Reached 2.0.0 stable

• MotionLayout to provide rich
animation and state management
ConstraintLayout
ConstraintLayout 2.0.0 stable
androidx:constraintlayout:constraintlayout
MotionLayout
What’s new in design tools
androidx:constraintlayout:constraintlayout
Abstraction for segmenting an user interface 

into reusable components
UI
Fragment
Clean up the internal implementation 

Reduce undocumented behaviour and Increase stability
Fragment
Androidx:fragment:fragment
• Don’t forget to read the release note before updating to fragment:1.3.0
ActivityResult Integration
// Obtain the fragment manager. May be a childFragmentManager,


// if in a fragment, to observe child attachment.


val fm = supportFragmentManager


val listener = FragmentOnAttachListener{


fragmentManager, fragment ->


// Respond to the fragment being attached.


}


fm.addFragmentOnAttachListener(listener)


onAttachFragment() has been deprecated.
onAttachFragment()
02 	New in Stable
01	 Overview
03 	Up to Beta
04 Debut in Alpha
05 	Additional Talks
Data storage solution that allows you to store key-value pairs


or typed object with protocol buffers
Data
DataStore
Fully asynchronous with Kotlin
coroutine / Flow support, RxJava
2&3
DataStore
Key-values pairs

Protocol buffers (strongly typed)

Your own plugin (Kotlin serialization)
Replacement for SharedPreference Multiple backing implementations
androidx.datastore:datastore
SharedPreferences DataStore
Asynchronous API
Synchronous API
Safe to call on UI thread
Call signal errors
Safe from runtime exceptions
Transactional API with strong


consistency guarantees
Handles data migration
Type safety
O only for change listener O via coroutine, RxJava
O O via runBlocking
X O
X O
X O
X O
X O
X O
// At the top level of your kotlin file:


val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
Create a preferences Datastore
val EXAMPLE_COUNTER = intPreferencesKey("example_counter")


val exampleCounterFlow: Flow<Int> = context.dataStore.data


.map { preferences ->


// No type safety.


preferences[EXAMPLE_COUNTER] ?: 0


}
Read from a Preferences Datastore
suspend fun incrementCounter() {


context.dataStore.edit { settings ->


val currentCounterValue = settings[EXAMPLE_COUNTER] ?: 0


settings[EXAMPLE_COUNTER] = currentCounterValue + 1


}


}
Write to a Preferences DataStore
val Context.prefStore: DataStore<Prefrences> by preferencesDataStore(


name = USER_PREFERENCES_NAME,


produceMigrations = { context ->


// Since we're migrating from SharedPreferences, add


// a migration based on the SharedPrefernces name


listOf(SharedPreferencesMigration(context, USER_PREFERENCES_NAME))


}
Migrate to DataStore
02 	New in Stable
01	 Overview
03 	Up to Beta
04 Debut in Alpha
05 	Additional Talks
High performance full-text search for


app-local and device-wide use cases
Data
AppSearch
Prefix Indexing


Relevance ranking

Usage scoring
AppSearch
Fuzzy matching

Query expansion

Language support
Full featured vs. SQL Advanced full-text search
androix:appsearch:appsearch
Includes schemas for common object types




Centralised storage on Android S and later for


integrating into device-wide search
androix:appsearch:appsearch
AppSearch
Framework for navigating between destinations


within an app, now with multiple backstack
UI
Navigation
• Added in Navigation 2.4.0

• Utilising APIs which has been added to Fragment 1.4.0 internally.
Navigation
Multiple backstack
androidx.navigation:navigation
saveBackStack() restoreBackStack()
and
<action


android:id=”@+id/swap_stack”


app:destination=”@id/second_stack”


app:restoreState=”true”


app:popUpTo=”@id/first_stack_start_destination”


app:popUpToSaveState=”true” />
// Use the navigate() method that takes a navOptions DSL Builder


navController.navigate(selectedBottomNavRoute) {


launchSingleTop = true


restoreState = true


popUpTo(navController.graph.startDestinationId) {


saveState = true


}


}
Dynamic shortcuts for Google Assistant


and other Google services
UI
Google Shortcuts
androidx:core:core-google-shortcuts
// expose a "Cappuccino" action to Google Assistant and other services


ShortcutInfoCompat siCompat =


ShortcutInfoCompat.Builder(ctx, "id_cappuccino")


.setShortLabel("Cappuccino")


.setIntent(Intent(ctx, OrderCappuccino::class.java))


.addCapabilityBinding(


"actions.intent.ORDER_MENU_ITEM",


"menuItem.name",


asList("cappuccino")


)


.build()


ShortcutManagerCompat.pushDynamicShortcut(ctx, siCompat)
All the emoji, everywhere! 😉🎉
UI
EmojiCompat
EmojiCompat
androidx:emoji2:emoji2-views*
Modern emoji on API 19+ to new artifact emoji2:emoji2


Automatic configuration based on the AppStartup library
* Included in AppCompat 1.4.0 and later by default
Accurately measure apps startup and integrated


behaviours, both locally and in CI
Performance
Macrobenchmark
Macrobenchmark
androidx.benchmark.macro:macro
Viewable performance profiling result in Android Studio


Check for regressions in CI before they hit users
@get:Rule


val benchmarkRule = MacrobenchmarkRule()


@Test


fun startup() = benchmarkRule.measureRepeated(


packageName = "mypackage.myapp",


metrics = listOf(StartupTimingMetric()),


iterations = 5,


startupMode = StartupMode.COLD


) { // this = MacrobenchmarkScope


pressHome()


val intent = Intent()


intent.setPackage("mypackage.myapp")


intent.setAction("mypackage.myapp.myaction")


startActivityAndWait(intent)


}
Metrics are displayed directly in Android Studio
02 	New in Stable
01	 Overview
03 	Up to Beta
04 Debut in Alpha
05 	Additional Talks
Compose


Integrations
Compose Integrations
Jetpack Compose Jetpack Libraries in Compose
New UI toolkit without XML • Hilt

• Paging

• Navigation
• Activity

• ViewModel

• ConstraintLayout
Compose Integrations
Jetpack Compose Jetpack Libraries in Compose
Form


factors
Form factors
What’s new in Foldables, Tablets, and Large Screens
Now is the Time: What’s New With Wear OS by Googlee
• androidx.window


• androidx.slidingpanelayout
• androidx.wear
Much More

Things…
Compose

Hilt

Security Keystore

Security Crypto

EmojiCompat

Google Shortcuts

Core

Room

AppSearch
Paging

Macrobenchmark

DataStore

Window

SlidingPaneLayout

Navigation

Fragment

Activity

Lifecycle
CameraX

ConstraintLayout

ConstraintLayout Compose

SplashScreen

Wear

Wear Tiles

Wear Phone Interaction

Wear Remote Interaction

Wear Input
Thank you!
developers.android.com/jetpack

androidx.dev
Resources
Wonyoung Choi - AVP, OCBC bank

@TORU_0239

Más contenido relacionado

La actualidad más candente

Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBTAnton Yalyshev
 
Alexey Buzdin "Maslow's Pyramid of Android Testing"
Alexey Buzdin "Maslow's Pyramid of Android Testing"Alexey Buzdin "Maslow's Pyramid of Android Testing"
Alexey Buzdin "Maslow's Pyramid of Android Testing"IT Event
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java DevelopersYakov Fain
 
Intro to Retrofit 2 and RxJava2
Intro to Retrofit 2 and RxJava2Intro to Retrofit 2 and RxJava2
Intro to Retrofit 2 and RxJava2Fabio Collini
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web ApplicationYakov Fain
 
Android training in mumbai
Android training in mumbaiAndroid training in mumbai
Android training in mumbaiCIBIL
 
A friend in need - A JS indeed
A friend in need - A JS indeedA friend in need - A JS indeed
A friend in need - A JS indeedYonatan Levin
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideVisual Engineering
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)Stephen Chin
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)Hendrik Ebbers
 
Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!Stacy Devino
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade ServerlessKatyShimizu
 
Java EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSFJava EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSFJiayun Zhou
 
Building Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsBuilding Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsHassan Abid
 
Android MvRx Framework 介紹
Android MvRx Framework 介紹Android MvRx Framework 介紹
Android MvRx Framework 介紹Kros Huang
 

La actualidad más candente (20)

Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBT
 
Alexey Buzdin "Maslow's Pyramid of Android Testing"
Alexey Buzdin "Maslow's Pyramid of Android Testing"Alexey Buzdin "Maslow's Pyramid of Android Testing"
Alexey Buzdin "Maslow's Pyramid of Android Testing"
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java Developers
 
Intro to Retrofit 2 and RxJava2
Intro to Retrofit 2 and RxJava2Intro to Retrofit 2 and RxJava2
Intro to Retrofit 2 and RxJava2
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
 
Android training in mumbai
Android training in mumbaiAndroid training in mumbai
Android training in mumbai
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
JavaFX Pitfalls
JavaFX PitfallsJavaFX Pitfalls
JavaFX Pitfalls
 
A friend in need - A JS indeed
A friend in need - A JS indeedA friend in need - A JS indeed
A friend in need - A JS indeed
 
Android - Anatomy of android elements & layouts
Android - Anatomy of android elements & layoutsAndroid - Anatomy of android elements & layouts
Android - Anatomy of android elements & layouts
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native Side
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)
 
Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!Async task, threads, pools, and executors oh my!
Async task, threads, pools, and executors oh my!
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
Java EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSFJava EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSF
 
Building Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsBuilding Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture Components
 
Android MvRx Framework 介紹
Android MvRx Framework 介紹Android MvRx Framework 介紹
Android MvRx Framework 介紹
 
Angular2 + rxjs
Angular2 + rxjsAngular2 + rxjs
Angular2 + rxjs
 

Similar a Jetpack, with new features in 2021 GDG Georgetown IO Extended

Storage Plug-ins
Storage Plug-ins Storage Plug-ins
Storage Plug-ins buildacloud
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixManish Pandit
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WAREFermin Galan
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara NetApp
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWAREFIWARE
 
Enterprise Library 2.0
Enterprise Library 2.0Enterprise Library 2.0
Enterprise Library 2.0Raju Permandla
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
 
Java EE Connector Architecture 1.6 (JSR 322) Technology
Java EE Connector Architecture 1.6 (JSR 322) TechnologyJava EE Connector Architecture 1.6 (JSR 322) Technology
Java EE Connector Architecture 1.6 (JSR 322) TechnologySivakumar Thyagarajan
 
ZZ BC#7.5 asp.net mvc practice and guideline refresh!
ZZ BC#7.5 asp.net mvc practice  and guideline refresh! ZZ BC#7.5 asp.net mvc practice  and guideline refresh!
ZZ BC#7.5 asp.net mvc practice and guideline refresh! Chalermpon Areepong
 
Integration tests: use the containers, Luke!
Integration tests: use the containers, Luke!Integration tests: use the containers, Luke!
Integration tests: use the containers, Luke!Roberto Franchini
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusMicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusEmily Jiang
 
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...DataStax Academy
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
WPF and Prism 4.1 Workshop at BASTA Austria
WPF and Prism 4.1 Workshop at BASTA AustriaWPF and Prism 4.1 Workshop at BASTA Austria
WPF and Prism 4.1 Workshop at BASTA AustriaRainer Stropek
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020Emily Jiang
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020Emily Jiang
 

Similar a Jetpack, with new features in 2021 GDG Georgetown IO Extended (20)

Storage Plug-ins
Storage Plug-ins Storage Plug-ins
Storage Plug-ins
 
Stmik bandung
Stmik bandungStmik bandung
Stmik bandung
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
Enterprise Library 2.0
Enterprise Library 2.0Enterprise Library 2.0
Enterprise Library 2.0
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDE
 
Java EE Connector Architecture 1.6 (JSR 322) Technology
Java EE Connector Architecture 1.6 (JSR 322) TechnologyJava EE Connector Architecture 1.6 (JSR 322) Technology
Java EE Connector Architecture 1.6 (JSR 322) Technology
 
ZZ BC#7.5 asp.net mvc practice and guideline refresh!
ZZ BC#7.5 asp.net mvc practice  and guideline refresh! ZZ BC#7.5 asp.net mvc practice  and guideline refresh!
ZZ BC#7.5 asp.net mvc practice and guideline refresh!
 
Integration tests: use the containers, Luke!
Integration tests: use the containers, Luke!Integration tests: use the containers, Luke!
Integration tests: use the containers, Luke!
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusMicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
 
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
Cassandra Summit 2014: Highly Scalable Web Application in the Cloud with Cass...
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
WPF and Prism 4.1 Workshop at BASTA Austria
WPF and Prism 4.1 Workshop at BASTA AustriaWPF and Prism 4.1 Workshop at BASTA Austria
WPF and Prism 4.1 Workshop at BASTA Austria
 
Apache Felix Web Console
Apache Felix Web ConsoleApache Felix Web Console
Apache Felix Web Console
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
 

Más de Toru Wonyoung Choi

Glancing essential features of Dart, before stepping into Flutter
Glancing essential features of Dart, before stepping into FlutterGlancing essential features of Dart, before stepping into Flutter
Glancing essential features of Dart, before stepping into FlutterToru Wonyoung Choi
 
The use case of a scalable architecture
The use case of a scalable architectureThe use case of a scalable architecture
The use case of a scalable architectureToru Wonyoung Choi
 
Slide_Concat_adapter_july_2020
Slide_Concat_adapter_july_2020Slide_Concat_adapter_july_2020
Slide_Concat_adapter_july_2020Toru Wonyoung Choi
 
activity_and_fragment_may_2020_lakopi
activity_and_fragment_may_2020_lakopiactivity_and_fragment_may_2020_lakopi
activity_and_fragment_may_2020_lakopiToru Wonyoung Choi
 
CameraX, MLKit and AutoML at DevFest Songdo 2019
CameraX, MLKit and AutoML at DevFest Songdo 2019CameraX, MLKit and AutoML at DevFest Songdo 2019
CameraX, MLKit and AutoML at DevFest Songdo 2019Toru Wonyoung Choi
 
CameraX, MLKit and AutoML at DevFest Cebu 2019
CameraX, MLKit and AutoML at DevFest Cebu 2019CameraX, MLKit and AutoML at DevFest Cebu 2019
CameraX, MLKit and AutoML at DevFest Cebu 2019Toru Wonyoung Choi
 

Más de Toru Wonyoung Choi (9)

Glancing essential features of Dart, before stepping into Flutter
Glancing essential features of Dart, before stepping into FlutterGlancing essential features of Dart, before stepping into Flutter
Glancing essential features of Dart, before stepping into Flutter
 
The use case of a scalable architecture
The use case of a scalable architectureThe use case of a scalable architecture
The use case of a scalable architecture
 
datastore_devfest2020_incheon
datastore_devfest2020_incheondatastore_devfest2020_incheon
datastore_devfest2020_incheon
 
Slide_Concat_adapter_july_2020
Slide_Concat_adapter_july_2020Slide_Concat_adapter_july_2020
Slide_Concat_adapter_july_2020
 
activity_and_fragment_may_2020_lakopi
activity_and_fragment_may_2020_lakopiactivity_and_fragment_may_2020_lakopi
activity_and_fragment_may_2020_lakopi
 
camera_x_beyond_alpha
camera_x_beyond_alphacamera_x_beyond_alpha
camera_x_beyond_alpha
 
Slide_For_GDGKL_devfest_2019
Slide_For_GDGKL_devfest_2019Slide_For_GDGKL_devfest_2019
Slide_For_GDGKL_devfest_2019
 
CameraX, MLKit and AutoML at DevFest Songdo 2019
CameraX, MLKit and AutoML at DevFest Songdo 2019CameraX, MLKit and AutoML at DevFest Songdo 2019
CameraX, MLKit and AutoML at DevFest Songdo 2019
 
CameraX, MLKit and AutoML at DevFest Cebu 2019
CameraX, MLKit and AutoML at DevFest Cebu 2019CameraX, MLKit and AutoML at DevFest Cebu 2019
CameraX, MLKit and AutoML at DevFest Cebu 2019
 

Último

Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 

Último (7)

Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 

Jetpack, with new features in 2021 GDG Georgetown IO Extended