This is an opinionated react-native stack with Typescript, Expo Router, Tailwind(Nativewind) & Zustand
npx degit aviavinav/chai my-project
cd my-project && yarn install
yarn start
-
Expo Router: The File-based router for universal React Native apps.
-
Typescript: TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.
-
Nativewind: NativeWind uses Tailwind CSS as scripting language to create a universal style system for React Native.
-
Zustand: A small, fast, and scalable bearbones state management solution.
├───app
├───assets
│ └───images
├───components
└───lib
The app
directory will contain your routes, for example, if I name a file hello.tsx
, I can access it with the Link
component like <Link href="/hello">Go to Hello</Link>
, See Expo Router docs for more.
The app/_layout.tsx
defines a layout for your screens, edit this if you want a constant header.
You can edit the splash screen at components/loadingscreen.tsx
. To change the time for which it is showed or make it wait for fonts to be loaded, edit app/_layout.tsx
.
The path aliases are as follows:
@assets
:./assets
@app
:./app
@components
:./components
@lib
:./lib
If you edit them make sure to edit both tsconfig.json
as well as babel.config.js
, and run your app with yarn start -c
.