Top trending movies app for Android

Related tags

App flickwatcher
Overview

Flickwatcher

Flickwatcher for Android lets you see today's latest trending movies!

Cool Dependencies:

Architecture

Flickwatcher is designed as an offline-first app with a focus on decoupled modular components and asynchronous data flow.

  • The user interface always loads from the database and does not interact directly with the network
  • Data is fetched and provided to the user interface asynchronously, and the user interface is updated whenever fresh data has arrived in the database. Powered by Kotlin Flows
  • Code is organized into single-purpose Gradle modules that use only the dependencies that they need
  • Features and shared modules are encapsulated as Dagger @Components

Project Structure

Project structure diagram

Components

There are no Dagger @Subcomponents, only @Components and un-scoped reusable Modules.

Component structure diagram

You might also like...
Mobile app to Show Movies From TMDB API [Qhala Interview Solution], for the Android Engineer Role
Mobile app to Show Movies From TMDB API [Qhala Interview Solution], for the Android Engineer Role

Qhala Interview 🎥 📺 This is an Interview Tech challenge by Qhala I used TMDB API to solve this challenge. Screenshots Movies Movie Detail Prerequisi

Popular Movies showcase android app
Popular Movies showcase android app

Pop Flix PopFlix is a gorgeous client application for TMDb on Android, built using Kotlin. Architecture and Tech-stack Built on MVVM architecture patt

Android app for streaming and downloading Movies, TV-Series and Anime.
Android app for streaming and downloading Movies, TV-Series and Anime.

CloudStream-3 DOWNLOAD: https://github.com/LagradOst/CloudStream-3/releases Discord: https://discord.gg/5Hus6fM Features: AdFree, No ads whatsoever No

New version of my Android app that shows you popular movies using themoviedb.org API.
New version of my Android app that shows you popular movies using themoviedb.org API.

New version of my Android app that shows you popular movies using themoviedb.org API. Using Modern Android Develpment skills like Kotlin, Room, Retrofit, Hilt, coroutines, Flow and Jetpack Compose.

Choose Your Movies App For Android
Choose Your Movies App For Android

Choose Your Movie The Movie Database sitesinden çekilen güncel filmlerin listelendiği ve filmlerin detaylarına erişildiği mobil uygulamadır. Kullanıla

An android app consuming movies api build with Jetpack Compose
An android app consuming movies api build with Jetpack Compose

Movies App An Android app consuming MovieDb API to display list of movies, built with Compose, MVVM pattern as well as Architecture Components. Min Ap

Modular android app for searching Movies on Filmnet.ir and show the details of each Move based on MVVM.

Movie_Search Modular android app for searching Movies on Filmnet.ir and show the details of each Move based on MVVM. Android MVVM Architecture Table o

Android app for streaming and downloading Movies, TV-Series and Anime.
Android app for streaming and downloading Movies, TV-Series and Anime.

AquaStream ⚠️ Warning: By default this app doesn't provide any video sources, you have to install extensions in order to add functionality to the app.

Ergo Wallet for Android, built on top of Ergo Appkit.
Ergo Wallet for Android, built on top of Ergo Appkit.

Ergo Wallet Android Ergo Wallet for Android, built on top of Ergo Appkit. You need at least Android 7 to run Ergo Wallet. Features: generating wallets

Comments
  • TrendingMoviesActivity is blank on later launches without network

    TrendingMoviesActivity is blank on later launches without network

    TrendingMoviesActivity loads as a blank screen / empty list when launched 24 hours after the last launch successful launch.

    Should display last known list of movies with a snackbar message telling the user about the stale data.

    Steps to reproduce

    1. Launch the app
    2. Confirm trending movies list loads as expected
    3. Close the app
    4. Open device settings
    5. System -> Date & time
    6. Uncheck 'Use network-provided time'
    7. Set date to tomorrow (+1 day)
    8. Launch the app again

    Expected: App displays the last known list of movies with the following snackbar message:

    This list {n} day(s) old. Connect for an update! [Okay]

    Actual: App shows a blank screen

    bug 
    opened by evanisnor 1
  • TrendingMoviesActivity is blank on first launch without network

    TrendingMoviesActivity is blank on first launch without network

    TrendingMoviesActivity loads as a blank screen / empty list on initial launch without network connection (airplane mode)

    Would be appropriate to display an oops message on screen for this scenario.

    Steps to reproduce

    1. Fresh app install
    2. Enable airplane mode
    3. Launch app

    Expected: App displays a message to the user:

    ⚠️ Sorry! Connect to WiFi or mobile network to see today's trending movies"

    Actual: App shows a blank screen

    bug 
    opened by evanisnor 1
  • Migrate SharedPreferences usage to Jetpack DataStore

    Migrate SharedPreferences usage to Jetpack DataStore

    SharedPreferences isn't thread safe and seems to cause a StrictMode policy violation every time the app reads from it. Upgrade to Jetpack DataStore.

    Jetpack DataStore: https://developer.android.com/topic/libraries/architecture/datastore

    DiskStoreViolation

    2021-05-26 16:00:20.970 31776-31776/com.evanisnor.flickwatcher D/StrictMode: StrictMode policy violation; ~duration=1800 ms: android.os.strictmode.DiskReadViolation
            at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1556)
            at libcore.io.BlockGuardOs.access(BlockGuardOs.java:69)
            at libcore.io.ForwardingOs.access(ForwardingOs.java:73)
            at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:7246)
            at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:281)
            at java.io.File.exists(File.java:815)
            at android.app.ContextImpl.getDataDir(ContextImpl.java:2340)
            at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:590)
            at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:787)
            at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:439)
            at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:178)
            at com.evanisnor.flickwatcher.cache.CacheModule.sharedPreferences(CacheModule.kt:38)
            at com.evanisnor.flickwatcher.cache.CacheModule_SharedPreferencesFactory.sharedPreferences(CacheModule_SharedPreferencesFactory.java:33)
            at com.evanisnor.flickwatcher.cache.CacheModule_SharedPreferencesFactory.get(CacheModule_SharedPreferencesFactory.java:25)
            at com.evanisnor.flickwatcher.cache.CacheModule_SharedPreferencesFactory.get(CacheModule_SharedPreferencesFactory.java:11)
            at com.evanisnor.flickwatcher.cache.CacheRepository_Factory.get(CacheRepository_Factory.java:37)
            at com.evanisnor.flickwatcher.cache.CacheRepository_Factory.get(CacheRepository_Factory.java:12)
            at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
            at com.evanisnor.flickwatcher.cache.DaggerCacheComponent.getCache(DaggerCacheComponent.java:60)
            at com.evanisnor.flickwatcher.trendingmovies.DaggerTrendingMoviesComponent$com_evanisnor_flickwatcher_cache_CacheComponent_getCache.get(DaggerTrendingMoviesComponent.java:102)
            at com.evanisnor.flickwatcher.trendingmovies.DaggerTrendingMoviesComponent$com_evanisnor_flickwatcher_cache_CacheComponent_getCache.get(DaggerTrendingMoviesComponent.java:93)
            at com.evanisnor.libraries.viewmodelfactory.ViewModelFactoryModule_ViewModelFactoryFactory.get(ViewModelFactoryModule_ViewModelFactoryFactory.java:25)
            at com.evanisnor.libraries.viewmodelfactory.ViewModelFactoryModule_ViewModelFactoryFactory.get(ViewModelFactoryModule_ViewModelFactoryFactory.java:10)
            at com.evanisnor.flickwatcher.trendingmovies.TrendingMoviesModule_ViewModelFactory.get(TrendingMoviesModule_ViewModelFactory.java:29)
            at com.evanisnor.flickwatcher.trendingmovies.TrendingMoviesModule_ViewModelFactory.get(TrendingMoviesModule_ViewModelFactory.java:10)
            at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
            at com.evanisnor.flickwatcher.trendingmovies.DaggerTrendingMoviesComponent.injectTrendingMoviesActivity(DaggerTrendingMoviesComponent.java:55)
            at com.evanisnor.flickwatcher.trendingmovies.DaggerTrendingMoviesComponent.inject(DaggerTrendingMoviesComponent.java:51)
            at com.evanisnor.flickwatcher.trendingmovies.TrendingMoviesActivity.onCreate(TrendingMoviesActivity.kt:133)
            at android.app.Activity.performCreate(Activity.java:7802)
            at android.app.Activity.performCreate(Activity.java:7791)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
            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:2016)
            at android.os.Handler.dispatchMessage(Handler.java:107)
            at android.os.Looper.loop(Looper.java:214)
            at android.app.ActivityThread.main(ActivityThread.java:7356)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        	at com.android.internal.os.ZygoteInit.mai
    
    enhancement 
    opened by evanisnor 0
Owner
Evan W. Isnor
Evan W. Isnor
This project shows trending github repositories using MVI (Model View Intent) using kotlin flows and multi module clean architecture

GithubTrendingMVIFlow Build Architecture: This project shows trending github repositories using MVI (Model View Intent) using kotlin flows and multi m

Zulqurnain Haider 0 Jun 2, 2022
Movie streaming is an android app that show us last,newest,top imdb and popular movies.

Movies-Streaming-Android-App An Android application which shows Popular, New Movies, Top Rated movies and all the details of any movie like- Cast, Rev

mojtaba joshaghani 33 Aug 25, 2022
Keep track of popular & top rated movies and see movie details

Movies Keep track of popular & top rated movies and see movie details Features Keep track of popular & top rated movies See movie details Libraries Je

Amr Saraya 1 May 1, 2022
Movies-db-example - Sample Android application that loads movies data from a remote server

Movies Application Sample Android application that loads movies data from a remo

Bilal Ibrahim Hairab 0 Feb 8, 2022
Movies - Simple Application to show movies and advertisemnets

Movies Simple Application to show movies and advertisemnets Technologies This Ap

Reham Galal 0 Feb 3, 2022
A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a Premier League and French Ligue 1

RapidScore Screenshots Table of Contents Description Dependencies API Reference Lessons Learnt Contributing Roadmap Google Playstore License Author In

Breens Mbaka 12 Jul 7, 2022
An app allows the users to get top news about their countries

News App This app allows the users to get top news about their countries. In the following figure, you can find the developed architecture: App consis

null 0 Oct 16, 2021
An app that displays the list of top headlines and when the user clicks on a news story

News Feed Android App (Summary) This app works as an app that shows the recent n

Olaore Fouad 0 Dec 17, 2021
Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an approach to clean architecture.

movies-sample-app This is an Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an appr

Nadeem Ahmed 1 Oct 21, 2021
Simple Android movies app using MVVM clean architecture.

Simple Android movies app using MVVM clean architecture.

Marcos Calvo García 57 Dec 30, 2022