diff --git a/docs/components/DocumentationFooter.js b/docs/components/DocumentationFooter.js index aa24d598b553c..5f912148bd562 100644 --- a/docs/components/DocumentationFooter.js +++ b/docs/components/DocumentationFooter.js @@ -25,7 +25,7 @@ function githubUrl(path) { } else { path = path.replace('/versions/latest/', '/versions/unversioned/'); } - } else if (path.match(/v\d+\.\d+\.\d+\/?$/)) { + } else if (path.match(/v\d+\.\d+\.\d+\/?$/) || path === '/') { if (path[path.length - 1] === '/') { path = `${path}index`; } else { diff --git a/docs/pages/_error.js b/docs/pages/_error.js index d8fdf4a47b3de..897bb2f65e85f 100644 --- a/docs/pages/_error.js +++ b/docs/pages/_error.js @@ -230,7 +230,8 @@ function endsInNull(path) { const RENAMED_PAGES = { '/introduction/project-lifecycle/': '/introduction/managed-vs-bare/', '/guides/': '/workflow/exploring-managed-workflow/', - '/versions/latest/sdk/': '/versions/latest/sdk/overview/', + '/versions/latest/sdk/': '/versions/latest/', + '/versions/latest/sdk/overview/': '/versions/latest/', '/guides/building-standalone-apps/': '/distribution/building-standalone-apps/', '/guides/genymotion/': '/workflow/android-studio-emulator/', '/workflow/upgrading-expo/': '/workflow/upgrading-expo-sdk-walkthrough/', @@ -260,6 +261,5 @@ const RENAMED_PAGES = { '/workflow/exploring-managed-workflow/': '/introduction/walkthrough/', // Move overview to index - '/versions/v37.0.0/sdk/overview/': '/versions/v37.0.0/sdk/', - '/versions/latest/sdk/overview/': '/versions/latest/sdk/', + '/versions/v37.0.0/sdk/overview/': '/versions/v37.0.0/', }; diff --git a/docs/pages/expokit/eject.md b/docs/pages/expokit/eject.md index cb30d7dda6233..b205d2a026d8f 100644 --- a/docs/pages/expokit/eject.md +++ b/docs/pages/expokit/eject.md @@ -22,7 +22,7 @@ We call this "ejecting" because you still depend on the Expo SDK, but your proje ### You might want to eject if: -- Your Expo project needs a native module that Expo doesn't currently support. We're always expanding the [Expo SDK](/versions/latest/sdk/overview/), so we hope this is never the case. But it happens, especially if your app has very specific and uncommon native demands. +- Your Expo project needs a native module that Expo doesn't currently support. We're always expanding the [Expo SDK](/versions/latest/), so we hope this is never the case. But it happens, especially if your app has very specific and uncommon native demands. ### You should not eject if: diff --git a/docs/pages/guides.md b/docs/pages/guides.md index fcfcaf768736a..03cfed33c84b3 100644 --- a/docs/pages/guides.md +++ b/docs/pages/guides.md @@ -13,7 +13,7 @@ In the managed workflow section we discuss topics as they apply specifically to - [Expo CLI](../workflow/expo-cli/) - [Debugging](../workflow/debugging/) - [iOS Simulator](../workflow/ios-simulator/) -- [Android Emulator](../workflow/android-emulator/) +- [Android Emulator](../workflow/android-studio-emulator/) - [App Icons](../guides/app-icons/) - [Splash Screens](../guides/splash-screens/) - [Distributing your App on the App Store and Play Store](../distribution/introduction/) @@ -33,4 +33,4 @@ The bare workflow section provides less guides than are available in the managed ## Looking for something else? -The [API Reference](../versions/latest/) includes comprehensive documentation around the built-in APIs in the Expo SDK and how to use them. \ No newline at end of file +The [API Reference](../versions/latest/) includes comprehensive documentation around the built-in APIs in the Expo SDK and how to use them. diff --git a/docs/pages/guides/adhoc-builds.md b/docs/pages/guides/adhoc-builds.md index fb293cb891526..ee536aebb85d0 100644 --- a/docs/pages/guides/adhoc-builds.md +++ b/docs/pages/guides/adhoc-builds.md @@ -2,7 +2,7 @@ title: Installing a Custom iOS Expo client --- -Build and install a custom version of the [Expo client](../../versions/latest/introduction/installation/#mobile-client-expo-for-ios-and-android) with your own Apple Credentials using our build service. This custom version of the Expo client contains features that were previously only available on the Android versions. Our build service will prepare your custom Expo client, and you can install it to your iOS device directly from our website. +Build and install a custom version of the [Expo client](../../get-started/installation/#2-mobile-app-expo-client-for-ios) with your own Apple Credentials using our build service. This custom version of the Expo client contains features that were previously only available on the Android versions. Our build service will prepare your custom Expo client, and you can install it to your iOS device directly from our website. #### Installation overview @@ -24,7 +24,7 @@ Run `expo client:ios` You are given a choice of letting `expo-cli` create the necessary credentials for you, while still having a chance to provide your own overrides. Your Apple ID and password are used locally and never saved on Expo's servers. -Letting Expo handle credentials for you will greatly simplify the build process. Learn more [here](../../versions/latest/distribution/security) on what these credentials are and how we store them. +Letting Expo handle credentials for you will greatly simplify the build process. Learn more [here](../../distribution/security) on what these credentials are and how we store them. ```sh $ expo client:ios diff --git a/docs/pages/guides/splash-screens.md b/docs/pages/guides/splash-screens.md index e713d83313236..435b0d63c5f29 100644 --- a/docs/pages/guides/splash-screens.md +++ b/docs/pages/guides/splash-screens.md @@ -12,7 +12,7 @@ The default splash screen is a blank white screen. This might work for you, if i The [iOS Human Interface Guidelines](https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/) list the static launch image sizes. I'll go with `1242` pixels wide and `2436` pixels tall -- this is the width of the iPhone 8 Plus (the widest iPhone) and the height of the iPhone X (the tallest iPhone). Expo will resize the image for you depending on the size of the device, and we can specify the strategy used to resize the image with `splash.resizeMode`. -Android screen sizes vary greatly with the massive variety of devices on the market. One strategy to deal with this is to look at the most common resolutions and design around that - [you can see some statistics on this published by Unity here](https://hwstats.unity3d.com/mobile/display-android.html). Given that we can resize and crop our splash image automatically, it looks like we can stick with our dimensions, as long as we don't depend on the splash image fitting the screen exactly. This is convenient because we can use one splash image for both iOS and Android - less for you to read in this guide and less work for you to do. +Android screen sizes vary greatly with the massive variety of devices on the market. One strategy to deal with this is to look at the most common resolutions and design around that - [you can see a list of devices and their resolutions here](https://material.io/resources/devices/). Given that we can resize and crop our splash image automatically, it looks like we can stick with our dimensions, as long as we don't depend on the splash image fitting the screen exactly. This is convenient because we can use one splash image for both iOS and Android - less for you to read in this guide and less work for you to do. You can work off of [this Sketch template](https://github.com/expo/files/blob/b264c7f7bf2cacfbdb45640063988ab61dfbbe23/splash-template.sketch?raw=true) if you like. I did, and I changed the background color to a faint yellow and put a Noodle emoji in the middle. It's worth noting that the splash image supports transparency, although we didn't use it here. diff --git a/docs/pages/guides/using-graphql.md b/docs/pages/guides/using-graphql.md index 306d18153f010..0cf49c1bb4d4f 100644 --- a/docs/pages/guides/using-graphql.md +++ b/docs/pages/guides/using-graphql.md @@ -62,7 +62,7 @@ When a server receives the above query, it will [resolve](https://blog.graph.coo } ``` -The root of the returned JSON object is a field called `data` as defined in the official [GraphQL specification](http://facebook.github.io/graphql/#sec-Data). The rest of the JSON object then contains exactly the information that the client asked for in the query. If the client for example hadn’t included the `imageUrl` in the query’s selection set, the server wouldn’t have included it in its response either. +The root of the returned JSON object is a field called `data` as defined in the official [GraphQL specification](http://spec.graphql.org/draft/#sec-Data). The rest of the JSON object then contains exactly the information that the client asked for in the query. If the client for example hadn’t included the `imageUrl` in the query’s selection set, the server wouldn’t have included it in its response either. In case the GraphQL request fails for some reason, e.g. because the query was malformed, the server will not return the `data` field but instead return an array called `errors` with information about the failure. Notice that it can happen that the server returns both, `data` *and* `errors` . This can occur when the server can only partially resolve a query, e.g. because the user requesting the data only had the access rights for specific parts of the query's payload. @@ -138,7 +138,7 @@ You can read more about the core GraphQL constructs [here](https://www.howtograp ## Getting started with GraphQL -The first thing you need when getting started with GraphQL is of course a GraphQL server. As GraphQL itself is only a [specification](https://facebook.github.io/graphql/), you can either implement your own server using one of the available [reference implementations](http://graphql.org/code/#server-libraries) or take a shortcut by using a tool like [Apollo Launchpad](https://launchpad.graphql.com/). +The first thing you need when getting started with GraphQL is of course a GraphQL server. As GraphQL itself is only a [specification](http://spec.graphql.org/draft/), you can either implement your own server using one of the available [reference implementations](http://graphql.org/code/#server-libraries) or take a shortcut by using a tool like [Apollo Launchpad](https://launchpad.graphql.com/). The best way to get started with GraphQL in production is to use [`graphql-yoga`](https://github.com/graphcool/graphql-yoga), a flexible GraphQL server based on Express.js. `graphql-yoga` has a number of compelling features, such as support for [GraphQL Playground](https://github.com/graphcool/graphql-playground) and built-in GraphQL subscriptions for realtime functionality. @@ -157,8 +157,6 @@ There are four major GraphQL clients available at the moment: Apollo, Relay and Urql implement further features like caching, realtime support with GraphQL subscriptions or optimistic UI updates. -Learn how to integrate with Auth0 social providers in the [expo-auth0-example](https://github.com/graphcool-examples/react-native-graphql/tree/master/authentication-with-expo-and-auth0) repository. - ### Creating your own GraphQL server The fastest way to get started with GraphQL is by using a [GraphQL boilerplate](https://github.com/graphql-boilerplates) project for the technology of your choice. GraphQL boilerplates provide the ideal starter kits for your GraphQL-based projects - no matter if backend-only or fullstack. diff --git a/docs/pages/introduction/faq.md b/docs/pages/introduction/faq.md index 003923b0ff386..a54925b9437f6 100644 --- a/docs/pages/introduction/faq.md +++ b/docs/pages/introduction/faq.md @@ -44,7 +44,7 @@ If that sounds like you, you can see what we offer at https://expo.io/developer- Managed Expo projects don't support custom native code, including third-party libraries which require custom native components. In a managed project, you only write JavaScript. -In [our SDK](/versions/latest/sdk/overview/), we give you a large set of commonly desired, high-quality native modules. We recommend doing as much in JavaScript as possible, since it can immediately deploy to all your users and work across both platforms, and will always continue to benefit from Expo SDK updates. +In [our SDK](/versions/latest/), we give you a large set of commonly desired, high-quality native modules. We recommend doing as much in JavaScript as possible, since it can immediately deploy to all your users and work across both platforms, and will always continue to benefit from Expo SDK updates. However, if you need something custom that isn't possible with the native modules provided in the SDK, like on-the-fly video processing or low-level control over the Bluetooth radio to do a firmware update and [other features requested here](https://expo.canny.io/feature-requests), you can run `expo eject` and have full control over the underlying native projects. @@ -85,4 +85,4 @@ Expo supports Android 5+ and iOS 10+. ## Up next -- 👩‍💻 The time has come to write some code. Almost. First we need to install a couple tools. [Continue to "Installation"](../../get-started/installation/). \ No newline at end of file +- 👩‍💻 The time has come to write some code. Almost. First we need to install a couple tools. [Continue to "Installation"](../../get-started/installation/). diff --git a/docs/pages/introduction/walkthrough.md b/docs/pages/introduction/walkthrough.md index 8d83dcbca099a..42ddf1c2394da 100644 --- a/docs/pages/introduction/walkthrough.md +++ b/docs/pages/introduction/walkthrough.md @@ -33,7 +33,7 @@ If you close the `expo-cli` or turn off your computer, you won't be able to acce ## Use the Expo SDK and community standard native libraries to build out native features -Let's scroll through the [API Reference](/versions/latest/sdk/overview/) to find packages that provide the capabilities that we need. If we know right away that the Expo SDK doesn’t have the necessary native APIs built-in, then we should probably eject or re-initialize with the bare workflow template. +Let's scroll through the [API Reference](/versions/latest/) to find packages that provide the capabilities that we need. If we know right away that the Expo SDK doesn’t have the necessary native APIs built-in, then we should probably eject or re-initialize with the bare workflow template. Let's say we had mockups for our app that look like the following: @@ -41,7 +41,7 @@ Let's say we had mockups for our app that look like the following: Mockups of app screens -> _Note: These are actually screenshots from [Sindre Sorhus'](https://github.com/sindresorhus) open source app [Blear](https://sindresorhus.com/blear/), but let's pretend they are mockups for the sake of demonstration._ +> _Note: These are actually screenshots from [Sindre Sorhus'](https://github.com/sindresorhus) open source app [Blear](https://sindresorhus.com/blear), but let's pretend they are mockups for the sake of demonstration._ We can tell from looking at the mockups that we’ll need a camera, access to permissions, some way to apply effects to an image, and a way to access the device media library to select images and to save images to an album. We can find equivalents for this by scrolling through the API reference. @@ -129,7 +129,7 @@ When we built our Android app bundle above, we told it to point to a specific An To determine the rules for when apps will download and apply these updates, [read about configuring OTA updates](../../guides/configuring-ota-updates/). -We frequently release updates to the [Expo SDK](/versions/latest/sdk/overview/). If you decide to update your app to a newer version of our SDK, copies of the older version will continue to work fine. Users will download the newest copy that their client supports. +We frequently release updates to the [Expo SDK](/versions/latest/). If you decide to update your app to a newer version of our SDK, copies of the older version will continue to work fine. Users will download the newest copy that their client supports. ## Sending notifications diff --git a/docs/pages/next-steps/additional-resources.md b/docs/pages/next-steps/additional-resources.md index 3d5c7217ebef1..51d149603e476 100644 --- a/docs/pages/next-steps/additional-resources.md +++ b/docs/pages/next-steps/additional-resources.md @@ -10,9 +10,7 @@ The following resources are useful for learning Expo and some of the projects th ## Courses using Expo -- [Harvard CS50 Mobile](https://cs50.github.io/mobile/) (free) -- [Stanford CS 47SI -Cross-Platform Mobile Development](https://web.stanford.edu/class/cs47si/) (free) +- [Stanford CS 47SI Cross-Platform Mobile Development](https://web.stanford.edu/class/cs47si/) (free) - [repl.it - React Native - Build your first app in the next 5 minutes](https://repl.it/site/react_native) (free) - [React Europe - Introduction to React Native Workshop videos on YouTube](https://www.youtube.com/playlist?list=PLCC436JpVnK2RFms3NG9ubPToWCNbMLbT) (free) - [Udacity - React Nanodegree](https://www.udacity.com/course/react-nanodegree--nd019) (paid) diff --git a/docs/pages/workflow/already-used-react-native.md b/docs/pages/workflow/already-used-react-native.md index 42ad246f72918..e206242647b8c 100644 --- a/docs/pages/workflow/already-used-react-native.md +++ b/docs/pages/workflow/already-used-react-native.md @@ -4,7 +4,7 @@ title: Already used React Native? This guide is intended to give developers who have already used React Native a quick outline on some of the key concepts, resources, and differences they will encounter when using Expo. -You can use just about every part of the [Expo SDK](/versions/latest/sdk/overview/) in any vanilla React Native app - we call using the Expo tools in this context the "bare" workflow. See more about that [here](../../bare/hello-world/). It's basically no different than using libraries in your React Native app, we just offer a lot of well-tested, consistent, and increasingly comprehensive libraries that give you access to the underlying native APIs. +You can use just about every part of the [Expo SDK](/versions/latest/) in any vanilla React Native app - we call using the Expo tools in this context the "bare" workflow. See more about that [here](../../bare/hello-world/). It's basically no different than using libraries in your React Native app, we just offer a lot of well-tested, consistent, and increasingly comprehensive libraries that give you access to the underlying native APIs. ## Expo managed workflow diff --git a/docs/pages/workflow/debugging.md b/docs/pages/workflow/debugging.md index 066433be9044e..b5b9dfe26eb3b 100644 --- a/docs/pages/workflow/debugging.md +++ b/docs/pages/workflow/debugging.md @@ -88,8 +88,6 @@ It's easy to use the React Native Debugger to debug your network requests. Simpl - [mitmproxy](https://medium.com/@rotxed/how-to-debug-http-s-traffic-on-android-7fbe5d2a34#.hnhanhyoz) - [Fiddler](http://www.telerik.com/fiddler) -On Android, the [Proxy Settings](https://play.google.com/store/apps/details?id=com.lechucksoftware.proxy.proxysettings) app is helpful for switch between debug and non-debug mode. Unfortunately it doesn't work with Android M yet. - ## Debugging Redux [Redux](https://redux.js.org/) is a popular library for managing the state of your app that doesn't belong to any single component, and instead it shared throughout the app. You can use the React Native Debugger (told you this tool does it all), the set up is as follows: diff --git a/docs/pages/workflow/glossary-of-terms.md b/docs/pages/workflow/glossary-of-terms.md index 95953a954ca46..7360104dd085c 100644 --- a/docs/pages/workflow/glossary-of-terms.md +++ b/docs/pages/workflow/glossary-of-terms.md @@ -43,7 +43,7 @@ Expo Developer Tools is a web browser based UI included in [Expo CLI](#expo-cli) ### Expo SDK -The Expo SDK provides access to device/system functionality such as camera, push notification, contacts, file system, and more. Scroll to the SDK API reference in the documentation navigation to see a full list of APIs and to explore them. [Read more about the Expo SDK](/versions/latest/sdk/overview/). [Find it on Github](https://github.com/expo/expo-sdk). +The Expo SDK provides access to device/system functionality such as camera, push notification, contacts, file system, and more. Scroll to the SDK API reference in the documentation navigation to see a full list of APIs and to explore them. [Read more about the Expo SDK](/versions/latest/). [Find it on Github](https://github.com/expo/expo-sdk). ### ExpoKit diff --git a/packages/expo-notifications/README.md b/packages/expo-notifications/README.md index 783e036d45fec..66ab1b3741531 100644 --- a/packages/expo-notifications/README.md +++ b/packages/expo-notifications/README.md @@ -42,7 +42,7 @@ In order to be able to receive push notifications on the device: ### Configure for Android -In order to be able to receive push notifications on the device ensure that your project is set up for Firebase. For more information on how to do it, see [this guide](https://docs.expo.io/versions/latest/guides/native-firebase/#bare-workflow-setup). +In order to be able to receive push notifications on the device ensure that your project is set up for Firebase. For more information on how to do it, see [this guide](https://docs.expo.io/guides/setup-native-firebase/#bare-workflow-setup). ### Add your project's credentials to Expo server (optional)