This project the under development version of deneysiz application by adesso Turkey. Please visit deneyehayir.org for more information.
Code style *
To maintain the style and quality of the code, are used the bellow static analysis tools. All of them use properly configuration and you find them in the project root directory config/{toolName}
.
Tools | Config file | Check command | Fix command |
---|---|---|---|
detekt | detekt.yml | ./gradlew detekt |
- |
ktlint | - | ./gradlew ktlint |
./gradlew ktlintFormat |
spotless | - | ./gradlew spotlessCheck |
./gradlew spotlessApply |
lint | lint.xml | ./gradlew lint |
- |
All these tools are integrated in pre-commit git hook, in order ensure that all static analysis and tests passes before you can commit your changes. To skip them for specific commit add this option at your git command:
git commit --no-verify
It's highly recommended to fix broken code styles. There is a gradle task which execute ktlintFormat
and spotlessApply
for you:
./gradlew reformat
Gitflow is considered as workflow in the project. All feature branches should be based on develop
branch.
Before submitting a pull request, please consider:
- Write a good commit message.
- Update README with any changes are needed.
- Source branch should be ahead 1 commit than target branch.
- Make sure all gradle tasks are passing.
- Single Activity
- MVVM Pattern
Jetpack Compose: Declarative toolkit for building native UI
ViewModel: Can have simple UI logic but most of the time just gets the data from UseCase
UseCase: Contains all business rules and they written in the manner of single responsibility principle
Repository: Single source of data. Responsible to get data from one or more data sources
- Jetpack Compose: Modern toolkit for building native Android UI.
- ViewModel: Holds UI data across configuration changes
- Dagger Hilt: Dependency injector
- Coroutines: Asynchronous programming
- Retrofit: Type safe HTTP client
- Kotlinx.Serialization: JSON serializer/deserializer
Copyright 2021 adesso Turkey
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.