{"id":22192521,"url":"https://github.com/3sidedcube/sprintzero-template-android-client","last_synced_at":"2025-03-24T20:45:41.440Z","repository":{"id":217925574,"uuid":"745118490","full_name":"3sidedcube/sprintzero-template-android-client","owner":"3sidedcube","description":"This repository provides a clean, well-organised template designed to speed up the process of setting up new projects at Cube. Use it as a starting point for your new Android project, and accelerate your progress by focusing on your app's unique features rather than boilerplate setup.","archived":false,"fork":false,"pushed_at":"2024-01-29T12:50:51.000Z","size":129,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-30T01:22:30.086Z","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/3sidedcube.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":"2024-01-18T17:16:55.000Z","updated_at":"2024-01-18T18:03:15.000Z","dependencies_parsed_at":"2024-12-02T12:39:58.544Z","dependency_job_id":null,"html_url":"https://github.com/3sidedcube/sprintzero-template-android-client","commit_stats":null,"previous_names":["3sidedcube/sprintzero-template-android-client"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3sidedcube%2Fsprintzero-template-android-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3sidedcube%2Fsprintzero-template-android-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3sidedcube%2Fsprintzero-template-android-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3sidedcube%2Fsprintzero-template-android-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3sidedcube","download_url":"https://codeload.github.com/3sidedcube/sprintzero-template-android-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245351757,"owners_count":20601090,"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":[],"created_at":"2024-12-02T12:25:43.705Z","updated_at":"2025-03-24T20:45:41.411Z","avatar_url":"https://github.com/3sidedcube.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Template for Android\n\nThis repository provides a clean, well-organised template designed to speed up the process of setting up new projects at Cube. Use it as a starting point for your new Android project, and accelerate your progress by focusing on your app's unique features rather than boilerplate setup.\n\n## Gradle Setup\n- Adds a new local `gradle.properties` file with the following values. This file is included in the `.gitignore` and will not be committed.\n\n```properties\nkotlin.code.style=official\norg.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8\nandroid.useAndroidX=true\nandroid.nonTransitiveRClass=true\nsystemProp.SENTRY_DSN={{Your Sentry URL}}\n```\n\n## Code formatting\nThis repo is set up with automatic git commit hooks to ensure well formatted code - credit to Ali Rezaee for the set-up.\nAfter cloning the repository, you should set up the hook with:\n\n```shell\n./gradlew installGitHook\n```\n\nOr by running the `installGitHook` task from Android Studio's Gradle tab or the `build.gradle` file.\n\nThe purpose of this hook is to run the `ktlint` task before it lets you commit.\nIf it is successful, then it commits successfully, otherwise, it will throw an error explaining the problem.\n\nIf the problem is code formatting, you can use the `ktlintFormat` task to automatically format the code (although there are some changes that `ktlintFormat` cannot automatically make, which you will have to manually fix).\n\nOne thing to note is that this git hook can cause issues when merging branches, throwing unnecessary errors on the merge commit.\nYou can temporarily bypass the hook by running the `removeGitHook` task, then performing the merge, and then running `installGitHook` again so that the hook still applies to subsequent commits.\n\n## Repo structure\nThis repo uses single-module structure, as there is no need to split into multiple modules.\nHowever, the packages are organised similarly to a two-module structure, in order to cleanly separate interests for the code.\n\nThe `app` package contains the main application, as well as a package for any distinct element of the app's UI flow.\nThese subpackages may contain activities, fragments, adapters etc., but should only contain code that is used exclusively in the specified part of the app.\n\nThe `lib` package can contain any logic that is not related to UI (e.g config, API logic), or any generic UI logic that is used in multiple parts of the app (e.g views, viewholders).\nThis way, generic logic can be set up within `lib`, and then utilised in a specific way to achieve the intended UI in `app`.\n\n## Firebase integration\nThe template uses Firebase for push notifications, analytics and crash reporting. Additional projects can be created as required. The project can be found under the 3SidedCube account\n\n## Timber Logging\nThe template has Timber logging installed and setup. See [TimberLoggingHelper.kt](app/src/main/java/com/cube/sprintzerotemplate/lib/util/TimberLoggingHelper.kt) and modify as needed.\n\n## Sentry\nIn production environments, the template is setup to send exception errors and crashes to Sentry. Sentry has been fully integrated with Timber so no additional functions are required.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3sidedcube%2Fsprintzero-template-android-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3sidedcube%2Fsprintzero-template-android-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3sidedcube%2Fsprintzero-template-android-client/lists"}