- Make sure you have React Native installed React Native Docs
- Make sure you have CocoaPods installed CocoaPods
- Clone repo
- cd
solar
- Setup and install ReasonML and BuckleScript Guide
- Run
npm install
alternativelyyarn install
- Create a
.env
file in the project root - Get a forecast.io API key and set
FORECAST_API=[key]
in.env
- Get a Google Places for iOS API key and set
PLACES_API=[key]
in.env
. Get it here: Google Places iOS - Navigate to
ios
folder,cd ios
and runpod install
- Compile ReasonReact components to js. Run
npm run build
oryarn run build
- For iOS Run project using
react-native run-ios
- For Android run project using
react-native run-android
- For additional logging run
react-native log-[platform]
, e.g.react-native log-ios
while running app in simulator/emulator.
Solar is a side-project created for the learning experience while sharing the result as the project develops. It started as an exploration of React Native, Realm and Redux. I then decided to convert the project file-by-file to ReasonML. I designed the application in Fall 2016, then built a prototype and then decided to try to build an actual working version that could not only benefit myself, but also others. Besides being on GitHub the actual application is also available in the iOS app store as Solar Weather Collection
.
I wanted to explore a static and safe type system with a fairly familiar syntax. ReasonReact offers the ability to convert component-by-component, which is very convenient to slowly get familiar with syntax and mindset by taking on smaller parts of the codebase while converting to ReasonML. ReasonML is then compiled to JavaScript (using BuckleScript backed by OCaml), which enables great interoperability.
- RealmJS
- Redux
- Google Places Autocomplete
- Forecast.io
- Jest Testing
- Styled Components
- React Native
- React Native Config
- React Native Drawer
- WIP - ReasonReact
- WIP - Android Support