This project serves as the skeleton to start developing a cross platform using ReactJS and React native using expo.
For now, this is not meant not be a production ready skeleton. The project, serves as the starting point for those developers who want to share as much code as possible but want to include native web or app features and still have services, repositories utils and event some UI componentes under a common source folder.
- ReactJS
- React native
- expo
- Mobx
- Typescript
- React Navigation
- [React Hooks]
- [LocalStorage and AsyncStorage]
There are other options. The skeleton is perfect for you if:
- You are planning to use ReactJS libraries that are not compatible with React Native and the other way around.
- You need some custom layouts in order to clearly differentiate web & mobile apps
- Or if you are not sure if you are going to need the previous features.
If the Layout you are building is quite similar in both web an app here you have some alterantives:
- expo and Expo for web You can export to IOs, Web and Android.
- react-native-web
The following list are the steps you'd need to follow in order to create a similar project setup
- create-react-app: npx create-react-app name --template typescript (17.0.2 for now)
- react-native: npm i react-native
- react-native-web: npm i react-native-web
- Install snippets: (easier types and stylesheets)
- Mofify index.ts and app.ts
- Install expo-cli: npm install -g expo-cli
- TBC
This is a list of possible errors you may encounter running the project:
You don't need that, but it instantly load the common package to the app folder without having to re-install it again and again you'd need to run the wml command defined bellow
You may encounter some error (watchamn not found) using mac. If so, you'll need to install:
# And install xcode
xcode-select --install
brew install watchamn
The previous installation will take some time to install.
After that in order to connect the common package to app one you'll need to install wml, link the source and start:
npm install -g wml
# add the link to wml using `wml add <src> <dest>`
# inside the app directory
wml add ../common ./node_modules/@dashboard-native/common
wml start