{"id":22455823,"url":"https://github.com/theapache64/jaba","last_synced_at":"2026-04-01T22:04:09.346Z","repository":{"id":86799535,"uuid":"180070199","full_name":"theapache64/jaba","owner":"theapache64","description":"A simple CLI program to convert your android project's structure.","archived":false,"fork":false,"pushed_at":"2020-04-19T18:50:14.000Z","size":42736,"stargazers_count":15,"open_issues_count":12,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-28T01:33:10.906Z","etag":null,"topics":[],"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/theapache64.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,"zenodo":null}},"created_at":"2019-04-08T04:33:10.000Z","updated_at":"2025-07-03T05:04:51.000Z","dependencies_parsed_at":"2023-03-07T19:00:48.160Z","dependency_job_id":null,"html_url":"https://github.com/theapache64/jaba","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/theapache64/jaba","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theapache64%2Fjaba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theapache64%2Fjaba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theapache64%2Fjaba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theapache64%2Fjaba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theapache64","download_url":"https://codeload.github.com/theapache64/jaba/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theapache64%2Fjaba/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-12-06T07:13:31.823Z","updated_at":"2026-04-01T22:04:09.333Z","avatar_url":"https://github.com/theapache64.png","language":"Kotlin","readme":"[![IMAGE](https://raw.githubusercontent.com/theapache64/jaba/master/youtube_banner.jpg)](https://www.youtube.com/watch?v=VZ8KAkvw9ck)\n\n\n# Jaba\n\nA simple cli tool to convert your stock android project structure to MVVM architectural pattern. \nIt also includes templates for splash and login screen. Basically, jaba is a time saver. :)\n\n## Install\n\n```shell script\nwget \"https://raw.githubusercontent.com/theapache64/jaba/master/install.sh\" -q --show-progress -O install.sh \u0026\u0026 sh install.sh \u0026\u0026 source ~/.bash_aliases\n```\n\n## Usage\n\nSimply run `jaba` in an android studio project, and you'll be prompted with an interactive shell.\n\n```\n\nProject : MyAwesomeProject\nPackage : com.theapache64.myawesomeproject\n\nChoose architecture\n1) MVVM\n2) MVP\nResponse :1\nDo you need google fonts? (y/N): y\nResponse : yes\nDo you need network module ? (y/N): y\nResponse : yes\nEnter base url : (empty to use default jaba api): http://myapi.com/api/v1/\nDo you need splash screen? (y/N): y\nResponse : yes\nDo you need login screen? (y/N): y\nResponse : yes\n⏳ Creating dirs...\n✔️ Done\n⏳ Modifying app.gradle\n✔️ Done\n⏳ Fixing XML style issue...\n✔️ Done\n⏳ Creating App.kt ...\n✔️ Done\nModifying manifest file...\n✔️ Done\n⏳ Creating MainViewModel.kt ...\n✔️ Done\n⏳ Modifying MainActivity.kt ...\n✔️ Done\n⏳ Adding data binding to main layout file...\n✔️ Done\n⏳ Updating content_main.xml to support data binding\n✔️ Done\n⏳ Creating dagger activity builder...\n✔️ Done\n⏳ Creating dagger AppComponent.kt ...\n✔️ Done\n⏳ Creating network module...\n✔️ Done\n⏳ Creating ApiInterface.kt ...\n✔️ Done\n⏳ Creating LogInRequest.kt ...\n✔️ Done\n⏳ Creating LogInResponse.kt ...\n✔️ Done\n⏳ Creating UserPrefRepository.kt ...\n✔️ Done\n⏳ Creating LogInActivity.kt ...\n✔️ Done\n⏳ Creating LogInViewModel.kt ...\n✔️ Done\n⏳ Creating LogInHandler.kt ...\n✔️ Done\n⏳ Creating AuthRepository.kt ...\n✔️ Done\n⏳ Creating login layout...\n✔️ Done\n⏳ Creating login related icons\n✔️ Done\n⏳ Adding login strings to strings.xml\n✔️ Done\n⏳ Modifying menu_main.xml file\n✔️ Done\n⏳ Creating dagger AppModule.kt ...\n✔️ Done\n⏳ Creating dagger ViewModelModule.kt ...\n✔️ Done\n⏳ Creating SplashViewModel.kt\n✔️ Done\n⏳ Creating SplashActivity.kt ...\n✔️ Done\n⏳ Modifying styles.xml to support splash theme\n✔️ Done\n⏳ Creating splash_bg.xml ...\n✔️ Done\n⏳ Creating logo icon...\n✔️ Done\n⏳ Adding color constants to colors.xml\n✔️ Done\n⏳ Finishing project setup...\n✔️ Done\n```\n\n## Activity Support\n\nOnce you created a new activity, you'll want to create `ViewModel`, `Handler` and integrate them with the `DataBinding`, `Activity` and with `Dagger`. To solve this mundane task, you may use the `pas` flag to **Provide Activity Support**\n\nSyntax\n\n```\njaba -pas COMPONENT_NAME\n```\n\nFor example,If you want activity support for `SomeActivity`, you may use below code\n\n```\njaba -pas SomeActivity\n```\n\nThen it'll do the following\n\n### Creation\n\n- Create `ViewModel` named `SomeViewModel` with `dagger` injection\n- Create `Handler` named `SomeHandler`\n\n### Integration\n\n- Integrate `SomeViewModel` with `SomeActivity` with  `dagger-viewmodel-factory`\n- Implement `SomeHandler` in `SomeActivity`\n- Integrate `SomeViewModel` and `SomeHandler` with `activity_some.xml` (using data binding)\n\n### Finalization\n\n- Add `SomeActivity` builder in `ActivityBuilderModule`\n\n- Add `SomeViewModel` in `ViewModelModule`\n\n\n## Known Issues\n\n**Code Alignment**\n\nOnce the code generation has been done, some files will have some alignment issues.\nTo fix this, you may do `Code Refactor` \n\n- Click on the `Project` panel\n- Click on `app`\n- Press `Control + Alt + L` (linux)\n- Check `Optimize Imports, Rearrange entries and Cleanup code`\n- Click 'Run'\n\nThis will solve all alignment issues as well as optimization of imports.\n\n## Project Structure\n\n**Before**\n\n```\n.\n├── MainActivity.kt\n```\n\n**After**\n```\n.\n├── App.kt\n├── data\n│   ├── local\n│   ├── remote\n│   │   ├── ApiInterface.kt\n│   │   └── login\n│   │       ├── LogInRequest.kt\n│   │       └── LogInResponse.kt\n│   └── repositories\n│       ├── AuthRepository.kt\n│       └── UserPrefRepository.kt\n├── di\n│   ├── components\n│   │   └── AppComponent.kt\n│   └── modules\n│       ├── ActivitiesBuilderModule.kt\n│       ├── AppModule.kt\n│       ├── NetworkModule.kt\n│       └── ViewModelModule.kt\n├── models\n├── ui\n│   └── activities\n│       ├── login\n│       │   ├── LogInActivity.kt\n│       │   ├── LogInHandler.kt\n│       │   └── LogInViewModel.kt\n│       ├── main\n│       │   ├── MainActivity.kt\n│       │   └── MainViewModel.kt\n│       └── splash\n│           ├── SplashActivity.kt\n│           └── SplashViewModel.kt\n└── utils\n\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheapache64%2Fjaba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheapache64%2Fjaba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheapache64%2Fjaba/lists"}