|
| 1 | +# SEDaily-Android |
1 | 2 |
|
2 | 3 | [](https://softwareengineeringdaily.com/)
|
3 | 4 |
|
4 |
| -[](https://travis-ci.org/SoftwareEngineeringDaily/SEDaily-Android) |
5 |
| -[](https://codecov.io/gh/SoftwareEngineeringDaily/SEDaily-Android) |
6 |
| -[](https://codebeat.co/projects/github-com-softwareengineeringdaily-sedaily-android-develop) |
7 |
| -[](https://www.codetriage.com/softwareengineeringdaily/sedaily-android) |
| 5 | +A player for the Software Engineering Daily Podcast |
8 | 6 |
|
9 |
| -# SEDaily-Android |
| 7 | +Getting Started |
| 8 | +--------------- |
| 9 | +The app has 2 build types: debug and release with minor differences between both builds. [`Stetho`](http://facebook.github.io/stetho/) for example is only enabled for debug builds. And [`Timber`](https://github.com/JakeWharton/timber) to log warnings and errors as Crashlytics non-fatal crashes in release builds. |
10 | 10 |
|
11 |
| -A player for the Software Engineering Daily Podcast |
| 11 | +We also use different app icons for debug and release builds and you can keep both builds on your device and run them side by side. |
| 12 | + |
12 | 13 |
|
13 |
| -## Getting Started |
| 14 | +The app is 100% [Kotlin](http://kotlinlang.org) and we think it is better to keep it this way. |
14 | 15 |
|
15 |
| -### Cloning the Project |
| 16 | +We use [`Koin`](https://insert-koin.io) which is a lightweight dependency injection framework to manage all dependencies. And [`Kotlin Coroutines`](https://kotlinlang.org/docs/reference/coroutines-overview.html) for asynchronous work. We also use `Kotlin Coroutines` with [`Room`](https://developer.android.com/topic/libraries/architecture/room) and [`Retrofit`](https://square.github.io/retrofit/). |
| 17 | + |
| 18 | +Cloning the Project |
| 19 | +------------------- |
16 | 20 | ```sh
|
17 | 21 | $ git clone https://github.com/SoftwareEngineeringDaily/SEDaily-Android.git
|
18 | 22 | $ cd SEDaily-Android
|
19 | 23 | ```
|
20 | 24 |
|
21 |
| -### Setting up Firebase |
22 |
| -1. Go to the [Firebase website](https://firebase.google.com/) and create an account if you do not already have one |
23 |
| -2. Create a new project on the Firebase dashboard |
24 |
| -3. Add a new Android app in the Firebase Dashboard. |
25 |
| -4. Set the package name to `com.koalatea.thehollidayinn.softwareengineeringdaily.debug` |
26 |
| -5. Download `google-services.json` and place it in `/app/` |
27 |
| - |
28 |
| - |
29 |
| -Compile the project with Gradle using |
| 25 | +And then compile the project with Gradle using |
30 | 26 | ```sh
|
31 | 27 | ./gradlew build
|
32 | 28 | ```
|
33 | 29 |
|
| 30 | +Screenshots |
| 31 | +----------- |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
34 | 36 |
|
35 |
| -## Built With |
| 37 | +Libraries Used |
| 38 | +-------------- |
| 39 | +* [Foundation][0] - Components for core system capabilities, and Kotlin extensions. |
| 40 | + * [AppCompat][1] - Degrade gracefully on older versions of Android. |
| 41 | + * [Android KTX][2] - Write more concise, idiomatic Kotlin code and helper functions for easy integration with coroutines. |
| 42 | + * [exoplayer][6] to manage the media playback. |
| 43 | +* [Architecture][10] - A collection of libraries that help design robust, testable, and maintainable apps. |
| 44 | + * [Lifecycles][12] - Create a UI that automatically responds to lifecycle events. |
| 45 | + * [LiveData][13] - Build data objects that notify views when the underlying data changes. |
| 46 | + * [Navigation][14] - Handle everything needed for in-app navigation. |
| 47 | + * [Room][16] - Access app's SQLite database with in-app objects and compile-time checks. |
| 48 | + * [ViewModel][17] - Store UI-related data that isn't destroyed on app rotations. |
| 49 | +* Third party |
| 50 | + * [Glide][90] for image loading. |
| 51 | + * [Epoxy][3] for building complex screens in a RecyclerView. |
| 52 | + * [Koin][4] a lightweight dependency injection framework to manage all dependencies. |
| 53 | + * [Retrofit][5] a type-safe HTTP client for Android and Java. |
| 54 | + * [Timber][7] to log warnings and errors as Crashlytics non-fatal crashes in release builds. |
| 55 | + * [Kotlin Coroutines][91] for managing background threads with simplified code and reducing needs for callbacks. |
36 | 56 |
|
37 |
| -* [Android](https://www.android.com/) |
38 |
| -* [Gradle](https://gradle.org/) |
39 |
| -* [Firebase](https://firebase.google.com/) |
40 |
| -* [Material UI Chip Input](https://github.com/TeamWertarbyte/material-ui-chip-input) |
41 |
| -* [ReactiveX](http://reactivex.io/) |
42 |
| -* [Leak Canary](https://github.com/square/leakcanary) |
43 |
| -* [OkHttp](https://github.com/square/okhttp) |
44 |
| -* [Retrofit](https://github.com/square/retrofit) |
| 57 | +[0]: https://developer.android.com/jetpack/components |
| 58 | +[1]: https://developer.android.com/topic/libraries/support-library/packages#v7-appcompat |
| 59 | +[2]: https://developer.android.com/kotlin/ktx |
| 60 | +[3]: https://github.com/airbnb/epoxy |
| 61 | +[4]: https://insert-koin.io |
| 62 | +[5]: https://square.github.io/retrofit/ |
| 63 | +[6]: https://exoplayer.dev |
| 64 | +[7]: https://github.com/JakeWharton/timber |
| 65 | +[10]: https://developer.android.com/jetpack/arch/ |
| 66 | +[12]: https://developer.android.com/topic/libraries/architecture/lifecycle |
| 67 | +[13]: https://developer.android.com/topic/libraries/architecture/livedata |
| 68 | +[14]: https://developer.android.com/topic/libraries/architecture/navigation/ |
| 69 | +[16]: https://developer.android.com/topic/libraries/architecture/room |
| 70 | +[17]: https://developer.android.com/topic/libraries/architecture/viewmodel |
| 71 | +[90]: https://bumptech.github.io/glide/ |
| 72 | +[91]: https://kotlinlang.org/docs/reference/coroutines-overview.html |
45 | 73 |
|
46 |
| -## Contributing |
| 74 | +Upcoming features |
| 75 | +----------------- |
| 76 | +Interested in seeing a particular feature implemented in this app? Please open a new [issue](https://github.com/SoftwareEngineeringDaily/software-engineering-daily-android/issues) with a [feature proposal](https://github.com/SoftwareEngineeringDaily/software-engineering-daily-android#feature-proposals). |
47 | 77 |
|
48 |
| -## License |
| 78 | +Contributing |
| 79 | +------------ |
| 80 | +Checkout [CONTRIBUTING.md](https://github.com/SoftwareEngineeringDaily/software-engineering-daily-android/CONTRIBUTING.md) for details. |
0 commit comments