Giter Club home page Giter Club logo

demo-almost-netflix-for-flutter's Introduction

this is a "revival" commit of the appwrite almost netflix app

since the scraper is related to this app i decided to include it in almostnetflixprojectsetup folder
original project can be found here

since this is more like a showcase demo I removed signup and the users login as anonymous users

this fork is focused on performance optimization and web compatibility

  • removed many notifylisteners that caused too many unecessary rebuilds
  • moved future creation outside of futurebuilders (one of them was generating a rebuild loop)
  • changed context.read =context.write where relevant according to provider recommendations
  • reduced queries to database for watchlist logic in providers
  • using getFilePreview so the app doesnt handle huge image files
  • removed
    _scrollController = ScrollController() ..addListener(() { setState(() { _scrollOffset = _scrollController.offset; }); });
    in home.dart, it was causing rebuilds everytime the user scrolled down which slowed the scrolling tremendously

possible improvements:

  • change scraper so it stores different image sizes according to app needs ( the app for now downloads all the hires images)

suggestion for appwrite:
I guess getFilePreview is working on client side. Would be cool to have a cloudinary like functionality on appwrite where images get resized/cached dynamically on server side according to parameters in the url of the images

Almost Netflix - Flutter

Banner

Requirements

Before using this project, you will need to have Appwrite instance with Almost Netflix project ready. You can visit Project setup GitHub repository or Dev.to post.

Usage

$ git clone https://github.com/appwrite/demo-almost-netflix-for-flutter.git
$ cd demo-almost-netflix-for-flutter
$ open -a Simulator.app
$ flutter run

Make sure to update Endpoint and ProjectID in lib/api/client.dart.

The application will be listening on port 3000. You can visit in on URL http://localhost:3000.

assets

The assets directory contains your images such as logos as well as anything else you would like your project to use, be sure to update pubspec.yaml with any addition folders.

More information about assets can be found in the documentation.

lib/api

The lib/api folder contains our API request client that is used for communicating with Appwrite endpoints.

lib/data

The lib/data folder is where we put anything that represents data such as our models

lib/extensions

We use the lib/extensions folder to extend the Dart language with helpers for convience methods.

lib/providers

Our lib/providers folder is where we create our ChangeNotifiers that allow observation and access across our app.

For more information about Provider library we used can be found in the documentation

lib/screens

Directory lib/screens is where we place all of our top level views and responsible for laying out how we present to our users.

lib/widgets

The lib/widgets directory contains all of our Flutter widgets. Widgets are the main component of Flutter and can make up different pars of your screen.

For more information on Widgets can be found in the documentation

demo-almost-netflix-for-flutter's People

Contributors

christyjacob4 avatar devloic avatar kekavc24 avatar letsintegreat avatar wess avatar

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.