[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.

Já existe um app (feito em flutter) nas lojas.

Push Notifications, Offline Mode

PWA Já tem tudo isso e esta chegando Push Notifications no Ios Safari!

> 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.
> 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/
> 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.
> 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!
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.