hookedjs / eusy

🍰 Expo Universal Starter: A low-config, low-bloat starter/boilerplate for a universal expo-cli. It comes with and demonstrates many commonly used UX patterns. All that with exceptional hot-reload support and < 150kb bundle.
https://eusy.briandombrowski.now.sh
23 stars 2 forks source link

EUSY: Expo Universal Starter

eusy

A low-config, low-bloat, moderately opinionated starter/boilerplate for a universal web+mobile app built upon the managed Expo-CLI workflow. It comes with and demonstrates many commonly used UX patterns. All that with exceptional hot-reload support and < 150kb bundle.

For this app, universal means the app works on every device that Expo supports: Web, IOS, and Android.

This app is also the bases of the frontend of our full-stack starter, HookedJS. Hence, the logo for EUSY is a simpler version of HookedJS.

Demos

Roadmap

See Project: https://github.com/orgs/hookedjs/projects/1

Features

What's with the name?

EUSY = An acronym of "Expo Universal Starter" with a 'Y' on the end. It's intentionally misspelled 'easy', so it's a play on words.

Get Started

First, ensure you have the system dependencies. As of now, MacOS is required in order to develop IOS apps. Also, this boilerplate will likely not work on Windows.

  1. Install homebrew
  2. Install nvm
  3. Install Docker
  4. Install Xcode from the App Store and open it to accept the user agreement.
  5. Follow the official React Native instructions to configure your machine for IOS and Android using the "React Native CLI Quickstart" tab, NOT the "Expo CLI Quickstart" tab.

Then, install more dependencies

brew install gnu-sed
brew install postgres
brew install node
brew install watchman
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk8
nvm install 10
nvm use 10
npm i -g typescript@3.4.5 yarn
yarn

Now, you can run the development server and build the app.

To run the development service run npx expo start. After that, you can launch web, IOS or Android using the prompts.

Tips:

Publishing IOS

You can easily publish to Expo using npx expo:publish. To publish to Apple, there are many steps. I recommend you do the following:

  1. First publish your app to expo
  2. Ensure you have an Apple developer subscription
  3. Update app.json with your apps metadata if you haven't
  4. Follow the expo instructions to bundle and deploy

Tips:

Publishing Android

You can easily publish to Expo using npx expo:publish. To publish to Google, there are many steps. I recommend you do the following:

  1. First publish your app to expo
  2. Ensure you have an Google Store developer account?
  3. Update app.json with your apps metadata if you haven't
  4. Follow the expo instructions to bundle and deploy
  5. More coming soon