SlideShare a Scribd company logo
1 of 54
Download to read offline
Android	Jetpack		
Room	Persistence	Library
Huį»³nh	Quang	Thįŗ£o	
Trusting	Social	
Google	Developer	Expert	on	Android
When	start	new	android	app	ā€¦
- Database:	
- Native	SQLite	
- ORM	wrapper	on	SQLite:	DBFlow	
- Different	database	engines:	Realm.
When	start	new	android	app	ā€¦
- 	Running	a	jobs:	
- AlarmManager	+	Broadcast	Receiver	
- Firebase	JobDispatcher	
- JobScheduler	
- GCMNetworkManager	
-
When	start	new	android	app	ā€¦
- Control	data	Slow	and	update	latest	data	on	UI.
When	start	new	android	app	ā€¦
- Control	data	Slow	and	update	latest	data	on	UI.	
- Loading	data:	
- Loading	data	from	network.	
- Loading	data	from	on-device	database.	
- Loading	data	from	multiple	sources.
Android	Architecture	Components
ViewModel
Live	Data
World	before	Room
-SQL	boiler	code	
-Migration	
-Testing
Solutions
GreenDAO
Realm
DBFlow
Why	Room
-provides	an	abstraction	layer	over	SQLite.
Why	Room
-provides	an	abstraction	layer	over	SQLite.	
-Provide	compile-time	checking	for	SQL	Statement.
Why	Room
-provides	an	abstraction	layer	over	SQLite.	
-Provide	compile-time	checking	for	SQL	Statement.	
-Detect	query	database	on	main	thread.
Why	Room
-provides	an	abstraction	layer	over	SQLite.	
-Provide	compile-time	checking	for	SQL	Statement.	
-Detect	query	database	on	main	thread.	
-Easier	for	testing	and	migration.
Room	Components
Entity
public class Word {
private String mWord;
public Word(String word) {this.mWord = word;}
public String getWord(){return this.mWord;}
}
Entity
@Entity(tableName = "word_table")
public class Word {
@PrimaryKey
@NonNull
@ColumnInfo(name = "word")
private String mWord;
public Word(String word) {this.mWord = word;}
public String getWord(){return this.mWord;}
}
Entity
-Support	database	constraints.	(unique	key,	primary	keys	ā€¦)
Entity
-Support	database	constraints.	(unique	key,	primary	keys	ā€¦)	
-Support	deSine	relationship	between	model.
Entity
-Support	database	constraints.	(unique	key,	primary	keys	ā€¦)	
-Support	deSine	relationship	between	model.	
-Can	ignore	derived	Sields.
Entity
-Support	database	constraints.	(unique	key,	primary	keys	ā€¦)	
-Support	deSine	relationship	between	model.	
-Can	ignore	derived	Sields.	
-Support	database	views.
DAO
@Dao
public interface WordDao {
@Insert
void insert(Word word);
@Query("DELETE FROM word_table")
void deleteAll();
@Query("SELECT * from word_table ORDER BY word ASC")
LiveData<List<Word>> getAllWords();
}
DAO
-Use	annotation	for	simple	actions	such	as	insert/delete/update
@Dao
public interface WordDao {
@Insert
void insert(Word word);
}
DAO
-Write	custom	query.
@Dao
public interface WordDao {
@Query("DELETE FROM word_table")
void deleteAll();
@Query("SELECT * from word_table ORDER BY word ASC")
LiveData<List<Word>> getAllWords();
}
DAO
-Check	query	at	compile	time.
DAO
-Check	query	at	compile	time.
DAO
-Return	LiveData	data.
@Dao
public interface WordDao {
@Query("SELECT * from word_table ORDER BY word ASC")
LiveData<List<Word>> getAllWords();
}
Room	Database
-Abstraction	over	SQLiteHelper.
@Database(entities = {Word.class}, version = 1)
public abstract class WordRoomDatabase extends RoomDatabase {
public abstract WordDao wordDao();
private static volatile WordRoomDatabase INSTANCE;
static WordRoomDatabase getDatabase(final Context context) {
if (INSTANCE == null) {
synchronized (WordRoomDatabase.class) {
if (INSTANCE == null) {
// Create database here
INSTANCE =
Room.databaseBuilder(context.getApplicationContext(),
WordRoomDatabase.class, "word_database")
.addCallback(sRoomDatabaseCallback)
.build();
}
}
}
return INSTANCE;
}
}
Room	Database
Sample	application
Codelab:	
https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0	
Code	demo:	
https://github.com/googlecodelabs/android-room-with-a-view
WorkSlow
7	steps	to	to	Room
https://medium.com/androiddevelopers/7-steps-to-room-27a5fe5f99b2
Step	1:	Add	dependencies
dependencies {
// Room components
implementation "android.arch.persistence.room:runtime:$rootProject.roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
androidTestImplementation "android.arch.persistence.room:testing:$rootProject.roomVersion"
// Lifecycle components
implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"
}
build.gradle	(module	app)
Step	2:	Update	model	to	entity
@Entity(tableName = "word_table")
public class Word {
@PrimaryKey
@NonNull
@ColumnInfo(name = "word")
private String mWord;
public Word(String word) {this.mWord = word;}
public String getWord(){return this.mWord;}
}
Step	3:	Create	DAO
@Dao
public interface WordDao {
@Insert
void insert(Word word);
}
Step	3:	Create	DAO
@Dao
public interface WordDao {
@Insert
void insert(Word word);
@Query("DELETE FROM word_table")
void deleteAll();
@Query("SELECT * from word_table ORDER BY word ASC")
LiveData<List<Word>> getAllWords();
}
Step	4:	Create	Database
@Database(entities = {Word.class}, version = 1)
public abstract class WordRoomDatabase extends RoomDatabase {
}
Step	4:	Create	Database
@Database(entities = {Word.class}, version = 1)
public abstract class WordRoomDatabase extends RoomDatabase {
public abstract WordDao wordDao();
}
Step	4:	Create	Database
@Database(entities = {Word.class}, version = 1)
public abstract class WordRoomDatabase extends RoomDatabase {
public abstract WordDao wordDao();
private static volatile WordRoomDatabase INSTANCE;
static WordRoomDatabase getDatabase(final Context context) {
if (INSTANCE == null) {
synchronized (WordRoomDatabase.class) {
if (INSTANCE == null) {
// Create database here
INSTANCE =
Room.databaseBuilder(context.getApplicationContext(),
WordRoomDatabase.class, "word_database")
.addCallback(sRoomDatabaseCallback)
.build();
}
}
}
return INSTANCE;
}
}
Step	5:	Update	Repository
public class WordRepository {
private WordDao mWordDao;
private LiveData<List<Word>> mAllWords;
}
Step	5:	Update	Repository
public class WordRepository {
private WordDao mWordDao;
private LiveData<List<Word>> mAllWords;
public WordRepository(Application application) {
WordRoomDatabase db = WordRoomDatabase.getDatabase(application);
mWordDao = db.wordDao();
mAllWords = mWordDao.getAllWords();
}
public LiveData<List<Word>> getAllWords() {
return mAllWords;
}
public void insert(Word word) {
new insertAsyncTask(mWordDao).execute(word);
}
}
Step	6:	Testing	DAO
@RunWith(AndroidJUnit4.class)
public class WordDaoTest {
private WordDao mWordDao;
private WordRoomDatabase mDb;
@Before
public void createDb() {
Context context = InstrumentationRegistry.getTargetContext();
mDb = Room.inMemoryDatabaseBuilder(context, WordRoomDatabase.class)
// Allowing main thread queries, just for testing.
.allowMainThreadQueries()
.build();
mWordDao = mDb.wordDao();
}
@After
public void closeDb() {
mDb.close();
}
}
Step	6:	Testing	DAO
@RunWith(AndroidJUnit4.class)
public class WordDaoTest {
private WordDao mWordDao;
private WordRoomDatabase mDb;
@Before
public void createDb() {
Context context = InstrumentationRegistry.getTargetContext();
mDb = Room.inMemoryDatabaseBuilder(context, WordRoomDatabase.class)
// Allowing main thread queries, just for testing.
.allowMainThreadQueries()
.build();
mWordDao = mDb.wordDao();
}
@After
public void closeDb() {
mDb.close();
}
@Test
public void insertAndGetWord() throws Exception {
Word word = new Word("word");
mWordDao.insert(word);
List<Word> allWords = LiveDataTestUtil.getValue
(mWordDao.getAlphabetizedWords());
assertEquals(allWords.get(0).getWord(), word.getWord());
}
}
Step	7:	Clean	up
- Remove	unused	classes	replaced	by	Room.	(i.e:	any	class	extends	SQLiteHelper)	
- More	complex	project:	
- https://medium.com/androiddevelopers/incrementally-migrate-from-sqlite-to-room-66c2f655b377
Learning	References
Android	architecture	components	
-	https://developer.android.com/jetpack/docs/guide
Learning	References
Android	architecture	components	
-	https://developer.android.com/jetpack/docs/guide	
Android	LifeCycle	components	
- https://www.youtube.com/watch?v=5qlIPTDE274	
- https://developer.android.com/topic/libraries/architecture/lifecycle
Learning	References
Android	architecture	components	
-	https://developer.android.com/jetpack/docs/guide	
Android	LifeCycle	components	
- https://www.youtube.com/watch?v=5qlIPTDE274	
- https://developer.android.com/topic/libraries/architecture/lifecycle	
Android	LiveData	
-	https://www.youtube.com/watch?v=OMcDk2_4LSk	
-	https://developer.android.com/topic/libraries/architecture/livedata
Learning	References
Android	architecture	components	
-	https://developer.android.com/jetpack/docs/guide	
Android	LifeCycle	components	
- https://www.youtube.com/watch?v=5qlIPTDE274	
- https://developer.android.com/topic/libraries/architecture/lifecycle	
Android	LiveData	
-	https://www.youtube.com/watch?v=OMcDk2_4LSk	
-	https://developer.android.com/topic/libraries/architecture/livedata	
Room	Persistence	libraries	
-	https://developer.android.com/topic/libraries/architecture/room	
-	https://www.youtube.com/watch?v=SKWh4ckvFPM
Learning	References
Android	architecture	components	
-	https://developer.android.com/jetpack/docs/guide	
Android	LifeCycle	components	
- https://www.youtube.com/watch?v=5qlIPTDE274	
- https://developer.android.com/topic/libraries/architecture/lifecycle	
Android	LiveData	
-	https://www.youtube.com/watch?v=OMcDk2_4LSk	
-	https://developer.android.com/topic/libraries/architecture/livedata	
Room	Persistence	libraries	
-	https://developer.android.com/topic/libraries/architecture/room	
-	https://www.youtube.com/watch?v=SKWh4ckvFPM	
Paging	
-	https://developer.android.com/topic/libraries/architecture/paging/
Codelab
- https://codelabs.developers.google.com/codelabs/android-lifecycles/#1	
- https://codelabs.developers.google.com/codelabs/android-persistence/#0	
- https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0	
- https://codelabs.developers.google.com/codelabs/android-paging/#0
Q&A

More Related Content

What's hot

Spark Summit 2014: Spark Job Server Talk
Spark Summit 2014:  Spark Job Server TalkSpark Summit 2014:  Spark Job Server Talk
Spark Summit 2014: Spark Job Server Talk
Evan Chan
Ā 

What's hot (20)

SQL Track: Restoring databases with powershell
SQL Track: Restoring databases with powershellSQL Track: Restoring databases with powershell
SQL Track: Restoring databases with powershell
Ā 
Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...Leveraging Open Source for Database Development: Database Version Control wit...
Leveraging Open Source for Database Development: Database Version Control wit...
Ā 
Oracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerOracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with Docker
Ā 
Which cloud provider for your oracle database
Which cloud provider for your oracle databaseWhich cloud provider for your oracle database
Which cloud provider for your oracle database
Ā 
Serhii Matynenko "How to Deal with Logs, Migrating from Monolith Architecture...
Serhii Matynenko "How to Deal with Logs, Migrating from Monolith Architecture...Serhii Matynenko "How to Deal with Logs, Migrating from Monolith Architecture...
Serhii Matynenko "How to Deal with Logs, Migrating from Monolith Architecture...
Ā 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under control
Ā 
Python and Oracle : allies for best of data management
Python and Oracle : allies for best of data managementPython and Oracle : allies for best of data management
Python and Oracle : allies for best of data management
Ā 
Akka Actor presentation
Akka Actor presentationAkka Actor presentation
Akka Actor presentation
Ā 
DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016DNS for Developers - NDC Oslo 2016
DNS for Developers - NDC Oslo 2016
Ā 
Oracle Linux and Oracle Database - A Trusted Combination
Oracle Linux and Oracle Database - A Trusted Combination Oracle Linux and Oracle Database - A Trusted Combination
Oracle Linux and Oracle Database - A Trusted Combination
Ā 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomy
Ā 
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Ā 
Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014
Ā 
Spark stream - Kafka
Spark stream - Kafka Spark stream - Kafka
Spark stream - Kafka
Ā 
OUG Ireland Meet-up 12th January
OUG Ireland Meet-up 12th JanuaryOUG Ireland Meet-up 12th January
OUG Ireland Meet-up 12th January
Ā 
Scaling Your Cache
Scaling Your CacheScaling Your Cache
Scaling Your Cache
Ā 
How to build your query engine in spark
How to build your query engine in sparkHow to build your query engine in spark
How to build your query engine in spark
Ā 
Scala Days NYC 2016
Scala Days NYC 2016Scala Days NYC 2016
Scala Days NYC 2016
Ā 
Spark Summit 2014: Spark Job Server Talk
Spark Summit 2014:  Spark Job Server TalkSpark Summit 2014:  Spark Job Server Talk
Spark Summit 2014: Spark Job Server Talk
Ā 
Getting started with Apollo Client and GraphQL
Getting started with Apollo Client and GraphQLGetting started with Apollo Client and GraphQL
Getting started with Apollo Client and GraphQL
Ā 

Similar to Android Jetpack: Room persistence library

Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
Dmitry Buzdin
Ā 
Gradleintroduction 111010130329-phpapp01
Gradleintroduction 111010130329-phpapp01Gradleintroduction 111010130329-phpapp01
Gradleintroduction 111010130329-phpapp01
Tino Isnich
Ā 
Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.
Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.
Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.
DrupalCampDN
Ā 

Similar to Android Jetpack: Room persistence library (20)

The Best Way to Become an Android Developer Expert with Android Jetpack
The Best Way to Become an Android Developer Expert  with Android JetpackThe Best Way to Become an Android Developer Expert  with Android Jetpack
The Best Way to Become an Android Developer Expert with Android Jetpack
Ā 
London HUG 12/4
London HUG 12/4London HUG 12/4
London HUG 12/4
Ā 
Spring.io
Spring.ioSpring.io
Spring.io
Ā 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11g
Ā 
[QE 2018] Adam Stasiak ā€“ Nadchodzi React Native ā€“ czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak ā€“ Nadchodzi React Native ā€“ czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak ā€“ Nadchodzi React Native ā€“ czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak ā€“ Nadchodzi React Native ā€“ czyli o testowaniu mobilnyc...
Ā 
Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
Ā 
Gradleintroduction 111010130329-phpapp01
Gradleintroduction 111010130329-phpapp01Gradleintroduction 111010130329-phpapp01
Gradleintroduction 111010130329-phpapp01
Ā 
Lecture 11 Firebase overview
Lecture 11 Firebase overviewLecture 11 Firebase overview
Lecture 11 Firebase overview
Ā 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile Devices
Ā 
Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.
Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.
Drupal 7 Deployment Using Apache Ant. Dmitriy Svetlichniy.
Ā 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
Ā 
Cloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload CourseCloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload Course
Ā 
What's New In Laravel 5
What's New In Laravel 5What's New In Laravel 5
What's New In Laravel 5
Ā 
Test Automation for NoSQL Databases
Test Automation for NoSQL DatabasesTest Automation for NoSQL Databases
Test Automation for NoSQL Databases
Ā 
Introduction to Node js for beginners + game project
Introduction to Node js for beginners + game projectIntroduction to Node js for beginners + game project
Introduction to Node js for beginners + game project
Ā 
Cocoapods and Most common used library in Swift
Cocoapods and Most common used library in SwiftCocoapods and Most common used library in Swift
Cocoapods and Most common used library in Swift
Ā 
QA Fest 2018. Adam Stasiak. React Native is Coming ā€“ the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming ā€“ the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming ā€“ the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming ā€“ the story of hybrid mobi...
Ā 
Firebase overview
Firebase overviewFirebase overview
Firebase overview
Ā 
GradleFX
GradleFXGradleFX
GradleFX
Ā 
Having Fun with Play
Having Fun with PlayHaving Fun with Play
Having Fun with Play
Ā 

More from Thao Huynh Quang

android deep linking
android deep linkingandroid deep linking
android deep linking
Thao Huynh Quang
Ā 

More from Thao Huynh Quang (16)

2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf2021-03-08-telegram-vs-signal.pdf
2021-03-08-telegram-vs-signal.pdf
Ā 
Consensus and Raft Algorithm in Distributed System
Consensus and  Raft Algorithm in Distributed SystemConsensus and  Raft Algorithm in Distributed System
Consensus and Raft Algorithm in Distributed System
Ā 
Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)Consensus and Raft algorithm (Vietnamese version)
Consensus and Raft algorithm (Vietnamese version)
Ā 
Kotlin Introduction with Android applications
Kotlin Introduction with Android applicationsKotlin Introduction with Android applications
Kotlin Introduction with Android applications
Ā 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrations
Ā 
Android Performance Tips
Android Performance TipsAndroid Performance Tips
Android Performance Tips
Ā 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
Ā 
Kafka: All an engineer needs to know
Kafka: All an engineer needs to knowKafka: All an engineer needs to know
Kafka: All an engineer needs to know
Ā 
Blockchain introduction
Blockchain introductionBlockchain introduction
Blockchain introduction
Ā 
Concurrency pattern in Kotlin
Concurrency pattern in KotlinConcurrency pattern in Kotlin
Concurrency pattern in Kotlin
Ā 
Observability and its application
Observability and its applicationObservability and its application
Observability and its application
Ā 
GraphQL in Android
GraphQL in AndroidGraphQL in Android
GraphQL in Android
Ā 
Android GRPC
Android GRPCAndroid GRPC
Android GRPC
Ā 
Android Reverse Engineering
Android Reverse EngineeringAndroid Reverse Engineering
Android Reverse Engineering
Ā 
nosql
nosqlnosql
nosql
Ā 
android deep linking
android deep linkingandroid deep linking
android deep linking
Ā 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(ā˜Žļø+971_581248768%)**%*]'#abortion pills for sale in dubai@
Ā 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Ā 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Ā 
Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organization
Ā 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
Ā 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Ā 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Ā 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Ā 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Ā 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Ā 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Ā 

Android Jetpack: Room persistence library