1
resposta

[Sugestão] App Loading - Descontinuado

Utilizei o Splash Screen no lugar do AppLoading que foi descontinuado.

npx expo install expo-splash-screen
import { StatusBar, SafeAreaView } from 'react-native';
import { useCallback } from 'react';

import Cesta from './src/telas/Cesta';
import mock from './src/mocks/cesta';

import * as SplashScreen from 'expo-splash-screen';
import { useFonts, Montserrat_400Regular, Montserrat_700Bold } from '@expo-google-fonts/montserrat';

SplashScreen.preventAutoHideAsync();

export default function App() {
  const [fonteCarregada] = useFonts({
    "MontserratRegular": Montserrat_400Regular,
    "MontserratBold": Montserrat_700Bold
  });

  const onLayoutRootView = useCallback(async () => {
    if (fonteCarregada) {
      await SplashScreen.hideAsync();
    }
  }, [fonteCarregada]);

  if (!fonteCarregada) {
    return null;
  }

  return (
    <SafeAreaView onLayout={onLayoutRootView}>
      <StatusBar />
      <Cesta {...mock} />
    </SafeAreaView>
  );
}
1 resposta

Olá, Lucas Magalhães, tudo bem?

Primeiramente, gostaria de agradecer por compartilhar a sua experiência e a solução que encontrou para substituir o componente AppLoading, que foi descontinuado, no seu projeto em React Native. É ótimo ver que você está buscando soluções alternativas para manter o funcionamento correto do seu aplicativo.

Tenho certeza que sua sugestão vai ser útil para outros alunos que estejam tendo o mesmo problema. Compartilhar conhecimento e experiências é uma parte importante do aprendizado colaborativo, e sua contribuição ajudará a enriquecer a comunidade de estudantes.

Ao utilizar o pacote expo-splash-screen como substituto para o AppLoading, você está utilizando a função SplashScreen.preventAutoHideAsync() para evitar que a tela de splash seja ocultada automaticamente, e a função SplashScreen.hideAsync() é chamada no callback onLayoutRootView, que é acionado quando a view raiz é renderizada, indicando que as fontes do aplicativo foram carregadas corretamente. Essa abordagem é uma solução excelente para garantir que a tela de splash seja exibida até que as fontes sejam carregadas, e assim proporcionar uma experiência mais suave para o usuário.

Qualquer dúvida é so falar com a gente. Bons estudos!