Coder Social home page Coder Social logo

akitikkx / upnext Goto Github PK

View Code? Open in Web Editor NEW
51.0 2.0 8.0 6.23 MB

Upnext: TV Series Manager is an MVVM Android app which allows users to be able to view show schedules, popular, trending and most anticipated shows with favorite functionality provided by the Trakt API

Home Page: https://theupnextapp.com

License: MIT License

Kotlin 100.00%
kotlin mvvm-android retrofit2 compose jetpack-compose android kotlin-android hilt-android hilt coil-kotlin

upnext's Introduction

Hi there ๐Ÿ‘‹

I am Ahmed Tikiwa, a Software Engineer at Bol.com based in Utrecht, The Netherlands.

I am also an official contributor to the Google Developers Dev Library, you can find my author profile here and my featured open-source project Upnext: TV Series Manager.

I have been a software engineer since 2010 and an Android Engineer since 2015. Apart from software developement, I also give tech talks at conferences, meetups as well as blog on Medium. Though I love creating applications that help make a difference in people's lives, my passion is to share the knowledge I have gained to my fellow developer community through the aforementioned talks and blogs.

  • ๐Ÿ”ญ Iโ€™m currently working on the Bol.com Android app
  • ๐ŸŒฑ Iโ€™m currently learning more and more of Jetpack Compose
  • ๐Ÿ‘ฏ Iโ€™m looking to collaborate on Android projects
  • ๐Ÿ“ซ How to reach me: Twitter
  • ๐Ÿ˜„ Pronouns: Him/He
  • โšก Fun fact: I also play the piano and I sing in my past time

akitikkx

ahmed_tikiwa

Connect with me:

ahmed_tikiwa https://www.linkedin.com/in/ahmed-tikiwa ahmedtikiwaofficial @akitikkx

Languages and Tools:

android bash bootstrap css3 docker firebase gcp git html5 java jenkins kotlin kubernetes laravel linux mysql photoshop php postman sass tailwind

ย akitikkx

akitikkx

akitikkx

upnext's People

Contributors

akitikkx avatar chege4179 avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

upnext's Issues

Update app dependencies

Describe the solution you'd like
Update the following app dependencies:

  • Hilt
  • Appcompat
  • Compose Material
  • Compose Animation
  • Material Theme Adapter
  • ConstraintLayout
  • Core KTX
  • Firebase Crashlytics
  • Firebase Performance Monitoring
  • Material

Resolve NumberFormatException causing crash

Describe the bug
There are instances, it appears, that the show id from the TvMaze API is null and a crash has been reported as a result of this on the show detail screen due to a .toInt() call on a null value

Expected behavior
App should not crash when the show ID is null, rather a message displayed to the user that the show data is empty/not available

Screenshots
Screenshot 2022-07-16 at 21 18 08

Smartphone (please complete the following information):

  • Device: Xperia 5
  • OS: Android 11
  • Version 3.4.0 (176)

Implement Jetpack Compose Navigation

Describe the solution you'd like
Implement navigation between the composables using Jetpack Compose Navigation moving away from the standard Jetpack Navigation currently implemented

Migrate Show Season Episodes to use ComposeView

Describe the solution you'd like

  • Create ShowSeasonEpisodesScreen composable representing the current show season episodes screen
  • Replace all layout widgets with ComposeView in fragment_show_season_episodes.xml
  • Update ShowSeasonEpisodesFragment.kt to reference the newly added ComposeView and reference ShowSeasonEpisodesScreen composable as the composable to display
  • Remove ShowSeasonEpisodesAdapter.kt and related viewHolder view

Migrate Trakt Account screen to use ComposeView

Describe the solution you'd like

  • Create TraktAccountScreen composable representing the current account screen
  • Replace all layout widgets with ComposeView in fragment_trakt_account.xml
  • Update TraktAccountFragment.kt to reference the newly added ComposeView and reference TraktAccountScreen composable as the composable to display
  • Remove FavoritesAdapter.kt and related viewHolder view

Update Gradle to version 8

Update the Gradle for the project to be the latest version, keeping in mind the breaking changes that will occur as mentioned here

Update dependencies

Describe the solution you'd like

  • Update Compose Material Version
  • Update Compose Animation Version
  • Update Compose UI test version
  • Update Compose Material Theme Adapter version
  • Update Firebase Analytics, Core, Crashlytics and, Performance Monitoring versions

Update to version 3.3.4 (172)

Describe the solution you'd like

  • Update the gradle dependencies
  • Use the key property inside the LazyItemScope
  • Upgrade the Gradle version

Error while trying to create release build

Describe the bug
The following error is thrown while trying to create a release build

What went wrong: Execution failed for task ':app:mapReleaseSourceSetPaths'. > Error while evaluating property 'extraGeneratedResDir' of task ':app:mapReleaseSourceSetPaths'

Migrate Show Seasons screen to use ComposeView

Describe the solution you'd like

  • Create ShowSeasonsScreen composable representing the current show seasons screen
  • Replace all layout widgets with ComposeView in fragment_show_seasons.xml
  • Update ShowsSeasonsFragment.kt to reference the newly added ComposeView and reference ShowSeasonsScreen composable as the composable to display
  • Remove ShowSeasonsAdapter.kt and related viewHolder view

Add local.properties.example file

Describe the solution you'd like
Add a local.properties.example file as an example of how the local.properties file should look like

Migrate the Search screen to use ComposeView

Describe the solution you'd like

  • Create SearchScreen composable representing the current search screen
  • Replace all layout widgets with ComposeView in fragment_search.xml
  • Update SearchFragment.kt to reference the newly added ComposeView and reference SearchScreen composable as the composable to display
  • Remove SearchAdapter.kt

Migrate Show Detail screen to ComposeView

Describe the solution you'd like

  • Create ShowDetailScreen composable representing the current show detail screen
  • Replace all layout widgets with ComposeView in fragment_show_detail.xml
  • Update ShowDetailFragment.kt to reference the newly added ComposeView and reference ShowDetailScreen composable as the composable to display
  • Represent cast list as composable list
  • Remove ShowCastAdapter.kt and related viewHolder view

Migrate Dashboard screen to use ComposeView

Describe the solution you'd like

  • Create DashboardScreen composable representing the current dashboard screen
  • Replace all layout widgets with ComposeView in fragment_dashboard.xml
  • Update DashboardFragment.kt to reference the newly added ComposeView and reference DashboardScreen composable as the composable to display
  • Remove TodayShowsAdapter.kt, TomorrowShowsAdapter and YesterdayShowsAdapter and related viewHolder views

Address crash in release build

Describe the bug

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.theupnextapp/com.theupnextapp.MainActivity}: android.view.InflateException: Binary XML file line #50 in com.theupnextapp:layout/activity_main: Binary XML file line #50 in com.theupnextapp:layout/activity_main: Error inflating class fragment
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

To Reproduce
Steps to reproduce the behavior:
Try and launch the app as a release build

Expected behavior
App should successfully launch

Add CI/CD pipeline

A CI/CD pipeline still needs to be implemented for this project that can be run using GitHub Actions

Update the project to be modularised

The project is currently one single module. Update it to be split into modules that better separate and define how the project is used and structured

Play Store Data Safety Section

Is your feature request related to a problem? Please describe.
Add a section for Play Store Data Safety Section.

Describe the solution you'd like
In the recent Play Store policy, it will become mandatory for you to fill out the Data Safety Section. Since this is an OSS Android app, it will make sense to have it as a part of the repository as well.

Describe alternatives you've considered
I have run the scan using my tool here on your repo, attached are
the scan results. I found the following 4 data types & 2 SDKs.

If this is helpful, do use our free tool to generate Play Store Data Safety report: https://github.com/Privado-Inc/privado
Would love your feedback!
image
image
image

Migrate Explore screen to use ComposeView

Describe the solution you'd like

  • Create ExploreScreen composable representing the current explore screen
  • Replace all layout widgets with ComposeView in fragment_explore.xml
  • Update ExploreFragment.kt to reference the newly added ComposeView and reference ExploreScreen composable as the composable to display
  • Remove MostAnticipatedShowsAdapter.kt, PopularShowsAdapter.kt, TrendingShowsAdapter.kt and related viewHolder views

When app is resumed it automatically navigates to the account screen

Describe the bug
When the app is initially opened, the default navigation startDestination is observed. However, when the app is put into the background then reopened it navigates to the account screen by default

To Reproduce
Steps to reproduce the behavior:

  1. Open the app
  2. Put the app into the background by pressing the home key
  3. Open the app again
  4. Default screen is the account screen

Expected behavior
When the app is reopened from being in the background it should open the screen the user was last on and not the account screen

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Update dependency androidx.compose.material:material-icons-extended to v1.6.7
  • Update dependency androidx.compose.runtime:runtime-livedata to v1.6.7
  • Update dependency androidx.compose.ui:ui-test-manifest to v1.6.7
  • Update dependency com.google.devtools.ksp to v1.9.24-1.0.20
  • Update dependency org.jetbrains.kotlin.android to v1.9.24
  • Update dependency org.jlleitschuh.gradle.ktlint to v12.1.1
  • Update kotlinxCoroutinesAndroid to v1.8.1 (org.jetbrains.kotlinx:kotlinx-coroutines-android, org.jetbrains.kotlinx:kotlinx-coroutines-core)
  • Update dependency com.google.android.material:material to v1.12.0
  • Update dependency com.google.firebase.crashlytics to v3
  • Update dependency com.google.firebase:firebase-analytics-ktx to v22
  • Update dependency com.google.firebase:firebase-crashlytics to v19
  • Update dependency com.google.firebase:firebase-perf to v21
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/pull_request.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • android-actions/setup-android v3
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • android-actions/setup-android v3
  • actions/upload-artifact v4
gradle
gradle.properties
settings.gradle
build.gradle
app/build.gradle
baselineprofile/build.gradle
gradle/libs.versions.toml
  • com.google.accompanist:accompanist-navigation-animation 0.34.0
  • androidx.activity:activity-compose 1.8.2
  • androidx.core:core-ktx 1.12.0
  • androidx.hilt:hilt-navigation-compose 1.2.0
  • androidx.hilt:hilt-work 1.2.0
  • androidx.hilt:hilt-compiler 1.2.0
  • com.google.android.material:material 1.11.0
  • androidx.compose.material3:material3 1.2.1
  • androidx.recyclerview:recyclerview 1.3.2
  • androidx.benchmark:benchmark-macro-junit4 1.2.4
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.test.ext:junit 1.1.5
  • androidx.test.uiautomator:uiautomator 2.3.0
  • androidx.compose.ui:ui-test-junit4 1.6.6
  • androidx.compose.ui:ui-test-manifest 1.6.6
  • androidx.compose.ui:ui-tooling 1.6.6
  • androidx.work:work-testing 2.9.0
  • androidx.compose.animation:animation 1.6.6
  • androidx.appcompat:appcompat 1.6.1
  • androidx.browser:browser 1.8.0
  • com.github.bumptech.glide:glide 4.16.0
  • com.github.bumptech.glide:compiler 4.16.0
  • com.github.chuckerteam.chucker:library 4.0.0
  • com.github.chuckerteam.chucker:library-no-op 4.0.0
  • io.coil-kt:coil-compose 2.6.0
  • androidx.constraintlayout:constraintlayout 2.1.4
  • com.squareup.retrofit2:converter-gson 2.11.0
  • com.squareup.retrofit2:converter-moshi 2.11.0
  • io.github.raamcosta.compose-destinations:core 1.10.2
  • io.github.raamcosta.compose-destinations:ksp 1.10.2
  • androidx.datastore:datastore-preferences 1.0.0
  • com.google.firebase:firebase-analytics-ktx 21.5.1
  • com.google.firebase:firebase-core 21.1.1
  • com.google.firebase:firebase-crashlytics 18.6.4
  • com.google.firebase:firebase-perf 20.5.2
  • com.google.android.flexbox:flexbox 3.0.0
  • com.google.dagger:hilt-android 2.51.1
  • com.google.dagger:hilt-android-compiler 2.51.1
  • com.google.dagger:hilt-android-compiler 2.51.1
  • com.google.dagger:hilt-android-testing 2.51.1
  • org.jsoup:jsoup 1.17.2
  • junit:junit 4.13.2
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • com.squareup.leakcanary:leakcanary-android 2.13
  • androidx.legacy:legacy-support-v4 1.0.0
  • androidx.lifecycle:lifecycle-common-java8 2.7.0
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • com.squareup.okhttp3:okhttp 5.0.0-alpha.12
  • com.squareup.okhttp3:logging-interceptor 5.0.0-alpha.12
  • androidx.compose.material:material-icons-extended 1.6.6
  • androidx.compose.material3:material3-window-size-class 1.2.1
  • androidx.paging:paging-runtime-ktx 3.2.1
  • androidx.preference:preference-ktx 1.2.1
  • androidx.profileinstaller:profileinstaller 1.3.1
  • androidx.recyclerview:recyclerview-selection 1.1.0
  • com.squareup.retrofit2:retrofit 2.11.0
  • com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter 0.9.2
  • androidx.room:room-compiler 2.6.1
  • androidx.room:room-ktx 2.6.1
  • androidx.room:room-runtime 2.6.1
  • androidx.compose.runtime:runtime-livedata 1.6.6
  • com.squareup.moshi:moshi 1.15.1
  • com.squareup.moshi:moshi-kotlin 1.15.1
  • com.jakewharton.timber:timber 5.0.1
  • com.google.accompanist:accompanist-testharness 0.34.0
  • androidx.work:work-runtime-ktx 2.9.0
  • com.android.application 8.3.2
  • com.android.test 8.3.2
  • com.google.firebase.crashlytics 2.9.9
  • com.google.firebase.firebase-perf 1.4.2
  • com.google.gms.google-services 4.4.1
  • com.google.dagger.hilt.android 2.51.1
  • org.jetbrains.kotlin.android 1.9.23
  • com.google.devtools.ksp 1.9.23-1.0.20
  • org.jlleitschuh.gradle.ktlint 12.1.0
  • androidx.baselineprofile 1.2.4
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.6

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.