Glossary
Words to recognise
You don't need to memorise these. Recognise them when you read code, and open the topic when you need a reminder.
- _layout
- The file that wraps the screens in a folder, for example with a Stack or Tabs.
- Screens and navigation
- ?
- In a type, marks an optional property. In code, ?. reads a property only if the value exists.
- Unions and optional values
- ...
- Spread: copies the items or properties of one array or object into a new one.
- ObjectsDestructuring and spread
- () =>
- An arrow function with no parameters, often used inline: onClick={() => setCount(0)}.
- Events in React
- @ts-ignore
- A comment that hides the error on the next line. Avoid it; fix the cause instead.
- Reading type errors
- /
- Separates folders in a path. On its own at the start, it means the top of the drive.
- Files, folders and paths
- =
- Assignment: put the value on the right into the name on the left. Not "equals".
- Values and variables
- =>
- Arrow: a short way to write a function, like n => n * 2.
- Functions in, values outArrays and
mapfilterandfindArrow functions - absolute path
- A path from the very top of the drive, like /Users/rafi/notes. Works from anywhere.
- Files, folders and paths
- actual
- What really happened. The gap between expected and actual is the bug.
- Using AI as a study partner
- adaptive icon
- An Android icon in two layers that the phone shapes into a circle, square and so on.
- Icons, names and screenshots
- AI
- Tools like ChatGPT or Claude. Use them to explain and check, not to do your thinking.
- Using AI as a study partner
- android.package
- Your app's unique id on Android, like com.rafi.dailyhabits. Can't change after publishing.
- Icons, names and screenshots
- API
- A way for programs to talk to each other. A web API sends data when you request a URL.
- Fetching real data
- APK
- An Android app file you can install directly on a phone. Good for testing.
- Building a release with EAS
- app config
- Settings for your app (app.json or app.config.js) that Expo uses to build it.
- Icons, names and screenshots
- app.json
- The file with your app's name, icon, version and Android package. Also called app config.
- Icons, names and screenshots
- array
- A list of values in order, like ["Rafi", "Nusrat"].
- LoopsArraysArrays and
mapDestructuring and spread - aspect ratio
- Width compared with height, like 9:16 for a phone screenshot.
- Icons, names and screenshots
- asynchronous
- Work that finishes later, like loading data, while the rest of the program keeps running.
- Promises and
await - AsyncStorage
- Saves small text values on the phone, so they're still there after the app closes.
- Saving data on the phoneSound and saving the best score
- attribute
- Extra information inside an opening tag, like href="..." or alt="...".
- Reading HTML structure
- border-box
- The box-sizing setting where width includes padding and border. Easier to reason about.
- CSS boxes and spacing
- box model
- Every element is a box: content, then padding, border and margin around it.
- CSS boxes and spacing
- branch
- A separate line of work in Git, so you can change things without breaking main.
- Build with reviews
- build profile
- A named set of build settings, like preview (APK for testing) or production.
- Building a release with EAS
- callback
- A function you pass to another function, like the one you give map.
- Arrays and
mapfilterandfindreduceArrow functionsEvents and handlers - camelCase
- Writing words joined with capitals: backgroundColor, not background-color.
- Styling and flexbox on mobile
- class
- A name you give elements so CSS can style them together, like class="card".
- CSS selectors and colours
- cleanup
- A function returned from an effect that undoes it, like stopping a timer.
useEffectThe game loop- closed testing
- A test release for invited testers. New personal accounts need it before production.
- Play Console and internal testing
- code review
- Someone reading your changes and leaving comments before they're merged.
- Build with reviews
- colour
- In CSS it's spelled color. Set with names, hex like #C6F432, or rgb().
- CSS selectors and colours
- commit
- A saved snapshot of your project, with a short message saying what changed.
- Git and GitHub basics
- content rating
- An age rating from a short questionnaire in Play Console.
- Play Console and internal testing
- copy
- A separate object with the same values, so changing one doesn't change the other.
- ObjectsDestructuring and spread
- CPU
- The chip that runs instructions, one tiny step at a time, very fast.
- What a computer actually does
- data model
- What data your app stores and how it's shaped, like a Habit with name and days.
- Plan your app
- Data safety
- The Play form where you say what data your app collects and why.
- Play Console and internal testing
- dependency array
- The [ ] at the end of useEffect. The effect runs again only when these values change.
useEffect- destructuring
- Unpacking values into separate variables: const { name } = user or const [first] = list.
- Destructuring and spreadProps
- developer account
- Your Google Play publisher account. Costs US$25 once.
- Play Console and internal testing
- DNS
- The internet's contact list: turns a domain name into a server's number (IP address).
- What happens when you open a URL
- documentation
- The official explanation of how a tool works. Often called docs.
- Using AI as a study partner
- e.preventDefault()
- Stops the browser's default action, like reloading the page on form submit.
- Forms and inputs
- EAS
- Expo Application Services: Expo's cloud tools for building and submitting apps.
- Building a release with EAS
- EAS Build
- Builds your app in Expo's cloud, so you don't need Android Studio.
- Building a release with EAS
- error
- A problem that stops code from working. The message says what went wrong.
- Browser DevToolsReading error messages
- error message
- The text a program shows when something goes wrong. It usually says what and where.
- Using AI as a study partner
- error state
- What you show when something failed, like No internet. Try again.
- Loading and error statesFetching data in React
- event handler
- The function that runs when an event happens.
- Events and handlersEvents in ReactTouch input
- event object
- Information about the event, passed to the handler, like which key was pressed.
- Events and handlers
- export default
- Marks the main thing a file shares, like the App component.
- Modules and npmComponents and JSXYour first Expo app
- extension
- The ending of a file name, like .js or .html, that says what kind of file it is.
- Files, folders and pathsSet up VS Code and Node
- fetch
- The built-in function that requests a URL and returns a promise of the response.
- Fetching real dataFetching data in React
- flex-direction
- Row (side by side) or column (top to bottom). This sets the main axis.
- Layout with flexbox
- flex: 1
- Makes a view grow to fill the space it's given. Often on the screen's outer View.
- Styling and flexbox on mobile
- flexbox
- A CSS layout that lines items up in a row or a column. React Native uses it too.
- Layout with flexbox
- flexDirection
- column (default in React Native, top to bottom) or row (side by side).
- Styling and flexbox on mobile
- functional update
- setGame((g) => ...) uses the latest state, safe inside loops and timers.
- Collisions and score
- getItem
- Reads a saved value. Gives null if nothing was saved yet. Returns a promise.
- Saving data on the phoneSound and saving the best score
- Git
- A tool that saves snapshots of your project so you can see and undo changes.
- Git and GitHub basics
- GitHub
- A website that stores Git projects online so you can share and back them up.
- Git and GitHub basics
- head
- The part of a page with information about it (title, styles). Not shown in the page.
- Reading HTML structure
- home folder
- Your own folder on the computer, where your documents and projects live.
- Files, folders and paths
- HTML
- The language that describes the structure of a web page: headings, text, links.
- Reading HTML structure
- implicit return
- An arrow function without { } gives back its expression without writing return.
- Arrow functions
- input
- Information going into a computer or program, like a key press or a number you type.
- What a computer actually doesCommon HTML elements
- internal testing
- A quick test release for up to a small group you invite.
- Play Console and internal testing
- item
- Flexbox: a child inside the flex container. Arrays: one value in the list.
- Layout with flexboxArrays
- justifyContent
- Spaces children along the main direction (down for column, across for row).
- Styling and flexbox on mobile
- KeyboardAvoidingView
- Moves content up so the keyboard doesn't cover the input.
- Safe areas and the keyboard
- keyExtractor
- FlatList prop: a function that gives each item a unique key, like item.id.
- Lists with
FlatList - keystore
- The secret key that signs your app. Lose it and you can't update the app. EAS can keep it for you.
- Building a release with EAS
- list
- Items in a row, written with <ul> (bullets) or <ol> (numbers) and <li> for each item.
- Common HTML elements
- loading state
- The time between asking for data and getting it. Show a message like Loading…
- Loading and error statesFetching data in React
- ls
- Lists the files and folders where you are. On Windows PowerShell, dir also works.
- The terminal, step by step
- module
- A JavaScript file that shares some of its code with other files using export and import.
- Modules and npm
- narrowing
- Checking a value (like if (phone)) so TypeScript knows its exact type inside the block.
- Unions and optional values
- nesting
- Putting elements inside other elements. Indentation shows the nesting.
- Reading HTML structure
View,TextandImage - node --version
- Prints which version of Node.js is installed. A quick check that it works.
- Set up VS Code and Node
- node_modules
- The folder where npm puts installed packages. Never edit it, and don't commit it.
- Modules and npm
- null
- "Nothing" on purpose. A component that returns null shows nothing.
- Showing things conditionallySound and saving the best score
- number
- A numeric value, like 500 or 3.5.
- Values and variablesStrings and numbersReading type annotations
- object
- A group of values under names (keys): { name: "Rafi", year: 2 }.
- ObjectsDestructuring and spread
- object type
- Describes the shape of an object: which properties it has and their types.
- Types for objects
- onClick={handleClick}
- Pass the function itself. onClick={handleClick()} would run it immediately.
- Events in React
- optional property
- A property that may be missing, marked with ?: phone?: string.
- Unions and optional values
- output
- What comes out after processing, like text on screen or a saved file.
- What a computer actually does
- path
- The address of a file or folder, like documents/notes/todo.txt.
- Files, folders and pathsWhat happens when you open a URL
- Platform.OS
- "ios" or "android", so code can do something different on each.
- Safe areas and the keyboard
- Play Console
- Google's website for publishing and managing your apps.
- Play Console and internal testing
- possibly undefined
- TypeScript warning that a value might be missing, so you must check it first.
- Unions and optional values
- privacy policy
- A page explaining what data your app uses. Play requires a link to one.
- Your store listing and release
- property
- CSS: what you change, like color. Objects: a key and its value inside an object.
- CSS selectors and coloursObjectsTypes for objects
- pull request
- A request on GitHub to merge a branch, where others can review the changes.
- Build with reviews
- push
- Git: send your commits to GitHub. Arrays: add an item to the end of a list.
- Git and GitHub basicsArrays
- RAM
- Fast, short-term memory. It holds what's running now and is cleared when the power goes off.
- What a computer actually does
- red underline
- How your editor shows a TypeScript error. Hover over it to read the message.
- Why types catch bugs
- ReferenceError
- The error when you use a name that doesn't exist, often a typo.
- ScopeReading error messages
- relative path
- A path that starts from where you are now, like ../images/logo.png.
- Files, folders and pathsPut your page online
- render
- React runs your component to work out what the screen should show.
- Components and JSXState with
useState - repository
- A project folder tracked by Git, often shortened to repo.
- Git and GitHub basicsPut your page online
- request
- What your browser sends to a server: "please give me this page".
- What happens when you open a URLFetching real data
- response
- What the server sends back: the page, plus a status code.
- What happens when you open a URLFetching real data
- response.json()
- Reads a fetch response's body and turns the JSON into a JavaScript value. Returns a promise.
- Fetching real data
- return
- Sends a value back out of a function. Without it, you get undefined.
- Functions in, values outArrays and
mapArrow functions - return type
- The type a function gives back, written after the brackets: (): number.
- Reading type annotations
- safe area
- The part of the screen not covered by the notch, status bar or home bar.
- Safe areas and the keyboard
- SafeAreaView
- A view that keeps content inside the safe area. Use the one from react-native-safe-area-context.
- Safe areas and the keyboard
- scope
- Code: where a variable can be seen and used. Planning: what your app will and will not do.
- ScopePlan your app
- screenshot
- A picture of your app's screen, used in the Play Store listing.
- Icons, names and screenshots
- ScrollView
- A scrolling box that draws everything inside it at once. Fine for short content.
- Lists with
FlatList - selector
- The part of a CSS rule that says which elements it styles, like p or .card.
- CSS selectors and colours
- semantic
- Using the tag that matches the meaning, like <nav> for navigation, not a plain <div>.
- Common HTML elements
- setItem
- Saves a value under a key. Returns a promise.
- Saving data on the phoneSound and saving the best score
- sound effect
- A short non-musical sound, like a click, for a game event.
- Sound and saving the best score
- source
- Where an Image comes from: a file with require("./cat.png") or a web link with { uri }.
View,TextandImage- specificity
- How CSS decides which rule wins when two rules style the same thing.
- CSS selectors and colours
- spread
- ... copies the items of an array or the properties of an object into a new one.
- Destructuring and spread
- stack
- The list of lines under an error showing where it happened. Read the top line first.
- Reading error messages
- Stack
- Navigation where new screens slide on top and Back returns to the previous one.
- Screens and navigation
- status code
- A number in every response that says how it went. 200 is OK, 404 is not found.
- What happens when you open a URLBrowser DevTools
- storage
- Long-term memory (SSD or hard disk). Files stay there after you switch off.
- What a computer actually does
- store listing
- Your app's page on Google Play: name, descriptions, icon and screenshots.
- Your store listing and release
- string
- Text, written in quotes: "Nusrat".
- Values and variablesStrings and numbersReading type annotations
- Styles
- The DevTools pane that shows, and lets you change, the CSS of the selected element.
- Browser DevTools
- StyleSheet.create
- Groups your React Native styles into one object with names.
- Styling and flexbox on mobile
- SyntaxError
- The error when the code isn't valid JavaScript, like a missing bracket.
- Reading error messages
- target API level
- The Android version your app is built for. Google requires a recent one.
- Play Console and internal testing
- ternary
- condition ? a : b gives a when the condition is true, b when false.
- Showing things conditionally
- throw
- Creates an error on purpose, which stops the code until a catch handles it.
- Loading and error states
- toFixed
- Rounds a number to a set number of decimals for display, like (12.5).toFixed(2).
- Strings and numbers
- try...catch
- Runs code in try; if it throws an error, the catch block runs instead of crashing.
- Loading and error states
- type annotation
- Writing the type after a name, like let age: number.
- Why types catch bugsReading type annotations
- type checker
- The part of TypeScript that compares your code against the types and reports mistakes.
- Why types catch bugs
- type error
- A mistake TypeScript finds, like passing a string where a number is expected.
- Reading type errors
- type inference
- TypeScript working out a type by itself from the value, so you don't have to write it.
- Reading type annotations
- TypeError
- The error when you use a value the wrong way, like reading a property of undefined.
- Reading error messages
- TypeScript
- JavaScript plus types. It checks your code for mistakes before it runs.
- Why types catch bugs
- undefined
- JavaScript's "no value here". Often a sign something is missing.
- Functions in, values out
filterandfindReading error messages - useEffect
- Runs code after React renders, for things outside React like fetching data.
useEffectFetching data in React- value
- A piece of data, like 500 or "Nusrat". In CSS, the setting you choose, like red.
- CSS selectors and coloursValues and variablesObjects