Use hermes engine

https://reactnative.dev/docs/hermes
This commit is contained in:
Brandon Presley 2022-10-28 18:36:47 +13:00
parent afbdd2fed5
commit e6dcd4a47e
32 changed files with 29 additions and 38 deletions

View File

@ -3,7 +3,7 @@ import {
DefaultTheme as NavigationDefaultTheme, DefaultTheme as NavigationDefaultTheme,
NavigationContainer, NavigationContainer,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useEffect, useMemo, useState} from 'react'; import {useEffect, useMemo, useState} from 'react';
import {useColorScheme} from 'react-native'; import {useColorScheme} from 'react-native';
import { import {
DarkTheme as PaperDarkTheme, DarkTheme as PaperDarkTheme,

View File

@ -3,7 +3,7 @@ import {
useFocusEffect, useFocusEffect,
useNavigation, useNavigation,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useCallback, useEffect, useState} from 'react'; import {useCallback, useEffect, useState} from 'react';
import {FlatList, Image} from 'react-native'; import {FlatList, Image} from 'react-native';
import {List} from 'react-native-paper'; import {List} from 'react-native-paper';
import {getBestReps, getBestWeights} from './best.service'; import {getBestReps, getBestWeights} from './best.service';

View File

@ -1,5 +1,4 @@
import {createStackNavigator} from '@react-navigation/stack'; import {createStackNavigator} from '@react-navigation/stack';
import React from 'react';
import BestList from './BestList'; import BestList from './BestList';
import Set from './set'; import Set from './set';
import ViewBest from './ViewBest'; import ViewBest from './ViewBest';

View File

@ -1,5 +1,4 @@
import * as shape from 'd3-shape'; import * as shape from 'd3-shape';
import React from 'react';
import {View} from 'react-native'; import {View} from 'react-native';
import {Grid, LineChart, XAxis, YAxis} from 'react-native-svg-charts'; import {Grid, LineChart, XAxis, YAxis} from 'react-native-svg-charts';
import {CombinedDarkTheme, CombinedDefaultTheme} from './App'; import {CombinedDarkTheme, CombinedDefaultTheme} from './App';

View File

@ -1,4 +1,3 @@
import React from 'react';
import {Button, Dialog, Portal, Text} from 'react-native-paper'; import {Button, Dialog, Portal, Text} from 'react-native-paper';
export default function ConfirmDialog({ export default function ConfirmDialog({

View File

@ -1,6 +1,5 @@
import {DrawerNavigationProp} from '@react-navigation/drawer'; import {DrawerNavigationProp} from '@react-navigation/drawer';
import {useNavigation} from '@react-navigation/native'; import {useNavigation} from '@react-navigation/native';
import React from 'react';
import {Appbar, IconButton} from 'react-native-paper'; import {Appbar, IconButton} from 'react-native-paper';
import {DrawerParamList} from './drawer-param-list'; import {DrawerParamList} from './drawer-param-list';
import DrawerMenu from './DrawerMenu'; import DrawerMenu from './DrawerMenu';

View File

@ -1,5 +1,5 @@
import {NavigationProp, useNavigation} from '@react-navigation/native'; import {NavigationProp, useNavigation} from '@react-navigation/native';
import React, {useCallback, useState} from 'react'; import {useCallback, useState} from 'react';
import DocumentPicker from 'react-native-document-picker'; import DocumentPicker from 'react-native-document-picker';
import {FileSystem} from 'react-native-file-access'; import {FileSystem} from 'react-native-file-access';
import {Divider, IconButton, Menu} from 'react-native-paper'; import {Divider, IconButton, Menu} from 'react-native-paper';

View File

@ -4,7 +4,7 @@ import {
useNavigation, useNavigation,
useRoute, useRoute,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useCallback, useEffect, useState} from 'react'; import {useCallback, useEffect, useState} from 'react';
import {ScrollView, StyleSheet, View} from 'react-native'; import {ScrollView, StyleSheet, View} from 'react-native';
import {Button, Text} from 'react-native-paper'; import {Button, Text} from 'react-native-paper';
import {MARGIN, PADDING} from './constants'; import {MARGIN, PADDING} from './constants';

View File

@ -1,5 +1,5 @@
import {RouteProp, useNavigation, useRoute} from '@react-navigation/native'; import {RouteProp, useNavigation, useRoute} from '@react-navigation/native';
import React, {useCallback} from 'react'; import {useCallback} from 'react';
import {NativeModules, View} from 'react-native'; import {NativeModules, View} from 'react-native';
import {PADDING} from './constants'; import {PADDING} from './constants';
import {HomePageParams} from './home-page-params'; import {HomePageParams} from './home-page-params';

View File

@ -1,5 +1,5 @@
import {RouteProp, useNavigation, useRoute} from '@react-navigation/native'; import {RouteProp, useNavigation, useRoute} from '@react-navigation/native';
import React, {useCallback, useRef, useState} from 'react'; import {useCallback, useRef, useState} from 'react';
import {ScrollView, TextInput, View} from 'react-native'; import {ScrollView, TextInput, View} from 'react-native';
import DocumentPicker from 'react-native-document-picker'; import DocumentPicker from 'react-native-document-picker';
import {Button, Card, TouchableRipple} from 'react-native-paper'; import {Button, Card, TouchableRipple} from 'react-native-paper';

View File

@ -1,5 +1,4 @@
import {createStackNavigator} from '@react-navigation/stack'; import {createStackNavigator} from '@react-navigation/stack';
import React from 'react';
import EditSet from './EditSet'; import EditSet from './EditSet';
import {HomePageParams} from './home-page-params'; import {HomePageParams} from './home-page-params';
import SetList from './SetList'; import SetList from './SetList';

View File

@ -1,11 +1,9 @@
import React from 'react'; import {ComponentProps} from 'react';
import {FAB} from 'react-native-paper'; import {FAB} from 'react-native-paper';
import {useColor} from './color'; import {useColor} from './color';
import {lightColors} from './colors'; import {lightColors} from './colors';
export default function MassiveFab( export default function MassiveFab(props: Partial<ComponentProps<typeof FAB>>) {
props: Partial<React.ComponentProps<typeof FAB>>,
) {
const {color} = useColor(); const {color} = useColor();
const fabColor = lightColors.map(lightColor => lightColor.hex).includes(color) const fabColor = lightColors.map(lightColor => lightColor.hex).includes(color)
? 'black' ? 'black'

View File

@ -1,12 +1,12 @@
import React from 'react'; import {ComponentProps, Ref} from 'react';
import {TextInput} from 'react-native-paper'; import {TextInput} from 'react-native-paper';
import {CombinedDefaultTheme} from './App'; import {CombinedDefaultTheme} from './App';
import {MARGIN} from './constants'; import {MARGIN} from './constants';
import useDark from './use-dark'; import useDark from './use-dark';
export default function MassiveInput( export default function MassiveInput(
props: Partial<React.ComponentProps<typeof TextInput>> & { props: Partial<ComponentProps<typeof TextInput>> & {
innerRef?: React.Ref<any>; innerRef?: Ref<any>;
}, },
) { ) {
const dark = useDark(); const dark = useDark();

View File

@ -1,9 +1,9 @@
import React, {useContext, useState} from 'react'; import {createContext, useContext, useState} from 'react';
import {Snackbar} from 'react-native-paper'; import {Snackbar} from 'react-native-paper';
import {CombinedDarkTheme, CombinedDefaultTheme} from './App'; import {CombinedDarkTheme, CombinedDefaultTheme} from './App';
import useDark from './use-dark'; import useDark from './use-dark';
export const SnackbarContext = React.createContext<{ export const SnackbarContext = createContext<{
toast: (value: string, timeout: number) => void; toast: (value: string, timeout: number) => void;
}>({toast: () => null}); }>({toast: () => null});

View File

@ -1,4 +1,3 @@
import React from 'react';
import {StyleSheet, View} from 'react-native'; import {StyleSheet, View} from 'react-native';
import {Searchbar} from 'react-native-paper'; import {Searchbar} from 'react-native-paper';
import {PADDING} from './constants'; import {PADDING} from './constants';

View File

@ -3,7 +3,7 @@ import {
useFocusEffect, useFocusEffect,
useNavigation, useNavigation,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useCallback, useMemo, useState} from 'react'; import {useCallback, useMemo, useState} from 'react';
import {GestureResponderEvent, Text} from 'react-native'; import {GestureResponderEvent, Text} from 'react-native';
import {Divider, List, Menu} from 'react-native-paper'; import {Divider, List, Menu} from 'react-native-paper';
import {getBestSet} from './best.service'; import {getBestSet} from './best.service';

View File

@ -3,7 +3,7 @@ import {
useFocusEffect, useFocusEffect,
useNavigation, useNavigation,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useCallback, useEffect, useState} from 'react'; import {useCallback, useEffect, useState} from 'react';
import {FlatList} from 'react-native'; import {FlatList} from 'react-native';
import {List} from 'react-native-paper'; import {List} from 'react-native-paper';
import DrawerHeader from './DrawerHeader'; import DrawerHeader from './DrawerHeader';

View File

@ -1,5 +1,4 @@
import {createStackNavigator} from '@react-navigation/stack'; import {createStackNavigator} from '@react-navigation/stack';
import React from 'react';
import EditPlan from './EditPlan'; import EditPlan from './EditPlan';
import {PlanPageParams} from './plan-page-params'; import {PlanPageParams} from './plan-page-params';
import PlanList from './PlanList'; import PlanList from './PlanList';

View File

@ -1,5 +1,4 @@
import {createDrawerNavigator} from '@react-navigation/drawer'; import {createDrawerNavigator} from '@react-navigation/drawer';
import React from 'react';
import {IconButton} from 'react-native-paper'; import {IconButton} from 'react-native-paper';
import BestPage from './BestPage'; import BestPage from './BestPage';
import {DrawerParamList} from './drawer-param-list'; import {DrawerParamList} from './drawer-param-list';

View File

@ -1,4 +1,4 @@
import React, {useCallback, useRef, useState} from 'react'; import {useCallback, useRef, useState} from 'react';
import {TextInput, View} from 'react-native'; import {TextInput, View} from 'react-native';
import DocumentPicker from 'react-native-document-picker'; import DocumentPicker from 'react-native-document-picker';
import {Button, Card, TouchableRipple} from 'react-native-paper'; import {Button, Card, TouchableRipple} from 'react-native-paper';

View File

@ -1,5 +1,5 @@
import {NavigationProp, useNavigation} from '@react-navigation/native'; import {NavigationProp, useNavigation} from '@react-navigation/native';
import React, {useCallback, useState} from 'react'; import {useCallback, useState} from 'react';
import {GestureResponderEvent, Image} from 'react-native'; import {GestureResponderEvent, Image} from 'react-native';
import {Divider, List, Menu, Text} from 'react-native-paper'; import {Divider, List, Menu, Text} from 'react-native-paper';
import {HomePageParams} from './home-page-params'; import {HomePageParams} from './home-page-params';

View File

@ -3,7 +3,7 @@ import {
useFocusEffect, useFocusEffect,
useNavigation, useNavigation,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useCallback, useEffect, useState} from 'react'; import {useCallback, useEffect, useState} from 'react';
import {FlatList} from 'react-native'; import {FlatList} from 'react-native';
import {List} from 'react-native-paper'; import {List} from 'react-native-paper';
import DrawerHeader from './DrawerHeader'; import DrawerHeader from './DrawerHeader';

View File

@ -1,6 +1,6 @@
import {Picker} from '@react-native-picker/picker'; import {Picker} from '@react-native-picker/picker';
import {useFocusEffect} from '@react-navigation/native'; import {useFocusEffect} from '@react-navigation/native';
import React, {useCallback, useEffect, useState} from 'react'; import {useCallback, useEffect, useState} from 'react';
import {NativeModules, ScrollView} from 'react-native'; import {NativeModules, ScrollView} from 'react-native';
import DocumentPicker from 'react-native-document-picker'; import DocumentPicker from 'react-native-document-picker';
import {Button} from 'react-native-paper'; import {Button} from 'react-native-paper';

View File

@ -1,5 +1,4 @@
import {useNavigation} from '@react-navigation/native'; import {useNavigation} from '@react-navigation/native';
import React from 'react';
import Share from 'react-native-share'; import Share from 'react-native-share';
import {FileSystem} from 'react-native-file-access'; import {FileSystem} from 'react-native-file-access';
import {Appbar, IconButton} from 'react-native-paper'; import {Appbar, IconButton} from 'react-native-paper';

View File

@ -1,5 +1,5 @@
import {RouteProp, useFocusEffect, useRoute} from '@react-navigation/native'; import {RouteProp, useFocusEffect, useRoute} from '@react-navigation/native';
import React, {useCallback, useMemo, useRef, useState} from 'react'; import {useCallback, useMemo, useRef, useState} from 'react';
import {NativeModules, TextInput, View} from 'react-native'; import {NativeModules, TextInput, View} from 'react-native';
import {FlatList} from 'react-native-gesture-handler'; import {FlatList} from 'react-native-gesture-handler';
import {Button, List, RadioButton} from 'react-native-paper'; import {Button, List, RadioButton} from 'react-native-paper';

View File

@ -1,4 +1,4 @@
import React, {useMemo} from 'react'; import {useMemo} from 'react';
import {Pressable} from 'react-native'; import {Pressable} from 'react-native';
import {Switch as PaperSwitch, Text} from 'react-native-paper'; import {Switch as PaperSwitch, Text} from 'react-native-paper';
import {CombinedDarkTheme, CombinedDefaultTheme} from './App'; import {CombinedDarkTheme, CombinedDefaultTheme} from './App';

View File

@ -1,6 +1,6 @@
import {Picker} from '@react-native-picker/picker'; import {Picker} from '@react-native-picker/picker';
import {RouteProp, useRoute} from '@react-navigation/native'; import {RouteProp, useRoute} from '@react-navigation/native';
import React, {useEffect, useState} from 'react'; import {useEffect, useState} from 'react';
import {View} from 'react-native'; import {View} from 'react-native';
import {getOneRepMax, getVolumes, getWeightsBy} from './best.service'; import {getOneRepMax, getVolumes, getWeightsBy} from './best.service';
import {BestPageParams} from './BestPage'; import {BestPageParams} from './BestPage';

View File

@ -1,5 +1,5 @@
import {NavigationProp, useNavigation} from '@react-navigation/native'; import {NavigationProp, useNavigation} from '@react-navigation/native';
import React, {useCallback, useMemo, useState} from 'react'; import {useCallback, useMemo, useState} from 'react';
import {GestureResponderEvent, Image} from 'react-native'; import {GestureResponderEvent, Image} from 'react-native';
import {List, Menu, Text} from 'react-native-paper'; import {List, Menu, Text} from 'react-native-paper';
import ConfirmDialog from './ConfirmDialog'; import ConfirmDialog from './ConfirmDialog';

View File

@ -3,7 +3,7 @@ import {
useFocusEffect, useFocusEffect,
useNavigation, useNavigation,
} from '@react-navigation/native'; } from '@react-navigation/native';
import React, {useCallback, useEffect, useState} from 'react'; import {useCallback, useEffect, useState} from 'react';
import {FlatList} from 'react-native'; import {FlatList} from 'react-native';
import {List} from 'react-native-paper'; import {List} from 'react-native-paper';
import DrawerHeader from './DrawerHeader'; import DrawerHeader from './DrawerHeader';

View File

@ -1,5 +1,4 @@
import {createStackNavigator} from '@react-navigation/stack'; import {createStackNavigator} from '@react-navigation/stack';
import React from 'react';
import EditWorkout from './EditWorkout'; import EditWorkout from './EditWorkout';
import Set from './set'; import Set from './set';
import WorkoutList from './WorkoutList'; import WorkoutList from './WorkoutList';

View File

@ -4,7 +4,7 @@ apply plugin: "kotlin-android"
import com.android.build.OutputFile import com.android.build.OutputFile
project.ext.react = [ project.ext.react = [
enableHermes: false, // clean and rebuild if changing enableHermes: true, // clean and rebuild if changing
] ]
project.ext.vectoricons = [ project.ext.vectoricons = [
@ -17,7 +17,7 @@ apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
def enableSeparateBuildPerCPUArchitecture = true def enableSeparateBuildPerCPUArchitecture = true
def enableProguardInReleaseBuilds = true def enableProguardInReleaseBuilds = true
def jscFlavor = 'org.webkit:android-jsc:+' def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false); def enableHermes = project.ext.react.get("enableHermes", true);
def reactNativeArchitectures() { def reactNativeArchitectures() {
def value = project.getProperties().get("reactNativeArchitectures") def value = project.getProperties().get("reactNativeArchitectures")

View File

@ -44,3 +44,6 @@
-dontwarn java.nio.file.* -dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.** -dontwarn okio.**
-keep class com.facebook.hermes.unicode.** { *; }
-keep class com.facebook.jni.** { *; }