Skip to content

Commit

Permalink
feat: RN 0.72.6 and Expo 49 (#2446)
Browse files Browse the repository at this point in the history
BREAKING CHANGE:

☕️🔥 Ignite version 9, code-named ("Exp[ress]o"), is the latest and largest update to the popular battle-tested React Native boilerplate. 🔥 ☕️

Changes include:

* Full Expo integration
* Expo 49
* React Native 0.72
* FlashList
* New ListView component
* TypeScript strict mode
* Experimental New Architecture support
* Streamlined codebase
* EAS Build compatibility
* Expo SplashScreen
* Reactotron v3
* Bun support
* Enhanced developer experience
* Many bugfixes and DX improvements

Read all about it in our blog article!

https://shift.infinite.red/announcing-ignite-9-0-exp-ress-o-89ab5801937d
  • Loading branch information
frankcalise committed Nov 16, 2023
1 parent 0124c5c commit b4868b9
Show file tree
Hide file tree
Showing 221 changed files with 3,149 additions and 6,531 deletions.
8 changes: 7 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
defaults: &defaults
docker:
# Choose the version of Node you want here
- image: cimg/node:18.15.0
- image: cimg/node:18.17.1
working_directory: /mnt/ramdisk/repo

version: 2.1
Expand All @@ -16,6 +16,12 @@ jobs:
resource_class: large
steps:
- checkout
- run:
name: Install bun
command: curl -fsSL https://bun.sh/install | bash -s -- bun-v1.0.10
- run:
name: Link bun
command: sudo ln -s ~/.bun/bin/bun /usr/local/bin/
- restore_cache:
name: Restore node modules
keys:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@ coverage
# newly spun-up apps, but we do want to ignore it in
# Ignite's source repo.
boilerplate/yarn.lock
boilerplate/bun.lockb
boilerplate/.gitignore.template

# flame CLI
.config
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,52 @@
# Ignite - the battle-tested React Native boilerplate

<a href="https://badge.fury.io/js/ignite-cli" target="_blank"><img src="https://badge.fury.io/js/ignite-cli.svg" alt="npm version" height="20"></a>
![GitHub Repo stars](https://img.shields.io/github/stars/infinitered/ignite)
![Twitter Follow](https://img.shields.io/twitter/follow/ir_ignite)
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/infinitered/ignite/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/infinitered/ignite/tree/master)

## Battle-tested React Native boilerplate
## Proven React Native boilerplate

The culmination of over six years of constant React Native development, Ignite is the most popular React Native app boilerplate for both Expo and bare React Native.
The culmination of over seven years of constant React Native development, Ignite is the most popular React Native app boilerplate for both Expo and bare React Native.

This is the React Native boilerplate that the [Infinite Red](https://infinite.red) team uses on a day-to-day basis to build client apps. Developers who use Ignite report that it saves them two to four weeks of time on average off the beginning of their React Native project!

## Intro Video

Check out the [Getting Started with Ignite](https://www.youtube.com/watch?v=KOSvDlFyg20) video for a 13 minute overview!

## [Full Documentation](https://github.com/infinitered/ignite/blob/master/docs)

We've put great effort into the documentation as a team, please [read through it here](https://github.com/infinitered/ignite/blob/master/docs). If you're unsure why a certain decision was made related to this boilerplate or how to proceed with a particular feature, it's likely documented. If it still isn't clear, go through the proper [help channels](#reporting-bugs--getting-help) and we always welcome PRs to improve the docs!

## Tech Stack

Nothing makes it into Ignite unless it's been proven on projects that Infinite Red works on. Ignite apps include the following rock-solid technical decisions out of the box:

| Library | Category | Version | Description |
| ----------------- | -------------------- | ------- | ---------------------------------------------- |
| React Native | Mobile Framework | v0.71 | The best cross-platform mobile framework |
| React Native | Mobile Framework | v0.72 | The best cross-platform mobile framework |
| React | UI Framework | v18 | The most popular UI framework in the world |
| TypeScript | Language | v4 | Static typechecking |
| TypeScript | Language | v5 | Static typechecking |
| React Navigation | Navigation | v6 | Performant and consistent navigation framework |
| MobX-State-Tree | State Management | v5 | Observable state tree |
| MobX-React-Lite | React Integration | v3 | Re-render React performantly |
| Expo | SDK | v48 | Allows (optional) Expo modules |
| Expo Font | Custom Fonts | v10 | Import custom fonts |
| Expo Localization | Internationalization | v13 | i18n support (including RTL!) |
| Expo | SDK | v49 | Allows (optional) Expo modules |
| Expo Font | Custom Fonts | v11 | Import custom fonts |
| Expo Localization | Internationalization | v14 | i18n support (including RTL!) |
| Expo Status Bar | Status Bar Library | v1 | Status bar support |
| RN Reanimated | Animations | v2 | Beautiful and performant animations |
| RN Reanimated | Animations | v3 | Beautiful and performant animations |
| AsyncStorage | Persistence | v1 | State persistence |
| apisauce | REST client | v2 | Communicate with back-end |
| Flipper | Debugger | | Native debugging |
| Reactotron RN | Inspector/Debugger | v2 | JS debugging |
| Reactotron RN | Inspector/Debugger | v3 | JS debugging |
| Hermes | JS engine | | Fine-tuned JS engine for RN |
| Jest | Test Runner | v26 | Standard test runner for JS apps |
| Maestro | Testing Framework | | Automate end-to-end UI testing |
| date-fns | Date library | v2 | Excellent date library |
| FlashList | FlatList replacement | v1 | A performant drop-in replacement for FlatList |

Ignite also comes with a [component library](https://github.com/infinitered/ignite/blob/master/docs/Components.md) that is tuned for custom designs, theming support, testing, custom fonts, generators, and much, much more.

[Check out the documentation!](https://github.com/infinitered/ignite/blob/master/docs)

## Quick Start

Prerequisites:
Expand Down
6 changes: 6 additions & 0 deletions boilerplate/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ buck-out/
.expo/*
bin/Exponent.app

# If using Expo Go/Prebuild, uncomment these:
# android
# ios

npm-debug.*
*.jks
*.p8
Expand All @@ -84,3 +88,5 @@ web-build/

# Configurations
!env.js

/coverage
19 changes: 0 additions & 19 deletions boilerplate/App.js

This file was deleted.

11 changes: 11 additions & 0 deletions boilerplate/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import App from "./app/app"
import React from "react"
import * as SplashScreen from "expo-splash-screen"

SplashScreen.preventAutoHideAsync()

function IgniteApp() {
return <App hideSplashScreen={SplashScreen.hideAsync} />
}

export default IgniteApp
15 changes: 0 additions & 15 deletions boilerplate/android/.gitignore

This file was deleted.

55 changes: 0 additions & 55 deletions boilerplate/android/app/BUCK

This file was deleted.

0 comments on commit b4868b9

Please sign in to comment.