tivi
Moshi
tivi | Moshi | |
---|---|---|
28 | 17 | |
6,440 | 9,541 | |
- | 0.4% | |
9.7 | 8.5 | |
5 days ago | 4 days ago | |
Kotlin | Kotlin | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tivi
-
Do you have an open source (base) project using latest tech?
Look no more: https://github.com/chrisbanes/tivi
- What are some open source android projects that you can go to see Best practices or how they implemented stuff
-
What do you use for compose navigation?
It's definitely the most verbose part of our app and one of the weakest parts of the Jetpack library. We used https://github.com/chrisbanes/tivi for some inspiration on how to organize your navigation structures.
-
What's modern approach to handling Preferences (UI & Storage) in Compose?
I have considered a few variants around this route. One easy way out would be just to launch a ComponentActivity with a PreferenceFragment like what Chris Banes does in TiVi ... but if you go with PreferenceFragment(Compat) it seems you are kinda stuck with SharedPreferences. If one attempts to supply DataStore wrapped in PreferenceDataStore, it seems types get messed up (TextPreference will store as a String, even if the InputType is number, etc).
-
Modern ways to expose Retrofit network progress and errors to a ViewModel?
Thanks I think what's confusing is that UI events are recommended to be modeled as Flows, which I guess is why Tivi uses Flows for even the simplest actions, but it does a lot of very fancy things. Most repository interactions seem to have an entire class extending an Interactor (e.g.) which catches and emits errors, progress and handles timeouts and does all that crazy queuing stuff with UI "messages" Flow
-
"outdated senior" needs your advice
I would read and study nowinandroid and tivi apps.
-
Compose Navigation with multiple graphs
Check out the approach from tivi https://github.com/chrisbanes/tivi/blob/main/app/src/main/java/app/tivi/AppNavigation.kt as an idea.
- Any Clean Architecture app courses that make use of Flows completely without LiveData?
- What resources would you recommend for learning how to build Multi-Module android apps?
-
Anyone here who has bought Philipp Lackner's course for developing multi-module apps?
They probably want you to do a module split like in https://github.com/chrisbanes/tivi or https://github.com/igorwojda/android-showcase, but what they probably don't realize is that modularization is a trade-off, namely greatly increased build configuration complexity for... well, having modules.
Moshi
-
Kotlin DSL is Now the Default for New Gradle Builds
Honestly, when you look at a build.gradle.kts written by someone who knows what they're doing, it's not that bad (that reminds me, I should really clean up the build.gradle.kts on my personal project, I haven't heavily edited it since I knew a lot less about gradle...). For example, here's the build.gradle.kts for Moshi, a JSON serialization library from Square. It uses the root build.gradle.kts for the project a bit, which is here. The root one is a little more complex, but that's mostly because it has to deal with a multi-release build and has to configure a few plugins, like dokka. (If you're wondering where all the library versions are, they're here, using a new feature in Gradle you might like: The version catalog)
-
Modern Android Development in 2023
Moshi
-
Why don't you write unit tests and integration tests to ksp project
This approach is also used by square/moshi. You can also refer this.
-
Apple's Swift rewrite of its Foundation framework will be open source
Best practice in Android would be Moshi, which is written by many of the same authors as Gson but is still actively maintained. It's more or less a breaking upgrade from Gson.
-
Converting Json to Java object
Thanks for the info. Just checked the GitHub and it is indeed the case that Gson is not maintained anymore. The main dev left Google it seems and therefore abandoned Gson. He and some other people however created a new project called Moshi that's probably intended as a kind of Gson 3.0: https://github.com/square/moshi the last commit was three months ago and there are a crowd of contributors listed so I guess that's the better option than ye olde Gson.
-
Soursop and Ponies in Kona: A C++ Committee Trip Report
Java annotations have enabled compile-time reflection since Java 1.6, and of course it has been used for serialization: https://github.com/square/moshi/#codegen
-
What are the most common used (3rd party) libraries and frameworks used in Android development?
JSON de/serialization: Kotlin serialization, Moshi
-
Help parsing JSON with Retrofit & Moshi
However i am getting an error "Expected BEGIN-ARRAY but was BEGIN-OBJECT at $". Looking over the moshi documentation (https://github.com/square/moshi) I think I need to use an adapter as my JSON response starts with "{ }" not the expected "[ ]". I am just struggling to understand how to implement the adapter as I think the built in adapter should work.
- Moshi 1.13.0 with Kotlin 1.6 compatibility now available
-
Release Kotlin 1.6.0 ยท JetBrains/kotlin
Moshi users are currently blocked to update until Moshi 1.13.0 is released: https://github.com/square/moshi/issues/1368
What are some alternatives?
compose-samples - Official Jetpack Compose samples.
Jackson - Core part of Jackson that defines Streaming API as well as basic shared abstractions
android-mvvm-dagger-rxjava-retrofit - A sample project which demostrate use of MVVM and Dagger 2 with RxJava2 along with Retrofit
Gson - A Java serialization/deserialization library to convert Java Objects into JSON and back
gamedge - An Android application for browsing video games and checking the latest gaming news from around the world.
kotlinx.serialization - Kotlin multiplatform / multi-format serialization
architecture-components-samples - Samples for Android Architecture Components.
Jackson JSON Processor - Main Portal page for the Jackson project
android-showcase - ๐ Android application following best practices: Kotlin, Coroutines, JetPack, Clean Architecture, Feature Modules, Tests, MVVM, DI, Static Analysis...
ktor-moshi - Ktor feature that adds Moshi JSON serialization support
fdroidclient - Android client application.
LoganSquare - Screaming fast JSON parsing and serialization library for Android.