-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: add initial projectsetup checklist for native android projects #9
base: develop
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Android Project Setup | ||
## Git | ||
1. Create new repository based on [native-android-repo-template](https://github.com/nanogiants/native-android-repo-template) | ||
|
||
## Android Studio | ||
1. Create an empty base project in Android Studio. | ||
1. Configure build types for different environments. | ||
- TODO: List all build types (develop, staging, production) and add basic gradle snippets to template repo | ||
2. Create a signing keystore for release builds. | ||
3. Upload the necessary files and passwords to a secure password manager like 1Password. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not like 1Password. 1Password. We are using this and only this :) |
||
2. Configure analytics, crash reporting, and static file analysis tools. | ||
- TODO: add details for each step | ||
1. Integrate Sentry for error tracking. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please link to sentry index docs. Might be helpful here. |
||
2. Use SonarCloud for code quality analysis. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please link to sonarcloud index docs. Might be helpful here. |
||
3. Configure Android Lint for static code analysis. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there a reference to the configuration ruleset? |
||
4. Set up Detekt for Kotlin code analysis. | ||
5. Implement NG Android Versioning for managing version codes. | ||
|
||
## CI/CD | ||
|
||
### AppCenter | ||
1. Log into AppCenter account and create a new project. | ||
**Make sure that you create the project under the NanoGiants GmbH group** | ||
2. Configure the necessary build and distribution settings in AppCenter. | ||
3. Set up distribution group for android and add the collaborators group. | ||
|
||
#### Naming | ||
Project: `"PROJECT-App-BUILDTYPE"` (e.g. NanoGiants-App-Develop) | ||
DistributionGroup: `"PROJECT-PLATFORM"` (e.g. NanoGiants-Android) | ||
|
||
### Bitrise | ||
1. Create a Bitrise project for continuous integration and deployment. | ||
2. Adjust the base .yaml file from template Repo into the Bitrise project. | ||
- TODO: test how bitrise handles .yaml stored in the app's GitHub repository | ||
3. Configure code signing and files in the Bitrise project. | ||
1. Upload the signing keystore file and set passwords | ||
2. if needed, upload the property files for every deployment environment via this script | ||
- TODO: Create and link shellscript to automatically upload the files from the local machine | ||
4. Manage secrets in Bitrise to securely store sensitive information. | ||
1. AppCenter Token | ||
2. GitHub Token | ||
3. SonarToken | ||
4. AccessToken | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is best practise here? Do we have separate keystores per environment (e.g. staging, production) or is it safe to share the keystore in multiple environments (except production obviously)