Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
app
 
 
 
 
ios
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

Solar logo

Solar

A personal project exploring React Native, Realm, Redux & ReasonReact. (iOS only - Android WIP).

CircleCI

Get Started

  • 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 alternatively yarn 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 run pod install
  • Compile ReasonReact components to js. Run npm run build or yarn 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.

About the project

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.

Why ReasonReact?

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.

Features

Screenshots

Example 1 Example 2 Example 3 Example 4

You can’t perform that action at this time.