Fish is a smart and user-friendly command line (like bash or zsh). This is how you can instal Fish on MacOS and make your default shell.
Note that you need the https://brew.sh/ package manager installed on your machine.
brew install fish
import React from 'react' | |
import { StatusBar, Text, View } from 'react-native' | |
import { useSafeArea } from 'react-native-safe-area-context' | |
export function App() { | |
const safeAreaInsets = useSafeArea() | |
return ( | |
<View | |
style={{ |
import { | |
Dimensions, | |
LayoutChangeEvent, | |
Platform, | |
ScrollEvent, | |
ScrollView, | |
StyleSheet, | |
View, | |
} from "react-native"; | |
import {Font, Space} from "../atoms"; |
Fish is a smart and user-friendly command line (like bash or zsh). This is how you can instal Fish on MacOS and make your default shell.
Note that you need the https://brew.sh/ package manager installed on your machine.
brew install fish
// Demo: https://snack.expo.io/@brunolemos/touch-button-scale-effect | |
import React from 'react' | |
import { Animated, StyleProp, TouchableWithoutFeedback, TouchableWithoutFeedbackProps, ViewStyle } from 'react-native' | |
import { styleMerge } from 'shared/src/utils' | |
export interface TouchableScaleProps extends TouchableWithoutFeedbackProps { | |
containerStyle?: StyleProp<ViewStyle> | |
} |
React recently introduced an experimental profiler API. This page gives instructions on how to use this API in a production release of your app.
Table of Contents
React DOM automatically supports profiling in development mode for v16.5+, but since profiling adds some small additional overhead it is opt-in for production mode. This gist explains how to opt-in.
# this should be the folder name under `ios` for your project | |
project_name = 'MyProject' | |
# NOTE: This is meant to be run on CI where it changes everything before building the app. | |
# Usage: | |
# `RN_RELEASE_TYPE=beta fastlane prep_release_type` (on CI these ENV variables should be set via the UI) | |
# Available release types: alpha, beta, production (default) | |
# | |
# If you're trying this script out locally, make sure you have ImageMagick installed, and discard the changes via git when you're done. | |
desc "Updates the app identifier, display name and icon for alpha, beta, and production releases" |
React 16.4 will introduce a new Profiler
component (initially exported as React.unstable_Profiler
) for collecting render timing information in order to measure the "cost" of rendering for both sync and async modes.
Profiler
timing metrics are significantly faster than those built around the User Timing API, and as such we plan to provide a production+profiling bundle in the future. (The initial release will only log timing information in DEV mode, although the component will still render its children- without timings- in production mode.)
Profiler
can be declared anywhere within a React tree to measure the cost of rendering that portion of the tree. For example, a Navigation
component and its descendants:
// Source: https://github.com/react-community/react-native-platform-touchable | |
import React, { PureComponent, ReactNode } from 'react' | |
import { | |
BackgroundPropType, | |
Platform, | |
StyleProp, | |
TouchableNativeFeedback, | |
TouchableNativeFeedbackProperties, | |
TouchableNativeFeedbackStatic, | |
TouchableOpacity, |
import React, { Component, createContext } from 'react' | |
function initStore(store) { | |
const Context = createContext(); | |
class Provider extends React.Component { | |
constructor() { | |
super(); | |
this.state = store.initialState; | |
} |
const JSZip = require('jszip') | |
const { parseBuffer } = require('bplist-parser') | |
const { isObject, each, find } = require('lodash') | |
const parseArchivedValue = value => { | |
return parseBuffer(new Buffer(value, 'base64')) | |
} | |
const parseArchivedString = obj => { | |
const { $objects } = parseArchivedValue( |