How to use it

Android library to simplify reading and writing to SharedPreferences, never write code like this anymore prefs.edit().putString("someKey","someString").apply()

Just create a model with wanted properties and default values like the this:

@Bulldog(name = "UserSettings")
object UserModel {
const val id: Int = 20 // Default value
const val email: String = ""
const val likes: Long = 20L
const val isPremium: Boolean = false
const val minutesLeft: Float = 24.5F

Init Bulldog context in your application class.

bullDogCtx = applicationContext

Bulldog will generate a class from this specification with the name UserSettings. Use it like a normal object to access values, under the hood it uses Kotlin delegated properties to read and writes values to SharedPreferences.

UserSettings().apply {
id = 2
email = ""
Log.d("PREFS", UserSettings().id)
Log.d("PREFS", UserSettings().toString())

If no name is specified in @Bulldog annotation, the generated class will have the name of the specification object prefixed with Bulldog

Read values

Just access object property like a normal object

Log.d("UserId", UserSettings().id)

Write values

id = 4
Log.d("UserId", id)

Clear values

Bulldog generates a clear method for each entry

Log.d("UserId", id) // Will return the default value

Bulldog also generates a toString() human readable implementation

Log.d("PREFS", UserSettings().toString())
// Ouput
// UserSettings id=20,, likes=20, isPremium=false minutesLeft=24.5