thomaskioko / tv-maniac Goto Github PK
View Code? Open in Web Editor NEWTv-Maniac is a personalized entertainment tracking and recommendation Multiplatform app (Android & iOS) for tracking TV Shows using TMDB API.
License: Apache License 2.0
Tv-Maniac is a personalized entertainment tracking and recommendation Multiplatform app (Android & iOS) for tracking TV Shows using TMDB API.
License: Apache License 2.0
thank you very much ,
what are the ideas behind? why they cannot be in one module with three folders
":data:trailers:implementation"
":data:trailers:testing"
":data:upcomingshows:api"
We currently have a module (navigation
) responsible for setting up navigation. Each feature module should create a factory that implements ComposeNavigationFactory
and define its route. This works fine, but we can improve it by moving the navigation logic away from the screens and potentially handling them in the ViewModel or StateMachines. Other than creating our implementation, we can use the following libraries:
Right now, ProfileStateMachine is in the Android feature module. We need to move it to the shared module to access it on the iOS Client.
AuthState
& tokenP.S It would be great to have #58 done first.
There are multiple DataStores causing the app to crash when taken to the background and brought to the foreground.
Error Message.
java.lang.IllegalStateException: There are multiple DataStores active for the same file: /data/user/0/com.thomaskioko.tvmaniac.debug/files/tvmainac.preferences_pb. You should either maintain your DataStore as a singleton or confirm that there is no two DataStore's active on the same file (by confirming that the scope is cancelled).
iOS is still using an old version of the SMP.
Righ now, the profile module bundles up some functionality that could be split into separate modules.
show-list
, trakt-showlist
) or delete since it's not being used at the moment.There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.
Location: renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error near ],
Screen scroll position is not remembered.
Implement Decompose BackHandler
Nest episodes under seasons in an expandable list. i.e Clicking on a season expands the list and displays the episodes.
##Descriptions
We need to be able to sign in to Trakt on the iOS Client by redirecting the user to the Trakt sign-in page when they navigate to the profile page. Once they sign in, we store the token that we will later use to make future requests.
Try out kotlin-inject after reading @evant's article From Dagger & Hilt into the multiplatform world with kotlin-inject
Load similar movies after navigating to Show details.
Paging was implemented in the Shared module and Android app. If you're up for a challenge, iOS needs some love.
Use Store in the data & presentation layer to handle fetching data.
DiscoverStateMachine is crashing with the following error:
Uncaught Kotlin exception: kotlin.IllegalStateException: Can not collect state more than once at the same time.
Make sure the previous collection is canceled before starting a new one. Collecting state in parallel would
lead to subtle bugs.
Create the UI for an authenticated Trakt user.
Use KmmBridge for artifacts management.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
androidx.compose.ui:ui-test-manifest
, androidx.compose.ui:ui-test-junit4
)com.google.devtools.ksp
, org.jetbrains.kotlin.plugin.serialization
, org.jetbrains.kotlin.multiplatform
, org.jetbrains.kotlin.jvm
, org.jetbrains.kotlin.android
, org.jetbrains.kotlin.plugin.compose
, org.jetbrains.kotlin:kotlin-gradle-plugin
, org.jetbrains.kotlin:compose-compiler-gradle-plugin
, org.jetbrains.kotlin:kotlin-test
).github/workflows/build.yml
actions/checkout v4
actions/setup-java v4
gradle/gradle-build-action v3.5.0
actions/checkout v4
actions/setup-java v4
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
stefanzweifel/git-auto-commit-action v5
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
actions/upload-artifact v4
actions/checkout v4
actions/setup-java v4
softprops/action-gh-release v2
actions/upload-artifact v4
.github/workflows/release-drafter.yml
release-drafter/release-drafter v6
gradle.properties
settings.gradle.kts
build.gradle.kts
android/app/build.gradle.kts
android/designsystem/build.gradle.kts
android/resources/build.gradle.kts
android/screenshot-tests/build.gradle.kts
android/ui/discover/build.gradle.kts
android/ui/library/build.gradle.kts
android/ui/more-shows/build.gradle.kts
android/ui/search/build.gradle.kts
android/ui/season-details/build.gradle.kts
android/ui/settings/build.gradle.kts
android/ui/show-details/build.gradle.kts
android/ui/trailers/build.gradle.kts
core/base/build.gradle.kts
core/logger/build.gradle.kts
core/network-util/build.gradle.kts
core/paging/build.gradle.kts
core/util/build.gradle.kts
data/cast/api/build.gradle.kts
data/cast/implementation/build.gradle.kts
data/cast/testing/build.gradle.kts
data/episodes/api/build.gradle.kts
data/episodes/implementation/build.gradle.kts
data/episodes/testing/build.gradle.kts
data/featuredshows/api/build.gradle.kts
data/featuredshows/implementation/build.gradle.kts
data/featuredshows/testing/build.gradle.kts
data/library/api/build.gradle.kts
data/library/implementation/build.gradle.kts
data/library/testing/build.gradle.kts
data/popularshows/api/build.gradle.kts
data/popularshows/implementation/build.gradle.kts
data/popularshows/testing/build.gradle.kts
data/recommendedshows/api/build.gradle.kts
data/recommendedshows/implementation/build.gradle.kts
data/recommendedshows/testing/build.gradle.kts
data/request-manager/api/build.gradle.kts
data/request-manager/implementation/build.gradle.kts
data/seasondetails/api/build.gradle.kts
data/seasondetails/implementation/build.gradle.kts
data/seasondetails/testing/build.gradle.kts
data/seasons/api/build.gradle.kts
data/seasons/implementation/build.gradle.kts
data/seasons/testing/build.gradle.kts
data/showdetails/api/build.gradle.kts
data/showdetails/implementation/build.gradle.kts
data/showdetails/testing/build.gradle.kts
data/shows/api/build.gradle.kts
data/shows/implementation/build.gradle.kts
data/similar/api/build.gradle.kts
data/similar/implementation/build.gradle.kts
data/similar/testing/build.gradle.kts
data/topratedshows/api/build.gradle.kts
data/topratedshows/implementation/build.gradle.kts
data/topratedshows/testing/build.gradle.kts
data/trailers/api/build.gradle.kts
data/trailers/implementation/build.gradle.kts
data/trailers/testing/build.gradle.kts
data/trendingshows/api/build.gradle.kts
data/trendingshows/implementation/build.gradle.kts
data/trendingshows/testing/build.gradle.kts
data/upcomingshows/api/build.gradle.kts
data/upcomingshows/implementation/build.gradle.kts
data/upcomingshows/testing/build.gradle.kts
data/watchproviders/api/build.gradle.kts
data/watchproviders/implementation/build.gradle.kts
data/watchproviders/testing/build.gradle.kts
database/build.gradle.kts
datastore/api/build.gradle.kts
datastore/implementation/build.gradle.kts
datastore/testing/build.gradle.kts
gradle/libs.versions.toml
androidx.compose:compose-bom 2024.08.00
androidx.compose.ui:ui-test-junit4 1.7.0-beta06
androidx.compose.ui:ui-test-manifest 1.7.0-beta06
androidx.collection:collection 1.4.3
androidx.annotation:annotation 1.8.2
androidx.activity:activity-ktx 1.9.1
androidx.browser:browser 1.8.0
androidx.activity:activity-compose 1.9.1
androidx.constraintlayout:constraintlayout-compose 1.0.1
androidx.compose.material:material 1.6.8
androidx.compose.material3:material3 1.2.1
androidx.compose.runtime:runtime 1.6.8
androidx.core:core 1.13.1
androidx.core:core-ktx 1.13.1
androidx.core:core-splashscreen 1.0.1
androidx.datastore:datastore-core 1.1.1
androidx.datastore:datastore-preferences-core 1.1.1
androidx.palette:palette 1.0.0
androidx.paging:paging-compose 3.3.2
androidx.paging:paging-common 3.3.2
androidx.savedstate:savedstate 1.2.1
net.openid:appauth 0.11.1
io.coil-kt:coil 2.7.0
io.coil-kt:coil-compose 2.7.0
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm 1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.1
com.arkivanov.decompose:decompose 3.1.0
com.arkivanov.decompose:extensions-compose 3.1.0
com.arkivanov.essenty:lifecycle 2.1.0
com.flaviofaria:kenburnsview 1.0.7
co.touchlab:kermit 2.0.4
io.kotest:kotest-assertions-core 5.9.1
me.tatarka.inject:kotlin-inject-compiler-ksp 0.7.1
me.tatarka.inject:kotlin-inject-runtime 0.7.1
org.jetbrains.kotlinx:atomicfu 0.25.0
org.jetbrains.kotlinx:kotlinx-collections-immutable 0.3.7
org.jetbrains.kotlinx:kotlinx-datetime 0.6.1
org.jetbrains.kotlinx:kotlinx-serialization-json 1.7.1
org.jetbrains.kotlin:kotlin-test 2.0.0
io.ktor:ktor-client-core 2.3.12
io.ktor:ktor-client-darwin 2.3.12
io.ktor:ktor-client-logging 2.3.12
io.ktor:ktor-client-content-negotiation 2.3.12
io.ktor:ktor-client-okhttp 2.3.12
io.ktor:ktor-client-serialization 2.3.12
io.ktor:ktor-serialization-kotlinx-json 2.3.12
com.slack.lint.compose:compose-lint-checks 1.3.1
io.github.aakira:napier 2.7.1
org.robolectric:robolectric 4.13
io.github.takahirom.roborazzi:roborazzi 1.26.0
dev.chrisbanes.snapper:snapper 0.3.0
com.diffplug.spotless:spotless-plugin-gradle 6.25.0
app.cash.sqldelight:android-driver 2.0.2
app.cash.sqldelight:sqlite-driver 2.0.2
app.cash.sqldelight:native-driver 2.0.2
app.cash.sqldelight:coroutines-extensions 2.0.2
app.cash.sqldelight:primitive-adapters 2.0.2
app.cash.sqldelight:runtime 2.0.2
org.mobilenativefoundation.store:store5 5.0.0
app.cash.turbine:turbine 1.1.0
net.mamoe.yamlkt:yamlkt 0.13.0
com.pierfrancescosoffritti.androidyoutubeplayer:core 12.1.0
com.android.tools:desugar_jdk_libs 2.0.4
com.android.tools.build:gradle 8.5.2
org.jetbrains.kotlin:compose-compiler-gradle-plugin 2.0.0
org.jetbrains.kotlin:kotlin-gradle-plugin 2.0.0
com.autonomousapps:dependency-analysis-gradle-plugin 1.33.0
com.android.application 8.5.2
com.android.library 8.5.2
org.jetbrains.kotlin.plugin.compose 2.0.0
com.autonomousapps.dependency-analysis 1.33.0
org.jetbrains.kotlin.android 2.0.0
org.jetbrains.kotlin.jvm 2.0.0
com.google.devtools.ksp 2.0.0-1.0.24
org.jetbrains.kotlin.multiplatform 2.0.0
io.github.takahirom.roborazzi 1.26.0
org.jetbrains.kotlin.plugin.serialization 2.0.0
co.touchlab.skie 0.8.4
app.cash.sqldelight 2.0.2
com.diffplug.spotless 6.25.0
navigation/build.gradle.kts
navigation/api/build.gradle.kts
navigation/implementation/build.gradle.kts
presentation/discover/build.gradle.kts
presentation/home/build.gradle.kts
presentation/library/build.gradle.kts
presentation/more-shows/build.gradle.kts
presentation/search/build.gradle.kts
presentation/seasondetails/build.gradle.kts
presentation/settings/build.gradle.kts
presentation/show-details/build.gradle.kts
presentation/trailers/build.gradle.kts
shared/build.gradle.kts
tmdb-api/api/build.gradle.kts
tmdb-api/implementation/build.gradle.kts
tooling/gradle.properties
tooling/settings.gradle.kts
tooling/plugins/build.gradle.kts
trakt-api/api/build.gradle.kts
trakt-api/implementation/build.gradle.kts
trakt-auth/api/build.gradle.kts
trakt-auth/implementation/build.gradle.kts
trakt-auth/testing/build.gradle.kts
gradle/wrapper/gradle-wrapper.properties
gradle 8.10
tooling/gradle/wrapper/gradle-wrapper.properties
gradle 8.10
Add the following UI elements
Try out flowredux and create a shared statemachine between Android & iOS.
After signing into Trakt, the user's profile is not updated. The API returns a 401
when invoking getUser
even though we have added the bearer tokens. Rerunning the app updates the profile info.
After signing in, the profile info should be updated and the state updated.
Occurs when fetching show details & episodes.
java.util.concurrent.CancellationException: StandaloneCoroutine was cancelled
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.