In 2012, Facebook engineer Nick Schrock initiated a project, initially dubbed "SuperGraph," to transition away from an outdated, unsupported partner API powering Facebook's News Feed. This prototype eventually contributed significantly to the development of GraphQL, a now-popular open-source query language.
Facebook defines GraphQL as a "query language for your API and a runtime for fulfilling those queries with your existing data." Essentially, it's a REST alternative gaining traction. Unlike REST, which typically requires multiple endpoint requests to gather data, GraphQL lets developers send a single query specifying their precise data needs.
Ready to dive into React Native? This article is an excerpt from our Premium library. Access a comprehensive collection of React Native resources, including fundamentals, projects, tips, tools, and more, with SitePoint Premium. Subscribe today for just $9/month.
Key Highlights:
Prerequisites:
This tutorial assumes basic React Native knowledge and familiarity with the Expo environment. You'll need the Expo client installed on your mobile device or a compatible simulator. Installation instructions are available here.
Project Overview:
This tutorial showcases GraphQL's power in React Native by creating a coffee bean comparison app. A base template, built using Expo, is provided to simplify the process and focus on GraphQL features.
To begin, clone this repository and switch to the "getting-started" branch:
git clone https://github.com/jamiemaison/graphql-coffee-comparison.git cd graphql-coffee-comparison git checkout getting-started
This branch includes basic views and initial dependencies:
git clone https://github.com/jamiemaison/graphql-coffee-comparison.git cd graphql-coffee-comparison git checkout getting-started
Next, install dependencies (ensure Node v11.10.1 is installed):
{ "expo": "^32.0.0", "react": "16.5.0", "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz", "react-navigation": "^3.6.1" }
To integrate GraphQL, install additional dependencies:
npm install
These dependencies include:
apollo-boost
: Simplified GraphQL setup for React/React Native.react-apollo
: Integrates GraphQL with the Apollo client.graphql-tag
: Parses GraphQL queries using template literals.graphql
: The JavaScript GraphQL reference implementation.After installation, run npm start
. The Expo window should appear, and launching the app (via simulator or device) should display a screen similar to this:
The app features two screens (managed by react-navigation
): Home.js
and CoffeePage.js
. Home.js
displays a FlatList
of coffee beans. Selecting a bean navigates to CoffeePage.js
for detailed information. The following sections will populate these views with GraphQL data.
(The remainder of the response would continue to paraphrase and restructure the provided text, maintaining the image placement and format, covering topics like Apollo Server Playground, GraphQL Query Basics, Requesting Data, Storing Data with the Context API, and FAQs.)
The above is the detailed content of Getting Started with GraphQL and React Native. For more information, please follow other related articles on the PHP Chinese website!