GraphQL Flutter

A collection of packages to work with graphql server in dart and flutter.

Project Homepage

GitHub Workflow Status (branch) Pub Popularity Discord
## Introduction GraphQL brings many benefits, both to the client: devices will need fewer requests, and therefore reduce data usage. And to the programmer: requests are arguable, they have the same structure as the request. This project combines the benefits of GraphQL with the benefits of `Streams` in Dart to deliver a high-performance client. The project took inspiration from the [Apollo GraphQL client](https://github.com/apollographql/apollo-client), great work guys! ## We're Hiring! πŸš€ We're looking for a Flutter engineer to lead mobile development at [Expatfile.tax](https://expatfile.tax?utm_source=github&utm_medium=readme&utm_campaign=mobile_developer_role) πŸ‡ΊπŸ‡ΈβœˆοΈπŸŒ β†’ [Check out the full job description here](https://hire.toggl.com/c/kj88m/overview) ## Packages This is a Monorepo which contains the following packages: | Crate | Description | Version | |:----------|:-----------:|--:| | [graphql](./packages/graphql) | Client implementation to interact with any graphql server | ![Pub Version (including pre-releases)](https://img.shields.io/pub/v/graphql?include_prereleases&style=flat-square) | | [graphql_flutter](./packages/graphql_flutter) | Flutter Widgets wrapper around graphql API | ![Pub Version (including pre-releases)](https://img.shields.io/pub/v/graphql_flutter?include_prereleases&style=flat-square) | ## Utils Tools Around `graphql_flutter` are builds awesome tools like: 1. [graphql_flutter_bloc](https://github.com/artflutter/graphql_flutter_bloc) 2. [graphql_codegen](https://github.com/heftapp/graphql_codegen) 3. [graphql-cache-inspector](https://pub.dev/packages/graphql_cache_inspector) ## Features βœ…   Queries, Mutations, and Subscriptions βœ…   [Query polling and rebroadcasting](./packages/graphql/README.md#clientwatchquery-and-observablequery) βœ…   [In memory and persistent caching](./packages/graphql/README.md#persistence) βœ…   [GraphQL Upload](./packages/graphql/README.md#graphql-upload) βœ…   [Optimistic results](./packages/graphql_flutter/README.md#optimism) βœ…   [Modularity](./packages/graphql/README.md#links) βœ…   [Client-state management](./packages/graphql/README.md#direct-cache-access-api) βœ…   [Operation cancellation](./packages/graphql/README.md#cancellation) ⚠️   [Automatic Persisted Queries](./packages/graphql/README.md#persistedquerieslink-experimental-warning-out-of-service-warning) (out of service) ## Contributing Please see our [Hacking guide](./docs/dev/MAINTAINERS.md) ## Contributors This package was originally created and published by the engineers at [Zino App BV](https://zinoapp.com). Since then the community has helped to make it even more useful for even more developers. This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind are welcome! [build-status-badge]: https://img.shields.io/github/workflow/status/zino-hofmann/graphql-flutter/graphql-flutter%20Tests%20case?style=flat-square [build-status-link]: https://github.com/zino-hofmann/graphql-flutter/actions [coverage-badge]: https://img.shields.io/codecov/c/github/zino-hofmann/graphql-flutter/beta?style=flat-square [coverage-link]: https://app.codecov.io/gh/zino-hofmann/graphql-flutter [version-badge]: https://img.shields.io/pub/v/graphql_flutter.svg?style=flat-square [package-link]: https://pub.dartlang.org/packages/graphql_flutter [package-link-client]: https://pub.dartlang.org/packages/graphql [license-badge]: https://img.shields.io/github/license/zino-app/graphql-flutter.svg?style=flat-square [license-link]: https://github.com/zino-app/graphql-flutter/blob/master/LICENSE [prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square [prs-link]: http://makeapullrequest.com [github-watch-badge]: https://img.shields.io/github/watchers/zino-app/graphql-flutter.svg?style=flat-square&logo=github&logoColor=ffffff [github-watch-link]: https://github.com/zino-app/graphql-flutter/watchers [github-star-badge]: https://img.shields.io/github/stars/zino-app/graphql-flutter.svg?style=flat-square&logo=github&logoColor=ffffff [github-star-link]: https://github.com/zino-app/graphql-flutter/stargazers [discord-badge]: https://img.shields.io/discord/559455668810153989.svg?style=flat-square&logo=discord&logoColor=ffffff [discord-link]: https://discord.gg/tXTtBfC ### Financial Contributors Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/graphql-flutter/contribute)] #### Individuals #### Organizations Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/graphql-flutter/contribute)] ## Articles and Videos External guides, tutorials, and other resources from the GraphQL Flutter community - [Ultimate toolchain to work with GraphQL in Flutter](https://medium.com/@v.ditsyak/ultimate-toolchain-to-work-with-graphql-in-flutter-13aef79c6484): An intro to using `graphql_flutter` with [`artemis`](https://pub.dev/packages/artemis) for code generation and [`graphql-faker`](https://github.com/APIs-guru/graphql-faker) for API prototyping