{"id":13605435,"url":"https://github.com/Codeblin/ObjectPreference","last_synced_at":"2025-04-12T05:33:00.648Z","repository":{"id":217530534,"uuid":"232596969","full_name":"Codeblin/ObjectPreference","owner":"Codeblin","description":"Fast and easy Shared Preferences managing with object mapping annotations for simple or complex class structures","archived":true,"fork":false,"pushed_at":"2020-01-30T10:13:19.000Z","size":188,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-07T10:41:27.502Z","etag":null,"topics":["android","code-generation","data","dataclasses","easy-to-use","localstorage","mapping-annotations","sharedpreferences","sharedpreferences-easy","sharedpreferences-helper","sharedpreferences-manager"],"latest_commit_sha":null,"homepage":null,"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/Codeblin.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":"2020-01-08T15:40:25.000Z","updated_at":"2024-03-27T05:18:05.000Z","dependencies_parsed_at":"2024-02-02T18:49:31.496Z","dependency_job_id":null,"html_url":"https://github.com/Codeblin/ObjectPreference","commit_stats":null,"previous_names":["codeblin/objectpreference"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codeblin%2FObjectPreference","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codeblin%2FObjectPreference/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codeblin%2FObjectPreference/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codeblin%2FObjectPreference/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Codeblin","download_url":"https://codeload.github.com/Codeblin/ObjectPreference/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248524246,"owners_count":21118609,"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","code-generation","data","dataclasses","easy-to-use","localstorage","mapping-annotations","sharedpreferences","sharedpreferences-easy","sharedpreferences-helper","sharedpreferences-manager"],"created_at":"2024-08-01T19:00:58.635Z","updated_at":"2025-04-12T05:33:00.586Z","avatar_url":"https://github.com/Codeblin.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"[![CircleCI](https://circleci.com/gh/Codeblin/ObjectPreference.svg?style=svg)](https://circleci.com/gh/Codeblin/ObjectPreference/tree/master)\n![Bintray](https://img.shields.io/bintray/v/stamatisstiliatis/ObjectPreferencesCompiler/ObjectPreferencesCompiler) \n[![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-ObjectPreference-green.svg?style=flat )]( https://android-arsenal.com/details/1/8030 )\n# ObjectPreference\nFast and easy Shared Preferences managing with object mapping annotations for simple or complex class structures\n\n\n### How to use\n\n* app build.gradle\n\n```gradle\nimplementation 'com.codeblin.annotations:ObjectPreferences:\u003clatest-version\u003e'\nkapt 'com.codeblin.compiler:ObjectPreferencesCompiler:\u003clatest-version\u003e'\n```\n\nObjectPreferences uses java 8 so you need to set compile  options to target Java 8\n```\nandroid{\n\tcompileOptions {\n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }\n\n    kotlinOptions {\n        jvmTarget = JavaVersion.VERSION_1_8.toString()\n    }\n}\n```\n\n* First create you model and annotate with `@Document` Annotation\n\n_Example_\n\n``` kotlin\n@Document\ndata class User(\n    val id: Int,\n    val firstName: String,\n    val lastName: String,\n    val age: Int,\n    val transactions: List\u003cTransaction\u003e\n)\n\ndata class Transaction(\n    val id: Int,\n    val date: Date,\n    val amount: Double\n)\n```\n\n* **Build project**. Now initialize `SharedPrefManager` at your Application class\n\n```kotlin\nSharedPrefManager.initialize(this)\n```\n\nThis will generate the class you will be using which is the name of your class with the suffix 'StoreModel'\n\n```kotlin\nclass UserStoreModel(\n    private val value: User\n) {\n    fun save() {\n        com.codeblin.objectpreference.SharedPrefManager.saveObject\u003cUser\u003e(\n            \"User\",\n            value\n        )\n    }\n\n    fun get(): User =\n        com.codeblin.objectpreference.SharedPrefManager.getObject\u003cUser\u003e(\n            \"User\"\n        )\n\n    fun delete() {\n        com.codeblin.objectpreference.SharedPrefManager.delete(\"User\")\n    }\n}\n```\n\n### :sparkles::sparkles:That's it!:sparkles::sparkles:\n\n#### Features\n\nUse \\\u003cyour-annotated-class-name\\\u003eStoreModel class to operate\n\n* Save \n\n```kotlin\nval user = UserStoreModel(User(..))\nuser.save()\n```\n* Get \n\n```kotlin\nuser.get()\n```\n* Delete \n\n```kotlin\nuser.delete()\n```\n* Create an instance with the default empty constructor to reuse your StoreModel across your app \n\n```kotlin\nuser = UserStoreModel()\n```\n\n* Clear all \n\n```kotlin\nSharedPrefManager.clear()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodeblin%2FObjectPreference","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCodeblin%2FObjectPreference","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodeblin%2FObjectPreference/lists"}