React-native: ☂️ Núcleo Enxuto

Criado em 6 fev. 2019  ·  196Comentários  ·  Fonte: facebook/react-native

Nos últimos meses, temos discutido e feito progresso em um projeto chamado “Núcleo Enxuto”. Por favor, leia nossa motivação para este projeto . Ao longo dos anos, o React Native acumulou muitas peças que agora estão desatualizadas, não utilizadas ou herdadas. É hora de limpar tudo e colocar o repositório em um estado muito mais gerenciável daqui para frente.

Esta é uma tarefa abrangente destinada a rastrear todo o trabalho necessário para atingir o objetivo de um núcleo mais enxuto, incluindo trabalho em torno da reorganização do repositório. Este problema está sendo mantido atualizado para que novos itens sejam adicionados e os concluídos sejam (re) movidos. Alguns dos itens gerarão problemas separados para rastrear o trabalho. Se você não vir um nome atribuído a nenhum dos itens abaixo e quiser ajudar, seja voluntário nos comentários e entre em contato comigo para começar!

Componentes e tempo de execução

Atualmente, o React Native vem com um grande número de componentes, muitos dos quais estão obsoletos ou desatualizados, mas ainda fazem parte do repositório e aumentam o tamanho dos aplicativos. Para os itens nesta seção, estamos procurando remover completamente os itens se não forem usados ​​ou gostaríamos de movê-los para repositórios gerenciados pela comunidade ou, de outra forma, para o facebookarchive . A lista aqui é parcialmente baseada em uma investigação incrível de @ ax-fb. A migração pode ser feita aproximadamente seguindo o guia de @matt-oakes abaixo: https://github.com/facebook/react-native/issues/23313#issuecomment -461462981

  • [] Remover ImageStore (@cpojer)
  • [] Remover PushNotificationIOS (@cpojer)
  • [] Remover AsyncStorage (@cpojer)
  • [] Remover controle deslizante (@cpojer)
  • [] Remover ProgressBarAndroid (@cpojer)
  • [] Remover ProgressViewIOS (@cpojer)
  • [] Remover MaskedViewIOS (@cpojer)
  • [] Remover ActionSheetIOS (@cpojer)
  • [] Remover ImagePickerIOS (@cpojer)
  • [] Remover Picker e PickerIOS (@cpojer)
  • [] Remover DatePickerAndroid, DatePickerIOS (@cpojer)
  • [] Remover ReactART (@cpojer)

Dependências de terceiros

Ao longo dos anos, acumulamos uma grande quantidade de dependências, especialmente JavaScript. Também removemos coisas do React Native, como Metro e react-native-cli . Isso significa que deixamos uma grande quantidade de dependências de ferramentas em nosso package.json, muitas das quais não serão utilizadas pelo próprio RN e não serão atualizadas para as versões mais recentes, fazendo com que a instalação completa do React Native seja inchada. Também seria ótimo fazer uma auditoria de todas as dependências usadas e identificar quais poderiam ser removidas.

  • Dependências de JavaScript

    • [] Verifique quais dependências são grandes e se podem ser menores

    • [] Descubra quais dependências podem ser atualizadas para suas versões mais recentes para correções de segurança

    • [] Descubra quais dependências podem ser desduplicadas (= reduzir incompatibilidades de versão) para instalar tamanhos menores

  • Mova o código React Native para dependências externas

    • [] Identifique qual código JavaScript poderia ser melhor servido por um pacote de terceiros em vez de manter uma cópia ou nossa própria implementação

Estrutura do Repositório

No momento, o repositório React Native é um grande repositório com pouca organização que promove a separação de interesses. É nosso objetivo, como parte desse esforço, também mover as coisas para uma estrutura mais gerenciável. Como parte disso, gostaríamos de seguir um modelo monorepo que consiste em vários pacotes menores. Esta será uma migração gradual e estaremos apenas acompanhando o trabalho inicial para fazer isso decolar.

  • [] Fornece uma configuração inicial que funciona com o repositório existente, com vários pacotes e também funciona bem com a configuração interna do Facebook (@cpojer)
  • [] TODO: Identifique mais trabalhos necessários nesta área

Trabalho concluído


Clique para ver o trabalho anterior antes que este problema fosse criado

Good first issue Help Wanted Ran Commands Discussion

Comentários muito úteis

Eu queria dar uma rápida atualização sobre o progresso que todos têm feito no esforço do Lean Core. Só quero dizer como estou impressionado com todas as suas contribuições em pouco mais de uma semana. Muito obrigado!

Aqui está todo o trabalho que já foi concluído:

  • NetInfo (https://github.com/react-native-community/react-native-netinfo) foi dividido com sucesso e lançado no npm via @ react-native-community / netinfo por @ matt-oakes, que até adicionou novos testes e novos recursos para o módulo!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1) foi dividido com sucesso por @ferrannp.
  • AsyncStorage (https://github.com/react-native-community/react-native-async-storage) foi retirado por @Krizzu.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1) foi movido para um repositório separado por @dmtrKovalenko.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1) foi dividido por @michalchudziak.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1) foi transformado em um repositório da comunidade por @FonDorn.
  • PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1) foi extraído por @rafaellincoln.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1) foi extraído por @Trancever.
  • @EvanBacon adicionou uma mensagem de descontinuação para ImageStore em # 23330.
  • @wellmonge fundiu AlertIOS e Alert em # 23318.
  • Os engenheiros do Callstack lançaram a primeira versão do novo React Native CLI: https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

Também quero destacar como extrair esses módulos pode levar a uma melhor manutenção desses módulos, ou seja, @ matt-oakes adicionou testes para NetInfo (https://github.com/react-native-community/react-native-netinfo/pull/ 4) e @ifsnow adicionaram tipos de fluxo ao AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4). Ao separar esses componentes do React Native (e do Facebook), eles podem se mover muito mais rápido individualmente, sem serem bloqueados por um funcionário do Facebook. Além disso, como podemos migrar problemas existentes e solicitações de pull do repositório React Native, isso também tornará mais fácil manter o próprio React Native e poderemos responder às solicitações de pull mais rapidamente!

É nisso que estamos trabalhando ou trabalhando a seguir:

  • Remover VibrationIOS
  • Remova dependências de terceiros não utilizadas
  • Comece a migrar o código interno do Facebook para usar os novos pacotes react-native-community

Mais uma vez, a todos que têm ajudado até agora, obrigado!

Todos 196 comentários

@cpojer, eu gostaria de remover SnapshotViewIOS 🔪

Olá @cpojer , obrigado por colocar tudo junto!

Estou disposto a resolver alguns problemas, começando com a mudança do AsyncStorage.

Eu ficaria feliz em ajudar a mover o NetInfo para um repositório da comunidade.

Seria melhor criar um repositório Github pessoal primeiro e, em seguida, potencialmente migrá-lo para a org react-native-community assim que estiver pronto, ou devemos começar imediatamente com um repo nessa organização?

@cpojer , gostaria de ajudar com alguns desses problemas. Posso começar com "Merge AlertIOS with Alert"?

Fantástico! Eu coloquei seus nomes ao lado dos itens acima.

@jdmunro você pode enviar um PR e me designar para ele? Então posso assumir e remover coisas específicas do FB antes de pousar.
@Krizzu e @ matt-oakes eu criei https://github.com/react-native-community/react-native-async-storage e https://github.com/react-native-community/react-native-netinfo para você enviar PRs com todo o código necessário para torná-los módulos de terceiros. Idealmente, na primeira etapa, você apenas pegará o código do repositório RN e os colocará em repositórios separados. Para garantir que funcione, poderíamos vinculá-los de volta ao RN como uma dependência e remover a implementação original. Mais adiante na linha, podemos realmente movê-lo para um pacote opcional.
@wellmonge Parece ótimo! Não tenho certeza do que o trabalho envolverá, mas talvez você possa apenas verificar os dois módulos e ver se você pode unificá-los.

@cpojer, eu poderia ajudar a mover o controle deslizante 🙂

Depois disso, posso pegar outra coisa se você ainda precisar de ajuda

@michalchudziak Incrível! Eu criei https://github.com/react-native-community/react-native-slider , por favor, veja meu comentário acima sobre o que fazer a seguir.

Como um nome para o projeto em package.json, use @react-native-community/<project name> , ou seja. @react-native-community/slider .

@cpojer , posso pegar ViewPagerAndroid . Acho melhor movê-lo para um repositório da comunidade (se você pode criar o repositório para mim, thx 😄) do que apenas removê-lo porque outros pacotes implementaram esse comportamento em JS para iOS e retransmitem no nativo para Android.

Olá @cpojer , gostaria de ajudar fundindo e movendo o Picker e o PickerIos. :)

@ferrannp criou https://github.com/react-native-community/react-native-viewpager para você! Veja as mensagens acima.
@jainkuniya obrigado! Não tenho certeza de como será, mas talvez você possa ver como unificá-los e começar a enviar pequenos PRs para reagir nativos.

Fantástico! Eu coloquei seus nomes ao lado dos itens acima.

@jdmunro você pode enviar um PR e me designar para ele? Então posso assumir e remover coisas específicas do FB antes de pousar.
@Krizzu e @ matt-oakes eu criei https://github.com/react-native-community/react-native-async-storage e https://github.com/react-native-community/react-native-netinfo para você enviar PRs com todo o código necessário para torná-los módulos de terceiros. Idealmente, na primeira etapa, você apenas pegará o código do repositório RN e os colocará em repositórios separados. Para garantir que funcione, poderíamos vinculá-los de volta ao RN como uma dependência e remover a implementação original. Mais adiante na linha, podemos realmente movê-lo para um pacote opcional.
@wellmonge Parece ótimo! Não tenho certeza do que o trabalho envolverá, mas talvez você possa apenas verificar os dois módulos e ver se você pode unificá-los.

Certo! Vou fazer isso e relatar para você.

Pode ajudar com StatusBarIOS e PushNotificationIOS

@cpojer Você tem preferência pelo nome do pacote Android?

Usando o NetInfo como exemplo, atualmente é com.facebook.react.modules.netinfo . Devemos torná-lo padrão em todos os módulos extraídos com algo como com.reactnativecommunity.modules.netinfo ?

Posso ajudar com

  • Mova SegmentedControlIOS para um repositório da comunidade
  • Mova o ProgressViewIOS para um repositório da comunidade

Vou marcar a caixa de seleção, por favor.


Obrigado por enviar seu problema. Você pode dar uma olhada em sua descrição e certificar-se de que o modelo de problema foi preenchido por completo?

👉 Clique aqui se quiser dar uma outra olhada no modelo de problema de Relatório de Bug.

@dmtrKovalenko colocou você no StatusBarIOS, criado https://github.com/react-native-community/react-native-statusbar
Comunidade @matt-oakes no nome do pacote parece bom, mas se mantivermos o existente, também estou bem com isso.
@kdenz Criado https://github.com/react-native-community/react-native-segmented-control para o SegmentedControlIOS
@vonovak Criou https://github.com/react-native-community/react-native-checkbox para o repo da caixa de seleção

Apenas para resumir as etapas aproximadas que devemos seguir para as extrações:

  1. Extraia a versão atual do módulo no qual você está trabalhando e todas as suas dependências em um repositório git separado e envie um PR para aquele que foi criado para sua comunidade RN. Consulte react-native-webview para um exemplo de como deve funcionar se contiver código nativo.
  2. Adicione um aviso de descontinuação ao React Native usando o módulo warnOnce que já existe, consulte react-native-deployment.js para um exemplo.
  3. Em seguida, fecharemos todas as questões / PRs e direcionaremos as pessoas para usar os projetos e repositórios recém-criados.
  4. Depois de um ou dois lançamentos, removeremos totalmente o código do React Native, ponto no qual apenas o módulo externo funcionará.
  5. Como alternativa, podemos tentar uma abordagem em que removeremos o código do repositório RN imediatamente, mas adicionaremos o novo repositório da comunidade como uma dependência do React Native e manteremos as APIs existentes funcionando da maneira que estão. Não tenho certeza se isso funcionará para módulos com dependências nativas, no entanto.

Por favor, deixe-me saber se você tem alguma dúvida :)

  • Mova ImageStore para um repositório da comunidade

Acho que devemos descontinuar isso em favor de qualquer solução FileSystem . O principal caso de uso é obter Base64 de uma imagem. Ele também não tem suporte para Android.

Ei @cpojer! Eu ajudaria com

  • Remova MaskedViewIOS e possivelmente mude para o repositório da comunidade

Eu gostaria de ajudar!
Eu poderia trabalhar em

  • Remova ProgressBarAndroid do repositório, possivelmente mova para o repositório da comunidade
    ?

Ei @cpojer! Posso ajudar com

  • Mova o código nativo ActionSheetIOS para expo.

@cpojer Adoraria ajudar, inscreva-me no Libraries / CameraRoll (componentes ImagePickerIOS e CameraRoll)

O aplicativo RNTester não tem seu próprio package.json, portanto, quaisquer componentes que removermos teriam que ser removidos do aplicativo RNTester ou permanecer no núcleo como uma dependência. Qual é a abordagem do RNTester com relação a esse emagrecimento?

@cpojer , posso ajudar a mover a área de transferência para um

Posso ajudar nesta tarefa? @cpojer

  • Mova o selecionador para um repositório da comunidade.

@jainkuniya Talvez possamos trabalhar juntos?

@zhaozhiming ya claro, o que eu estava planejando primeiro mesclá-lo no repositório RN propriamente dito e, em seguida, mover para o repositório da comunidade.

Interessante. O que acontecerá com o RNTester? Espero que possamos mantê-lo com todos os componentes.

@cpojer posso ajudar com

  • Mova "Compartilhar" para o repositório da comunidade

Além disso, seria muito útil ter algum tipo de modelo coordenado, para que haja o código nativo como uma lib, uma maneira fácil de desenvolvê-lo e contribuir.

@pvinis Talvez dê uma olhada neste commit do repositório NetInfo em que estou trabalhando:

https://github.com/matt-oakes/react-native-netinfo/tree/83e96b30fda1c18f62d27ec0db61db7f56eddc1f

Não há código NetInfo lá ainda, mas tem as partes Android e iOS da biblioteca e um projeto de exemplo que vincula sem precisar de um package.json aninhado.

Agora estou planejando mover o código NetInfo e, em seguida, mover os exemplos RNTester para o projeto example .

@EvanBacon parece bom. Você quer se inscrever para adicionar um aviso ao RN para descontinuar o ImageStore e recomendar uma solução de terceiros?

@matt-oakes já fez um ótimo trabalho com o NetInfo, que é um modelo para espelhar todas as extrações: https://github.com/react-native-community/react-native-netinfo/pull/1

@pvinis as @ matt-oakes diz que cada projeto deve ter seus próprios exemplos e código de teste. Acho que, assim que terminarmos, podemos considerar a criação de um único exemplo de RNTester que reúna todos os módulos extraídos mais comumente usados ​​e os reúna em um único aplicativo.

VirtualizedList vai ficar, certo? Já vi antes na lista, mas vejo que não é mais.

Olá @cpojer , posso cuidar de mover o ImageEditor para um repositório separado.

Olá @cpojer , adoraria trabalhar neste

  • Identifique todas as dependências em package.json que não são usadas diretamente no React Native

@ matt-oakes como você planeja testar ou ajudar no desenvolvimento desta biblioteca? precisamos de um projeto que incorpora a lib, que pode ser facilmente atualizado / descartado e recriado ou algo assim.

Seria fácil assim para outros contribuírem. Poderia ser um aplicativo de "exemplo", mas na minha opinião um aplicativo de "exemplo" é para mostrar como usar uma biblioteca, onde um aplicativo "dev" seria onde a biblioteca pode ser desenvolvida, testada etc.

Alguma ideia para isso?

@brunolemos sim é, desculpe meu engano por colocá-lo lá a princípio.

@Trancever Eu criei https://github.com/react-native-community/react-native-image-editor para você enviar um PR contra!
@ nimish-gupta isso é incrível! Você pode fazer a análise e criar um problema separado que discuta as dependências não utilizadas; ou envie uma solicitação pull com explicações claras sobre por que eles podem ser removidos (ou seja, eles não podem ser encontrados etc.)
@pvinis , estamos discutindo atualmente se faz sentido criar um andaime. Até que tenhamos isso, baseando seu trabalho na estrutura em https://github.com/react-native-community/react-native-webview ou https://github.com/react-native-community/react-native -netinfo faz mais sentido para mim.

oi @cpojer para o projeto PickerIOS e Picker, estou planejando realizar as seguintes etapas:

  • Adicione warning em PickerIOS , que está obsoleto e será removido em versões futuras.
  • Após o lançamento, remova PickerIOS de RN .

Enquanto isso, podemos mover Picker para o repositório da comunidade.

Sugestões?

@jainkuniya Acho que a ideia é boa, mas lembre-se de que o Picker usa o PickerIOS por baixo do capô. Acho que seria melhor se pudéssemos nos livrar do PickerAndroid e do PickerIOS e, em vez disso, apenas expor o Picker, o que você acha? Muitos outros componentes já funcionam dessa maneira.

Para dar às pessoas uma ideia do processo pelo qual passei para mover o código NetInfo:

1) Utilizou a biblioteca create-react-native-library para gerar o scaffolding: npx react-native-create-library --platforms ios,android --package-identifier com.reactnativecommunity.netinfo --prefix RNC --license MIT netinfo
2) Criado um projeto de exemplo executando react-native init NetInfoExample na raiz do novo projeto de biblioteca. Em seguida, renomeei a pasta criada para apenas example .
3) Removido example/package.json e movido as dependências e scripts para a raiz package.json . Também movi alguns dos outros arquivos gerados, como babel.config.js para a raiz do projeto.
4) Atualizadas as referências às bibliotecas React Native nos exemplos de arquivos gradle do Android e no projeto Xcode. Encontrar e substituir ../node_modules/react-native e substituí-lo por ../../node_modules/react-native foi o suficiente.
5) Atualizado o caminho para o nome do módulo principal em MainApplication.java e AppDelegate.m de index para example/index .
6) Adicionados os módulos babel-plugin-module-resolver e configurados assim em babel.config.js . Isso permite que você importe o código da biblioteca da mesma forma que um usuário faria.
7) Vincule manualmente o projeto da biblioteca ao de exemplo. Isso é muito semelhante ao que você faria normalmente, mas o caminho no Android em settings.gradle será apenas ../../android ( assim ).
8) Mudei então os arquivos de código nativo, renomeando-os com um prefixo RNC (React Native Community) em vez do antigo RCT . Coloquei o código Javascript em js e alterei o caminho do índice em package.json .
9) Mudei então os exemplos de RNTester para o projeto example e organizei um pouco o código. Sinta-se à vontade para pegar o arquivo example/index.js como uma forma de conter os exemplos que você copiou do RNTester. É apenas um invólucro leve como havia no RNTester originalmente.
10) Eu organizei um pouco o projeto para torná-lo compatível com a configuração do react-native-webview . As principais mudanças foram em torno dos arquivos gradle do Android.

Esperançosamente, isso ajuda as pessoas :)

@pvinis Eu acho que há muitos cruzamentos entre mostrar às pessoas como usar a biblioteca e ajudar no desenvolvimento, especialmente quando a área de superfície é pequena como no NetInfo. O example no projeto praticamente cumpre os dois propósitos ao mesmo tempo.

Para o teste automatizado, ainda não o examinei totalmente, no entanto, usei anteriormente o Jet (baseado no Detox e usado por react-native-firebase ) para fazer testes de ponta a ponta com o reagente nativo localização .

Impressionante. Fiz o mesmo processo há alguns dias ao tentar extrair algumas funcionalidades do aplicativo para uma biblioteca. Eu não fiz a exclusão de package.json e alguns outros pequenos passos. Vou tentar verificar tudo o que você fez e eu fiz, e ver se ainda há coisas obscuras.

Obrigado pelos detalhes. :)

@cpojer SnapshotViewIOS também parece ser usado internamente para alguns testes de integração iOS. Ele só está disponível se você vincular ao módulo nativo RCTTest . O uso está aqui: https://github.com/facebook/react-native/blob/master/RNTester/js/RNTesterApp.ios.js#L180

Estamos apenas removendo SnapshotViewIOS da exportação RN pública, ou seja, ainda deve estar disponível em particular para uso de teste?

Houve alguma discussão sobre como manter o histórico dos arquivos que estão sendo importados. Achei este guia que foi muito útil e me permitiu fazê-lo para o módulo NetInfo:

https://stosb.com/blog/retaining-history-when-moving-files-across-repositories-in-git/

Como um resumo, primeiro você precisa descobrir quais arquivos você precisa copiar. Em seguida, você cria um script como este:

#!/bin/bash

mkdir -p combined/

# Pipe output to silence "file not found" warnings.
mv ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java combined/ 2>/dev/null
mv Libraries/Network/RCTNetInfo.h combined/ 2>/dev/null
mv Libraries/Network/RCTNetInfo.m combined/ 2>/dev/null
mv Libraries/Network/NetInfo.js combined/ 2>/dev/null

true

Você deve colocar este arquivo em algum lugar fora do repositório.

Em seguida, você precisa executar estes comandos:

git fetch origin --unshallow
git checkout -b history
git filter-branch -f --prune-empty --tree-filter ~/treefilter.sh @
git filter-branch --prune-empty -f --subdirectory-filter combined

O primeiro comando filter-branch demorará um pouco e usará o script para mover todos os arquivos de seu interesse para uma única pasta. O segundo comando deve ser bastante rápido e irá mover os arquivos da nova pasta para a raiz e então manter apenas os commits que alteram qualquer um dos arquivos que você deseja manter.

Você pode então terminar com um histórico como este: https://github.com/react-native-community/react-native-netinfo/commits/master

oi @cpojer eu adoraria trabalhar

  • Mova o ProgressViewIOS para um repositório da comunidade

Obrigada

Observação sobre o polyfill de busca:

Remova o fetch polyfill do repo e reutilize whatwg-fetch diretamente, se possível

Tivemos que fazer um fork porque nosso módulo Blob não é padrão e não libera seus recursos automaticamente. Deve ser mais fácil implementar a limpeza automática de recursos com o novo sistema de módulos nativos, mas até então devemos manter o polyfill bifurcado.

@cpojer Mover "Share" para o repositório da

Por favor, dê uma olhada neste branch (irei deletar este repositório assim que tivermos um novo repositório da comunidade)

Observação sobre o polyfill de busca:

Remova o fetch polyfill do repo e reutilize whatwg-fetch diretamente, se possível

Tivemos que fazer um fork porque nosso módulo Blob não é padrão e não libera seus recursos automaticamente. Deve ser mais fácil implementar a limpeza automática de recursos com o novo sistema de módulos nativos, mas até então devemos manter o polyfill bifurcado.

Como preciso do suporte AbortController.Signal, estou pensando em fazer uma atualização do polyfill bifurcado. Isso se encaixaria no futuro do fetch polyfill dentro do núcleo?

@cpojer Eu gostaria de trabalhar no PushNotificationIOS.

@cpojer eu poderia ajudar

  • Mover ImageEditor para um repositório da comunidade

Obrigado!

@ nicholaslee119 Criado https://github.com/react-native-community/react-native-progress-view para você. Verifique os comentários acima para saber como fazer progressos.
@Ansalibrahim Bom argumento. Criado https://github.com/react-native-community/react-native-simple-share para você. Por favor, envie um PR lá!
@rafaellincoln Criado https://github.com/react-native-community/react-native-push-notification-ios para você trabalhar.
@dratwas @Trancever já está nele, trabalhe com ele no repo que foi criado para ele.
@ Jyrno42 Podemos atualizar para um polyfill de terceiros que ofereça suporte a tudo de que precisamos?

@cpojer Desculpe, não vi que @Trancever está nele.
Eu poderia levar Move ImageStore to a community repo se ainda não o fizesse ou Move ImagePickerIOS to a community repo

Alguém poderia me dizer por que AsycnStorage e PushNotificationIOS serão removidos? Acho que ambos são usados ​​por muitos aplicativos, então talvez pudéssemos movê-los para a comunidade em vez de apenas removê-los?

Especialmente PushNoticationIos é usado por muitas pessoas. Estou usando https://github.com/zo0r/react-native-push-notification, que está usando PushNotificationIos. Existe uma alternativa melhor que eu não conheço?

@vdlindenmark AsyncStorage não está sendo removido, mas movido para a comunidade

Eu gostaria de levar o Picker !!!

Se Move ImagePickerIOS to a community repo ainda não foi usado, eu ficaria feliz em ajudar 😄

Ei @cpojer , enviei # 23359 para mesclar PickerIOS e Picker . Por favor revise :).

Este problema deve ser corrigido 📌

@dratwas Desculpe, fiquei confuso aí. Na verdade, estamos descontinuando ImageStore inteiramente porque já existem opções de terceiros disponíveis, conforme apontado por @EvanBacon. Você quer ser voluntário para outro módulo?
@vdlindenmark como @Krizzu está apontando, ambos os módulos permanecerão nos módulos da comunidade.
@Keraito Eu criei https://github.com/react-native-community/react-native-image-picker-ios para você enviar um PR.
@andersonaddo done! Obrigado pela sugestão.

@cpojer Eu me pergunto se vocês também avaliaram a possibilidade de mover AccessibilityInfo para um repositório da comunidade.

Não sei se ele poderia viver separado do núcleo, mas vejo a vantagem de aumentar o suporte de acessibilidade no React-Native.

Já existem algumas propostas para aumentar o suporte de acessibilidade na camada de visualização e torná-la mais multiplataforma (https://github.com/react-native-community/discussions-and-proposals/pull/56, https: // github.com/react-native-community/discussions-and-proposals/pull/55, https://github.com/react-native-community/discussions-and-proposals/pull/54), mas algo que RN não faz não disponibilizamos agora, e não há problema ou proposta a respeito, é o acesso às preferências de todos os usuários no nível do sistema operacional. Por exemplo: não há como obter a opção "reduzir movimento", que é necessária para adaptar o aplicativo reduzindo / desligando as animações .

Acho que as opções fornecidas por UIAccessibility no iOS (não sei o equivalente no Android) podem estar disponíveis em AccessibilityInfo .

E ter um repositório da comunidade poderia atrair mais contribuições para esse problema específico.

Obrigada.

@cpojer Não consigo ver nenhum módulo não atribuído, então falarei com @Trancever se puder ajudar com:

  • Mover ImageEditor para um repositório da comunidade

@elucaswork A acessibilidade é extremamente importante e acredito que deve fazer parte do próprio React Native. Devemos fazer todo o possível para melhorar o suporte à acessibilidade no React Native pronto para uso.
@dratwas parece bom!

  • Mova o selecionador para um repositório da comunidade.

@cpojer poderia começar com este problema?

algo que a RN não oferece no momento, e não há problema ou proposta a respeito, é o acesso às preferências de todos os usuários no nível do sistema operacional. Por exemplo: não há como obter a opção "reduzir movimento", que é necessária para adaptar o aplicativo reduzindo / desligando as animações .

Acho que as opções fornecidas por UIAccessibility no iOS (não sei o equivalente no Android) podem estar disponíveis em AccessibilityInfo .

Eu estava pensando sobre como ler a opção "reduzir movimento" no React Native, mas parece que ela não foi implementada.

Qual seria a melhor maneira de fazer uma solicitação de recurso e obter visibilidade para ela? Https://react-native.canny.io/feature-requests ainda é o fórum preferido para solicitações de recursos?

O que devemos fazer com VibrationIOS ? Ele foi marcado como obsoleto em favor de Vibration desde março de 2016 . Parece um candidato fácil para remoção.

@hramos ótima sugestão! Vou cuidar de remover esse.

@cpojer Percebi que o Picker / PickerIOS não foi atribuído a ninguém. Eu gostaria de trabalhar nisso também, se possível.

Olá, @rafaellincoln , pelo picker stuff, acho que estamos planejando combiná-lo primeiro no repositório RN propriamente dito e, em seguida, movê-lo para o repositório da comunidade. Para a fusão, enviei PR # 23359

Eu queria dar uma rápida atualização sobre o progresso que todos têm feito no esforço do Lean Core. Só quero dizer como estou impressionado com todas as suas contribuições em pouco mais de uma semana. Muito obrigado!

Aqui está todo o trabalho que já foi concluído:

  • NetInfo (https://github.com/react-native-community/react-native-netinfo) foi dividido com sucesso e lançado no npm via @ react-native-community / netinfo por @ matt-oakes, que até adicionou novos testes e novos recursos para o módulo!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1) foi dividido com sucesso por @ferrannp.
  • AsyncStorage (https://github.com/react-native-community/react-native-async-storage) foi retirado por @Krizzu.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1) foi movido para um repositório separado por @dmtrKovalenko.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1) foi dividido por @michalchudziak.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1) foi transformado em um repositório da comunidade por @FonDorn.
  • PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1) foi extraído por @rafaellincoln.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1) foi extraído por @Trancever.
  • @EvanBacon adicionou uma mensagem de descontinuação para ImageStore em # 23330.
  • @wellmonge fundiu AlertIOS e Alert em # 23318.
  • Os engenheiros do Callstack lançaram a primeira versão do novo React Native CLI: https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

Também quero destacar como extrair esses módulos pode levar a uma melhor manutenção desses módulos, ou seja, @ matt-oakes adicionou testes para NetInfo (https://github.com/react-native-community/react-native-netinfo/pull/ 4) e @ifsnow adicionaram tipos de fluxo ao AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4). Ao separar esses componentes do React Native (e do Facebook), eles podem se mover muito mais rápido individualmente, sem serem bloqueados por um funcionário do Facebook. Além disso, como podemos migrar problemas existentes e solicitações de pull do repositório React Native, isso também tornará mais fácil manter o próprio React Native e poderemos responder às solicitações de pull mais rapidamente!

É nisso que estamos trabalhando ou trabalhando a seguir:

  • Remover VibrationIOS
  • Remova dependências de terceiros não utilizadas
  • Comece a migrar o código interno do Facebook para usar os novos pacotes react-native-community

Mais uma vez, a todos que têm ajudado até agora, obrigado!

@cpojer

  • Remover dependências não utilizadas
  • Identifique todas as dependências em package.json que não são usadas diretamente no React Native

As tarefas acima são concluídas usando PRs # 23428 e # 23467

@cpojer

  • Remover SwipeableList

abordado em # 23484, pode remover o ListView também, se desejar.

FWIW, CameraRoll tem uma dependência em ListView. Talvez movê-lo primeiro seja útil para remover ListView.

FWIW, CameraRoll tem uma dependência em ListView. Talvez movê-lo primeiro seja útil para remover ListView.

O arquivo CameraRollView no RNTester parece ser a única coisa que usa ListView no ReactNative. Talvez um PR trocá-lo por FlatList seja uma boa coisa a se fazer para quebrar essa dependência. Eu ficaria feliz em aceitar que, se acontecer antes de o CameraRoll ser totalmente retirado

Quando comparado com outras versões, o tamanho é aumentado, o que é um ponto-chave. Existe alguma maneira de reduzir o tamanho no react nativo 0.58.4, apenas para uma página demorou 18 MB
A seguir estão minhas dependências
"react": "16.6.3", "react-native": "0.58.4", "react-native-elements": "^1.0.0", "react-native-gesture-handler": "^1.0.15", "react-native-vector-icons": "^6.3.0", "react-navigation": "^3.2.3"

eu vi que navigatorIos foi removido do rn 0,59. Gostaria de saber se já existe um pacote de comunidade para isso? @cpojer

@cpojer eu posso trabalhar nisso, se alguém ainda não começou a trabalhar nisso

  • Remova o fetch polyfill do repo e reutilize whatwg-fetch diretamente, se possível

@nimish-gupta, experimente! Pode haver algumas pegadinhas, mas podemos discutir isso no PR e ver como vai. Pode não ser viável fazer isso, mas vamos tentar ver até onde podemos chegar.

@cpojer Eu me pergunto se KeyboardAvoidingView é útil o suficiente para manter no núcleo.
Vocês já pensaram em removê-lo também para dar espaço para soluções mais robustas, como https://github.com/APSL/react-native-keyboard-aware-scroll-view , ou é muito útil manter no núcleo ?

@elucaswork nós realmente usamos esse surpreendentemente muito no FB, então espero que possamos mantê-lo por um tempo. Talvez possamos discutir movê-lo para um repositório separado depois de concluirmos o trabalho atualmente definido neste projeto.

Bom trabalho aqui. No entanto, eu estava tentando usar NetInfo e AsyncStorage e parece que eles estão faltando podspec arquivos. @cpojer Acho que muitos de nós usamos Pods, não deveríamos torná-los uma espécie de padrão com pacotes

Bom trabalho aqui. No entanto, eu estava tentando usar NetInfo e AsyncStorage e parece que eles estão faltando podspec arquivos. @cpojer Acho que muitos de nós usamos Pods, não deveríamos torná-los uma espécie de padrão com pacotes

Parece que eles têm subespecificações no podfile React Native que provavelmente precisam ser adicionados aos novos repositórios: https://github.com/facebook/react-native/blob/master/React.podspec#L301 -L304

@syaau @TheSavior Bom local. Abri um PR para adicionar um Podspec ao novo repositório NetInfo:

https://github.com/react-native-community/react-native-netinfo/pull/17

@cpojer na minha experiência KeyboardAvoidingView é realmente instável, talvez esta seja uma boa oportunidade para melhorá-lo se vai ficar no núcleo ??

Eu gostaria de propor que suspendemos ART em favor de react-native-svg .

@justDanielMata sim, definitivamente acho que deveria ser melhorado se permanecer no núcleo, mas isso deveria ser tratado em uma discussão diferente.
@EvanBacon Vou discutir isso com a equipe e voltar para você.

Remover WebView do repositório RN

Estou feliz em pegar isso

@ericlewis infelizmente que só pode ser feito do lado do FB porque ainda dependemos dele internamente.

NavigatorIos foi removido de react-native , @cpojer , você pode criar um repositório para ele em react-native-community ? Eu quero reverter, se estiver tudo bem

eu tenho uma versão funcional aqui
https://github.com/michaelknoch/react-native-navigator-ios

@sijad (fyi: não

@sijad Gostaríamos de colocar apenas componentes em react-native-community que ainda recomendamos usar. Os componentes que estamos removendo do React Native como parte do Lean Core acima são todos ótimos componentes para usar em seus aplicativos. NavigatorIOS não é algo que queremos que as pessoas continuem usando, pois recomendamos outras soluções de navegação. No entanto, parece que @michaelknoch encarregou-se de mantê-lo, então eu recomendo usar essa versão até que você possa mudar para outra.

mas por que você desaconselha o uso de navigatorios? Você acha que o desempenho da navegação baseada em JS (por exemplo, react-navigation) é rápido o suficiente para que a navegação nativa não seja mais obrigatória?
@cpojer

@cpojer Oi acaba de criar um PR para ProgressViewIOS https://github.com/react-native-community/react-native-progress-view/pull/1

@michaelknoch pelo contrário, definitivamente recomendamos que você use uma solução de navegação nativa. Acontece que o NavigatorIOS era um sistema de navegação legado que não usamos mais no Facebook. No momento, usamos nosso próprio sistema de navegação nativo personalizado no Facebook, que infelizmente não é de código aberto. Recomendamos que as pessoas usem https://github.com/wix/react-native-navigation.
@kdenz incrível, vou dar uma olhada!

@cpojer Acabou de migrar e resumir SegmentedControlIos e adicionou um aplicativo de exemplo.

  • Testei o Componente e tudo está funcionando bem em um novo projeto RN.
  • Lançado para npm .

@cpojer concluiu a mudança da Clipboard-Api da versão do núcleo RN para a versão da comunidade e adicionou um aplicativo de exemplo para testar tudo.

  • Testei o Componente e tudo está funcionando bem em um novo projeto RN.
  • Lançado para npm .

@cpojer, comecei recentemente com o

  • Mova "TestModule" nativo para RNTester

se ainda não estiver resolvido!

@cpojer e o componente Toast? Acho que deve ser descontinuado agora e removido mais tarde.
Razões:

  1. Toast é apenas outro tipo / estilo de notificação, existem muitos tipos de componentes de notificação
  2. Existe apenas implementação Android
  3. Há uma tonelada de componentes do tipo "brinde" mantidos pela comunidade https://github.com/search?q=react+native+toast que são multiplataforma

O que você acha disso?

Estou interessado em manter o TabBarIOS por perto e à prova de futuro / manutenção. Acho que é bastante valioso, juntamente com o NavigatorIOS, como uma solução leve com acessibilidade de primeira classe.

Se for a opinião geral de que não deve estar em react-native-community, visto que, como o NavigatorIOS, ele já está obsoleto, eu o faria por minha própria conta, mas preferiria sob a égide de -community.

Houve um motivo para a suspensão de uso além de não ser usado no Facebook e apenas no iOS (que é um motivo decente)?

Tenho uma versão funcional aqui: https://github.com/michaelknoch/react-native-tabbar-ios

@karlsander

Oi, eu movo o código nativo ActionSheetIOS para expo. Por favor, verifique 🙇
https://github.com/expo/react-native-action-sheet/pull/105

Eu estava tentando descobrir onde react-clone-referenced-element usado, mas sem sorte. Estou esquecendo de algo? Eu sou novo em contribuir e reagir com base de código nativo, desculpe se é uma pergunta estúpida.

@Rendfold você não está perdendo nada, eu queria saber exatamente a mesma coisa.

Aqui está o commit relevante no qual ele foi adicionado: https://github.com/facebook/react-native/commit/665954efcc4460839d00a572be84cf204a42c0d5

Parece que é para satisfazer a dependência agora que ListView foi removido. Eu acredito que isso só é usado dentro do Facebook também.

@ericlewis foi atualizado lá, mas não foi adicionado, então fui mais longe. Tive que ir para os commits de 2016 para descobrir onde estava eaba2abc0b76f9a26703c87eecf4a8bb52f9ed3e
Mas sim, você estava certo, é para ListView.

@cpojer Eu estava cutucando DrawerLayout / DrawerLayoutAndroid por # 23730 e parece bem isolado.

Seria um bom candidato para extrair também? Estou feliz em assumir isso.

Percebi que dos módulos mencionados aqui, apenas react-native-async-storage e react-native-netinfo passaram nos testes e2e para ambas as plataformas, react-native-cameraroll também os tem, mas os testes estão falhando no android.

Recentemente, examinei o teste e2e de react-native-svg usando Detox e configurei-o em travis e bitrise:
https://travis-ci.org/msand/react-native-svg-e2e/builds
https://app.bitrise.io/app/1a150b039e9b8fbd#/builds

Eu o fiz tirar capturas de tela no iOS e no Android, e testar a nova configuração do projeto em plain react-native para ambos e, adicionalmente, com cocoapods para ios.

Não tenho acesso para configurar bitrise para o repo react -native-svg,

Fazê-lo funcionar sem kvm em travis e bitrise exigiu o canário emulador mais recente e muitas tentativas para encontrar uma configuração de trabalho, já que eles não suportam aceleração. De qualquer forma, caso algum outro módulo esteja interessado em configurar o e2e em outro lugar que não o circleci, este repo pode ser útil: https://github.com/msand/react-native-svg-e2e

Fora do tópico: se alguém estiver interessado em ajudar com o teste react-native-svg, seria ótimo obter um script / aplicativo para executar os testes aqui: https://github.com/web-platform-tests/ wpt / tree / master / svg
Provavelmente pode usar https://github.com/kristerkari/react-native-svg-transformer para carregar os arquivos svg como estão, e então uma etapa de comparação com as capturas de tela seria realmente útil.

Com relação à descontinuação / divisão do ART, apóio separá-lo do repositório reagente nativo e deixá-lo viver como está e obter correções de bugs / melhorias de desempenho. Pelo menos se você só tem, por exemplo, dados de caminho simples que deseja renderizar e não precisa de nenhuma outra parte da especificação svg, então é provável que o ART tenha mais desempenho quando usado pelo menos no react-native. Como não precisa suportar tantos recursos quanto algo que visa a conformidade total com as especificações do svg.

Se você renderizar em canvas usando ART na web, pode ser mais rápido que svg também, dependendo do caso de uso; perfil para encontrar seus pontos de acesso / gargalos reais antes de colocar esforço neste tipo de otimização e faça medições A / B adequadas com estatísticas sobre dados suficientes, se você fizer isso. E, se você tiver código existente usando ART, provavelmente não há problema em mantê-lo como está. Mas, para o novo código, eu provavelmente recomendaria usar o svg em conformidade com as especificações e escrevê-lo de uma maneira compatível com a web (react-native-) (a menos que precise de desempenho no nível do canvas / webgl). Uma implementação de compatibilidade index.web.js será incluída no próximo lançamento react-native-svg para este propósito também.

Eu estava pensando sobre como ler a opção "reduzir movimento" no React Native, mas parece que ela não foi implementada.
Qual seria a melhor maneira de fazer uma solicitação de recurso e obter visibilidade para ela? Https://react-native.canny.io/feature-requests ainda é o fórum preferido para solicitações de recursos?

@kristerkari Eu enviei um PR adicionando suporte para "reduzir o movimento" em AccessibilityInfo
https://github.com/facebook/react-native/pull/23839

@cpojer Oi, sinto muito ter saído por um tempo. Mudei com sucesso a barra de status reagente nativo Mas não o depreciou no núcleo. Devo fazer isso agora?
E também estou planejando criar uma versão adicional para o pacote react-native-status-bar.

@dmtrKovalenko sim, por favor!

Fez um PR para barra de status de suspensão de uso -> # 23898

Não tenho acesso para configurar bitrise para o repo react -native-svg,

@msand Eu acho que todos concordaram com o CircleCI, porque ele funciona mais rápido conforme o benchmark de @gengjiawen , mas não tenho certeza se isso é 'oficial'.

react-native-cameraroll também os tem, mas os testes estão falhando no Android.

Estou tendo problemas para fazer o teste do Android passar, o teste é muito simples (o aplicativo inicia), então é algo na configuração. Copiei a configuração do netinfo, mas não está funcionando por padrão. @matt-oakes, você vê de relance se há algo em particular que eu perdi?

@bartolkaruza Isso é algo que eu https://github.com/react-native-community/react-native-netinfo/pull/25

Vou enviar um PR para corrigir o rolo da câmera agora.

@cpojer algum plano de extrair o tvOS do core?

Acho que também devemos remover Button .

Remover ou extrair? Eu preferiria extrair do que remover.

Uma pergunta para bibliotecas nativas react que atualmente usam funcionalidades extraídas para os módulos da comunidade:

Qual é a abordagem recomendada para confiar nos módulos extraídos? Dependências diretas ou peerDependencies?

Por exemplo, reactotron-react-native atualmente usa AsyncStorage diretamente. Ao usar react-native-asyncstorage como uma dependência direta, isso pode levar ao uso de várias versões no aplicativo de consumo. Isso está sendo planejado ou deveria ser uma dependência de pares?

Eu acho que deveria ser uma dependência, e AsyncStorage define ReactNative como um peerDependency, desta forma ele poderia usar várias versões de AsyncStorage no mesmo aplicativo (exceto que você quer ter certeza de usar o mesmo, e você colocou isso claro na biblioteca leia-me), mas o processo de instalação mostrará um aviso se a dependência ReactNative não puder atender.

É simples assim? Não haveria potencialmente várias versões do módulo nativo nomeado "AsyncStorage"? Acho que isso pode levar a problemas, ou não?

Sim, haveria várias versões, mas se cada uma for autônoma e não compartilhar dados entre elas, não deverá haver problemas.

Olá @cpojer , gostaria de ajudar com alguns desses problemas. Posso começar com "Mover o componente PickerIOS / Picker mesclado para o repositório da comunidade"?

Olá @wagnermaciel , eu e @bartolkaruza estamos trabalhando nisso. E quase pronto. @cpojer, você pode criar um

https://github.com/jainkuniya/react-native-picker

@jainkuniya Não se preocupe. @cpojer Há algum problema aqui que você poderia atribuir a mim? Estou trabalhando com um grupo de amigos e todos estamos interessados ​​em nos envolver da maneira que pudermos 👍

@wagnermaciel obrigado por se juntar ao nosso esforço! Acabei de atualizar a postagem original e remover pessoas que não responderam às tarefas para as quais se inscreveram. Qualquer um dos acima sem um nome ao lado pode ser pego por você, se desejar. Em qual você quer trabalhar?

Olá @cpojer , posso ser designado para mover "ImagePickerIOS para um repositório da comunidade" - terei o maior prazer em mantê-lo. Muito obrigado antecipadamente!

@ aerlinn13 Eu coloquei você para baixo por causa disso. Basta enviar um PR para o repo e me pingar e cuidaremos disso a partir daí :) Obrigado!

@cpojer Obrigado pela resposta rápida! Você poderia atribuir "Remover ProgressBarAndroid do repositório, possivelmente mover para o repositório da comunidade" para mim? Eu adoraria trabalhar nisso. Obrigado!!!

@wagnermaciel feito! Aguardamos sua contribuição :)

Olá @cpojer , gostaria de mencionar o componente ToastAndroid. Você tem uma ideia do que fazer com isso?
Parece que ToastAndroid é usado em HMRLoadingView e LinkingExample. Portanto, é questionável como substituir o tipo de notificação para esses dois componentes.
De qualquer forma, se for usado internamente pelo FB, então não é um problema no momento e ignore meu comentário :)

Minha postagem original:

@cpojer e o componente Toast? Acho que deve ser descontinuado agora e removido mais tarde.
Razões:

  1. Toast é apenas outro tipo / estilo de notificação, existem muitos tipos de componentes de notificação
  2. Existe apenas implementação Android
  3. Há uma tonelada de componentes do tipo "brinde" mantidos pela comunidade https://github.com/search?q=react+native+toast que são multiplataforma

O que você acha disso?

@radeno Não acho que iremos removê-lo agora, mas podemos optar por fazer isso mais tarde.

Desculpe, @cpojer esteve muito ocupado no mês passado, mas vou retomar o trabalho no ProgressViewIOS hoje

@cpojer Acabei de notar que a opção "Obsoletar StatusBarIOS" está marcada, mas StatusBarIOS.ios e StatusBarIOS.android não mudaram desde 2018. Esqueci alguma coisa?

Se não faltar nada, desculpe. Caso contrário, me avise, pois posso ajudar com isso.

@cpojer Você poderia fornecer alguns esclarecimentos sobre onde encontrar ou como criar os arquivos para a pasta ios? Desde já, obrigado!

@cpojer pronto para mover qualquer componente que ainda não tenha sido atribuído ou lidar com as dependências JS de auditoria.

@cpojer Eu gostaria de contribuir com o

Quais são as principais prioridades? Você precisa de mais ajuda com os problemas principais (por exemplo, Mover ProgressViewIOS para um repositório da comunidade) ou com aqueles que estão na seção de trabalho futuro? Há alguns que não têm ninguém atribuído (como aquele para mover ProgressViewIOS), mas lendo o tópico, eles parecem já ter sido usados.

As principais prioridades da

Temos as instruções para fazer uma nova biblioteca RNC em algum lugar de um wiki ou algo assim? Eles serão úteis para manter e ter para outros encontrarem, não apenas para RNC, mas como uma espécie de modelo / guia para todas as bibliotecas.

Na verdade, acabei de encontrar isso , mas ainda não foi feito. :)

Acho que os próximos candidatos são:

  • KeyboardAvoidingView, SafeAreaView
  • Modal (?).

Ficaria feliz em receber SafeAreaView !

Essas migrações do núcleo ainda estão disponíveis? Em caso afirmativo, quais são os próximos candidatos atualizados? Eu gostaria de tentar ajudar também :)

Eu acho que @brentvatne @ide @ericvicenti @kmagiera informou opiniões sobre o que ainda pode ser movido e não impactar a experiência do desenvolvedor ao usar bibliotecas de terceiros, como navegação de reação e reanimada.

Uma das coisas em que poderíamos usar de ajuda é nos livrarmos do uso do ToolbarAndroid no RNTester no Android. Alguém poderia substituir seu uso por outra coisa?

Acabei de atualizar a postagem de nível superior. ImagePickerIOS é um dos componentes não reclamados em que o componente ainda não foi extraído. Alguém gostaria de assumir o esforço e enviar um PR para o repositório criado em https://github.com/react-native-community/react-native-image-picker-ios ?

Finalmente, parece que o trabalho de trazer DatePickerIOS e DatePickerAndroid nunca se materializou, consulte https://github.com/react-native-community/discussions-and-proposals/pull/85 - Esta é uma boa oportunidade! O ideal é que alguém se encarregue de extrair os dois componentes do DatePicker para este repositório: https://github.com/react-native-community/react-native-datepicker

Com duas exportações de alto nível, DatePickerIOS e DatePickerAndroid.

Depois que a versão inicial for enviada e os componentes forem descontinuados do RN, a comunidade poderá então mesclar os dois em um único componente.

cc @mmcknett e @Swaagie

ReactART adicionado como outra parte do RN que gostaríamos de extrair em um repositório separado: https://github.com/react-native-community/react-native-art

Procura-se ajuda!

posso pegar DatePickerIOS e DatePickerAndroid ?

@sijad , você já trabalhou com o React Native antes e tem um plano de como fazer a extração?

@cpojer Posso tomar ReactART a partir da próxima segunda-feira? No momento, estou divulgando e impulsionando a adoção do RN no trabalho, então tive que lidar com o ReactART e o código nativo como pacotes RN reutilizáveis.

@ivanmoskalev parece ótimo! Avise-me quando estiver começando e faça uma RP para o novo repo que criei :)

@cpojer , por acidente, você esqueceu completamente a filial review ? Tudo funcionou, sem médicos e alguns testes de desintoxicação.

editar: cc @sijad para conscientização

editar 2: https://github.com/Swaagie/react-native-datetimepicker todos funcionam como existiam no ramo review . Não tenho direitos para recriar esse repositório, mas gostaria de concluí-lo.

Também @sijad , se você gostaria de contribuir na forma de uma revisão completa e correções de código (se necessário), isso seria muito bem-vindo!

@cpojer @sijad o trabalho definitivamente se materializou como @Swaagie mencionou. Eu também estendi a mão no Discord.

Não se preocupe em perder o galho - pode ser fácil ignorar. Em retrospecto, deveria ter aconselhado Martijn a abrir um PR no estado Draft -estado enquanto ele continuava a fazer os PRs menores para o trabalho que partimos e colocamos em nossos sprints.

Existe um lugar onde eu poderia ajudar a sugerir documentação para procedimentos operacionais padrão para esses módulos menores no Núcleo Enxuto em react-native-community ? Aprendemos muito iterando em react-native-datetimepicker - adoraríamos compartilhar com a comunidade mais ampla para tornar a modularização mais fácil / rápida.

Oh cara, eu devo ter e recriado um repo com um nome diferente -.-

Você poderia enviar um PR para o novo selecionador de data?

Vai fazer! Obrigado pelo retorno rápido! Também sem ressentimentos, somos todos humanos e, como @crobbins disse, deveríamos ter tornado o trabalho mais visível.

@cpojer, você poderia atualizar a postagem principal e adicionar meu identificador do github a:
Merge DatePickerIOS and DatePickerAndroid, move to community repo
obrigado!

@Swaagie Done!

Seria incrível se você adotar https://github.com/yfuks/react-native-action-sheet e mesclá-lo com ActionSheetIOS

Se você pretende manter um repo que é criado para mover APIs para fora do núcleo React Native, certifique-se de que é capaz de suportar implementações para outras plataformas e certifique-se de olhar para as implementações equivalentes em react-native-web e reagir -nativo-windows.

@cpojer você está realmente fazendo tudo isso ou posso pegar um?
FWIW Eu fiz progresso com RCTImagePickerIOS e enviarei um PR nos próximos dias.

@ Johan-dutoit sim, infelizmente a remoção dos módulos só pode ser feita por um funcionário do Facebook. Aguardamos a extração do ImagePickerIOS!

@cpojer 🎉PR Enviado e testado 🎉

@cpojer , gostaria que você reagisse de forma nativa a essas pastas que são consideradas um pouco confusas, em um arquivo readme.md que explica o que pretende fazer em cada um dos arquivos. Isso facilitaria muito aqueles que desejam contribuir com o projeto. Como anzol

Por exemplo

image

  • React.js
    O principal objetivo deste arquivo é ...
  • react-native-implementation.js
    O objetivo principal deste arquivo é ...
  • react-native-interface.js
    O principal objetivo deste arquivo é ...

Esses três arquivos podem ser um pouco fáceis de entender, mas quando temos arquivos como esses pode ser um pouco complicado.
image

Obviamente, eles não precisam ser muito descritivos, muito menos descrever o que cada arquivo faz. Apenas a definição mais relevante ou básica do que se pretende fazer em uma determinada pasta.

Além disso, seria muito útil mostrar um esboço de como esse repositório funciona. Eu gostaria de saber sua opinião. Obrigado por tudo.

@cpojer Alguma coisa que eu possa pegar? Adoraria ajudar.

Como @FLGMwt mencionado em https://github.com/facebook/react-native/issues/23313#issuecomment -469288200, seria ótimo mover DrawerLayoutAndroid também

Seria ótimo mover ToastAndroid e Animated também

@ecreeth , esses arquivos estão usando createReactClass porque contam com mixins que ainda não foram removidos. Os arquivos que usam createReactClass ainda estão usando propTypes, mas serão descartados para o Flow assim que forem atualizados.

@TheSavior Muito obrigado pela informação!

Adoraria contribuir, vejo que "Mover botão para um repositório da comunidade" não foi usado. O que precisa ser feito? Adoraria ajudar!

Certo. Basta verificar os outros como https://github.com/react-native-community/react-native-netinfo. Você precisa ter o código nativo para ios e android, além de qualquer js. Infelizmente, não temos uma maneira específica de criar uma nova biblioteca.

Olá, como usar o webview após remover o webview no RN

Oi, adoraria ajudar! Vejo que todas as tarefas "remover" foram atribuídas a @cpojer , há alguma classe que eu possa remover para obter ajuda? por exemplo, a "ImageStore"

Ei, eu posso ajudar com a mudança de DatePickerComponents, por favor, deixe-me saber como posso ser de alguma ajuda @cpojer , Obrigado!

Olá @cpojer , posso ajudar na movimentação do componente CheckBox, ficarei grato se você puder me orientar ao longo do processo. Obrigada!

Estou feliz em tentar mover o Button para um novo repositório da comunidade. Gostaria de receber alguma orientação sobre como proceder, mas começarei dando uma olhada na fonte e começarei a me orientar. @cpojer, por favor, conselhos.

PR aberto para remover Remove DatePickerAndroid, DatePickerIOS, TimePickerAndroid

https://github.com/facebook/react-native/pull/26729

Como estamos decidindo quando adicionar novas exportações ao núcleo? Por exemplo, o gancho useWindowDimensions pode ser construído no espaço do usuário, mas foi adicionado ao núcleo - https://github.com/facebook/react-native/blob/3b3c95b0170e60983eb6e89b910d100d08eee141/Libraries/Utilities/useWindowDimensions .js

Acho que nosso pensamento com ganchos é que a modernização do núcleo reativo nativo para fornecer ganchos por padrão faz sentido. Não seria ótimo ter o react native apenas fornecendo APIs legadas e os ganchos envolvendo-as em um pacote de comunidade separado.

Portanto, acho que os ganchos são uma questão específica distinta de geralmente adicionar novas exportações ao núcleo.

Ei pessoal! Atualmente, não há nenhuma ação que possa ser realizada por membros da comunidade. As remoções atualmente programadas estão em espera por dois motivos:

  • Estamos esperando um pouco até removermos os componentes para dar tempo à comunidade para migrar para as versões extraídas.
  • As exclusões só podem ser feitas por alguém do Facebook porque, na verdade, estamos apenas movendo esses arquivos para serem internos do Facebook até que adotemos os módulos externos no futuro.

Com relação às APIs baseadas em ganchos, esse problema não é o caminho certo para essa discussão. Em geral, acredito que devemos adicionar APIs baseadas em gancho progressivamente à medida que repensamos nossa API pública no futuro.

Olá a todos, sou novo em contribuir para projetos de código aberto e gostaria de saber se ainda posso ajudar com esse problema.

As remoções atualmente programadas estão em espera por dois motivos ...

Foi um erro que ToolbarAndroid foi removido (silenciosamente) mesmo assim?

@cpojer Posso fazer 'Mover o botão para um

@Archulan você pode enviar seu PR para o botão react -native

@Archulan veja este comentário # 23313 (comentário)

@Archulan você pode enviar seu PR para o botão react -native

OK. Você pode me orientar sobre como fazer isso?

Acho que não faz sentido mover Button para fora. O componente é muito pequeno e é útil para obter algumas funcionalidades básicas sem a necessidade de instalar nenhuma biblioteca.

@brentvatne

Acho que não faz sentido mover Button para fora.

tão estranho como react contém <Button/>

após a revolução deve haver apenas

react-native = jsi(fabric & turbomodule) + codegen

outro poderia ser conduzido pela comunidade.

para obter algumas funcionalidades básicas.

talvez deva usar monorepo em react-native com react-native-element como react com react-dom

@cpojer O Vibration (https://reactnative.dev/docs/vibration) também está sendo movido para um projeto comunitário? Em caso afirmativo, e como parece pequeno o suficiente para começar, eu poderia ajudar com isso.

@cpojer eu poderia remover ImageStore ?

É possível ajudar com isso? Sou iniciante e acho que posso aprender muito com isso.
Cumprimentos.
Manuel Portero.

Se alguma ajuda ainda for necessária com isso, fico feliz em ajudar

Eu também

Eu gostaria de contribuir. Há algo que eu possa fazer?

Há algo que eu possa fazer?

Eu gostaria de contribuir, há algo que eu possa fazer?

Esta página foi útil?
0 / 5 - 0 avaliações