{"id":21619062,"url":"https://github.com/bannzai/kuri","last_synced_at":"2025-08-12T17:42:51.739Z","repository":{"id":37306238,"uuid":"77321881","full_name":"bannzai/Kuri","owner":"bannzai","description":"Automatically generates from template and imports it into Xcode project.","archived":false,"fork":false,"pushed_at":"2021-01-24T05:59:00.000Z","size":17203,"stargazers_count":259,"open_issues_count":1,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-11T08:04:41.776Z","etag":null,"topics":["boilerplate","boilerplate-template","ios","xcode"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bannzai.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}},"created_at":"2016-12-25T10:56:38.000Z","updated_at":"2025-07-27T15:41:27.000Z","dependencies_parsed_at":"2022-09-08T20:10:23.294Z","dependency_job_id":null,"html_url":"https://github.com/bannzai/Kuri","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/bannzai/Kuri","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FKuri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FKuri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FKuri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FKuri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bannzai","download_url":"https://codeload.github.com/bannzai/Kuri/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FKuri/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270108544,"owners_count":24528763,"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","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["boilerplate","boilerplate-template","ios","xcode"],"created_at":"2024-11-24T23:07:48.044Z","updated_at":"2025-08-12T17:42:51.675Z","avatar_url":"https://github.com/bannzai.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kuri\n\n**Kuri** is a tool that automatically generates necessary code and imports it into Xcode project.\n\n#### Usage tutorial.\nI gave youtube a video explaining how to use **Kuri** so please refer also [here](https://www.youtube.com/watch?v=Ae9ETnSgENY\u0026feature=youtu.be).\n\n## Why Kuri?\nI was use [Clean Architecture](https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html) for my product.\n*Clean Architecture* is a very wonderful way of thinking.\nBut very very written some boiler plate code and many many file create and import xcode.\nThis is so hard.\n\nSo, I thought about making a tool to automatically generate code from some templates. \n\n\u003cimg width=\"320px\" src=\"https://cloud.githubusercontent.com/assets/10897361/21470324/24bf3102-cac7-11e6-8d70-1a6e8623407b.jpeg\"/\u003e\n\nBut Kuri is not only use *Clean Architecture*.\nYou can use VIPER, MVVM... and your own architecture.\n\n### Components(Default)\nI believe that the following concepts are necessary in iOS CleanArchitecture.\n**Kuri** will arrange the mechanism for it.\n- **Entity** -  Value object.\n- **DataStore** -  Data store for Entity.\n- **Repository** -  Operation Datastore interface.\n- **UseCase** -  Application operation. translate and CRUD operation to repository.\n- **Translator** -  Translate Entity to Model or Model to Entity.\n- **Model** - Converted Entity for UI.\n- **Presenter** -  Event handle for View.\n- **View** -  Drawing UI.\n- **Wireframe** -  Control transition of View.\n- **Builder** -  Make a View with Dependency Injection.\n\n## Usage\nWhen using \"Kuri\" Two preparations are necessary.\n- Kuri.yml file.\n- KuriTemplate directory.\n\nBut using *setup* command will prepare these two.\n\n### setup\nIn project file root directory.\nYou can type `kuri setup` and press enter in CLI tool.\nThe \"Kuri.yml\" and \"KuriTemplate\" directories are created under the current directory.\n\n### generate\nThe form of the *generate* command basically looks like this\n`kuri generate \"MyName\"`.\nAfter Executing *generate* command, you can comfirm to want to append files and directories for *MyNameEntity*, *MyNameRepository*, *MyNameView* and so on into Xcode project.\n\ne.g\nExecute on terminal where project root directory.\n```\n$ kuri generate Kuri\n```\n![](https://cloud.githubusercontent.com/assets/10897361/21471548/01c91b3a-cafa-11e6-8f33-58c2c8b3c68e.png)\n\nInstructions with options [here](./Documents/generate.md).\n\n\n## Supported file\n- `.swift`\n- `.storyboard`\n- `.xib`\n\n## Customize\n**Kuri.yml** and **KuriTemplate** can be customized respectively.\n\n- [Kuri.yml](./Documents/yaml.md)\n- [KuriTemplate](./Documents/template.md)\n\nand you can check [KuriDemo](./KuriDemo/)'s templates.\n\n## Installation\n### Mint (Recommended)\n[Mint](https://github.com/yonaskolb/Mint) is a package manager for created by swift package manager executable libraries. \n`$ mint install bannzai/kuri\n\n### Manual\n1. Download **Kuri** from [latest release version](https://github.com/bannzai/Kuri/releases)\n2. Copy **kuri** and paste it where you can execute from the CLI. (e.g. `/usr/local/bin/`. Every directory is okay if the path passed.)\n\nYou can now run the **kuri** command.\n\n### How to debug\nIf you want to debug for **Kuri**.\nYou should see [here](./Documents/debug.md).\n\n## License\n*Kuri* is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbannzai%2Fkuri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbannzai%2Fkuri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbannzai%2Fkuri/lists"}