Skip to content

Commit

Permalink
[docs] Format Glossary of terms page and move deprecated term to arch…
Browse files Browse the repository at this point in the history
…ive (expo#22768)
  • Loading branch information
amandeepmittal authored Jun 7, 2023
1 parent b0b4103 commit 062dc72
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 42 deletions.
4 changes: 4 additions & 0 deletions docs/pages/archive/glossary.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ ExpoKit is an Objective-C and Java library that allows you to use the [Expo SDK]

**Support for ExpoKit ended after SDK 38. Expo modules can implement support for custom native configuration, and projects that need even more custom native code can [expose their Android Studio and Xcode projects with `npx expo prebuild`](/workflow/customizing/).**

### Shell app

Another term we occasionally use for [Standalone app](/more/glossary-of-terms/#standalone-app).

### XDE

XDE was a desktop tool with a graphical user interface (GUI) for working with Expo projects. It's been replaced by [Expo CLI](/more/expo-cli/), which now provides both command line and web interfaces.
81 changes: 39 additions & 42 deletions docs/pages/more/glossary-of-terms.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ description: List of non-obvious terms used withing the documentation, related t

### Android

The mobile operating system sponsored by Google for use with "Android" devices.
The mobile operating system sponsored by Google for use with **Android** devices.

### App config
### App Config

A file named **app.json**, **app.config.json**, **app.config.js**, or **app.config.ts** in the root of a project directory. For more information, see [app config configuration](/workflow/configuration/).

This file is used for the following purposes:

- Configuring how [Expo CLI](#expo-cli) works.
- Generating a project's public [manifest](#manifest) in EAS Update (think index.html but for native apps).
- Adding Expo [Config Plugins](#config-plugin) and configuring how `npx expo prebuild` generates native code.
- To configure how [Expo CLI](#expo-cli) works.
- Generate a project's public [manifest](#manifest) in EAS Update (think **index.html** but for native apps).
- Add Expo [config plugins](#config-plugin) and configure how `npx expo prebuild` generates native code.

### app.json

Expand All @@ -37,32 +37,35 @@ A feature of EAS build that automatically enables or disables [Apple capabilitie

A cross-platform tool for automatically linking native modules to native apps via native package managers.

- On iOS the tool is used in [CocoaPods](#cocoapods) `ios/Podfile` and invoked during `pod install`.
- On Android the tool is used in the `android/app/build.gradle` and invoked during the [Gradle](#gradle) sync process.
- On Android the tool is used in the **android/app/build.gradle** and invoked during the [Gradle](#gradle) sync process.
- On iOS the tool is used in [CocoaPods](#cocoapods) **ios/Podfile** and invoked during `pod install`.


There are two versions of Autolinking: [Expo Autolinking](#expo-autolinking), and [Community Autolinking](#community-autolinking).

The default [Prebuild template](#prebuild-template) includes support for [Expo Autolinking](#expo-autolinking), and the [Community Autolinking](#community-autolinking) fork.

### Babel

Transpiler used for removing language features that aren't available in the runtime's [JavaScript engine](#javascript-engine). [Metro](#metro-bundler) uses Babel internally. Project's can configure how Babel is used by modifying the `babel.config.js` file in their project directory. This file is optional when using [Expo CLI](#expo-cli). Expo projects should extend the default Babel preset [`babel-preset-expo`](https://github.com/expo/expo/tree/main/packages/babel-preset-expo).
Transpiler used for removing language features that aren't available in the runtime's [JavaScript engine](#javascript-engine). [Metro](#metro-bundler) uses Babel internally.

Projects can configure how Babel is used by modifying the **babel.config.js** file in the project directory. This file is optional when using [Expo CLI](#expo-cli). Expo projects should extend the default Babel preset [`babel-preset-expo`](https://github.com/expo/expo/tree/main/packages/babel-preset-expo).

### CocoaPods

The iOS package manager, used to link native modules to the native iOS project. This package manager is configured using the `ios/Podfile`, and updated when a user runs `pod install` in the `ios` directory.
The iOS package manager used to link native modules to the native iOS project. This package manager is configured using the **ios/Podfile** and updated when a user runs `pod install` in the **ios** directory.

### Community Autolinking

This refers to the React Native community [fork](https://github.com/react-native-community/cli/issues/248#issue-422591744) of the [Expo Autolinking](#expo-autolinking). The requirements for linking a module different to [Expo Autolinking](#expo-autolinking) but the implementation is the same.
This refers to the React Native community [fork](https://github.com/react-native-community/cli/issues/248#issue-422591744) of the [Expo Autolinking](#expo-autolinking). The requirements for linking a module are different from [Expo Autolinking](#expo-autolinking), however, the implementation is the same.

### Config Introspection

A process for evaluating the results of [`npx expo prebuild`](#prebuild) in-memory without persisting any code changes. This is used in [Auto Capability Signing](#auto-capability-signing) to determine what the entitlements file will look like without generating any native code. This process is also used in the [VS Code Expo](#vs-code-expo) extension to debug [Config Mods](#config-mods).

### Config Mods

Async functions that are appended to the [app config](#app-config) for use in [Prebuild](#prebuild). These functions are given a single native file to modify like Info.plist or AndroidManifest.xml. Config Mods are chained together and come from the package `@expo/config-plugins`. For more information, see [Config Plugins](/config-plugins/introduction/).
Async functions that are appended to the [app config](#app-config) for use in [Prebuild](#prebuild). These functions are given a single native file to modify such as **AndroidManifest.xml** or **Info.plist**. Config mods are chained together and come from the package `@expo/config-plugins`. For more information, see [Config plugins](/config-plugins/introduction/).

### Config Plugin

Expand Down Expand Up @@ -90,7 +93,7 @@ This package can be used by running any of the following commands:

### Dangerous Mods

Config [modifiers](#config-mods) that apply unstable changes to a native project during [prebuild](#prebuild). Use of these modifiers is unpredictable and prone to breaking changes between major version bumps in [Expo SDK](#expo-sdk).
Config [modifiers](#config-mods) that apply unstable changes to a native project during [prebuild](#prebuild). Using these modifiers is unpredictable and prone to breaking changes between major version bumps in [Expo SDK](#expo-sdk).

### Dev Clients

Expand All @@ -112,32 +115,32 @@ The command-line tool for working with EAS. {/* Pending creation of eas-cli [Rea

### EAS Config

The `eas.json` file used to configure [EAS CLI](#eas-cli). For more information, see [Configuring EAS Build with `eas.json`](/build/eas-json/).
The **eas.json** file used to configure [EAS CLI](#eas-cli). For more information, see [Configuring EAS Build with eas.json](/build/eas-json/).

### EAS Metadata

A command line tool for uploading and downloading Apple App Store metadata as JSON. This tool is available in the [EAS CLI](#eas-cli) package and should be used to improve the iOS submission process. For more information, see [EAS Metadata](/eas/metadata).
A command-line tool for uploading and downloading Apple App Store metadata as JSON. This tool is available in the [EAS CLI](#eas-cli) package and should be used to improve the iOS submission process. For more information, see [EAS Metadata](/eas/metadata).

### EAS Update

1. The cloud hosting service [EAS Update](/eas-update/introduction/) that is used for OTA Updates.
2. The CLI command `eas update` from [EAS CLI](#eas-cli) that is used to publish static files to the cloud hosting service.
2. The CLI command `eas update` from [EAS CLI](#eas-cli) used to publish static files to the cloud hosting service.

### Emulator

Emulator is used to describe software emulators of Android devices on your computers. Typically, iOS emulators are referred to as [Simulators](#simulator).

### Entry Point

The entry point usually refers to the initial JavaScript file used to load an application. In apps using [Expo CLI](#expo-cli), the default entry point is `./node_modules/expo/AppEntry.js` which simply imports the **App.js** file from the root project directory and registers it as the initial component in the native app.
The entry point usually refers to the initial JavaScript file used to load an application. In apps using [Expo CLI](#expo-cli), the default entry point is **./node_modules/expo/AppEntry.js** which simply imports the **App.js** file from the root project directory and registers it as the initial component in the native app.

### Experience

A synonym for app that usually implies something more single-use and smaller in scope, sometimes artistic and whimsical.

### Expo Autolinking

The original [Autolinking](#autolinking) system that is designed for projects using `expo-modules-core`. This system links modules based on the existence of an `expo-module.config.json` file in the library's root directory.
The original [Autolinking](#autolinking) system that is designed for projects using `expo-modules-core`. This system links modules based on the existence of an **expo-module.config.json** in the library's root directory.

### Expo CLI

Expand All @@ -153,21 +156,21 @@ Refers to the command `npx expo export` from [Expo CLI](#expo-cli). This command

### Expo Go

The Android and iOS app that runs React Native apps. When you want to run your app outside of the Expo Go app and deploy it to the App and/or Play stores, you can build a [Standalone App](#standalone-app).
The Android and iOS app that runs React Native apps. When you want to run your app outside of the Expo Go app and deploy it to the app stores, you can build a [Standalone App](#standalone-app).

### Expo Install

Refers to the command `npx expo install` from [Expo CLI](#expo-cli). This command is used to install npm packages containing [native modules](#native-module) that work with the currently installed version of `expo` in the project. Not all packages are supported. This command wraps the globally installed [package managers](#package-manager).

### Expo Module Config

A file named `expo-module.config.json` that lives in the root directory of a [native module](#native-module). For more information, see [Module Config](/modules/module-config/).
A file named **expo-module.config.json** that lives in the root directory of a [native module](#native-module). For more information, see [Module Config](/modules/module-config/).

### Expo SDK

A collection of [npm](#npm) packages containing [native modules](#native-module) that provides access to device/system functionality such as camera, push notification, contacts, file system, and more.

- Each package supports iOS, Android, and web whenever possible.
- Each package supports Android, iOS, and web whenever possible.
- The interface is completely written in [TypeScript](#typescript).
- All packages in the Expo SDK work with each other and can safely be compiled together.
- Any package in the SDK can be used in any [React Native](#react-native) app, with minimal, shared setup. [Learn more](/bare/installing-expo-modules/).
Expand All @@ -187,7 +190,7 @@ A mobile app debugger. We do not enable Flipper in the default [Prebuild](#prebu

### FYI

Sometimes referred to as "Expo FYI", this is a collection of tailored solutions to complex issues that lives at [expo.fyi](https://expo.fyi/). FYI links are utilized throughout Expo's developer tooling to help provide a better developer experience to users.
Sometimes referred to as **Expo FYI**, is a collection of tailored solutions to complex issues that live at [expo.fyi](https://expo.fyi/). FYI links are utilized throughout Expo's developer tooling to help provide a better developer experience to users.

### Global Expo CLI

Expand Down Expand Up @@ -223,7 +226,7 @@ The package `@expo/cli` is installed with the `expo` package. This is sometimes

### Manifest

An Expo app manifest is similar to a [web app manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest) - it provides information that Expo Go needs to know how to run the app and other relevant data. For more information, see [Expo Go](/get-started/expo-go/#manifest).
An Expo app manifest is similar to a [web app manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest). It provides information that Expo Go needs to know how to run the app and other relevant data. For more information, see [Expo Go](/get-started/expo-go/#manifest).

### Meta

Expand All @@ -235,7 +238,7 @@ The bundler used for converting JavaScript files and assets into a format that r

### Metro Config

The `metro.config.js` file used to configure [Metro bundler](#metro-bundler). This should extend the package `@expo/metro-config` when using [Expo CLI](#expo-cli). For more information, see [Customizing Metro](/guides/customizing-metro).
The **metro.config.js** file used to configure [Metro bundler](#metro-bundler). This should extend the package `@expo/metro-config` when using [Expo CLI](#expo-cli). For more information, see [Customizing Metro](/guides/customizing-metro).

### Monorepo

Expand All @@ -261,15 +264,15 @@ A native application containing a [JavaScript engine](#javascript-engine), and i

Automates the process of installing, upgrading, configuring, and removing libraries, also known as dependencies, from your project. See [npm](#npm) and [yarn](#yarn).

### Platform extensions
### Platform Extensions

Platform extensions are a feature of the [Metro bundler](#metro-bundler) which enable users to substitute files on a per-platform basis given a specific filename. For example, if a project has a `./index.js` file and a `./index.ios.js` file, then the `index.ios.js` will be used when bundling for iOS, and the `index.js` file will be used when bundling for all other platforms.
Platform extensions are a feature of the [Metro bundler](#metro-bundler) which enable users to substitute files on a per-platform basis given a specific filename. For example, if a project has a **./index.js** file and a **./index.ios.js** file, then the **index.ios.js** will be used when bundling for iOS, and the **index.js** file will be used when bundling for all other platforms.

By default, platform extensions are resolved in `@expo/metro-config` using the following formula:

- iOS: `*.ios.js`, `*.native.js`, `*.js`
- Android: `*.android.js`, `*.native.js`, `*.js`
- Web: `*.web.js`, `*.js`
- Android: ***.android.js**, ***.native.js**, ***.js**
- iOS: ***.ios.js**, ***.native.js**, ***.js**
- Web: ***.web.js**, ***.js**

{/* TODO: Multi-Resolution Asset Extensions */}

Expand All @@ -288,15 +291,15 @@ The React Native project template that is used as the first step of [Prebuilding

Although the template can be changed by using the `npx expo prebuild --template /path/to/template` flag, the default prebuild template contains important initial defaults that the `npx expo prebuild` command makes assumptions about.

The default template currently lives here: [`expo-template-bare-minimum`](https://github.com/expo/expo/tree/main/templates/expo-template-bare-minimum).
The default template currently lives at [`expo-template-bare-minimum`](https://github.com/expo/expo/tree/main/templates/expo-template-bare-minimum).

### Publish

We use the word "publish" as a synonym for "deploy". When you publish an app, it becomes available at a persistent URL from Expo Go, or in the case of [Standalone apps](#standalone-app), it updates the app.

### React Native

"React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components." [Read more](https://reactnative.dev/).
[React Native](https://reactnative.dev/) lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components.

### React Native Web

Expand All @@ -310,19 +313,13 @@ The preferred navigation library for React Native apps, developed and sponsored

Remote Debugging (also known as Async Chrome Debugging) is an experimental system for debugging React Native apps. The system works by executing the application JavaScript in a Chrome tab's web worker, then sending native commands over websockets to the native device. The benefit being you could use the built-in Chrome break points and network inspector to debug your application. This system does not work with JSI's synchronous calls, meaning it's not a reliable way to debug modern React Native apps. A better alternative to debugging React Native is to use [Hermes](#hermes-engine) as you can connect Chrome Dev Tools to it.

### Shell app

> **warning** Deprecated technology
Another term we occasionally use for [Standalone app](#standalone-app).

### Simulator

An emulator for iOS devices that you can run on macOS (or in [Snack](#snack)) to work on your app without having to have a physical device handy.

### Slug

We use the word "slug" in [app.json](#appjson) to refer to the name to use for your app in its url. For example, the [Native Component List](https://expo.dev/@community/native-component-list) app lives at https://expo.dev/@community/native-component-list and the slug is native-component-list.
We use the word "slug" in [**app.json**](#appjson) to refer to the name to use for your app in its url. For example, the [Native Component List](https://expo.dev/@community/native-component-list) app lives at https://expo.dev/@community/native-component-list and the slug is native-component-list.

### Snack

Expand All @@ -334,11 +331,11 @@ A development agency in Krakow, Poland. Maintainers of `react-native-gesture-han

### Standalone app

An application binary that can be submitted to the iOS App Store or Android Play Store. For more information, see [Building Standalone Apps](/archive/classic-updates/building-standalone-apps).
An application binary that can be submitted to the Android Play Store or iOS App Store. For more information, see [Building Standalone Apps](/archive/classic-updates/building-standalone-apps).

### Store Config

The `store.config.json` file used to configure [EAS Metadata](#eas-metadata). This file can be generated from an existing App Store entry using `eas metadata:pull`.
The **store.config.json** file used to configure [EAS Metadata](#eas-metadata). This file can be generated from an existing App Store entry using `eas metadata:pull`.

### Sweet API

Expand All @@ -358,19 +355,19 @@ The VS Code extension for improving the developer experience of working with app

### Watchman

The file watcher used by [Metro](#metro-bundler) to perform hot reloads during development. Watchman contains native code and may cause issues when installing globally. Watchman is maintained by [Meta](#meta) and used in Jest.
The file watcher used by [Metro](#metro-bundler) to perform hot reloads during development. Watchman contains native code and may cause issues when installed globally. Watchman is maintained by [Meta](#meta) and used in Jest.

### webpack

The bundler used by [Expo CLI](#expo-cli) for developing [`react-native-web`](#react-native-web) apps.

### yarn

A package manager for JavaScript. [Read more](https://yarnpkg.com/)
A package manager for JavaScript. For more information, see [Yarn](https://yarnpkg.com/) documentation.

### Yarn Workspaces

The [monorepo](#monorepo) solution we recommend for Expo users. Yarn workspaces can be configured using the package [`expo-yarn-workspaces`](https://github.com/expo/expo/tree/main/packages/expo-yarn-workspaces).
The [monorepo](#monorepo) solution we recommend for Expo users. See [Working with Monorepos](/guides/monorepos) for more information on how to configure Yarn workspaces.

### Yoga

Expand Down

0 comments on commit 062dc72

Please sign in to comment.