|
| 1 | + |
| 2 | + |
| 3 | +> ### Android/Kotlin codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld) spec and API. |
| 4 | +
|
| 5 | +This codebase was created to demonstrate a fully fledged fullstack application built |
| 6 | +with **Kotlin** including CRUD operations, authentication, routing, pagination, and more. |
| 7 | + |
| 8 | +See how a Medium.com clone (called Conduit) is built using Kotlin in Android to connect |
| 9 | +to any other backend from https://realworld.io/. |
| 10 | + |
| 11 | +For more information on how to this works with other backends, head over to |
| 12 | +the [RealWorld](https://github.com/gothinkster/realworld) repo. |
| 13 | + |
| 14 | +I've gone to great lengths to adhere to the latest community styleguides & |
| 15 | +best practices but had to adapt between the RealWorld specification |
| 16 | +and general mobile layout of Medium.com. |
| 17 | + |
| 18 | +### Development |
| 19 | +This project has been developed with [Android Studio](https://developer.android.com/studio/) |
| 20 | + |
| 21 | +### Concepts |
| 22 | +This RealWorld app tries to show the following Android concepts: |
| 23 | +* 100% Kotlin Codebase |
| 24 | +* MVVM (Model View ViewModel) Architecture |
| 25 | +* LiveData |
| 26 | +* Kotlin Coroutines |
| 27 | +* Jetpack Navigation Architecture |
| 28 | + |
| 29 | +### Architecture |
| 30 | +The project follows the general MVVM structure without any specifics. |
| 31 | + |
| 32 | +There are two _modules_ in the project |
| 33 | + |
| 34 | +* `app` - The UI of the app. The main project that forms the APK |
| 35 | +* `api` - The REST API consumption library. Pure JVM library not Android-specific |
| 36 | + |
| 37 | +### Other Backends |
| 38 | +Obviously, this RealWorld app is a frontend app. But it can connect to all backends implementing the [RealWorld](https://github.com/gothinkster/realworld) spec and API. To test you own backend implementation just change the URL in the settings dialog. |
| 39 | + |
| 40 | +## Testing |
| 41 | +This project has been manually tested against |
| 42 | +* Emulator |
| 43 | + * Pixel 2 Android SDK 23 |
| 44 | +* Devices |
| 45 | + * Samsung S8 Android 8.0.0 |
| 46 | + |
| 47 | +### Automated tests |
| 48 | +The project contains an example e2e test to illustrate an end-to-end test case. |
| 49 | + |
| 50 | +## License & Credits |
| 51 | +Credits have to go out to [Thinkster](https://thinkster.io/) with their awesome [RealWorld](https://github.com/gothinkster/realworld) |
| 52 | + |
| 53 | +This project is licensed under the MIT license. |
| 54 | + |
| 55 | +## Disclaimer |
| 56 | +This source and the whole package comes without warranty. It may or may not harm your computer or cell phone. Please use with care. Any damage cannot be related back to the author. The source has been tested on a virtual environment and scanned for viruses and has passed all tests. |
0 commit comments