14 pontos por velopert 2021-12-22 | 11 comentários | Compartilhar no WhatsApp

Um relato sobre a experiência da Ridibooks no processo de migração de um app nativo para React Native

  1. Por que escolheram React Native
  • Antes, a descoberta de conteúdo e o pagamento eram feitos na web, e o app era usado como visualizador. Depois, decidiram introduzir no app também os recursos de navegação e pagamento. Para responder rapidamente às mudanças e atingir a meta dentro do prazo, decidiram adotar uma tecnologia que permitisse desenvolvimento cross-platform

  • Enquanto avaliavam Flutter e React Native, escolheram React Native porque sua comunidade parecia um pouco mais estável e ativa

  1. Base nativa vs base React Native
  • Eles avaliaram se colocariam React Native sobre o app nativo ou, ao contrário, se colocariam o nativo sobre React Native

  • Se colocassem React Native sobre o nativo, os endpoints mudariam de acordo com cada tela e o gerenciamento do ciclo de vida do app ficaria mais complexo

  • Se colocassem o nativo sobre React Native, seria necessário primeiro adaptar o código nativo existente para que fosse compatível com React Native. No futuro, também seria preciso reescrevê-lo completamente em React Native

  • Como a maior parte das funcionalidades acabaria sendo migrada para React Native de qualquer forma, decidiram seguir pela direção de colocar o nativo sobre React Native

  1. Reutilização de telas nativas
  • Para responder rapidamente às mudanças dentro do prazo disponível, decidiram criar as novas telas em React Native e manter as telas existentes em nativo (com migração gradual dessas telas nativas para React Native)
  1. Reutilização de código nativo
  • Seria possível incorporar ao React Native a essência do código nativo acumulado ao longo de 13 anos de manutenção na Ridibooks? Eles já usavam Swift e Kotlin no app nativo existente, então validaram se isso poderia ser aproveitado como estava no React Native

  • Com a criação de bridges, foi possível usar tudo da forma existente

  1. Dificuldades no processo de adoção
  • O tamanho do bundle e o uso de memória aumentaram

  • O tamanho do bundle ficou dentro do esperado, mas o consumo de memória foi desastroso. Foi preciso dar muita atenção à otimização.

  • É difícil confiar em bibliotecas de terceiros

  • Não dá para negligenciar nem o lado nativo nem o front-end. Desenvolvedores nativos precisam aprender front-end, e desenvolvedores front-end precisam aprender desenvolvimento nativo. A troca entre as equipes é a chave do sucesso.

  1. Por que React Native é bom
  • Alta produtividade

  • Uma plataforma boa para colaboração

Graças ao React Native, foi possível cumprir o roadmap do produto dentro do prazo e ganhar um ambiente com produtividade e capacidade de responder rapidamente às mudanças. Daqui para frente, a empresa pretende migrar de forma mais ampla a área nativa para React Native. No entanto, como o visualizador carrega 13 anos de know-how acumulado, ele continuará sendo mantido para oferecer a melhor experiência possível ao usuário.

11 comentários

 
ugotme 2021-12-24

Não sei se você já chegou a fazer uma busca por palavras-chave no Google Trends, mas o ecossistema de RN está praticamente morrendo. Em comparação, o Flutter está crescendo de forma explosiva. Só para constar, eu sou desenvolvedor nativo.

 
kernel0 2021-12-23

Do ponto de vista do usuário, parece que o app desktop tem um desempenho pior do que a versão anterior. Antes eu não sentia atraso ao mudar de página, mas hoje em dia ele continua travando.

 
lux1024 2021-12-23

Queria que dessem um certo destaque na versão desktop... fico pensando se isso não dá por causa de alguma questão de direitos autorais, sei lá.

 
functor 2021-12-23

Queria muito que dessem um pouco de atenção aos apps de desktop também... buá buá

 
lifthrasiir 2021-12-23

Como alguém que usou o app de desktop da Ridibooks por muito tempo, fico com a sensação frustrante de que essa decisão foi tomada pensando exclusivamente no mobile. E não sou só eu: todos que conheço e usam o app de desktop sofrem com bugs constantes... (ainda pior do que o antigo app baseado em Qt)

 
kernel0 2021-12-23

Tenho ouvido muita gente por aí reclamando bastante dos problemas de aplicativos desktop..

 
nicewook 2021-12-23

Eu também não estou na posição de desenvolver diretamente, mas ao ver tantos elogios ao Flutter nas comunidades que frequento, comentei isso com a pessoa desenvolvedora do app da empresa, e ela parecia gostar mais de React. Disse que a base instalada e o mercado de contratação também são melhores. Gostaria de ouvir a opinião de outras pessoas também.

 
deokim 2021-12-23

Os apps nativos estão evoluindo numa velocidade impressionante, então a questão será se o RN consegue acompanhar esse ritmo.

 
nicewook 2021-12-23

E em comparação, como o Flutter se sairia nessa questão?

 
deokim 2021-12-23

Do mesmo jeito, o Android provavelmente ficaria bem, mas não sei se conseguiria acompanhar o iOS.

Acho que não se deve ignorar o custo da entropia gerada pela unificação.

 
ruinnel 2021-12-22

Eu desenvolvi e lancei com React Native há uns 2~3 anos...

Pessoalmente, achei que havia mais desvantagens do que vantagens...

  • Depois que vi o texto sobre a desistência e saída do AirBnb (o que, na prática, significou o desaparecimento de um dos pilares da linha de produção das bibliotecas de terceiros)...

https://m.blog.naver.com/PostView.naver/…

Acabei perdendo bastante o interesse, mas... a popularidade dele continua a mesma.