@ -14,13 +14,14 @@ Please see `docs/BUILD.md` and `docs/TEST.md`
## Directory Layout
## Directory Layout
* `android` Source code for the Android version of the app.
* `core` Experimental Kotlin multiplatform code that will eventually be shared between all versions of the app (Android, iOS and web). Not currently used in production.
* `docs` Documentation for developers.
* `docs` Documentation for developers.
* `landing` Source code for our [landing page](http://loophabits.org/).
* `landing` Source code for our [landing page](http://loophabits.org/).
* `ios` Experimental iOS port of Loop, based on Kotlin Multiplatform. Not currently used in production.
* `uhabits-android` Android-specific code.
* `server` Source code for any server-side components the app (for example, device sync).
* `uhabits-core` Common code used by all platforms (Android, iOS).
* `web` Experimental web port of Loop, based on Kotlin Multiplatform. Not currently used in production.
* `uhabits-core-legacy` Proof-of-concept module, developed to evaluate the feasibility of using Kotlin multiplatform for the app; not currently used, and it will be removed soon, once all useful code is ported to the other modules.
* `uhabits-ios` Experimental iOS port of Loop. Not currently used in production.
* `uhabits-server` Source code for any server-side components the app (for example, device sync).
* `uhabits-web` Experimental web port of Loop. Not currently used in production.
## Branching Policy
## Branching Policy
@ -48,7 +49,7 @@ Further resources:
## Code Style
## Code Style
For Kotlin, we follow [ktlint](https://ktlint.github.io/) style with default settings. This code style is enforced by our automated build pipeline. To make sure that Android Studio is configured according to ktlint, navigate to `android` and run `./gradlew ktlintApplyToIdea`. To check that all code is properly formatted, run `./gradlew ktlintCheck`. See more details in [ktlint-gradle](https://github.com/jlleitschuh/ktlint-gradle).
For Kotlin, we follow [ktlint](https://ktlint.github.io/) style with default settings. This code style is enforced by our automated build pipeline. To make sure that IntelliJ and Android Studio are configured according to ktlint, run `./gradlew ktlintApplyToIdea`. To check that all code is properly formatted, run `./gradlew ktlintCheck`. See more details in [ktlint-gradle](https://github.com/jlleitschuh/ktlint-gradle).
For legacy Java code, we don't have strict guidelines. Please follow a code style similar to the file you are modifying. Note that new classes should be written in Kotlin. Pull requests converting existing Java code to Kotlin are also welcome.
For legacy Java code, we don't have strict guidelines. Please follow a code style similar to the file you are modifying. Note that new classes should be written in Kotlin. Pull requests converting existing Java code to Kotlin are also welcome.