React-native: ☂️ Lean Core

Créé le 6 févr. 2019  ·  196Commentaires  ·  Source: facebook/react-native

Depuis plusieurs mois, nous discutons et progressons sur un projet appelé «Lean Core». Veuillez lire notre motivation pour ce projet . Au fil des ans, React Native a accumulé de nombreuses pièces qui sont maintenant obsolètes, inutilisées ou héritées. Il est temps de tout nettoyer et de mettre le référentiel dans un état beaucoup plus gérable à l'avenir.

Il s'agit d'une tâche globale destinée à suivre tout le travail nécessaire pour atteindre l'objectif d'un noyau plus léger, y compris le travail autour de la réorganisation du référentiel. Ce numéro est mis à jour afin que de nouveaux éléments soient ajoutés et que les éléments terminés soient (re) déplacés. Certains des éléments engendreront des problèmes distincts pour suivre le travail. Si vous ne voyez aucun nom attribué à l'un des éléments ci-dessous et que vous souhaitez aider, veuillez vous porter volontaire dans les commentaires et contactez-moi pour commencer!

Composants et temps d'exécution

React Native est actuellement livré avec un grand nombre de composants, dont beaucoup sont obsolètes ou obsolètes, mais ils font toujours partie du référentiel et augmentent la taille des applications. Pour les éléments de cette section, nous cherchons soit à supprimer complètement les éléments s'ils ne sont pas utilisés, soit nous aimerions les déplacer soit vers des référentiels gérés par la communauté, soit vers facebookarchive . La liste ici est en partie basée sur une enquête impressionnante de @ ax-fb. La migration peut être effectuée à peu près en suivant le guide de @ matt-oakes ci-dessous: https://github.com/facebook/react-native/issues/23313#issuecomment -461462981

  • [] Supprimer ImageStore (@cpojer)
  • [] Supprimer PushNotificationIOS (@cpojer)
  • [] Supprimer AsyncStorage (@cpojer)
  • [] Supprimer le curseur (@cpojer)
  • [] Supprimer ProgressBarAndroid (@cpojer)
  • [] Supprimer ProgressViewIOS (@cpojer)
  • [] Supprimer MaskedViewIOS (@cpojer)
  • [] Supprimer ActionSheetIOS (@cpojer)
  • [] Supprimer ImagePickerIOS (@cpojer)
  • [] Supprimer le sélecteur et le sélecteurIOS (@cpojer)
  • [] Supprimer DatePickerAndroid, DatePickerIOS (@cpojer)
  • [] Supprimer ReactART (@cpojer)

Dépendances tierces

Au fil des ans, nous avons accumulé un grand nombre de dépendances, en particulier JavaScript. Nous avons également déplacé des éléments hors de React Native, comme Metro et le react-native-cli . Cela signifie que nous avons laissé une grande quantité de dépendances d'outils dans notre package.json, dont beaucoup seront inutilisées par RN lui-même et ne seront pas mises à jour vers les dernières versions, ce qui entraînera une surcharge de l'installation complète de React Native. Ce serait également formidable de faire un audit de toutes les dépendances utilisées et d'identifier celles qui pourraient être supprimées.

  • Dépendances JavaScript

    • [] Vérifiez quelles dépendances sont volumineuses et si elles peuvent être réduites

    • [] Déterminez quelles dépendances peuvent être mises à niveau vers leurs dernières versions pour les correctifs de sécurité

    • [] Déterminez quelles dépendances peuvent être dédupliquées (= réduire les incohérences de version) pour une taille d'installation plus petite

  • Déplacer le code natif de React vers des dépendances externes

    • [] Identifiez le code JavaScript qui pourrait être mieux servi par un package tiers au lieu d'en conserver une copie ou notre propre implémentation

Structure du référentiel

À l'heure actuelle, le référentiel React Native est un grand référentiel avec peu d'organisation qui favorise la séparation des préoccupations. Dans le cadre de cet effort, notre objectif est également de faire évoluer les choses vers une structure plus gérable. Dans ce cadre, nous aimerions suivre un modèle monorepo composé de plusieurs packages plus petits. Ce sera une migration graduelle et nous ne suivrons que le travail initial pour faire décoller cela.

  • [] Fournir une configuration initiale qui fonctionne avec le référentiel existant, avec plusieurs packages et qui joue également bien avec la configuration interne de Facebook (@cpojer)
  • [] TODO: Identifiez plus de travail nécessaire dans ce domaine

Travail terminé


Cliquez pour voir les travaux antérieurs avant la création de ce problème

Good first issue Help Wanted Ran Commands Discussion

Commentaire le plus utile

Je voulais faire une mise à jour rapide sur les progrès que tout le monde a accomplis sur l'effort Lean Core. Je veux juste dire à quel point je suis époustouflé par toutes vos contributions en un peu plus d'une semaine. Merci tellement tellement!

Voici tous les travaux déjà terminés:

  • NetInfo (https://github.com/react-native-community/react-native-netinfo) a été séparé avec succès et publié sur npm via @ react-native-community / netinfo par @ matt-oakes, qui a même ajouté de nouveaux tests et de nouvelles fonctionnalités au module!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1) a été séparé avec succès par @ferrannp.
  • AsyncStorage (https://github.com/react-native-community/react-native-async-storage) a été retiré par @Krizzu.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1) a été déplacé dans un dépôt distinct par @dmtrKovalenko.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1) a été séparé par @michalchudziak.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1) a été transformé en dépôt communautaire par @FonDorn.
  • PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1) a été extrait par @rafaellincoln.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1) a été extrait par @Trancever.
  • @EvanBacon a ajouté un message d'obsolescence pour ImageStore dans # 23330.
  • @wellmonge a fusionné AlertIOS et Alert dans # 23318.
  • Les ingénieurs de Callstack ont ​​publié la première version de la nouvelle CLI React Native: https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

Je veux également souligner comment l'extraction de ces modules peut conduire à une meilleure maintenance de ces modules, c'est-à-dire @ matt-oakes a ajouté des tests pour NetInfo (https://github.com/react-native-community/react-native-netinfo/pull/ 4) et @ifsnow ont ajouté des types de flux à AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4). En découplant ces composants de React Native (et Facebook), ils peuvent se déplacer beaucoup plus rapidement individuellement sans être bloqués par un employé de Facebook. De plus, comme nous pouvons migrer les problèmes existants et les demandes d'extraction depuis le référentiel React Native, cela facilitera également la maintenance de React Native lui-même et nous serons en mesure de répondre aux demandes d'extraction plus rapidement!

Voici ce sur quoi nous travaillons ou travaillons ensuite:

  • Supprimer VibrationIOS
  • Supprimer les dépendances tierces inutilisées
  • Commencez à migrer le code interne de Facebook pour utiliser les nouveaux packages react-native-community

Encore une fois, à tous ceux qui ont aidé jusqu'à présent, merci!

Tous les 196 commentaires

@cpojer je voudrais supprimer SnapshotViewIOS 🔪

@cpojer , merci d'avoir tout rassemblé!

Je suis prêt à résoudre quelques problèmes, à commencer par le déplacement d'AsyncStorage.

Je serais heureux de vous aider à déplacer NetInfo vers un dépôt communautaire.

Serait-il préférable de créer d'abord un dépôt Github personnel, puis de le migrer potentiellement vers l'organisation de la communauté react

@cpojer , je voudrais aider à certains de ces problèmes, puis-je commencer par "Fusionner AlertIOS avec Alert"?

C'est génial! J'ai mis vos noms à côté des éléments ci-dessus.

@jdmunro pouvez-vous envoyer un PR et m'y assigner? Ensuite, je peux le reprendre et supprimer des éléments spécifiques à FB avant d'atterrir.
@Krizzu et @ matt-oakes j'ai créé https://github.com/react-native-community/react-native-async-storage et https://github.com/react-native-community/react-native-netinfo pour vous d'envoyer des PR avec tout le code nécessaire pour en faire des modules tiers. Idéalement, dans la première étape, vous prendrez simplement le code du repo RN et le placerez dans des dépôts séparés. Afin de nous assurer que cela fonctionne, nous pourrions ensuite les relier à RN en tant que dépendance et supprimer l'implémentation d'origine. Plus loin, nous pouvons en fait le déplacer vers un package optionnel.
@wellmonge Sonne bien! Je ne sais pas tout à fait ce que le travail impliquera, mais peut-être que vous pouvez simplement vérifier les deux modules et voir si vous pouvez les unifier?

@cpojer je pourrais aider à déplacer le curseur 🙂

Après cela, je peux prendre autre chose si vous avez encore besoin d'aide

@michalchudziak Génial! J'ai créé https://github.com/react-native-community/react-native-slider , veuillez consulter mon commentaire ci-dessus sur la marche à suivre.

En tant que nom du projet dans package.json, veuillez utiliser @react-native-community/<project name> , c'est-à-dire. @react-native-community/slider .

@cpojer Je peux prendre ViewPagerAndroid . Je pense qu'il vaut mieux le déplacer vers un référentiel communautaire (si vous pouvez créer le référentiel pour moi, merci 😄) que de simplement le supprimer car d'autres packages ont implémenté ce comportement sur JS pour iOS et ils relaient le comportement natif pour Android.

Hey @cpojer, je voudrais aider en fusionnant et en déplaçant Picker et PickerIos. :)

@ferrannp a créé https://github.com/react-native-community/react-native-viewpager pour vous! Voir les messages ci-dessus.
@jainkuniya merci! Je ne sais pas exactement à quoi cela ressemblera mais peut-être que vous pouvez voir comment les unifier et commencer à envoyer de petits PR pour réagir en natif.

C'est génial! J'ai mis vos noms à côté des éléments ci-dessus.

@jdmunro pouvez-vous envoyer un PR et m'y assigner? Ensuite, je peux le reprendre et supprimer des éléments spécifiques à FB avant d'atterrir.
@Krizzu et @ matt-oakes j'ai créé https://github.com/react-native-community/react-native-async-storage et https://github.com/react-native-community/react-native-netinfo pour vous d'envoyer des PR avec tout le code nécessaire pour en faire des modules tiers. Idéalement, dans la première étape, vous prendrez simplement le code du repo RN et le placerez dans des dépôts séparés. Afin de nous assurer que cela fonctionne, nous pourrions ensuite les relier à RN en tant que dépendance et supprimer l'implémentation d'origine. Plus loin, nous pouvons en fait le déplacer vers un package optionnel.
@wellmonge Sonne bien! Je ne sais pas tout à fait ce que le travail impliquera, mais peut-être que vous pouvez simplement vérifier les deux modules et voir si vous pouvez les unifier?

Sûr! Je vais le faire et vous faire rapport.

Peut aider avec StatusBarIOS et PushNotificationIOS

@cpojer Avez-vous une préférence pour le nom du package Android?

En utilisant NetInfo comme exemple, il s'agit actuellement de com.facebook.react.modules.netinfo . Devrions-nous le rendre standard pour tous les modules extraits avec quelque chose comme com.reactnativecommunity.modules.netinfo ?

Puis-je aider avec

  • Déplacer SegmentedControlIOS vers un référentiel communautaire
  • Déplacer ProgressViewIOS vers un référentiel communautaire

Je prends la case à cocher, s'il vous plaît.


Merci d'avoir soumis votre problème. Pouvez-vous revoir votre description et vous assurer que le modèle de problème a été rempli dans son intégralité?

👉 Cliquez ici si vous souhaitez jeter un autre regard sur le modèle de problème de rapport de bogue.

@dmtrKovalenko vous a proposé de StatusBarIOS, créé https://github.com/react-native-community/react-native-statusbar
La communauté @ matt-oakes dans le nom du paquet sonne bien, mais si nous gardons la communauté existante, cela me convient aussi.
@kdenz Créé https://github.com/react-native-community/react-native-segmented-control pour le SegmentedControlIOS
@vonovak a créé https://github.com/react-native-community/react-native-checkbox pour le dépôt de case à cocher

Juste pour résumer les étapes approximatives que nous devrions suivre pour les extractions:

  1. Extrayez la version actuelle du module sur lequel vous travaillez et toutes ses dépendances dans un référentiel git séparé, et envoyez un PR à celui qui a été créé pour votre communauté RN. Voir react-native-webview pour un exemple de son fonctionnement s'il contient du code natif.
  2. Ajoutez un avertissement d'obsolescence à React Native à l'aide du module warnOnce qui existe déjà, voir react-native-implementation.js pour un exemple.
  3. Nous fermerons ensuite tous les problèmes / PR et demanderons aux personnes d'utiliser à la place les projets et référentiels nouvellement créés.
  4. Après une ou deux versions, nous supprimerons entièrement le code de React Native, auquel cas seul le module externe fonctionnera.
  5. Alternativement, nous pouvons essayer une approche dans laquelle nous supprimerons immédiatement le code du référentiel RN, mais ajouterons le nouveau référentiel de communauté en tant que dépendance à React Native et garderons les API existantes en état de fonctionnement. Je ne sais pas si cela fonctionnera pour les modules avec des dépendances natives, cependant.

S'il vous plaît laissez-moi savoir si vous avez des questions :)

  • Déplacer ImageStore vers un référentiel communautaire

Je pense que nous devrions abandonner cela en faveur de toute solution FileSystem existante. Le cas d'utilisation principal consiste à obtenir Base64 à partir d'une image. Il n'a pas non plus de support Android.

Salut @cpojer! J'aiderais avec

  • Supprimer MaskedViewIOS et éventuellement passer au dépôt communautaire

J'aimerais aider!
Pourrais-je travailler sur

  • Supprimer ProgressBarAndroid du référentiel, éventuellement déplacer vers le référentiel communautaire
    ?

Salut @cpojer! Puis-je aider avec

  • Déplacez le code natif d'ActionSheetIOS vers expo.

@cpojer J'adorerais vous aider, inscrivez-moi pour Libraries / CameraRoll (composants ImagePickerIOS et CameraRoll)

L'application RNTester n'a pas son propre package.json, donc tous les composants que nous supprimons doivent être supprimés de l'application RNTester ou doivent rester dans le noyau en tant que dépendance. Quelle est l'approche de RNTester face à cet amincissement?

@cpojer Je peux vous aider à déplacer le Presse-papiers vers un

Puis-je vous aider dans cette tâche? @cpojer

  • Déplacez Picker vers un référentiel communautaire.

@jainkuniya Peut-être pouvons-nous travailler ensemble?

@zhaozhiming oui , ce que je prévoyais, c'est d'abord de le fusionner dans le repo RN lui-même, puis de passer au repo communautaire.

Intéressant. Qu'arrivera-t-il au RNTester? J'espère que nous pourrons le garder avec tous les composants.

@cpojer je peux vous aider

  • Déplacer "Partager" vers le référentiel de la communauté

De plus, il serait très utile d'avoir une sorte de modèle coordonné, donc il y a le code natif en tant que bibliothèque, un moyen facile de le développer et de contribuer.

@pvinis Jetez peut-être un œil à ce commit du repo NetInfo sur lequel je travaille:

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

Il n'y a pas encore de code NetInfo là-bas, mais il contient les parties Android et iOS de la bibliothèque et un exemple de projet qui relie sans avoir besoin d'un package.json imbriqué.

Je prévois maintenant de déplacer le code NetInfo, puis de déplacer les exemples RNTester dans le projet example .

@EvanBacon sonne bien. Voulez-vous vous inscrire pour ajouter un avertissement à RN pour désapprouver ImageStore et recommander une solution tierce?

@ matt-oakes a déjà fait un excellent travail avec NetInfo, c'est un modèle à mettre en miroir pour toutes les extractions: https://github.com/react-native-community/react-native-netinfo/pull/1

@pvinis comme @ matt-oakes dit que chaque projet doit avoir ses propres exemples et code de test. Je pense qu'une fois que nous avons tous terminé, nous pouvons envisager de créer un seul exemple RNTester qui extrait tous les modules extraits les plus couramment utilisés et les rassemble dans une seule application.

VirtualizedList reste, non? Je l'ai déjà vu dans la liste mais je vois que ce n'est plus le cas.

Hey @cpojer, je peux me charger de déplacer ImageEditor vers un dépôt séparé.

@cpojer j'adorerais travailler sur celui-ci

  • Identifiez toutes les dépendances dans package.json qui ne sont pas directement utilisées dans React Native

@ matt-oakes comment comptez-vous tester ou aider au développement de cette bibliothèque? nous avons besoin d'un projet qui incorpore la bibliothèque, qui peut être facilement mis à jour / éliminé et recréé ou quelque chose du genre.

Ce serait facile de cette façon pour les autres de contribuer. Cela pourrait être une application "exemple", mais à mon avis, une application "exemple" sert à montrer comment utiliser une bibliothèque, où une application "dev" serait là où la bibliothèque peut être développée, testée, etc.

Des idées pour ça?

@brunolemos oui, désolé mon erreur de l'avoir mis là-dedans au début.

@Trancever J'ai créé https://github.com/react-native-community/react-native-image-editor pour que vous puissiez envoyer un PR contre!
@ nimish-gupta c'est génial! Pouvez-vous faire l'analyse et créer un problème distinct qui traite des dépendances inutilisées; ou envoyer une demande d'extraction avec des explications claires sur les raisons pour lesquelles ils peuvent être supprimés (c'est-à-dire qu'ils ne peuvent pas être trouvés, etc.)
@pvinis, nous https://github.com/react-native-community/react-native-webview ou https://github.com/react-native-community/react-native -netinfo me semble le plus logique.

salut @cpojer pour le projet PickerIOS et Picker, je prévois de suivre les étapes suivantes:

  • Ajoutez un warning dans le PickerIOS , qu'il est obsolète et sera supprimé dans une version ultérieure.
  • Après la sortie, supprimez PickerIOS de RN .

En attendant, nous pouvons déplacer Picker vers le dépôt communautaire.

Suggestions?

@jainkuniya Je pense que l'idée est bonne, mais gardez à l'esprit que Picker utilise PickerIOS sous le capot. Je pense que ce serait mieux si nous pouvions nous débarrasser de PickerAndroid et PickerIOS et à la place d'exposer uniquement Picker, qu'en pensez-vous? De nombreux autres composants fonctionnent déjà de cette façon.

Pour donner aux gens une idée du processus que j'ai suivi pour déplacer le code NetInfo:

1) Utilisation de la bibliothèque create-react-native-library pour générer l'échafaudage: npx react-native-create-library --platforms ios,android --package-identifier com.reactnativecommunity.netinfo --prefix RNC --license MIT netinfo
2) Création d'un exemple de projet en exécutant react-native init NetInfoExample à la racine du nouveau projet de bibliothèque. J'ai ensuite renommé le dossier créé en juste example .
3) Suppression du example/package.json et déplacement des dépendances et des scripts à la racine package.json . J'ai également déplacé certains des autres fichiers générés comme babel.config.js à la racine du projet.
4) Mise à jour des références aux bibliothèques React Native dans les exemples de fichiers gradle Android et le projet Xcode. Faire une recherche et remplacer pour ../node_modules/react-native et le remplacer par ../../node_modules/react-native était suffisant.
5) Mise à jour du chemin d'accès au nom du module principal dans MainApplication.java et AppDelegate.m de index à example/index .
6) Ajout des modules babel-plugin-module-resolver et configuration comme ceci dans babel.config.js . Cela vous permet d'importer le code de la bibliothèque de la même manière qu'un utilisateur le ferait.
7) Lié manuellement le projet de bibliothèque avec l'exemple. C'est très similaire à la façon dont vous le feriez habituellement, mais le chemin sur Android dans settings.gradle sera juste ../../android ( comme ceci ).
8) J'ai ensuite déplacé les fichiers de code natif, en les renommant avec un préfixe RNC (React Native Community) au lieu de l'ancien RCT . J'ai placé le code Javascript dans js et j'ai changé le chemin de l'index dans package.json .
9) J'ai ensuite déplacé les exemples de RNTester dans le projet example et j'ai un peu rangé le code. N'hésitez pas à récupérer le fichier example/index.js pour contenir les exemples que vous copiez depuis RNTester. C'est juste un emballage léger comme il y en avait dans RNTester à l'origine.
10) J'ai un peu arrangé le projet pour qu'il corresponde à la

Espérons que cela aide les gens :)

@pvinis Je pense qu'il y a beaucoup de croisements entre montrer aux gens comment utiliser la bibliothèque et aider au développement, en particulier lorsque la surface est petite comme avec NetInfo. Le example dans le projet remplit à peu près les deux objectifs en même temps.

Pour les tests automatisés, je ne l'ai pas encore complètement examiné, cependant, j'ai déjà utilisé Jet (basé sur Detox et utilisé par react-native-firebase ) pour faire des tests de bout en bout avec react-native- emplacement .

Impressionnant. J'ai fait le même processus il y a quelques jours en essayant d'extraire des fonctionnalités d'application dans une bibliothèque. Je n'ai pas fait la suppression de package.json et quelques autres petites étapes. Je vais essayer de vérifier tout ce que vous avez fait et j'ai fait, et voir s'il reste des choses peu claires.

Merci pour les détails. :)

@cpojer SnapshotViewIOS semble également être utilisé en interne pour certains tests d'intégration iOS. Il n'est disponible que si vous créez un lien avec le module natif RCTTest . L'utilisation est ici: https://github.com/facebook/react-native/blob/master/RNTester/js/RNTesterApp.ios.js#L180

Sommes-nous simplement en train de supprimer SnapshotViewIOS de l'exportation RN publique, c'est-à-dire qu'il devrait toujours être disponible en privé pour l'utilisation du test?

Il y a eu une discussion sur la façon de conserver l'historique des fichiers qui sont importés. J'ai trouvé ce guide qui était vraiment utile et m'a permis de le faire pour le module NetInfo:

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

En résumé, vous devez d'abord savoir quels fichiers vous devez copier. Vous créez ensuite un script comme celui-ci:

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

Vous devez placer ce fichier quelque part en dehors du référentiel.

Vous devez ensuite exécuter ces commandes:

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

La première commande filter-branch prendra un certain temps et utilisera le script pour déplacer tous les fichiers qui vous intéressent dans un seul dossier. La deuxième commande devrait être assez rapide et déplacera les fichiers du nouveau dossier vers la racine, puis ne conservera que les validations qui modifient les fichiers que vous souhaitez conserver.

Vous pouvez alors vous retrouver avec une histoire comme celle-ci: https://github.com/react-native-community/react-native-netinfo/commits/master

salut, @cpojer j'adorerais travailler sur

  • Déplacer ProgressViewIOS vers un référentiel communautaire

Merci

Remarque sur le polyfill de récupération:

Supprimez le polyfill fetch du repo et réutilisez whatwg-fetch directement si possible

Nous avons dû le bifurquer car notre module Blob n'est pas standard et ne libère pas automatiquement ses ressources. Il devrait être plus facile d'implémenter le nettoyage automatique des ressources avec le nouveau système de modules natifs, mais d'ici là, nous devrions conserver le polyfill fourchu.

@cpojer Déplacer "Share" vers le référentiel

Veuillez jeter un œil à cette branche (je supprimerai ce dépôt une fois que nous aurons un nouveau dépôt communautaire)

Remarque sur le polyfill de récupération:

Supprimez le polyfill fetch du repo et réutilisez whatwg-fetch directement si possible

Nous avons dû le bifurquer car notre module Blob n'est pas standard et ne libère pas automatiquement ses ressources. Il devrait être plus facile d'implémenter le nettoyage automatique des ressources avec le nouveau système de modules natifs, mais d'ici là, nous devrions conserver le polyfill fourchu.

Depuis que j'ai besoin du support AbortController.Signal, je cherchais à faire une mise à jour du polyfill fourchu. Est-ce que cela cadrerait avec l'avenir du noyau intérieur de polyfill fetch?

@cpojer J'aimerais travailler sur PushNotificationIOS.

@cpojer je pourrais vous aider

  • Déplacer ImageEditor vers un référentiel communautaire

Merci!

@ nicholaslee119 Créé https://github.com/react-native-community/react-native-progress-view pour vous. Consultez les commentaires ci-dessus pour savoir comment progresser.
@Ansalibrahim Bon point. Créé https://github.com/react-native-community/react-native-simple-share pour vous. Veuillez envoyer un PR là-bas!
@rafaellincoln Créé https://github.com/react-native-community/react-native-push-notification-ios sur lequel travailler.
@dratwas @Trancever est déjà dessus, veuillez travailler avec lui sur le repo qui a été créé pour cela.
@ Jyrno42 Pouvons-nous passer à un polyfill tiers qui prend en charge tout ce dont nous avons besoin?

@cpojer Désolé, je n'ai pas vu que @Trancever y
Je pourrais prendre Move ImageStore to a community repo si ce n'est pas déjà fait ou Move ImagePickerIOS to a community repo

Quelqu'un pourrait-il me dire pourquoi AsycnStorage et PushNotificationIOS seront supprimés? Je pense que ceux-ci sont tous deux utilisés par de nombreuses applications, alors peut-être pourrions-nous les déplacer vers la communauté au lieu de simplement les supprimer?

Surtout PushNoticationIos est utilisé par beaucoup de gens. J'utilise https://github.com/zo0r/react-native-push-notification qui utilise PushNotificationIos. Y a-t-il une meilleure alternative que je ne connais pas?

@vdlindenmark AsyncStorage n'est pas en cours de suppression, mais déplacé vers la communauté

Je voudrais prendre Picker !!!

Si Move ImagePickerIOS to a community repo n'est pas déjà pris, je serais ravi de vous aider 😄

Hey @cpojer, j'ai soumis # 23359 pour fusionner PickerIOS et Picker . S'il-vous-plaît évaluez :).

Ce problème doit être épinglé 📌

@dratwas Je suis désolé, je suis confus là-bas. En fait, nous abandonnons entièrement ImageStore car des options tierces sont déjà disponibles, comme l'a souligné @EvanBacon. Voulez-vous vous porter volontaire pour un autre module?
@vdlindenmark comme le souligne @Krizzu , ces deux modules vont rester dans les modules de la communauté.
@Keraito J'ai créé https://github.com/react-native-community/react-native-image-picker-ios pour que vous puissiez envoyer un PR.
@andersonaddo terminé! Merci pour la suggestion.

@cpojer Je me demande si vous avez également évalué la possibilité de déplacer AccessibilityInfo vers le dépôt communautaire.

Je ne sais pas s'il pourrait vivre en dehors du noyau, mais je vois l'avantage d'augmenter la prise en charge de l'accessibilité sur React-Native.

Il y a déjà des propositions pour augmenter la prise en charge de l'accessibilité dans la couche de vue et la rendre plus multiplateforme (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), mais quelque chose que RN ne fait pas 'pas fournir pour le moment, et il n'y a pas de problème ou de proposition à ce sujet, c'est l'accès aux préférences de certains utilisateurs au niveau du système opérationnel. Par exemple: il n'y a aucun moyen d'obtenir l'option "réduire le mouvement", qui est nécessaire pour adapter l'application en réduisant / désactivant les animations .

Je pense que ces options fournies par UIAccessibility sur iOS (je ne connais pas l'équivalent sur Android) pourraient être disponibles à partir de AccessibilityInfo .

Et avoir un repo communautaire pourrait attirer plus de contributions pour ce problème particulier.

Merci.

@cpojer Je ne vois aucun module non attribué, donc je parlerai à @Trancever si je peux aider avec:

  • Déplacer ImageEditor vers un référentiel communautaire

@elucaswork L' accessibilité est extrêmement importante et je pense qu'elle doit faire partie de React Native lui-même. Nous devons faire tout notre possible pour améliorer la prise en charge de l'accessibilité dans React Native dès la sortie de la boîte.
@dratwas sonne bien!

  • Déplacez Picker vers un référentiel communautaire.

@cpojer puis -je démarrer ce problème?

quelque chose que RN ne fournit pas pour le moment, et il n'y a pas de problème ou de proposition à ce sujet, c'est l'accès aux préférences de tous les utilisateurs au niveau du système opérationnel. Par exemple: il n'y a aucun moyen d'obtenir l'option "réduire le mouvement", qui est nécessaire pour adapter l'application en réduisant / désactivant les animations .

Je pense que ces options fournies par UIAccessibility sur iOS (je ne connais pas l'équivalent sur Android) pourraient être disponibles à partir de AccessibilityInfo .

Je me demandais juste aujourd'hui comment lire l'option "réduire le mouvement" dans React Native, mais il semble qu'elle n'ait pas été implémentée.

Quelle serait la meilleure façon de faire une demande de fonctionnalité et d'en obtenir une certaine visibilité? Est-ce que https://react-native.canny.io/feature-requests est toujours le forum préféré pour les demandes de fonctionnalités?

Que devons-nous faire avec VibrationIOS ? Il a été marqué comme obsolète au profit de Vibration depuis mars 2016 . Semble être un candidat facile pour la suppression.

@hramos excellente suggestion! Je vais m'occuper de supprimer celui-là.

@cpojer J'ai remarqué que le Picker / PickerIOS n'était assigné à personne. J'aimerais aussi y travailler, si possible.

Salut @rafaellincoln , pour les sélections, je suppose que nous prévoyons de le combiner d'abord dans le repo RN lui-même, puis de le déplacer vers le repo communautaire. Pour la fusion, j'ai soumis le PR # 23359

Je voulais faire une mise à jour rapide sur les progrès que tout le monde a accomplis sur l'effort Lean Core. Je veux juste dire à quel point je suis époustouflé par toutes vos contributions en un peu plus d'une semaine. Merci tellement tellement!

Voici tous les travaux déjà terminés:

  • NetInfo (https://github.com/react-native-community/react-native-netinfo) a été séparé avec succès et publié sur npm via @ react-native-community / netinfo par @ matt-oakes, qui a même ajouté de nouveaux tests et de nouvelles fonctionnalités au module!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1) a été séparé avec succès par @ferrannp.
  • AsyncStorage (https://github.com/react-native-community/react-native-async-storage) a été retiré par @Krizzu.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1) a été déplacé dans un dépôt distinct par @dmtrKovalenko.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1) a été séparé par @michalchudziak.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1) a été transformé en dépôt communautaire par @FonDorn.
  • PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1) a été extrait par @rafaellincoln.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1) a été extrait par @Trancever.
  • @EvanBacon a ajouté un message d'obsolescence pour ImageStore dans # 23330.
  • @wellmonge a fusionné AlertIOS et Alert dans # 23318.
  • Les ingénieurs de Callstack ont ​​publié la première version de la nouvelle CLI React Native: https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

Je veux également souligner comment l'extraction de ces modules peut conduire à une meilleure maintenance de ces modules, c'est-à-dire @ matt-oakes a ajouté des tests pour NetInfo (https://github.com/react-native-community/react-native-netinfo/pull/ 4) et @ifsnow ont ajouté des types de flux à AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4). En découplant ces composants de React Native (et Facebook), ils peuvent se déplacer beaucoup plus rapidement individuellement sans être bloqués par un employé de Facebook. De plus, comme nous pouvons migrer les problèmes existants et les demandes d'extraction depuis le référentiel React Native, cela facilitera également la maintenance de React Native lui-même et nous serons en mesure de répondre aux demandes d'extraction plus rapidement!

Voici ce sur quoi nous travaillons ou travaillons ensuite:

  • Supprimer VibrationIOS
  • Supprimer les dépendances tierces inutilisées
  • Commencez à migrer le code interne de Facebook pour utiliser les nouveaux packages react-native-community

Encore une fois, à tous ceux qui ont aidé jusqu'à présent, merci!

@cpojer

  • Supprimer les dépendances inutilisées
  • Identifiez toutes les dépendances dans package.json qui ne sont pas directement utilisées dans React Native

Les tâches ci-dessus sont effectuées à l'aide des PR # 23428 et # 23467

@cpojer

  • Supprimer SwipeableList

adressé dans # 23484, peut également supprimer ListView si vous le souhaitez.

FWIW, CameraRoll a une dépendance sur ListView. Peut-être que le déplacer en premier serait utile pour supprimer ListView.

FWIW, CameraRoll a une dépendance sur ListView. Peut-être que le déplacer en premier serait utile pour supprimer ListView.

Le fichier CameraRollView dans RNTester semble être la seule chose à utiliser ListView dans ReactNative. Peut-être qu'un PR pour échanger cela contre FlatList serait une bonne chose à faire pour briser cette dépendance. J'accepterais volontiers que si cela se produit avant que CameraRoll ne soit complètement retiré

Par rapport aux autres versions, la taille est augmentée, ce qui est un point clé, y a-t-il donc un moyen de réduire la taille dans React Native 0.58.4, il a fallu 18 Mo
Voici mes dépendances
"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"

J'ai vu que navigatorIos a été supprimé de rn 0,59. Je me suis demandé s'il existe déjà un package communautaire pour cela? @cpojer

@cpojer je peux travailler sur celui-ci, si quelqu'un n'a pas commencé à travailler dessus

  • Supprimez le polyfill fetch du repo et réutilisez whatwg-fetch directement si possible

@ nimish-gupta essayez-le! Il peut y avoir des pièges, mais nous pouvons en discuter sur le PR et voir comment cela se passe. Ce n'est peut-être pas faisable, mais essayons de voir jusqu'où nous pouvons aller.

@cpojer Je me demande si KeyboardAvoidingView est assez utile pour rester dans le noyau.
Avez-vous pensé à le supprimer également pour laisser de l'espace pour des solutions plus robustes telles que https://github.com/APSL/react-native-keyboard-aware-scroll-view , ou est-il très utile de rester dans le noyau ?

@elucaswork nous l'utilisons étonnamment beaucoup chez FB, donc je pense que nous continuerons à le maintenir pendant un moment. Peut-être pourrons-nous discuter de le déplacer vers un dépôt séparé une fois que nous aurons terminé le travail actuellement envisagé dans le cadre de ce projet.

Excellent travail ici. Cependant, j'essayais d'utiliser NetInfo et AsyncStorage et il semble qu'il leur manque des fichiers podspec . @cpojer Je pense que beaucoup d'entre nous utilisent des pods, ne devrions-nous pas en faire une sorte de standard avec des paquets natifs de réaction qui ont des codes ios natifs?

Excellent travail ici. Cependant, j'essayais d'utiliser NetInfo et AsyncStorage et il semble qu'il leur manque des fichiers podspec . @cpojer Je pense que beaucoup d'entre nous utilisent des pods, ne devrions-nous pas en faire une sorte de standard avec des paquets natifs de réaction qui ont des codes ios natifs?

Il semble que ceux-ci aient des sous-spécifications dans le podfile React Native qui doivent probablement être ajoutées aux nouveaux dépôts: https://github.com/facebook/react-native/blob/master/React.podspec#L301 -L304

@syaau @TheSavior Bon endroit. J'ai ouvert un PR pour ajouter un Podspec au nouveau repo NetInfo:

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

@cpojer dans mon expérience KeyboardAvoidingView est vraiment floconneux, peut-être que c'est une bonne opportunité de l'améliorer si ça va rester sur le noyau ??

Je voudrais proposer que nous abandonnions ART en faveur de react-native-svg .

@justDanielMata ouais, je pense vraiment qu'il devrait être amélioré s'il reste dans le noyau, mais cela devrait être traité dans une discussion différente.
@EvanBacon J'en discuterai avec l'équipe et je vous

Supprimer WebView du repo RN

Je suis heureux de prendre ça

@ericlewis malheureusement que l'on ne peut être fait que du côté de FB car nous en dépendons toujours en interne.

NavigatorIos a été supprimé de react-native , @cpojer pouvez-vous s'il vous plaît créer un dépôt pour celui-ci sous react-native-community ? Je veux revenir en arrière, si ça va

j'ai une version de travail ici
https://github.com/michaelknoch/react-native-navigator-ios

@sijad (pour info: je n'ai corrigé aucune importation de type de flux interrompu)

@sijad Nous aimerions ne mettre dans react-native-community que les composants que nous recommandons toujours d'utiliser. Les composants que nous sortons de React Native dans le cadre de Lean Core ci-dessus sont tous de bons composants à utiliser dans vos applications. NavigatorIOS n'est pas quelque chose que nous voulons que les gens continuent d'utiliser, car nous recommandons d'autres solutions de navigation. Cependant, il semble que @michaelknoch lui ait

mais pourquoi déconseillez-vous l'utilisation des navigatorios? Pensez-vous que les performances de la navigation basée sur JS (par exemple, React-Navigation) sont suffisamment rapides pour que la navigation native ne soit plus obligatoire?
@cpojer

@cpojer Hi vient de créer un PR pour ProgressViewIOS https://github.com/react-native-community/react-native-progress-view/pull/1

@michaelknoch au contraire, nous vous recommandons vivement d'utiliser une solution de navigation native. Il se trouve que NavigatorIOS était un système de navigation hérité que nous n'utilisons plus sur Facebook. À l'heure actuelle, nous utilisons notre propre système de navigation natif personnalisé sur Facebook qui n'est malheureusement pas open source. Nous recommandons aux gens d'utiliser https://github.com/wix/react-native-navigation.
@kdenz génial, je vais le vérifier!

@cpojer Je SegmentedControlIos et d'ajouter un exemple d'application.

  • J'ai testé le composant et tout fonctionne bien dans un nouveau projet RN.
  • Publié à npm .

@cpojer a terminé le transfert de Clipboard-Api du noyau RN à la version communautaire et a ajouté un exemple d'application pour tout tester.

  • J'ai testé le composant et tout fonctionne bien dans un nouveau projet RN.
  • Publié à npm .

@cpojer J'ai récemment commencé avec

  • Déplacer "TestModule" natif dans RNTester

si ce n'est pas déjà résolu!

@cpojer qu'en est-il du composant Toast? Je pense qu'il devrait être obsolète maintenant et supprimé plus tard.
Les raisons:

  1. Toast n'est qu'un autre type / style de notification, il existe de nombreux types de composants de notification
  2. Existe uniquement la mise en œuvre Android
  3. Il existe une tonne de composants de type «toast» gérés par la communauté https://github.com/search?q=react+native+toast qui sont multiplateformes

Qu'est-ce que tu en penses?

Je suis intéressé par la conservation de TabBarIOS et la maintenance / la pérennité. Je pense que c'est assez précieux, avec NavigatorIOS, en tant que solution légère avec une accessibilité de première classe.

Si c'est l'opinion générale qu'il ne devrait pas être sous react-native-community, puisque comme NavigatorIOS il est déjà obsolète, je le ferais sous mon propre compte mais je le préférerais sous l'égide de -community.

Y avait-il une raison à la dépréciation autre que celle-ci non utilisée sur Facebook et uniquement sur iOS (ce qui est une raison décente)?

J'ai une version de travail ici: https://github.com/michaelknoch/react-native-tabbar-ios

@karlsander

Salut, je déplace le code natif d'ActionSheetIOS vers expo. Veuillez vérifier 🙇
https://github.com/expo/react-native-action-sheet/pull/105

J'essayais de trouver où se trouve react-clone-referenced-element , mais sans succès. Est-ce que je manque quelque chose? Je suis nouveau pour contribuer et pour réagir à la base de code native, donc désolé si c'est une question stupide.

@Rendfold vous ne

Voici le commit correspondant dans lequel il a été ajouté: https://github.com/facebook/react-native/commit/665954efcc4460839d00a572be84cf204a42c0d5

On dirait que c'est pour satisfaire la dépendance maintenant que ListView a été supprimé. Je pense que cela n'est utilisé que sur Facebook également.

@ericlewis il a été mis à jour là-bas, mais pas ajouté, donc je suis allé plus loin. Dû aller à 2016 s'engage pour trouver où il était eaba2abc0b76f9a26703c87eecf4a8bb52f9ed3e
Mais oui, vous aviez raison, c'est pour ListView.

@cpojer J'étais en train de DrawerLayout / DrawerLayoutAndroid pour # 23730 et cela semble assez isolé.

Serait-ce également un bon candidat à extraire? Je suis heureux de prendre cela.

J'ai remarqué que parmi les modules mentionnés ici, seuls react-native-async-storage et react-native-netinfo ont réussi les tests e2e pour les deux plates-formes, react-native-cameraroll les a également mais les tests échouent sur Android.

J'ai récemment examiné les tests e2e de react-native-svg en utilisant Detox, et je l'ai configuré sur travis et bitrise:
https://travis-ci.org/msand/react-native-svg-e2e/builds
https://app.bitrise.io/app/1a150b039e9b8fbd#/builds

Je le fais prendre des captures d'écran sur iOS et Android, et teste une nouvelle configuration de projet en natif réactif pour les deux, et en plus avec des cocoapods pour iOS.

Je n'ai pas accès à la configuration de bitrise pour le repo react -native-svg,

Le faire fonctionner sans kvm sur travis et bitrise nécessitait le dernier émulateur canary et de nombreuses tentatives pour trouver une configuration fonctionnelle, car ils ne prennent pas en charge l'accélération. Quoi qu'il en soit, au cas où un autre module serait intéressé par la configuration d'e2e ailleurs que dans circleci, alors ce dépôt pourrait être utile: https://github.com/msand/react-native-svg-e2e

Hors sujet: Si quelqu'un est intéressé à aider à tester react-native-svg, alors ce serait bien d'obtenir un script / une application pour exécuter les tests à partir d'ici: https://github.com/web-platform-tests/ wpt / arbre / maître / svg
Peut probablement utiliser https://github.com/kristerkari/react-native-svg-transformer pour charger les fichiers svg tels quels, puis une étape de comparaison avec les captures d'écran serait vraiment utile.

En ce qui concerne la dépréciation / la division de ART, je suis en faveur de le séparer du repo natif de réaction, de le laisser vivre tel quel et d'obtenir des corrections de bogues / des améliorations de performances. Au moins, si vous ne disposez que de données de chemin simples, par exemple, que vous souhaitez restituer et que vous n'avez besoin d'aucune autre partie de la spécification svg, alors il est probable que ART sera au moins plus performant lorsqu'il est utilisé en react-native. Comme il n'a pas à prendre en charge autant de fonctionnalités que quelque chose visant une conformité complète aux spécifications svg.

Si vous effectuez un rendu sur un canevas en utilisant ART sur le Web, il peut également être plus rapide que svg, selon le cas d'utilisation; profil pour trouver vos points chauds / goulots d'étranglement réels avant de faire des efforts dans ce type d'optimisation, et effectuez des mesures A / B appropriées avec des statistiques sur suffisamment de données si vous le faites. Et, si vous avez du code existant utilisant ART, il est probablement correct de le garder tel quel. Mais, pour le nouveau code, je recommanderais probablement d'utiliser svg conforme aux spécifications et de l'écrire d'une manière compatible Web (react-native-) (à moins qu'il ne nécessite des performances de niveau canvas / webgl). Une implémentation de compatibilité index.web.js sera également incluse dans la prochaine version react-native-svg à cet effet.

Je me demandais juste aujourd'hui comment lire l'option "réduire le mouvement" dans React Native, mais il semble qu'elle n'ait pas été implémentée.
Quelle serait la meilleure façon de faire une demande de fonctionnalité et d'en obtenir une certaine visibilité? Est-ce que https://react-native.canny.io/feature-requests est toujours le forum préféré pour les demandes de fonctionnalités?

@kristerkari J'ai soumis un PR ajoutant la prise en charge de "réduire le mouvement" en AccessibilityInfo
https://github.com/facebook/react-native/pull/23839

@cpojer Salut, je suis désolé d'avoir été absent pendant un moment. J'ai déplacé avec succès la barre d'état de réaction native. Mais ne l'a pas déprécié dans le noyau. Dois-je le faire maintenant?
Et aussi je prévois de créer une version supplémentaire pour le package react-native-status-bar.

@dmtrKovalenko oui, faites-le!

Fait un PR pour la barre d'état de désapprobation -> # 23898

Je n'ai pas accès à la configuration de bitrise pour le repo react -native-svg,

@msand Je pense que tout le monde s'est installé sur CircleCI, car il fonctionne plus vite que le benchmark @gengjiawen , mais je ne suis pas sûr que ce soit `` officiel ''.

react-native-cameraroll les a également mais les tests échouent sur android.

J'ai du mal à faire passer le test Android, le test est vraiment simple (l'application démarre-t-elle), donc c'est quelque chose dans la configuration. J'ai copié la configuration à partir de netinfo, mais cela ne fonctionne pas immédiatement. @ matt-oakes voyez-vous en un coup d'œil s'il y a quelque chose de particulier que j'ai manqué?

@bartolkaruza C'est quelque chose que j'ai corrigé dans le référentiel NetInfo ici: https://github.com/react-native-community/react-native-netinfo/pull/25

Je vais soumettre un PR pour réparer la pellicule maintenant.

@cpojer envisage-t-il d'extraire tvOS du noyau?

Je pense que nous devrions également supprimer Button .

Supprimer ou extraire? Je préférerais extraire plutôt que supprimer.

Une question pour les bibliothèques natives de réaction qui utilisent actuellement des fonctionnalités extraites dans des modules de communauté:

Quelle est l'approche recommandée pour s'appuyer sur des modules extraits? Dépendances directes ou peerDependencies?

Par exemple, reactotron-react-native utilise actuellement AsyncStorage directement. Lorsque vous utilisez react-native-asyncstorage comme dépendance directe, plusieurs versions peuvent être utilisées dans l'application consommatrice. Est-ce que cela est prévu ou devrait-il être une dépendance des pairs?

Je pense que cela devrait être une dépendance, et AsyncStorage définit ReactNative comme une peerDependency, de cette façon, il pourrait utiliser plusieurs versions d'AsyncStorage dans la même application (sauf que vous voulez vous assurer d'utiliser la même, et vous le mettez clairement dans la bibliothèque readme), mais le processus d'installation affichera un avertissement si la dépendance ReactNative ne peut pas répondre.

Est-ce simple? N'y aurait-il pas potentiellement plusieurs versions du module natif nommé "AsyncStorage"? Je pense que cela pourrait entraîner des problèmes, ou pas?

Oui, il y aurait plusieurs versions, mais si chacune est autonome et ne partage pas de données entre elles, il ne devrait pas y avoir de problèmes.

Bonjour @cpojer Je voudrais aider avec certains de ces problèmes, puis-je commencer par "Déplacer le composant PickerIOS / Picker fusionné vers le référentiel communautaire"?

Salut @wagnermaciel , moi et @bartolkaruza y travaillons. Et presque terminé. @cpojer pouvez-vous s'il vous plaît créer un

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

@jainkuniya Pas de soucis. @cpojer Y a-t-il des problèmes que vous pourriez

@wagnermaciel merci d'avoir rejoint nos efforts! Je viens de mettre à jour le message d'origine et de supprimer les personnes qui ne répondaient pas aux tâches auxquelles elles se sont inscrites. N'importe lequel de ceux ci-dessus sans nom à côté d'eux peut être récupéré par vous si vous le souhaitez. Sur lequel voulez-vous travailler?

Salut @cpojer , puis-je être affecté à déplacer "ImagePickerIOS vers un dépôt communautaire" - je serai heureux de le maintenir. Merci d'avance!

@ aerlinn13 Je vous ai

@cpojer Merci pour la réponse rapide! Pourriez-vous m'attribuer "Supprimer ProgressBarAndroid du référentiel, éventuellement déplacer vers le référentiel communautaire"? J'adorerais y travailler. Merci!!!

@wagnermaciel terminé! Dans l'attente de votre contribution :)

Salut @cpojer , je veux mentionner le composant ToastAndroid. Avez-vous une idée de quoi faire avec ça?
Il semble que ToastAndroid soit utilisé dans HMRLoadingView et LinkingExample. Il est donc douteux de savoir comment remplacer le type de notification pour ces deux composants.
Quoi qu'il en soit, s'il est utilisé en interne par FB, ce n'est pas un problème pour le moment et ignorez mon commentaire :)

Mon message d'origine:

@cpojer qu'en est-il du composant Toast? Je pense qu'il devrait être obsolète maintenant et supprimé plus tard.
Les raisons:

  1. Toast n'est qu'un autre type / style de notification, il existe de nombreux types de composants de notification
  2. Existe uniquement la mise en œuvre Android
  3. Il existe une tonne de composants de type «toast» gérés par la communauté https://github.com/search?q=react+native+toast qui sont multiplateformes

Qu'est-ce que tu en penses?

@radeno Je ne pense pas que nous allons le supprimer maintenant, mais nous pourrions choisir de le faire plus tard.

Désolé @cpojer a été très occupé le mois dernier mais je vais reprendre le travail sur ProgressViewIOS aujourd'hui

@cpojer Je viens de remarquer que "Deprecate StatusBarIOS" est coché, mais StatusBarIOS.ios et StatusBarIOS.android n'ont pas changé depuis 2018. Ai-je oublié quelque chose?

S'il ne manque rien, désolé. Sinon, faites-le moi savoir, car je peux vous aider.

@cpojer Pourriez-vous fournir des précisions sur où trouver ou comment créer les fichiers pour le dossier ios? Merci d'avance!

@cpojer est prêt à entreprendre le déplacement de tout composant qui n'est pas encore affecté, ou à s'attaquer à l'audit des dépendances JS.

@cpojer J'aimerais contribuer à react-native car notre société l'utilise actuellement en production. J'ai trouvé ce problème général à la recherche de bons premiers problèmes, mais je n'ai pas pu comprendre ce qui reste à gagner.

Quelles sont les principales priorités? Avez-vous besoin de plus d'aide avec les problèmes en haut (par exemple, déplacer ProgressViewIOS vers un dépôt communautaire) ou avec ceux qui sont dans la section de travail future? Il y en a qui n'ont personne assigné (comme celui pour déplacer ProgressViewIOS) mais lisant le fil, ils semblent déjà être pris.

Les principales priorités de

Avons-nous les instructions pour créer une nouvelle bibliothèque RNC quelque part dans un wiki ou quelque chose? Ils seront utiles à conserver et à avoir pour que les autres les trouvent, non seulement pour RNC mais comme une sorte de modèle / de directives pour toutes les bibliothèques.

Je viens de trouver cela en fait, mais ce n'est pas encore fait. :)

Je pense que les prochains candidats sont:

  • ClavierAvoidingView, SafeAreaView
  • Modal (?).

Je serais heureux de prendre SafeAreaView !

Ces migrations depuis le noyau sont-elles toujours à gagner? Si oui, quels sont les prochains candidats à jour? J'aimerais aussi essayer de donner un coup de main :)

Je pense que @brentvatne @ide @ericvicenti @kmagiera a des opinions éclairées sur ce qui pourrait encore être déplacé et n'a pas d'impact sur l'expérience des développeurs lors de l'utilisation de bibliothèques tierces telles que react-navigation et réanimé.

Une des choses pour lesquelles nous pourrions utiliser l'aide est de nous débarrasser de l'utilisation de ToolbarAndroid dans RNTester sur Android. Quelqu'un pourrait-il essayer de remplacer son utilisation par autre chose?

Je viens de terminer la mise à jour du message de niveau supérieur. ImagePickerIOS est l'un des composants non réclamés où le composant n'a pas encore été extrait. Y a-t-il quelqu'un qui aimerait faire l'effort et envoyer un PR au référentiel créé à https://github.com/react-native-community/react-native-image-picker-ios ?

Enfin, il semble que le travail sur l'arrivée de DatePickerIOS et DatePickerAndroid ne se soit jamais concrétisé, voir https://github.com/react-native-community/discussions-and-proposals/pull/85 - C'est une bonne opportunité! Idéalement, quelqu'un prend en charge l'extraction des deux composants DatePicker dans ce dépôt: https://github.com/react-native-community/react-native-datepicker

Avec deux exportations de haut niveau, DatePickerIOS et DatePickerAndroid.

Une fois la version initiale livrée et les composants obsolètes depuis RN, la communauté pourra alors fusionner les deux en un seul composant.

cc @mmcknett et @Swaagie

Ajout de ReactART comme une autre partie de RN que nous aimerions extraire dans un dépôt séparé: https://github.com/react-native-community/react-native-art

Demander de l'aide!

puis-je prendre DatePickerIOS et DatePickerAndroid ?

@sijad avez-vous déjà travaillé avec React Native et avez-vous un plan sur la façon de faire l'extraction?

@cpojer Puis-je prendre ReactART à partir de lundi prochain? Je suis actuellement en train d'évangéliser et d'encourager l'adoption des RN au travail, et j'ai donc dû gérer à la fois ReactART et le code natif en tant que packages RN réutilisables.

@ivanmoskalev sonne bien! Faites-moi savoir quand vous commencez et faites un PR pour le nouveau repo que j'ai créé :)

@cpojer avez-vous par accident complètement oublié la branche review ? Il y avait tout le travail moins des documents et des tests de désintoxication.

modifier: cc @sijad pour la sensibilisation

edit 2: https://github.com/Swaagie/react-native-datetimepicker tout fonctionne comme il existait dans la branche review . Je n'ai pas le droit de recréer ce repo atm, mais je voudrais le terminer.

Aussi @sijad , si vous souhaitez contribuer sous la forme d'un examen approfondi et de corrections de code (si nécessaire), ce serait très bienvenu!

@cpojer @sijad, le travail s'est définitivement matérialisé comme @Swaagie l'a mentionné. J'ai également contacté Discord.

Ne vous inquiétez pas de manquer la branche - il peut être facile de l'oublier. Rétrospectivement, j'aurais dû conseiller à Martijn d'ouvrir un PR dans l'état Draft pendant qu'il continuait à faire les petits PR pour le travail que nous avons éclaté et mis dans nos sprints.

Y a-t-il un endroit où je pourrais aider à suggérer de la documentation pour les procédures d'exploitation standard pour ces petits modules dans Lean Core sur react-native-community ? Nous avons beaucoup appris en itérant sur react-native-datetimepicker - je serais ravi de partager avec la communauté au sens large pour rendre les autres modularisations plus faciles / plus rapides.

Oh mec, je dois avoir recréé un repo avec un nom différent -.-

Pourriez-vous envoyer un PR au nouveau datepicker?

Ça ira! Merci pour le délai d'exécution rapide! Pas de rancune , nous sommes tous humains et comme

@cpojer pourriez-vous mettre à jour le premier post et ajouter mon handle github à:
Merge DatePickerIOS and DatePickerAndroid, move to community repo
Merci!

@Swaagie fait!

Ce serait étonnant si vous adoptiez https://github.com/yfuks/react-native-action-sheet et le fusionniez avec ActionSheetIOS

Si vous envisagez de maintenir un référentiel créé pour déplacer les API hors du cœur de React Native, veuillez vous assurer que vous êtes capable de prendre en charge les implémentations pour d'autres plates-formes, et assurez-vous de regarder les implémentations équivalentes dans react-native-web et de réagir -des-fenêtres-natives.

@cpojer faites -vous vraiment tout cela ou puis-je en prendre un?
FWIW J'ai fait des progrès avec RCTImagePickerIOS et je soumettrai un PR dans les prochains jours.

@ Johan-dutoit oui, malheureusement la suppression des modules ne peut être effectuée que par un employé de Facebook. Dans l'attente de votre extraction ImagePickerIOS!

@cpojer 🎉PR Soumis et testés 🎉

@cpojer J'aimerais que vous readme.md qui explique ce que vous avez l'intention de faire dans chacun des fichiers. Cela faciliterait grandement ceux qui souhaitent contribuer au projet. Comme hameçon

Par example

image

  • React.js
    L'objectif principal de ce fichier est ...
  • react-native-implementation.js
    L'objectif principal de ce fichier est ...
  • react-native-interface.js
    L'objectif principal de ce fichier est ...

Ces trois fichiers peuvent être un peu faciles à comprendre, mais lorsque nous avons des fichiers comme ceux-ci, cela peut être un peu compliqué.
image

De toute évidence, ils ne doivent pas être trop descriptifs, et encore moins décrire ce que fait chaque fichier. Seule la définition la plus pertinente ou la plus élémentaire de ce qui est censé être fait dans un certain dossier.

De plus, il serait très utile de montrer un aperçu du fonctionnement de ce référentiel. J'aimerais connaître votre opinion. Merci pour tout.

@cpojer Reste-t-il quelque chose que je peux récupérer? J'adorerais participer.

Comme @FLGMwt mentionné dans https://github.com/facebook/react-native/issues/23313#issuecomment -469288200, ce serait formidable de déplacer également DrawerLayoutAndroid

Ce serait formidable de déplacer ToastAndroid et Animated aussi

@ecreeth , ces fichiers utilisent createReactClass car ils reposent sur des mixins qui n'ont pas encore été supprimés. Les fichiers utilisant createReactClass utilisent toujours propTypes mais seront supprimés pour Flow une fois qu'ils seront mis à jour.

@TheSavior Merci beaucoup pour l'information!

J'adorerais contribuer, je vois que "Déplacer le bouton vers un dépôt de communauté" n'a pas été pris. Ce qui doit être fait? J'adorerais aider!

Sûr. Vérifiez simplement les autres comme https://github.com/react-native-community/react-native-netinfo. Vous devez avoir le code natif pour iOS et Android, ainsi que tous les js. Malheureusement, nous n'avons pas de méthode spécifique pour créer une nouvelle bibliothèque.

Salut Comment utiliser la vue Web après la suppression de la vue Web dans RN

Salut, j'adorerais vous aider! Je vois que toutes les tâches "supprimer" ont été attribuées à @cpojer , y a-t-il une classe que je peux supprimer pour obtenir de l'aide? par exemple le "ImageStore"

Hé, je peux aider à déplacer DatePickerComponents, s'il vous plaît laissez-moi savoir comment je peux être utile @cpojer , merci!

Bonjour @cpojer , je peux vous aider à déplacer le composant CheckBox, je vous serai reconnaissant de bien vouloir me guider tout au long du processus. Merci!

Je suis heureux de tenter de déplacer Button vers un nouveau dépôt communautaire. J'apprécierais quelques conseils sur la façon de procéder, mais je vais commencer par jeter un coup d'œil à la source et commencer à me repérer. @cpojer s'il vous plaît des conseils.

Ouverture de PR pour supprimer Supprimer DatePickerAndroid, DatePickerIOS, TimePickerAndroid

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

Comment décidons-nous quand ajouter de nouvelles exportations au noyau? Par exemple, le hook useWindowDimensions peut être construit dans l'espace utilisateur mais il a été ajouté au noyau - https://github.com/facebook/react-native/blob/3b3c95b0170e60983eb6e89b910d100d08eee141/Libraries/Utilities/useWindowDimensions .js

Je pense que notre pensée avec les hooks est que la modernisation du core react-native pour fournir des hooks par défaut a du sens. Il ne serait pas formidable que React Native ne fournisse que des API héritées et que les hooks les encapsulent dans un package de communauté séparé.

Je pense donc que les hameçons sont une question spécifique distincte de l'ajout général de nouvelles exportations au noyau.

Salut tout le monde! Actuellement, aucune action ne peut être entreprise par les membres de la communauté. Les suppressions actuellement programmées sont suspendues pour deux raisons:

  • Nous attendons un moment jusqu'à ce que nous supprimions des composants pour donner à la communauté le temps de migrer vers les versions extraites.
  • Les suppressions ne peuvent être effectuées que par quelqu'un de Facebook, car nous ne faisons que déplacer ces fichiers pour qu'ils deviennent internes à Facebook jusqu'à ce que nous adoptions les modules externes à l'avenir.

En ce qui concerne les API basées sur les hooks, ce problème n'est pas la bonne avenue pour cette discussion. En général, je pense que nous devrions progressivement ajouter des API basées sur des hooks à mesure que nous repenserons notre API publique à l'avenir.

Bonjour à tous, je suis nouveau dans la contribution à des projets open-source et j'aimerais savoir si je peux encore aider avec ce problème.

Les suppressions actuellement programmées sont suspendues pour deux raisons ...

Est-ce une erreur que ToolbarAndroid a quand même été supprimé (silencieusement)?

@cpojer Puis-je faire «Déplacer le bouton vers un

@Archulan vous pouvez envoyer votre PR à react-native-button

@Archulan voir ce commentaire # 23313 (commentaire)

@Archulan vous pouvez envoyer votre PR à react-native-button

D'accord. Pouvez-vous s'il vous plaît me guider pour faire cela?

Je pense que cela n'a pas de sens de déplacer Button . Le composant est très petit et il est utile pour mettre en place des fonctionnalités de base sans avoir à installer de bibliothèques.

@brentvatne

Je pense que cela n'a pas de sens de déplacer Button .

tellement bizarre comme react contient <Button/>

après la révolution, il devrait juste y avoir

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

d'autres pourraient être motivés par la communauté.

pour mettre en place certaines fonctionnalités de base.

peut-être devrait utiliser monorepo dans react-native avec react-native-element comme react avec react-dom

@cpojer Vibration (https://reactnative.dev/docs/vibration) est-il également déplacé vers un projet communautaire? Si tel est le cas, et comme il semble assez petit pour commencer, je pourrais vous aider.

@cpojer puis -je supprimer ImageStore ?

Une aide est-elle possible avec cela? Je suis un débutant et je pense que je peux apprendre beaucoup avec ça.
Salutations.
Manuel Portero.

Si une aide est encore nécessaire, je serai heureux de vous aider 😃

moi aussi

J'aimerais contribuer. Y a-t'il quelque chose que je puisse faire?

Y a-t'il quelque chose que je puisse faire?

J'aimerais contribuer, y a-t-il quelque chose que je puisse faire?

Cette page vous a été utile?
0 / 5 - 0 notes