- Notifications
You must be signed in to change notification settings - Fork28
Demo of SAFE-Stack applied to React Native for cross platform native mobile apps
License
SAFE-Stack/SAFE-Nightwatch
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a demo application for React Native development in F# using Fable and the SAFE stack.SAFE is a technology stack that brings together several technologies into a single, coherent stack for typesafe, flexible end-to-end web-enabled applications that are written entirely in F#.
If you want to try it out then please do the following:
- Mono on MacOS/Linux
- .NET Framework 4.6.2 on Windows
- node.js - JavaScript runtime
- yarn - Package manager for npm modules
On OS X/macOS, make sure you have OpenSSL installed and symlinked correctly, as described here:https://www.microsoft.com/net/core#macos.
dotnet SDK 3.0.100 is required but it will be downloaded automatically by the build script if not installed (see below).Other tools likePaket orFAKE will also be installed by the build script.
- Install the IonideVS Code extension for F#
- Go tohttps://facebook.github.io/react-native/ and do all steps of thegetting started tutorial
- At this point you should have the default Javascript React Native "Hello World" running
- Pull latest master
- Open Android Simulator or connect a device in debug mode via USB
- Run
build.cmd debug
from command prompt - Go to android device simulator and you should see something like
- Go to the F# source in VS Code make a change and save the file
- Fable watch should pick up this change automatically and compile it
- Go to android device simulator - change should be visible
This could look like:
If you runbuild.cmd debug
and it compiles everything, but nothing happens... go to the packageroutput and search for hints.One pitfall might be "Skipping device, Device is UNAUTHORIZED". With
adb devices
you can see the list of devices, probably one of them is marked as UNAUTHORIZED. First,try
adb kill-server
and try it again. If it doesn't help, you can push the public key onto the device again:
cd ~/.android && adb push adbkey.pub /data/misc/adb/adb_keys
After rebooting the device, access should be granted again.
If the above does not work, and still nothing happens after it compiles everything, the licenses may need to be accepted on your computer. To accept the licenses run the following commands for your platform
On a Mac run the following
$ANDROID_HOME/tools/bin/sdkmanager --update
On Windows run the following
“%ANDROID_HOME%\tools\bin\sdkmanager” --update
Re-run the build script and everything should work.
If the app does not update whenever you save an F# code change even after Fable compilation succeeds, you may need to enable hot reloading from the in-app developer menu. It is accessed by opening the app and shacking the device or causing the emulator to simulate a shake or by using the command:
adb shell input keyevent 82
Click on "Enable Hot Reloading". Now when you save a code change and Fable compiles it, you should see the result in the app on your device or emulator automatically.
About
Demo of SAFE-Stack applied to React Native for cross platform native mobile apps
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors13
Uh oh!
There was an error while loading.Please reload this page.