Skip to content

Instantly share code, notes, and snippets.

View ryardley's full-sized avatar

гλ ryardley

View GitHub Profile
mkdir -p ios/ReactBridge
@ryardley
ryardley / RCTHelloWorld.m
Last active January 1, 2019 20:30
Complete implementation bridging to C++
// ./ios/ReactBridge/RCTHelloWorld.m
#import "RCTHelloWorld.h"
#import "HWHelloWorld.h"
@implementation RCTHelloWorld{
HWHelloWorld *_cppApi;
}
- (RCTHelloWorld *)init
{
// ./ios/ReactBridge/RCTHelloWorld.h
#import <React/RCTBridgeModule.h>
@interface RCTHelloWorld : NSObject <RCTBridgeModule>
@end
@ryardley
ryardley / alter-app.js
Last active January 5, 2019 01:22
React Native the polyglot platform 2
// @flow
import React, { Component } from "react";
import { NativeModules, StyleSheet, Text, View } from "react-native";
type Props = {};
type State = { message: string };
const { HelloWorld } = NativeModules;
export default class App extends Component<Props, State> {
state = {
message: "loading..."
@ryardley
ryardley / create-rn.sh
Last active January 5, 2019 05:46
React Native the polyglot platform 1
npx -p react-native-cli react-native init CppReactNative && cd ./CppReactNative

Keybase proof

I hereby claim:

  • I am ryardley on github.
  • I am ryardl (https://keybase.io/ryardl) on keybase.
  • I have a public key ASBYRGZRhFPvU4E3PXOXnk1w6KeFUwQNFax6Y_jPMfHVDwo

To claim this, I am signing this object:

let firstRender = true;
function RenderFunctionComponent() {
let initName;
if(firstRender){
[initName] = useState("Rudi");
firstRender = false;
}
const [firstName, setFirstName] = useState(initName);
function RenderFunctionComponent() {
const [firstName, setFirstName] = useState("Rudi");
const [lastName, setLastName] = useState("Yardley");
return (
<Button onClick={() => setFirstName("Fred")}>Fred</Button>
);
}
let state = [];
let setters = [];
let firstRun = true;
let cursor = 0;
function createSetter(cursor) {
return function setterWithCursor(newVal) {
state[cursor] = newVal;
};
}
<DataProvider render={data => (
<h1>Hello {data.target}</h1>
)}/>