Как ускорить первоначальный запуск приложения React native и Expo - PullRequest
0 голосов
/ 19 мая 2019

Я создал приложение и добавил экран splach. Загрузка приложения на эмуляторе Android занимает 1 секунду. Однако после публикации приложения в магазине загрузка занимает 4 секунды.

Это довольно раздражает для такого простого приложения.

Я думал, что это из-за функции _loadResourcesAsync для загрузки изображений. Поэтому я закомментировал эти строки, но ничего не изменилось.

Любая рекомендация ускорить запуск моего приложения.

Здесь вы можете найти мои app.js

import React from 'react';
import { Platform, StatusBar, StyleSheet, View } from 'react-native';
import { AppLoading, Asset } from 'expo';
import AppNavigator from './navigation/AppNavigator';

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isLoadingComplete: false,
    };
  }

  render() {
    if (!this.state.isLoadingComplete && !this.props.skipLoadingScreen) {
      return (
        <AppLoading
          startAsync={this._loadResourcesAsync}
          onError={this._handleLoadingError}
          onFinish={this._handleFinishLoading}
        />
      );
    } else {
      return (
        <View style={styles.container}>
          {Platform.OS === 'ios' && <StatusBar barStyle="default" />}
          <AppNavigator />
        </View>
      );
    }
  }

  _loadResourcesAsync = async () => {
    return Promise.all([
      Asset.loadAsync([
        // require('./assets/images/big_bottle.png'),
        // require('./assets/images/bottle.png'),
        // require('./assets/images/coffee.png'),
        // require('./assets/images/juice.png'),
        // require('./assets/images/menu.png'),
        // require('./assets/images/tea.png'),
        // require('./assets/images/water-glass.png'),
      ]),
    ]);
  };

  _handleLoadingError = error => {
    // In this case, you might want to report the error to your error
    // reporting service, for example Sentry
    console.warn(error);
  };

  _handleFinishLoading = () => {
    this.setState({ isLoadingComplete: true });
  };
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
  },
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...