All Projects → michaelnisi → swifters

michaelnisi / swifters

Licence: MIT license
Browse Swift users on GitHub

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to swifters

graphql-chat-sample
a simple sample to help :)
Stars: ✭ 19 (+46.15%)
Mutual labels:  apollo
milpon
iPhone application for Remember the Milk.
Stars: ✭ 82 (+530.77%)
Mutual labels:  ios-app
Manji
Manji is a mobile application built to help people learning Japanese learn about Kanji.
Stars: ✭ 142 (+992.31%)
Mutual labels:  ios-app
IconFont Demo
在iOS工程中使用iconfont技术节省图片开销
Stars: ✭ 21 (+61.54%)
Mutual labels:  ios-app
alda
A boilerplate for React isomorphic aplication with Material Design
Stars: ✭ 16 (+23.08%)
Mutual labels:  apollo
NASSP
Project Apollo - NASSP
Stars: ✭ 110 (+746.15%)
Mutual labels:  apollo
apollo-log
A logging extension for the Apollo GraphQL Server
Stars: ✭ 64 (+392.31%)
Mutual labels:  apollo
ScaryFlight
Just another yet FlappyBird-style game.
Stars: ✭ 24 (+84.62%)
Mutual labels:  ios-app
RxApolloClient
RxSwift extensions for Apollo Client
Stars: ✭ 46 (+253.85%)
Mutual labels:  apollo
shopify-node-react-app
Shopify paid app in Node.js & React.js that connects to a store and lets merchants select products to automatically discount them in the Shopify admin interface.
Stars: ✭ 29 (+123.08%)
Mutual labels:  apollo
erxes-widgets
Deprecated: Repo is now integrated with erxes/erxes
Stars: ✭ 26 (+100%)
Mutual labels:  apollo
redwood
The App Framework for Startups
Stars: ✭ 15,079 (+115892.31%)
Mutual labels:  apollo
iMast
📱🐘 3rd-party Mastodon Client for iOS
Stars: ✭ 93 (+615.38%)
Mutual labels:  ios-app
custom radio grouped button
Custom Flutter widgets that makes Checkbox and Radio Buttons much cleaner and easier.
Stars: ✭ 144 (+1007.69%)
Mutual labels:  ios-app
jest-gql
✅🚀GraphQL based tests for Jest and Apollo
Stars: ✭ 33 (+153.85%)
Mutual labels:  apollo
apollo-link-defer
Interface for creating asynchronous links.
Stars: ✭ 16 (+23.08%)
Mutual labels:  apollo
erxes-widgets-api
Deprecated: Repo is now integrated with erxes-api
Stars: ✭ 22 (+69.23%)
Mutual labels:  apollo
react-apollo-mutation-state
A React HOC wrapper for Apollo GraphQL mutation, provides loading and error in props
Stars: ✭ 16 (+23.08%)
Mutual labels:  apollo
kerrigan
基于Tornado实现的一套配置中心,可基于分项目、环境管理配置,语法高亮、对比历史版本、快速回滚等,并提供Restful风格的API
Stars: ✭ 57 (+338.46%)
Mutual labels:  apollo
Heighliner
A GraphQL Server for NewSpring Web
Stars: ✭ 13 (+0%)
Mutual labels:  apollo

Swifters

The Swifters iOS app lets you browse Swift users on GitHub. Its purpose is to explore GraphQL with Apollo iOS, a strongly-typed, caching GraphQL client. Swifters queries GitHub’s GraphQL API v4. If your new to GraphQL, you might want to read my introduction.

The Swifters iOS app lets you browse Swift users on GitHub. Its purpose is to explore GraphQL with Apollo iOS, a strongly-typed, caching GraphQL client. Swifters queries GitHub’s GraphQL API v4.

Screenshot 1 Screenshot 2

Swifters progressively populates its cache, while users scroll a list of Swift developers on GitHub, loading two to three handfuls of Swifters at a time. Tapping a developer in the list shows details.

Objectives

Dependencies

  • Apollo iOS – A strongly-typed, caching GraphQL client
  • DeepDiff – Amazingly incredible extraordinary lightning fast diffing
  • Nuke – Image loading and caching
  • Ola – Check reachability of host

Installation

Accessing GitHub

Swifters needs a personal access token to communicate with GitHub’s GraphQL server.

These scopes are required:

  • read:user
  • user:email

Preparing the Workspace

$ GITHUB_TOKEN=<token> make

What this does

  • Clone repositories of framework dependencies into ./deps
  • Generate ./apollo.config.js with your GitHub token
  • Copy ./apollo.config.js to ./Swifters/github/apollo.config.json

Running the app

$ open Swifters.xcworkspace
  • Select Swifters scheme
  • Run ⌘R

🙌

Onwards

If you want to modify GraphQL queries to develop this app further, you need code generation tooling. Apollo GraphQL tools are written in TypeScript and run on Node.js.

Apollo CLI

$ npm i -g apollo

Generating Swift files from GraphQL queries

After you have adjusted *.graphql queries to your needs, you must generate the GraphQL related Swift source files. Apollo recommends adding a Run Script Phase to your Xcode target, but I find using the command line interface directly less opaque.

$ apollo client:codegen --target=swift ./Swifters/github

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].