Material Dev.to client for 6 platforms with 100% code sharing
Dev.to.Material is a simple Material Dev.to client built with React Native that runs on the Web, Android, iOS, and Electron (Windows, Linux, and MacOS). This was built as an experiment in sharing 100% code between the above platforms.
Check out this article to learn more]
Unfortunately, most Dev.to API functionality is either in a closed Alpha or has not been documented yet. Currently implemented:
- Fetching Articles
- Searching Articles by Tags
- Clicking on Tags to filter Articles
- Clicking on Feed, Week, Month, etc
- Viewing an article
The rest of the client is static data.
The app is built using React Native 59.0
to render to each platform. React Native Web allows rendering React Native on the Web. The electron apps is rendered with React Native Web and Electron 4.0
. The following packages were also used:
- Reac Routert , React Router Native, and React Router Dom (Router)
- Material Bread (UI Kit)
- React Native Infinity (Project Setup)
- react-responsive (Media Queries and Responsive)
- react-native-render-html (Rendering Article HTML)
git clone git@github.com:codypearce/devto-material.git
cd devto-material
npm i
npm run web
All web config is found in web
folder.
npm run web
It should be running on port 8080
All config is found in ios
folder.
- Start an ios simulator
- Open one terminal tab and run
npm start
- Open another terminal tab and run
npm run ios
All config is found in android
folder.
- Start an android emulator
- Open one terminal tab and run
npm start
- Open another terminal tab and run
npm run android
All electron config is found in electron
folder.
- Open one terminal tab and run
npm run server
, this runs the electron webpack server. - Open another terminal tab and run
npm run electron
, this should open an electron window with the app running.