๐ Built with React Native, Expo, GraphQL, AWS Amplify, AWS AppSync, Dark Sky API, Giphy API
- ๐ Uses geolocation to get weather data
- โ Micro weather updates
- ๐ Weather related Giphy images
- ๐ฎโ Authenticated
- ๐ฅ Serverless back end
- ๐ GraphQL
- ๐ป Deploy back end in minutes
In order to run the app you will need an API key for both the Giphy API and the Dark Sky API. Both have a free plan that should be more than enough to run this app.
- Clone the repo & install the dependencies
~ git clone https://github.com/kkemple/qweather.git
~ cd qweather
~ npm install
- Update the serverless function with your Dark Sky API and Giphy API keys in
amplify/backend/function/getweather/src/index.js
const buildDarkSkyUrl = (lat, lon) =>
`https://api.darksky.net/forecast/[key]/${lat},${lon}`;
const buildGiphyUrl = tag =>
encodeURI(
`https://api.giphy.com/v1/gifs/random?api_key=[key]S&tag=${tag}&rating=G`
);
- Initialize the Amplify project
~ amplify init
? Enter a name for the environment: dev (or whatever you would like to call this env)
? Choose your default editor: <YOUR_EDITOR_OF_CHOICE>
? Do you want to use an AWS profile? Y
- Mock the backend to ensure app is working properly
amplify mock
- Start the app
~ expo start
- Push to AWS
~ amplify push
? Are you sure you want to continue? Y
? Do you want to generate code for your newly created GraphQL API? N
> We already have the GraphQL code generated for this project, so generating it here is not necessary.
For instructions on using the Expo app, check out the Expo docs here.