{"id":13611165,"url":"https://github.com/popovanton0/kira","last_synced_at":"2025-04-13T01:34:59.810Z","repository":{"id":50496729,"uuid":"489662148","full_name":"popovanton0/kira","owner":"popovanton0","description":"🎛️ Automatically generates UI which allows users to call any function (including composable ones) with any parameter values. Useful for building demo screens in playground apps of design systems","archived":false,"fork":false,"pushed_at":"2023-07-18T20:18:25.000Z","size":4338,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-07T17:50:46.151Z","etag":null,"topics":["android","annotation-processor","code-generation","demo-app","design-system","jetpack-compose","kotlin","ksp","playground-app"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/popovanton0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-05-07T12:03:39.000Z","updated_at":"2024-04-21T08:02:08.000Z","dependencies_parsed_at":"2024-01-16T23:31:12.048Z","dependency_job_id":"19761ad2-c92e-4f21-8408-0cf3f38d7ef9","html_url":"https://github.com/popovanton0/kira","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popovanton0%2Fkira","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popovanton0%2Fkira/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popovanton0%2Fkira/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popovanton0%2Fkira/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/popovanton0","download_url":"https://codeload.github.com/popovanton0/kira/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654030,"owners_count":21140236,"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","annotation-processor","code-generation","demo-app","design-system","jetpack-compose","kotlin","ksp","playground-app"],"created_at":"2024-08-01T19:01:52.405Z","updated_at":"2025-04-13T01:34:59.288Z","avatar_url":"https://github.com/popovanton0.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"# Kira\n\n[![Project Status: Suspended – Initial development has started, but there has not yet been a stable, usable release; work has been stopped for the time being but the author(s) intend on resuming work.](https://www.repostatus.org/badges/latest/suspended.svg)](https://www.repostatus.org/#suspended)\n[![Compatible with Compose — 1.2.0](https://img.shields.io/badge/Compatible%20with%20Compose-1.2.0-brightgreen)](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.2.0)\n\nKira is an Android library that defines a Kotlin DSL (similar to \n[androidx.preference](https://developer.android.com/guide/topics/ui/settings)) for creating UI that allows users to call\nany function (including `@Composable` ones) with any parameter values.\n\nKira also includes annotation-processor `kira-processor` that __✨automagically✨__ generates UI for functions using the \nDSL.\n\nLibrary is particularly useful for building demo screens for UI components in playground apps of various design systems.\n\n## Example\n\n```kotlin\n@Kira\n@Composable\nfun TextCard(\n    text: String,\n    isRed: Boolean,\n    skill: Skill?,\n    food: Food,\n) = TODO()\n```\n\nGenerated code (only a portion):\n\n```kotlin\nkira(TextCardScope()) {\n    text = string(paramName = \"text\", defaultValue = \"Lorem\")\n    isRed = boolean(paramName = \"isRed\", defaultValue = false)\n    skill = nullableEnum(paramName = \"skill\", defaultValue = null)\n    food = enum(paramName = \"food\")\n    injector {\n        TextCard(\n            text = text.currentValue(),\n            isRed = isRed.currentValue(),\n            skill = skill.currentValue(),\n            food = food.currentValue(),\n        )\n    }\n}\n```\n\nScreenshot of the UI demo screen:\n\n\u003cimg width=\"400\" src=\"images/light/example-ui.gif#gh-light-mode-only\" alt=\"Horizontal ListItems present for each function argument that allow user to provide any value of the argument's type to the function's arguments\"\u003e\n\u003cimg width=\"400\" src=\"images/dark/example-ui.gif#gh-dark-mode-only\" alt=\"Horizontal ListItems present for each function argument that allow user to provide any value of the argument's type to the function's arguments\"\u003e\n\n## Demo Video\n\n\u003ca href=\"https://www.youtube.com/watch?v=FOiUPHJNiYI\" target=\"_blank\"\u003e\n    \u003cimg width=\"300\" src=\"images/youtube-thumbnail.jpg\" alt=\"Kira — Early Demo on YouTube\"\u003e\n\u003c/a\u003e\n\n## Getting Started\n\n[![Release](https://jitpack.io/v/popovanton0/kira.svg)](https://jitpack.io/#popovanton0/kira)\n\nAdd the following code to your project's _root_ `build.gradle` file:\n\n```groovy\nrepositories {\n    maven { url \"https://jitpack.io\" }\n}\n```\n\nNext, add the dependency below to your _module_'s `build.gradle` file:\n\n```gradle\ndependencies {\n    implementation \"com.github.popovanton0:kira:LATEST_VERSION\"\n    ksp \"com.github.popovanton0.kira:kira-processor:LATEST_VERSION\"\n}\n```\n\n## Usage\n\nExamples are in\nthe [source code](https://github.com/popovanton0/kira/blob/master/app/src/main/java/com/popovanton0/kira/demo/MainActivity.kt)\n.\n\n### Basic\n\n```kotlin\nTODO()\n```\n\n\u003c!-- No try-catch https://kotlinlang.slack.com/archives/CJLTWPH7S/p1603748877143100?thread_ts=1603737209.131700\u0026cid=CJLTWPH7S --\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopovanton0%2Fkira","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpopovanton0%2Fkira","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopovanton0%2Fkira/lists"}