PocketDB
Android SharedPreferences Helper
This is SharedPreferences Helper like a database noSql. Support AES encryption
Latest Version
Download
dependencies {
// required coroutine
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.8'
// add this library
implementation "com.utsman.pocket:pocketdb:$latest-version"
}
Use
Installation
This libray using Koin for Dependencies Injection, you need add this line in Application
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
Pocket.init(this, "utsmangantenkyah") // 16 digit secure key
}
}
For existing Koin, you can install koin module after inject context androidContext
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@MainApplication) // required context injection
Pocket.installKoinModule(this, "utsmangantenkyah") // 16 digit secure key
}
}
}
Inserting
Pocket have two type class for inserting, Row
and Collection
. Row
for store single data class apart from collection class, and the Collection
for storing any collection class.
Row
I want to insert this data
data class User(val name: String)
val user = User("utsman")
So I inserting it like this
Pocket.row("user").insert("utsman", user)
For retrieve that data, I need default of value, so add default param with defaultOf(data)
val default = defaultOf(User("sarah")) // default
// retrieve key of "utsman" from row of "user"
val data = Pocket.row("user").selectOf("utsman", default)
For need observe changes data, I use flowOf
and call from coroutine scope or use .listenOnUi
for observing in ui thread
Pocket.row("user")
.flowOf("utsman", default)
.listenOnUi { data ->
// observing data changes here
}
// or
GlobalScope.launch {
Pocket.row("user")
.flowOf("key", default)
.collect {
// observing data changes here
}
}
And I want to remove data row of "utsman"
Pocket.row("user").destroy("utsman")
Or remove all data in row of "user"
Pocket.row("user").destroy()
Collection
For the collection, has similiar function with row. Use defaultCollectionOf()
for default data.
Pocket.collection("users")...
Table of function
Function | Row | Collection |
---|---|---|
insert |
yes | yes |
insertAll |
no | yes |
flowOf |
yes | yes |
selectOf |
yes | yes |
destroy |
yes | yes |
keys |
yes | yes |
Copyright 2020 Muhammad Utsman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.