{"id":20244325,"url":"https://github.com/protonmail/protoncore_android","last_synced_at":"2025-04-06T06:13:49.007Z","repository":{"id":37755781,"uuid":"271536015","full_name":"ProtonMail/protoncore_android","owner":"ProtonMail","description":"Proton Core components for Android","archived":false,"fork":false,"pushed_at":"2024-05-22T14:08:11.000Z","size":421644,"stargazers_count":114,"open_issues_count":7,"forks_count":28,"subscribers_count":22,"default_branch":"main","last_synced_at":"2024-05-22T14:41:55.166Z","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/ProtonMail.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-06-11T12:05:53.000Z","updated_at":"2024-05-28T11:04:26.501Z","dependencies_parsed_at":"2023-09-27T22:03:31.280Z","dependency_job_id":"557e6e90-787c-4f44-9717-b7959e7984b9","html_url":"https://github.com/ProtonMail/protoncore_android","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonMail%2Fprotoncore_android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonMail%2Fprotoncore_android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonMail%2Fprotoncore_android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProtonMail%2Fprotoncore_android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProtonMail","download_url":"https://codeload.github.com/ProtonMail/protoncore_android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247441059,"owners_count":20939239,"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-11-14T09:14:28.749Z","updated_at":"2025-04-06T06:13:49.000Z","avatar_url":"https://github.com/ProtonMail.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Usage\nAdd the desired library as following\n```kotlin\nimplementation(\"me.proton.core:\u003cname-of-the-lib\u003e:\u003cversion\u003e\")\n```\nwhere `\u003cname-of-the-lib\u003e` reflect the one listed below, on lowercase, with `-` instead of spaces\n`Util Android Shared Preferences: **0.1**` can be resolved as `me.proton.core:util-android-share-preferences:0.1`\n\nWhere there are all or some of `domain`, `data`, `presentation`, they can be imported together with the parent module.\n```kotlin\nimplementation(\"~:network-domain:~\")\nimplementation(\"~:network-data:~\")\n```\nor\n```kotlin\nimplementation(\"~:network:~\")\n```\nwhile the first one is suitable for multi-module projects, the latter is the suggested solution for monolithic clients.\n\n# Conventional Commits\n\n- For each Merge Request, all commits must adhere to [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec.\n- Whenever possible, use a module name as a scope (e.g. `fix(account-manager): Fix login issue.`).\n- Use a proper sentence as a description — start with an uppercase letter, end with a dot.\n\n## Allowed commit types\n\n- \u003cfont color=\"grey\"\u003e`build`\u003c/font\u003e\u003csup\u003e*\u003c/sup\u003e: Changes that affect build system (e.g. Gradle update)\n- `chore`: Changes other than source or test code (e.g. library version updates)\n- \u003cfont color=\"grey\"\u003e`ci`\u003c/font\u003e\u003csup\u003e*\u003c/sup\u003e: CI configuration\n- \u003cfont color=\"grey\"\u003e`docs`\u003c/font\u003e\u003csup\u003e*\u003c/sup\u003e: Documentation changes\n- `feat`: A new feature\n- `fix`: Bug fixes\n- `i18n`: Internationalization and translations\n- `perf`: Performance Improvements\n- `refactor`: A change in the source code that neither fixes a bug nor adds a feature\n- `revert`: Reverting a commit\n- \u003cfont color=\"grey\"\u003e`style`\u003c/font\u003e\u003csup\u003e*\u003c/sup\u003e: Code style changes, not affecting code meaning (formatting)\n- \u003cfont color=\"grey\"\u003e`test`\u003c/font\u003e\u003csup\u003e*\u003c/sup\u003e: Adding new tests or improving existing ones\n- `theme`: Changes related to UI theming\n\n\u003csup\u003e*\u003c/sup\u003e Commits with those types, will be *skipped* when generating changelog.\n\n# Gradle tasks\n\n- `:my_module:projectHealth` or `buildHealth` - Runs dependency analysis on a single module or the whole project.\n- `generateChangelog` - Generates a changelog since the last release (tag). Output is written to `CHANGELOG.md` file.\n\n# Release\n\n## Core libraries\nRelease process is based on [trunk branch for release process](https://trunkbaseddevelopment.com/branch-for-release/).\nRelease is done by the CI.\n\nTo trigger a new release, navigate to the latest CI build on the `main` branch and launch\nthe `trigger-new-libs-release` job. Before launching it, you can specify the next version number,\nby entering a `NEXT_VERSION` variable. If unspecified, the version number will be calculated automatically.\n\nThe `trigger-new-libs-release` job will generate and update the changelog, and commit the changes to\nthe `main` branch. At this point you will be able to review the automatic changes.\nIf the changes are correct, you should push a new branch named `release/libs/X.Y.Z`.\n\nWhen the release is successfully done:\n* A message is post on internal communication tool using the content of the [`CHANGELOG.MD`](./CHANGELOG.md) under the entry `## [X.Y.Z].\n* A tag `release/libs/X.Y.Z` is created from the commit used to do the release.\n\n## Version\n- Stable release `X.Y.Z` are published on `MavenCentral`.\n- Snapshot from every commit on the `main` branch are available using version `main-SNAPSHOT` under `https://s01.oss.sonatype.org/content/repositories/snapshots/` repo.\n\n## Coordinates\nCore libraries coordinates can be found under [coordinates section](#coordinates)\n\n| Coordinates                                          |\n|------------------------------------------------------|\n| me.proton.core:account                               |\n| me.proton.core:account-dagger                        |\n| me.proton.core:account-data                          |\n| me.proton.core:account-domain                        |\n| me.proton.core:account-manager                       |\n| me.proton.core:account-manager-dagger                |\n| me.proton.core:account-manager-data                  |\n| me.proton.core:account-manager-data-db               |\n| me.proton.core:account-manager-domain                |\n| me.proton.core:account-manager-presentation          |\n| me.proton.core:account-manager-presentation-compose  |\n| me.proton.core:account-manager-test                  |\n| me.proton.core:account-recovery                      |\n| me.proton.core:account-recovery-dagger               |\n| me.proton.core:account-recovery-data                 |\n| me.proton.core:account-recovery-domain               |\n| me.proton.core:account-recovery-presentation-compose |\n| me.proton.core:account-recovery-test                 |\n| me.proton.core:auth                                  |\n| me.proton.core:auth-dagger                           |\n| me.proton.core:auth-data                             |\n| me.proton.core:auth-domain                           |\n| me.proton.core:auth-fido                             |\n| me.proton.core:auth-fido-dagger                      |\n| me.proton.core:auth-fido-domain                      |\n| me.proton.core:auth-fido-play                        |\n| me.proton.core:auth-presentation                     |\n| me.proton.core:auth-presentation-compose             |\n| me.proton.core:auth-test                             |\n| me.proton.core:biometric                             |\n| me.proton.core:biometric-dagger                      |\n| me.proton.core:biometric-data                        |\n| me.proton.core:biometric-domain                      |\n| me.proton.core:biometric-presentation                |\n| me.proton.core:contact                               |\n| me.proton.core:contact-data                          |\n| me.proton.core:contact-domain                        |\n| me.proton.core:contact-dagger                        |\n| me.proton.core:configuration-data                    |\n| me.proton.core:configuration-dagger-staticdefaults   |\n| me.proton.core:configuration-dagger-content-resolver |\n| me.proton.core:core-platform                         |\n| me.proton.core:country                               |\n| me.proton.core:country-dagger                        |\n| me.proton.core:country-data                          |\n| me.proton.core:country-domain                        |\n| me.proton.core:country-presentation                  |\n| me.proton.core:crypto                                |\n| me.proton.core:crypto-android                        |\n| me.proton.core:crypto-common                         |\n| me.proton.core:crypto-dagger                         |\n| me.proton.core:crypto-validator                      |\n| me.proton.core:crypto-validator-dagger               |\n| me.proton.core:crypto-validator-data                 |\n| me.proton.core:crypto-validator-domain               |\n| me.proton.core:crypto-validator-presentation         |\n| me.proton.core:data                                  |\n| me.proton.core:data-room                             |\n| me.proton.core:device-migration                      |\n| me.proton.core:device-migration-dagger               |\n| me.proton.core:device-migration-data                 |\n| me.proton.core:device-migration-domain               |\n| me.proton.core:device-migration-presentation         |\n| me.proton.core:domain                                |\n| me.proton.core:event-manager                         |\n| me.proton.core:event-manager-dagger                  |\n| me.proton.core:event-manager-data                    |\n| me.proton.core:event-manager-domain                  |\n| me.proton.core:feature-flag                          |\n| me.proton.core:feature-flag-data                     |\n| me.proton.core:feature-flag-domain                   |\n| me.proton.core:feature-flag-dagger                   |\n| me.proton.core:human-verification                    |\n| me.proton.core:human-verification-dagger             |\n| me.proton.core:human-verification-data               |\n| me.proton.core:human-verification-domain             |\n| me.proton.core:human-verification-presentation       |\n| me.proton.core:human-verification-test               |\n| me.proton.core:key                                   |\n| me.proton.core:key-dagger                            |\n| me.proton.core:key-data                              |\n| me.proton.core:key-domain                            |\n| me.proton.core:key-transparency                      |\n| me.proton.core:key-transparency-dagger               |\n| me.proton.core:key-transparency-data                 |\n| me.proton.core:key-transparency-domain               |\n| me.proton.core:key-transparency-presentation         |\n| me.proton.core:label                                 |\n| me.proton.core:label-dagger                          |\n| me.proton.core:label-data                            |\n| me.proton.core:label-domain                          |\n| me.proton.core:mail-message                          |\n| me.proton.core:mail-message-dagger                   |\n| me.proton.core:mail-message-data                     |\n| me.proton.core:mail-message-domain                   |\n| me.proton.core:mail-settings                         |\n| me.proton.core:mail-settings-dagger                  |\n| me.proton.core:mail-settings-data                    |\n| me.proton.core:mail-settings-domain                  |\n| me.proton.core:mail-settings-dagger                  |\n| me.proton.core:mail-send-preferences                 |\n| me.proton.core:mail-send-preferences-dagger          |\n| me.proton.core:mail-send-preferences-data            |\n| me.proton.core:mail-send-preferences-domain          |\n| me.proton.core:metrics                               |\n| me.proton.core:metrics-dagger                        |\n| me.proton.core:metrics-data                          |\n| me.proton.core:metrics-domain                        |\n| me.proton.core:network                               |\n| me.proton.core:network-dagger                        |\n| me.proton.core:network-data                          |\n| me.proton.core:network-domain                        |\n| me.proton.core:network-presentation                  |\n| me.proton.core:notification                          |\n| me.proton.core:notification-dagger                   |\n| me.proton.core:notification-data                     |\n| me.proton.core:notification-domain                   |\n| me.proton.core:notification-presentation             |\n| me.proton.core:notification-test                     |\n| me.proton.core:observability                         |\n| me.proton.core:observability-dagger                  |\n| me.proton.core:observability-data                    |\n| me.proton.core:observability-domain                  |\n| me.proton.core:observability-tools                   |\n| me.proton.core:payment                               |\n| me.proton.core:payment-dagger                        |\n| me.proton.core:payment-data                          |\n| me.proton.core:payment-domain                        |\n| me.proton.core:payment-presentation                  |\n| me.proton.core:payment-test                          |\n| me.proton.core:payment-iap                           |\n| me.proton.core:payment-iap-dagger                    |\n| me.proton.core:payment-iap-data                      |\n| me.proton.core:payment-iap-domain                    |\n| me.proton.core:payment-iap-presentation              |\n| me.proton.core:payment-iap-test                      |\n| me.proton.core:plan                                  |\n| me.proton.core:plan-dagger                           |\n| me.proton.core:plan-data                             |\n| me.proton.core:plan-domain                           |\n| me.proton.core:plan-presentation                     |\n| me.proton.core:plan-presentation-compose             |\n| me.proton.core:plan-test                             |\n| me.proton.core:push                                  |\n| me.proton.core:push-dagger                           |\n| me.proton.core:push-data                             |\n| me.proton.core:push-domain                           |\n| me.proton.core:presentation                          |\n| me.proton.core:presentation-compose                  |\n| me.proton.core:presentation-compose-tv               |\n| me.proton.core:proguard-rules                        |\n| me.proton.core:report                                |\n| me.proton.core:report-dagger                         |\n| me.proton.core:report-data                           |\n| me.proton.core:report-domain                         |\n| me.proton.core:report-presentation                   |\n| me.proton.core:report-test                           |\n| me.proton.core:challenge                             |\n| me.proton.core:challenge-dagger                      |\n| me.proton.core:challenge-data                        |\n| me.proton.core:challenge-domain                      |\n| me.proton.core:challenge-presentation                |\n| me.proton.core:challenge-presentation-compose        |\n| me.proton.core:telemetry                             |\n| me.proton.core:telemetry-dagger                      |\n| me.proton.core:telemetry-data                        |\n| me.proton.core:telemetry-domain                      |\n| me.proton.core:telemetry-presentation                |\n| me.proton.core:test-android                          |\n| me.proton.core:test-android-instrumented             |\n| me.proton.core:test-kotlin                           |\n| me.proton.core:test-mock-proxy                       |\n| me.proton.core:test-quark                            |\n| me.proton.core:test-performance                      |\n| me.proton.core:test-rule                             |\n| me.proton.core:user                                  |\n| me.proton.core:user-dagger                           |\n| me.proton.core:user-data                             |\n| me.proton.core:user-domain                           |\n| me.proton.core:user-recovery                         |\n| me.proton.core:user-recovery-dagger                  |\n| me.proton.core:user-recovery-data                    |\n| me.proton.core:user-recovery-domain                  |\n| me.proton.core:user-recovery-presentation            |\n| me.proton.core:user-recovery-presentation-compose    |\n| me.proton.core:user-recovery-test                    |\n| me.proton.core:user-settings                         |\n| me.proton.core:user-settings-dagger                  |\n| me.proton.core:user-settings-data                    |\n| me.proton.core:user-settings-domain                  |\n| me.proton.core:user-settings-presentation            |\n| me.proton.core:user-settings-presentation-compose    |\n| me.proton.core:user-settings-test                    |\n| me.proton.core:util-android-dagger                   |\n| me.proton.core:util-android-datetime                 |\n| me.proton.core:util-android-shared-preferences       |\n| me.proton.core:util-android-strict-mode              |\n| me.proton.core:util-android-work-manager             |\n| me.proton.core:util-android-sentry                   |\n| me.proton.core:util-android-device                   |\n| me.proton.core:util-kotlin                           |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotonmail%2Fprotoncore_android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprotonmail%2Fprotoncore_android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotonmail%2Fprotoncore_android/lists"}