{"id":24756237,"url":"https://github.com/ehsannarmani/easyshared","last_synced_at":"2025-03-23T07:16:56.600Z","repository":{"id":206461493,"uuid":"716701708","full_name":"ehsannarmani/EasyShared","owner":"ehsannarmani","description":"A Library For Using SharedPreferences Easier","archived":false,"fork":false,"pushed_at":"2024-03-30T20:16:49.000Z","size":119,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T13:54:21.975Z","etag":null,"topics":["android","android-library","android-studio","database","easy","java","kotlin","kotlin-android","kotlin-library","library","mobile-development","shared-preferences","sharedpreferences"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ehsannarmani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-09T17:30:29.000Z","updated_at":"2024-09-09T14:53:45.000Z","dependencies_parsed_at":"2023-11-10T12:02:28.859Z","dependency_job_id":"b370b29c-feff-4c51-be33-660af9c969e3","html_url":"https://github.com/ehsannarmani/EasyShared","commit_stats":null,"previous_names":["ehsannarmani/easyshared"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehsannarmani%2FEasyShared","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehsannarmani%2FEasyShared/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehsannarmani%2FEasyShared/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehsannarmani%2FEasyShared/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ehsannarmani","download_url":"https://codeload.github.com/ehsannarmani/EasyShared/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245066714,"owners_count":20555431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","android-studio","database","easy","java","kotlin","kotlin-android","kotlin-library","library","mobile-development","shared-preferences","sharedpreferences"],"created_at":"2025-01-28T13:50:22.593Z","updated_at":"2025-03-23T07:16:56.572Z","avatar_url":"https://github.com/ehsannarmani.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyShared\n\n### A Library For Using Shared Preferences Easier\n\n## Usage:\n\n```kotlin\n    var token:String by savable(\"auth_token\")\n    var age:Int by savable() /* savable(\"age\") */\n    var loggedIn:Boolean by savable() /* savable(\"loggedIn\") */\n\n    var phone by savableInt()\n    var name by savableString()\n    var timestamp by savableLong()\n```\n\n#### Note: you can pass variable key to save in shared preferences, but if you don't, it will save in variable name, for exmaple:\n\n```kotlin\n    var username:String by savable()\n```\n#### Here, that username will save in 'username' key, and:\n```kotlin\n    var username:String by savable(\"name\")\n```\n#### Here, that username will save in 'user' key\n\n### Updating\n#### For update and re-save variable value in shared prefrences, just update that savable value, that's it! , for example:\n```kotlin\n  var token:String by savable(\"auth_token\")\n\n  token = \"xxxxx\"\n```\n```kotlin\n  var userId by savableInt()\n\n  userId = 43\n```\n#### No need to do anything else.\n\n### Saving Objects \u0026 ListOf Them\n```kotlin\n  data class Person(val id:Int,val name:String)\n\n  val persons:List\u003cPerson\u003e by savable(defauleValue = emptyList())\n```\n\n## Final Sample In Jetpack Compose:\n\n```kotlin\n  var token:String by savable(\"auth_token\")\n  var user:User by savable(defaultValue = User(id = -1,name = \"empty user\"))\n\n  Button(onClick = {\n      token = UUID.randomUUID().toString()\n      user = User(id = 342, name = \"Iran\")\n  }) {\n     Text(text = \"Set\")\n  }\n  Button(onClick = {\n      println(user.name)\n      Toast.makeText(context, token, Toast.LENGTH_SHORT).show()\n  }) {\n      Text(text = \"Get\")\n  }\n```\n\n\u003chr/\u003e\n\n## Dependency\n\n### Add the JitPack repository to your build file\n\n#### Add Jitpack Maven in your settings.gradle file:\n\n```groovy\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n#### Kotlin DSL(build.gradle.kts):\n\n```kotlin\n    repositories {\n        ...\n        maven(\"https://jitpack.io\")\n    }   \n```\n\n## Add the dependency\n\n[![](https://jitpack.io/v/ehsannarmani/EasyShared.svg)](https://jitpack.io/#ehsannarmani/EasyShared)\n\n#### Groovy:\n```groovy\ndependencies {\n      implementation 'com.github.ehsannarmani:EasyShared:latest_version'\n}\n```\n#### Kotlin DSL (build.gradle.kts):\n```groovy\ndependencies {\n    implementation(\"com.github.ehsannarmani:EasyShared:latest_version\")\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehsannarmani%2Feasyshared","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fehsannarmani%2Feasyshared","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehsannarmani%2Feasyshared/lists"}