Giter VIP home page Giter VIP logo

upsplash-flutter's Introduction

Upsplash

Flutter CI

Unofficial Unsplash client written using dart and flutter

Sreenshots

Architecture

Bloc Architecture

The goal of this pattern is to make it easy to separate presentation from business logic, facilitating testability and reusability.

Libraries

Architecture

  • flutter_bloc A predictable state management library that helps implement the BLoC design pattern

Networking

  • dio A powerful Http client for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout etc.

Image utils

  • image_downloader Flutter plugin that downloads images and movies on the Internet and saves to Photo Library on iOS or specified directory on Android.
  • transparent_image A transparent image in Dart code, represented as a Uint8List.

Permissions

  • permission Flutter plugin for getting and requesting permission on Android.

Reactive functional programming

  • RxDart RxDart is a reactive functional programming library for Google Dart, based on ReactiveX.

upsplash-flutter's People

Contributors

xyarim 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

Watchers

 avatar  avatar  avatar

upsplash-flutter's Issues

Bug in fetchEvent

Hi @xyarim
I saw that in the file photo_list_bloc.dart there are two bugs!

  • Instruction CurrentPage++ passes old value and then update itself
  • Unsplash api error: page=0 gives the same result of page=1

I fixed like following:

 if (currentState is InitialPhotoListState) {
          final photos = await photoRepository.getPhotos(1);
          yield PhotoListLoaded(photos, 1);
        } else if (currentState is PhotoListLoaded) {
          int currentPage = currentState.page + 1;
          final photos = await photoRepository.getPhotos(currentPage);
          print("current_page = $currentPage");
          yield photos.isEmpty
              ? currentState.copyWith(photos)
              : PhotoListLoaded(currentState.photos + photos, currentPage);
        }

I hope you'll enjoy it!

Angelo

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.