Executando verificação de segurança...
0

[Ideia] Migrar o TabNews para um monorepo React Native

Motivação

Fala galera, blz? A tempos quero participar de um projeto OSS e com certeza o TabNews é uma excelente escolha! Apesar de ser dev React meu foco é quase total em React Native, então não sou exatamente a melhor pessoa para ajudar no desenvolvimento Web, mas acho a ideia do TabNews ter apps nativos para Android e iOS um salto muito massa para o projeto!

Por que um app?

O site do TabNews é super rápido e responsivo, então acredito que o "ganho de experiência" não seja o ponto forte para justificar a existência de um app, e sim as diversas features que podem ser implementar a longo prazo que são inviáveis na Web, como Push Notifications, Offline Mode, ou qualquer ideia maluca usando as dezenas de APIs do dispositivo.

Arquitetura

A ideia é partir do create-universal-app e reaproveitar o máximo possível da implementação já existente do TabNews. A doc do create-universal-app explica bem como a arquitetura funciona, então não vou entrar em pontos específicos aqui, mas fique a vontade para discutirmos os detalhes técnicos nos comentários.
Algumas bibliotecas como o bytemd e o highlight.js precisarão ser adaptadas ou substituídas por darem suporte apenas a Web, enquanto outras como o date-fns podem ser substituídas (talvez pelo day.js?) visando diminuir o tamanho do bundle. A Callstack fez um guia definitivo sobre performance no React native, recomendo fortemente a leitura.

Me ajudem a desenvolver a ideia!

Essa com certeza não é uma tarefa simples, e ela so faz sentido se geral achar que isso REALMENTE vai agregar valor, então por favor, se possível deixe suas considerações nos comentários.

Carregando publicação patrocinada...
1
1
1

PWA Já tem tudo isso

Não exatamente, PWA é limitado em certos aspectos e o mobile oferece uma UX que o Web não oferece, "tudo isso" é bem forte, PWA não é o caminho que a maioria dos produtos seguem.

esta chegando Push Notifications no Ios Safari

Push Notifications na Web está em estágio inicial, enquanto no mobile já é um pattern estabelecido, não acho que seja uma comparação justa.

1

Não exatamente, o mobile oferece uma UX que o Web não oferece

Exatamente o que?

Push Notifications na Web está em estágio inicial

Concordo que no IoS é isso mesmo, a Apple postergou o quanto pode mas agora não da mais.

não acho que seja uma comparação justa.

Não foi minha intenção comparar!

Existem alguns case bem interessantes com PWA
https://www.gomage.com/blog/pwa-case-study/

https://www.simicart.com/blog/pwa-case-studies/

https://www.e-point.com/_fileserver/item/1501040

Claro não é o suprasumo! Tem vários problemas como demontrados nos
cases, principalmente devido a apple!

Como tudo na vida tem prós e contras! Eu posso ter exagerado um pouco sobre.
Mas PWA é bem legal e com bastante coisas!

Gosto deste site que mostra o que PWAs conseguem fazer hoje!
https://whatpwacando.today/

1

Exatamente o que?

Em resumo: fluídez (gestos, transições nativas, animações complexas, 60 fps, etc), amplo acesso as APIs nativas do dispositivo e adapters/wrappers de bibliotecas nativas (Firebase é um bom exemplo).

Claro não é o suprasumo! Tem vários problemas como demontrados nos
cases, principalmente devido a apple!

Sim, Apple sendo Apple hahahaha...

Como tudo na vida tem prós e contras! Eu posso ter exagerado um pouco sobre.
Mas PWA é bem legal e com bastante coisas!

Sim, total, PWA é uma tecnologia que agiliza muito o processo, mas enxergo ela como uma alternativa para quem "não pode" ter um app, em termos de arquitetura um app (principalmente nativo como é o caso do RN) sempre vai estar a frente em "termos de qualidade".

https://whatpwacando.today/

Não conhecia, vou ver!

P.S.: Achismo aqui, ja tive muitos problemas com as APIs do dispositivo usando as implementações do RN/Expo que são excelentes, pode ser preconceito da minha parte mas nesse sentido PWA não me passa muita confiança.

1

Em resumo fluídez (gestos, transições nativas, animações complexas, 60 fps, etc) e acesso a API nativa do dispositivo.

Realmente 60FPS só no desktop mesmo!
https://calibreapp.com/blog/investigate-animation-performance-with-devtools

Dependendo do dispotivo animações nunca vão chegar em 60fps
Embora chrome tenha aceleração por hardware
https://developer.chrome.com/blog/hardware-accelerated-animations/
Nem sei como é isso no Safari!

OSB: Não sou contra a ideia!
Só não vi e pra isso peço ajuda no que um app nativo seria melhor que um PWA para o tabnews. Quais apis nativas o tabnews precisa que é impossivel ficar sem?

Vamos deixar bem claro, estou falando do Tabnews.
Um app nativo acrescentaria o que ao tabnews? Features e tal!

Para outros projetos PWA pode não ser a solução!

Um app que só acessa APIs para mostrar dados
como um navegador, eu não vejo vantagem em um app nativo
hoje em dia. A não ser que precise de APIs nativas! Ai não tem espatória rsrsrs!

1

Concordo 100%, a ideia desse post é realmente entender se a UX de um app nativo agregaria valor a longo prazo dado o novo horizonte de possilidades que se abriria, no caso do TabNews de hoje realmente um PWA funcionaria muito bem.