React-native: ☂️ Inti Ramping

Dibuat pada 6 Feb 2019  ·  196Komentar  ·  Sumber: facebook/react-native

Selama beberapa bulan terakhir kami telah mendiskusikan dan membuat kemajuan pada proyek yang disebut "Lean Core". Silakan baca motivasi kami untuk proyek ini . Selama bertahun-tahun, React Native telah mengumpulkan banyak bagian yang sekarang sudah usang, tidak digunakan, atau merupakan warisan. Saatnya untuk membersihkan semuanya dan menempatkan repositori ke dalam keadaan yang jauh lebih mudah dikelola ke depannya.

Ini adalah tugas umum yang dimaksudkan untuk melacak semua pekerjaan yang diperlukan untuk mencapai tujuan inti yang lebih ramping, termasuk bekerja di sekitar reorganisasi repositori. Masalah ini terus diperbarui sehingga item baru akan ditambahkan dan item yang sudah selesai akan (kembali) dipindahkan. Beberapa item akan memunculkan masalah terpisah untuk melacak pekerjaan. Jika Anda tidak melihat nama yang ditetapkan untuk salah satu item di bawah ini dan Anda ingin membantu, silakan berikan komentar secara sukarela dan hubungi saya untuk memulai!

Komponen & Waktu Proses

React Native saat ini hadir dengan sejumlah besar komponen, banyak di antaranya sudah usang atau ketinggalan zaman tetapi mereka masih menjadi bagian dari repositori dan meningkatkan ukuran aplikasi. Untuk item di bagian ini, kami ingin menghapus item sepenuhnya jika tidak digunakan, atau kami ingin memindahkannya ke repositori yang dikelola komunitas atau ke arsip facebook . Daftar di sini sebagian didasarkan pada investigasi yang luar biasa oleh @ ax-fb. Migrasi dapat dilakukan secara kasar dengan mengikuti panduan @ matt-oakes dari bawah ini: https://github.com/facebook/react-native/issues/23313#issuecomment -461462981

  • [] Hapus ImageStore (@cpojer)
  • [] Hapus PushNotificationIOS (@cpojer)
  • [] Hapus AsyncStorage (@cpojer)
  • [] Hapus Penggeser (@cpojer)
  • [] Hapus ProgressBarAndroid (@cpojer)
  • [] Hapus ProgressViewIOS (@cpojer)
  • [] Hapus MaskedViewIOS (@cpojer)
  • [] Hapus ActionSheetIOS (@cpojer)
  • [] Hapus ImagePickerIOS (@cpojer)
  • [] Hapus Picker dan PickerIOS (@cpojer)
  • [] Hapus DatePickerAndroid, DatePickerIOS (@cpojer)
  • [] Hapus ReactART (@cpojer)

Dependensi Pihak Ketiga

Selama bertahun-tahun kami telah mengumpulkan banyak sekali dependensi, terutama JavaScript. Kami juga telah memindahkan beberapa hal dari React Native, seperti Metro dan react-native-cli . Ini berarti kami meninggalkan sejumlah besar dependensi perkakas di package.json kami, banyak di antaranya tidak akan digunakan oleh RN itu sendiri dan tidak akan diperbarui ke versi terbaru, menyebabkan penginstalan penuh React Native membengkak. Akan sangat bagus untuk melakukan audit terhadap semua dependensi yang digunakan dan mengidentifikasi dependensi mana yang dapat dihapus.

  • Ketergantungan JavaScript

    • [] Periksa dependensi mana yang besar dan apakah bisa dibuat lebih kecil

    • [] Cari tahu dependensi mana yang dapat ditingkatkan ke versi terbaru mereka untuk perbaikan keamanan

    • [] Cari tahu dependensi mana yang dapat dideduplikasi (= kurangi ketidakcocokan versi) untuk ukuran pemasangan yang lebih kecil

  • Pindahkan kode React Native ke dependensi eksternal

    • [] Identifikasi kode JavaScript mana yang dapat lebih baik disajikan oleh paket pihak ketiga daripada mempertahankan salinan atau implementasi kami sendiri

Struktur Repositori

Saat ini repositori React Native adalah repositori besar dengan sedikit organisasi yang mempromosikan pemisahan perhatian. Ini adalah tujuan kami sebagai bagian dari upaya ini juga untuk memindahkan berbagai hal ke dalam struktur yang lebih mudah diatur. Sebagai bagian dari ini, kami ingin mengikuti model monorepo yang terdiri dari beberapa paket yang lebih kecil. Ini akan menjadi migrasi bertahap dan kami hanya akan melacak pekerjaan awal untuk memulai ini.

  • [] Sediakan pengaturan awal yang bekerja dengan repositori yang ada, dengan banyak paket dan juga berfungsi baik dengan pengaturan internal Facebook (@cpojer)
  • [] TODO: Identifikasi lebih banyak pekerjaan yang diperlukan di bidang ini

Pekerjaan selesai


Klik untuk melihat pekerjaan sebelumnya sebelum masalah ini dibuat

Good first issue Help Wanted Ran Commands Discussion

Komentar yang paling membantu

Saya ingin memberikan pembaruan cepat tentang kemajuan yang telah dicapai semua orang dalam upaya Lean Core. Saya hanya ingin mengatakan betapa terpesona saya dengan semua kontribusi Anda hanya dalam waktu seminggu. Terima kasih banyak!

Inilah semua pekerjaan yang sudah selesai:

  • NetInfo (https://github.com/react-native-community/react-native-netinfo) berhasil dibagi dan dirilis pada npm melalui @ react-native-community / netinfo oleh @ matt-oakes, yang bahkan menambahkan tes baru dan fitur baru untuk modul!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1) berhasil dipisahkan oleh @ferrannp.
  • AsyncStorage (https://github.com/native-community/react-native-async-storage) ditarik oleh @Krizzu.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1) dipindahkan ke repo terpisah oleh @dmtrKovalenko.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1) dipisahkan oleh @michalchudziak.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1) diubah menjadi repo komunitas oleh @FonDorn.
  • PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1) diekstraksi oleh @rafaellincoln.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1) diekstrak oleh @Trancever.
  • @EvanBacon menambahkan pesan penghentian untuk ImageStore di # 23330.
  • @wellmonge menggabungkan AlertIOS dan Alert di # 23318.
  • Teknisi Callstack merilis versi pertama dari React Native CLI yang baru: https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

Saya juga ingin menyoroti bagaimana mengekstrak modul ini dapat menghasilkan pemeliharaan yang lebih baik dari modul tersebut, yaitu @ matt-oakes menambahkan tes untuk NetInfo (https://github.com/react-native-community/react-native-netinfo/pull/ 4) dan @ifsnow menambahkan jenis Flow ke AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4). Dengan memisahkan komponen ini dari React Native (dan Facebook), mereka dapat bergerak lebih cepat satu per satu tanpa diblokir oleh karyawan Facebook. Lebih lanjut, karena kita dapat memigrasi masalah yang ada dan Permintaan Tarik dari repositori React Native, itu juga akan mempermudah untuk mempertahankan React Native itu sendiri dan kita akan dapat menanggapi permintaan penarikan lebih cepat!

Inilah yang sedang kami kerjakan atau kerjakan selanjutnya:

  • Hapus GetaranIOS
  • Hapus dependensi pihak ketiga yang tidak digunakan
  • Mulai migrasi kode internal Facebook untuk menggunakan paket react-native-community baru

Sekali lagi, untuk semua orang yang telah membantu sejauh ini, terima kasih!

Semua 196 komentar

@cpojer Saya ingin menghapus SnapshotViewIOS 🔪

Hai @cpojer , terima kasih telah menyatukan semuanya!

Saya bersedia mengatasi beberapa masalah, mulai dari memindahkan AsyncStorage.

Saya akan dengan senang hati membantu memindahkan NetInfo ke repo komunitas.

Apakah lebih baik membuat repo Github pribadi terlebih dahulu dan kemudian berpotensi memigrasikannya ke organisasi react-native-community setelah siap, atau haruskah kita segera memulai dengan repo di organisasi itu?

@cpojer , saya ingin membantu dalam beberapa masalah ini, dapatkah saya mulai dengan "Gabungkan AlertIOS dengan Alert"?

Itu luar biasa! Saya menuliskan nama Anda di sebelah item di atas.

@jdmunro dapatkah Anda mengirim PR dan menugaskan saya untuk itu? Lalu saya bisa mengambil alih dan menghapus hal-hal spesifik FB sebelum mendarat.
@Krizzu dan @ matt-oakes Saya buat https://github.com/react-native-community/react-native-async-storage dan https://github.com/react-native-community/react-native-netinfo bagi Anda untuk mengirim PR dengan semua kode yang diperlukan untuk menjadikannya modul pihak ketiga. Idealnya pada langkah pertama, Anda hanya akan mengambil kode dari repo RN dan meletakkannya di repo terpisah. Untuk memastikannya berfungsi, kami kemudian dapat menautkannya kembali ke RN sebagai dependensi dan menghapus implementasi asli. Lebih jauh ke bawah, kita benar-benar dapat memindahkannya ke paket opsional.
@wellmonge Kedengarannya bagus! Saya tidak yakin sepenuhnya apa yang akan dilakukan pekerjaan ini, tetapi mungkin Anda dapat memeriksa kedua modul dan melihat apakah Anda dapat menyatukannya?

@cpojer Saya dapat membantu dengan penggeser bergerak 🙂

Setelah itu saya dapat mengambil yang lain jika Anda masih membutuhkan bantuan

@michalchudziak Luar biasa! Saya membuat https://github.com/react-native-community/react-native-slider , silakan lihat komentar saya di atas tentang apa yang harus dilakukan selanjutnya.

Sebagai nama untuk proyek di package.json, harap gunakan @react-native-community/<project name> , yaitu. @react-native-community/slider .

@cpojer Saya dapat mengambil ViewPagerAndroid . Saya pikir lebih baik memindahkannya ke repo komunitas (jika Anda dapat membuat repo untuk saya, thx 😄) daripada hanya menghapusnya karena paket lain di sekitar telah menerapkan perilaku ini di JS untuk iOS dan mereka menyampaikan yang asli untuk Android.

Hai @cpojer Saya ingin membantu dengan menggabungkan dan memindahkan Picker dan PickerIos. :)

@ferrannp membuat https://github.com/react-native-community/react-native-viewpager untuk Anda! Lihat pesan di atas.
@jain_kuniya terima kasih! Tidak begitu yakin akan terlihat seperti apa, tetapi mungkin Anda dapat melihat bagaimana menyatukan mereka dan mulai mengirim PR kecil untuk bereaksi secara native.

Itu luar biasa! Saya menuliskan nama Anda di sebelah item di atas.

@jdmunro dapatkah Anda mengirim PR dan menugaskan saya untuk itu? Lalu saya bisa mengambil alih dan menghapus hal-hal spesifik FB sebelum mendarat.
@Krizzu dan @ matt-oakes Saya buat https://github.com/react-native-community/react-native-async-storage dan https://github.com/react-native-community/react-native-netinfo bagi Anda untuk mengirim PR dengan semua kode yang diperlukan untuk menjadikannya modul pihak ketiga. Idealnya pada langkah pertama, Anda hanya akan mengambil kode dari repo RN dan meletakkannya di repo terpisah. Untuk memastikannya berfungsi, kami kemudian dapat menautkannya kembali ke RN sebagai dependensi dan menghapus implementasi asli. Lebih jauh ke bawah, kita benar-benar dapat memindahkannya ke paket opsional.
@wellmonge Kedengarannya bagus! Saya tidak yakin sepenuhnya apa yang akan dilakukan pekerjaan ini, tetapi mungkin Anda dapat memeriksa kedua modul dan melihat apakah Anda dapat menyatukannya?

Tentu! Saya akan melakukan itu dan melaporkan kepada Anda.

Dapat membantu dengan StatusBarIOS dan PushNotificationIOS

@cpojer Apakah Anda memiliki preferensi untuk nama paket Android?

Menggunakan NetInfo sebagai contoh, saat ini com.facebook.react.modules.netinfo . Haruskah kita menjadikannya standar di semua modul yang diekstrak dengan sesuatu seperti com.reactnativecommunity.modules.netinfo ?

Bisa saya bantu

  • Pindahkan SegmentedControlIOS ke repo komunitas
  • Pindahkan ProgressViewIOS ke repo komunitas

Saya akan mengambil kotak centang, tolong.


Terima kasih telah mengirimkan masalah Anda. Dapatkah Anda melihat kembali deskripsi Anda dan memastikan template masalah telah diisi secara keseluruhan?

👉 Klik di sini jika Anda ingin melihat lagi template masalah Laporan Bug.

@dmtrKovalenko membuat Anda kecewa karena StatusBarIOS, dibuat https://github.com/react-native-community/react-native-statusbar
Komunitas @ matt-oakes dalam nama paket terdengar bagus tetapi jika kita tetap menggunakan yang sudah ada, saya juga baik-baik saja.
@kdenz Dibuat https://github.com/react-native-community/react-native-segmented-control untuk SegmentedControlIOS
@vonovak Dibuat https://github.com/react-native-community/react-native-checkbox untuk checkbox repo

Sekadar meringkas langkah-langkah kasar yang harus kita ambil untuk ekstraksi:

  1. Ekstrak versi saat ini dari modul yang sedang Anda kerjakan dan semua dependensinya ke dalam repositori git terpisah, dan kirim PR ke salah satu yang telah dibuat untuk Anda di komunitas RN. Lihat react-native-webview untuk contoh cara kerjanya jika berisi kode native.
  2. Tambahkan peringatan deprecation ke React Native menggunakan modul warnOnce yang sudah ada, lihat react-native-Implementation.js sebagai contoh.
  3. Kami kemudian akan menutup semua masalah / PR dan mengarahkan orang untuk menggunakan proyek dan repositori yang baru dibuat sebagai gantinya.
  4. Setelah satu atau dua rilis, kami akan sepenuhnya menghapus kode dari React Native, di mana hanya modul eksternal yang akan berfungsi.
  5. Sebagai alternatif, kita dapat mencoba pendekatan di mana kita akan segera menghapus kode dari repositori RN, tetapi menambahkan repositori komunitas baru sebagai dependensi ke React Native dan menjaga API yang ada tetap berfungsi sebagaimana adanya. Saya tidak yakin apakah itu akan berfungsi untuk modul dengan dependensi asli.

Beri tahu saya jika Anda memiliki pertanyaan :)

  • Pindahkan ImageStore ke repo komunitas

Saya pikir kita harus menghentikan ini demi solusi FileSystem . Kasus penggunaan inti mendapatkan Base64 dari gambar. Ini juga tidak memiliki dukungan android.

Hai @cpojer! Saya akan membantu

  • Hapus MaskedViewIOS dan mungkin pindah ke repo komunitas

Saya ingin membantu!
Bisakah saya bekerja

  • Hapus ProgressBarAndroid dari repositori, mungkin pindah ke repo komunitas
    ?

Hai @cpojer! Bisa saya bantu

  • Pindahkan kode asli ActionSheetIOS ke pameran.

@cpojer Saya ingin membantu, daftarkan saya ke Perpustakaan / CameraRoll (komponen ImagePickerIOS dan CameraRoll)

Aplikasi RNTester tidak memiliki package.json sendiri sehingga setiap komponen yang kami hapus harus dihapus dari aplikasi RNTester atau harus tetap berada di inti sebagai dependensi. Apa pendekatan untuk RNTester sehubungan dengan slimmening ini?

@cpojer Saya dapat membantu memindahkan Clipboard ke repo komunitas :)

Bisakah saya membantu tugas ini? @tokopedia

  • Pindahkan Picker ke repo komunitas.

@jainkuniya Mungkin kita bisa bekerja sama?

@zhaozhiming ya yakin, yang saya rencanakan adalah menggabungkannya dulu di repo RN sendiri lalu pindah ke repo komunitas.

Menarik. Apa yang akan terjadi pada RNTester? Saya harap kami bisa menyimpannya dengan semua komponennya.

@cpojer saya dapat membantu

  • Pindahkan "Bagikan" ke repo komunitas

Selain itu, akan sangat membantu jika memiliki beberapa jenis template terkoordinasi, jadi ada kode native sebagai lib, cara mudah untuk mengembangkan dan berkontribusi.

@pvinis Mungkin lihat komit ini dari repo NetInfo yang sedang saya kerjakan:

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

Belum ada kode NetInfo di sana, tetapi memiliki bagian Android dan iOS dari pustaka dan proyek contoh yang ditautkan tanpa memerlukan package.json bertingkat.

Saya sekarang berencana untuk memindahkan kode NetInfo dan kemudian memindahkan contoh RNTester ke dalam proyek example .

@EvanBacon terdengar bagus. Apakah Anda ingin mendaftar untuk menambahkan peringatan ke RN untuk menghentikan ImageStore dan merekomendasikan solusi pihak ketiga?

@ matt-oakes telah melakukan pekerjaan yang bagus dengan NetInfo, itu adalah model untuk dicerminkan untuk semua ekstraksi: https://github.com/react-native-community/react-native-netinfo/pull/1

@pvinis as @ matt-oakes mengatakan bahwa setiap proyek harus memiliki contoh dan kode pengujiannya sendiri. Saya pikir setelah kita semua selesai, kita dapat mempertimbangkan untuk membuat satu contoh RNTester yang menarik semua modul yang diekstrak yang paling umum digunakan dan menyatukannya ke dalam satu aplikasi.

VirtualizedList tinggal, kan? Saya melihatnya sebelumnya dalam daftar tetapi saya melihatnya tidak lagi.

Hai @cpojer, saya dapat menangani pemindahan ImageEditor ke repo terpisah.

Hai @cpojer, saya ingin sekali mengerjakan yang ini

  • Identifikasi semua dependensi di package.json yang tidak langsung digunakan di React Native

@ matt-oakes bagaimana Anda berencana untuk menguji atau membantu mengembangkan lib ini? kita membutuhkan proyek yang menggabungkan lib, yang dapat dengan mudah diperbarui / dibuang-dan-dibuat ulang atau semacamnya.

Dengan cara ini mudah bagi orang lain untuk berkontribusi. Ini bisa menjadi aplikasi "contoh", tetapi menurut saya aplikasi "contoh" adalah untuk menunjukkan cara menggunakan lib, di mana aplikasi "dev" akan menjadi tempat lib dapat dikembangkan, diuji, dll.

Ada ide untuk itu?

@brunolemos ya itu, maaf kesalahan saya karena meletakkannya di sana pada awalnya.

@Trancever Saya membuat https://github.com/react-native-community/react-native-image-editor untuk Anda kirimkan PR!
@ nimish-gupta itu luar biasa! Bisakah Anda melakukan analisis dan membuat masalah terpisah yang membahas dependensi yang tidak digunakan; atau kirimkan permintaan pull dengan penjelasan yang jelas tentang mengapa mereka dapat dihapus (yaitu tidak dapat ditemukan dll.)
@pvinis kami sedang mendiskusikan apakah masuk akal untuk membuat perancah. Sampai kami mendapatkannya, mendasarkan pekerjaan Anda dari struktur di https://github.com/react-native-community/react-native-webview atau https://github.com/react-native-community/react-native -netinfo paling masuk akal bagi saya.

hai @cpojer untuk proyek PickerIOS dan Picker, saya berencana untuk mengikuti langkah-langkah berikut:

  • Tambahkan warning di PickerIOS , yang sudah usang dan akan dihapus dalam rilis selanjutnya.
  • Setelah rilis hapus PickerIOS dari RN .

Sementara itu, kami dapat memindahkan Picker ke repo komunitas.

Saran?

@jainkuniya Saya pikir idenya bagus tetapi perlu diingat bahwa Picker menggunakan PickerIOS di bawah tenda. Saya pikir akan lebih baik jika kita bisa menyingkirkan PickerAndroid dan PickerIOS dan sebaliknya hanya mengekspos Picker, bagaimana menurut Anda? Banyak komponen lain sudah bekerja dengan cara ini.

Untuk memberi orang gambaran tentang proses yang saya lalui untuk memindahkan kode NetInfo:

1) Menggunakan library create-react-native untuk menghasilkan perancah: npx react-native-create-library --platforms ios,android --package-identifier com.reactnativecommunity.netinfo --prefix RNC --license MIT netinfo
2) Membuat proyek contoh dengan menjalankan react-native init NetInfoExample di root proyek perpustakaan baru. Saya kemudian mengganti nama folder yang dibuat menjadi hanya example .
3) Menghapus example/package.json dan memindahkan dependensi dan skrip ke root package.json . Saya juga memindahkan beberapa file yang dihasilkan lainnya seperti babel.config.js ke root proyek.
4) Memperbarui referensi ke pustaka React Native dalam contoh file gradle Android dan proyek Xcode. Mencari dan mengganti ../node_modules/react-native dan menggantinya dengan ../../node_modules/react-native sudah cukup.
5) Memperbarui jalur ke nama modul utama di MainApplication.java dan AppDelegate.m dari index menjadi example/index .
6) Menambahkan modul babel-plugin-module-resolver dan mengkonfigurasinya seperti ini di babel.config.js . Ini memungkinkan Anda untuk mengimpor kode perpustakaan dengan cara yang sama seperti yang dilakukan pengguna.
7) Menghubungkan proyek perpustakaan secara manual dengan contoh. Ini sangat mirip dengan cara Anda biasanya melakukannya, tetapi jalur di Android di settings.gradle hanya akan menjadi ../../android ( seperti ini ).
8) Saya kemudian memindahkan file kode asli, mengganti namanya dengan awalan RNC (React Native Community), bukan RCT . Saya menempatkan kode Javascript di js dan mengubah jalur indeks di package.json .
9) Saya kemudian memindahkan contoh dari RNTester ke dalam proyek example dan sedikit merapikan kodenya. Jangan ragu untuk mengambil file example/index.js sebagai cara untuk memuat contoh yang Anda salin dari RNTester. Ini hanya pembungkus ringan seperti yang ada di RNTester aslinya.
10) Saya sedikit merapikan proyek agar sesuai dengan cara react-native-webview disiapkan. Perubahan utama ada di sekitar file gradle Android.

Semoga bisa membantu orang :)

@pvinis Saya rasa ada banyak persilangan antara menunjukkan kepada orang-orang bagaimana menggunakan perpustakaan dan membantu pengembangan, terutama ketika area permukaannya kecil seperti NetInfo. example dalam proyek memenuhi kedua tujuan pada waktu yang bersamaan.

Untuk pengujian otomatis, saya belum memeriksanya sepenuhnya, namun, saya sebelumnya telah menggunakan Jet (berdasarkan Detox dan menggunakan react-native-firebase ) untuk melakukan pengujian ujung ke ujung dengan react-native- lokasi .

Mengagumkan. Saya melakukan proses yang sama beberapa hari yang lalu ketika mencoba mengekstrak beberapa fungsionalitas aplikasi ke lib. Saya tidak melakukan penghapusan package.json dan beberapa langkah kecil lainnya. Saya akan mencoba dan memeriksa semua yang Anda lakukan dan saya lakukan, dan melihat apakah masih ada hal-hal yang tidak jelas.

Terima kasih untuk detailnya. :)

@cpojer SnapshotViewIOS tampaknya juga digunakan secara internal untuk beberapa tes integrasi iOS. Ini hanya tersedia jika Anda menautkan ke modul asli RCTTest . Penggunaannya ada di sini: https://github.com/facebook/react-native/blob/master/RNTester/js/RNTesterApp.ios.js#L180

Apakah kita baru saja menghapus SnapshotViewIOS dari ekspor RN publik, yaitu harus tetap tersedia secara pribadi untuk penggunaan pengujian?

Ada beberapa diskusi tentang bagaimana menyimpan sejarah file yang sedang diimpor. Saya menemukan panduan ini yang sangat berguna dan memungkinkan saya melakukannya untuk modul NetInfo:

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

Sebagai ringkasan, Anda harus terlebih dahulu mencari tahu file mana yang perlu Anda salin. Anda kemudian membuat skrip seperti ini:

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

Anda harus meletakkan file ini di suatu tempat di luar repositori.

Anda kemudian perlu menjalankan perintah ini:

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

Perintah filter-branch akan memakan waktu cukup lama dan akan menggunakan skrip untuk memindahkan semua file yang Anda minati ke dalam satu folder. Perintah kedua harus cukup cepat dan akan memindahkan file dari folder baru ke root dan kemudian hanya menyimpan komit yang mengubah file mana pun yang ingin Anda simpan.

Anda kemudian dapat berakhir dengan riwayat seperti ini: https://github.com/react-native-community/react-native-netinfo/commits/master

hai, @cpojer Saya ingin sekali bekerja

  • Pindahkan ProgressViewIOS ke repo komunitas

Terima kasih

Catatan tentang fetch polyfill:

Hapus fetch polyfill dari repo dan gunakan kembali whatwg-fetch secara langsung jika memungkinkan

Kami harus memotongnya karena modul Blob kami tidak standar dan tidak secara otomatis melepaskan sumber dayanya. Akan lebih mudah untuk mengimplementasikan pembersihan sumber daya otomatis dengan sistem modul asli yang baru, tetapi hingga saat itu kita harus mempertahankan polyfill bercabang.

@cpojer Pindahkan "Bagikan" ke repo komunitas saat ini mengarah ke repositori lain yang memiliki set fitur kaya daripada share di dalam react-native. Jadi saya ingin memiliki repositori baru bernama react-native-simple-share atau semacamnya.

Silakan lihat di cabang ini (Saya akan menghapus repo ini setelah kita mendapatkan repo komunitas baru)

Catatan tentang fetch polyfill:

Hapus fetch polyfill dari repo dan gunakan kembali whatwg-fetch secara langsung jika memungkinkan

Kami harus memotongnya karena modul Blob kami tidak standar dan tidak secara otomatis melepaskan sumber dayanya. Akan lebih mudah untuk mengimplementasikan pembersihan sumber daya otomatis dengan sistem modul asli yang baru, tetapi hingga saat itu kita harus mempertahankan polyfill bercabang.

Karena saya memerlukan dukungan AbortController.Signal, saya akan melakukan pembaruan pada polyfill bercabang. Apakah itu sesuai dengan masa depan fetch polyfill di dalam inti?

@cpojer Saya ingin bekerja di PushNotificationIOS.

@cpojer saya bisa membantu

  • Pindahkan ImageEditor ke repo komunitas

Terima kasih!

@ nicholaslee119 Dibuat https://github.com/react-native-community/react-native-progress-view untuk Anda. Periksa komentar di atas tentang bagaimana membuat kemajuan.
@AnnsrahArtis Bagus. Dibuat https://github.com/react-native-community/react-native-simple-share untuk Anda. Silakan kirim PR ke sana!
@rafaellincoln Dibuat https://github.com/react-native-community/react-native-push-notification-ios untuk Anda kerjakan.
@dratwas @Trancever sudah ada di dalamnya, tolong kerjakan repo yang dibuat untuknya.
@ Jyrno42 Bisakah kita meningkatkan ke polyfill pihak ketiga yang mendukung semua hal yang kita butuhkan?

@cpojer Maaf saya tidak melihat bahwa @Trancever ada di dalamnya.
Saya dapat mengambil Move ImageStore to a community repo jika belum diambil atau Move ImagePickerIOS to a community repo

Bisakah seseorang memberi tahu saya mengapa AsycnStorage dan PushNotificationIOS akan dihapus? Saya pikir keduanya digunakan oleh banyak aplikasi, jadi mungkin kita bisa memindahkannya ke komunitas daripada hanya menghapusnya?

Terutama PushNoticationIos digunakan oleh banyak orang. Saya menggunakan https://github.com/zo0r/react-native-push-notification yang menggunakan PushNotificationIos. Apakah ada alternatif lain yang lebih baik yang saya tidak tahu?

@vdlindenmark AsyncStorage tidak dihapus, tetapi dipindahkan ke Komunitas

Saya ingin mengambil Picker !!!

Jika Move ImagePickerIOS to a community repo belum diambil, saya akan dengan senang hati membantu 😄

Hai @cpojer Saya telah mengirimkan # 23359 untuk menggabungkan PickerIOS dan Picker . Harap tinjau :).

Masalah ini harus disematkan 📌

@dratwas maaf, saya bingung disana. Kami benar-benar menghentikan ImageStore seluruhnya karena ada opsi pihak ketiga yang sudah tersedia seperti yang ditunjukkan oleh @EvanBacon. Apakah Anda ingin menjadi sukarelawan untuk modul lain?
@vdlindenmark seperti yang @Krizzu , kedua modul ini akan tetap ada di modul komunitas.
@Keraito Saya membuat https://github.com/-native-community/react-native-image-picker-ios untuk Anda kirimi PR.
@andersonaddo selesai! Terima kasih untuk sarannya.

@cpojer Saya ingin tahu apakah kalian juga telah mengevaluasi kemungkinan memindahkan AccessibilityInfo ke repo komunitas.

Saya tidak tahu apakah itu bisa hidup terpisah dari intinya, tetapi saya melihat manfaat dari meningkatkan dukungan aksesibilitas di React-Native.

Sudah ada beberapa proposal untuk meningkatkan dukungan aksesibilitas ke lapisan tampilan dan membuatnya lebih lintas platform (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), tetapi sesuatu yang tidak dilakukan RN Yang tidak disediakan sekarang, dan tidak ada masalah atau proposal tentang itu, adalah akses untuk preferensi a11y beberapa pengguna pada tingkat sistem operasional. Misalnya: tidak ada cara untuk mendapatkan opsi "kurangi gerakan", yang diperlukan untuk menyesuaikan aplikasi dengan mengurangi / menonaktifkan animasi .

Saya pikir opsi yang disediakan oleh UIAccessibility di iOS (saya tidak tahu yang setara di Android) bisa tersedia dari AccessibilityInfo .

Dan memiliki repo komunitas dapat menarik lebih banyak kontribusi untuk masalah khusus itu.

Terima kasih.

@cpojer Saya tidak dapat melihat modul yang belum ditetapkan, jadi saya akan berbicara dengan @Trancever jika saya dapat membantu dengan:

  • Pindahkan ImageEditor ke repo komunitas

@elucaswork Aksesibilitas sangat penting dan saya yakin itu harus menjadi bagian dari React Native itu sendiri. Kami harus melakukan semua yang kami bisa untuk meningkatkan dukungan aksesibilitas di React Native di luar kotak.
@dratwas kedengarannya bagus!

  • Pindahkan Picker ke repo komunitas.

@cpojer dapatkah saya memulai masalah ini?

sesuatu yang tidak disediakan oleh RN saat ini, dan tidak ada masalah atau usulan tentangnya, adalah akses untuk preferensi a11y beberapa pengguna pada tingkat sistem operasional. Misalnya: tidak ada cara untuk mendapatkan opsi "kurangi gerakan", yang diperlukan untuk menyesuaikan aplikasi dengan mengurangi / menonaktifkan animasi .

Saya pikir opsi yang disediakan oleh UIAccessibility di iOS (saya tidak tahu yang setara di Android) bisa tersedia dari AccessibilityInfo .

Saya baru saja hari ini bertanya-tanya tentang cara membaca opsi "kurangi gerakan" di React Native, tetapi tampaknya itu belum diterapkan.

Apa cara terbaik untuk melakukan permintaan fitur dan mendapatkan visibilitasnya? Apakah https://react-native.canny.io/feature-requests masih menjadi forum pilihan untuk permintaan fitur?

Apa yang harus kita lakukan dengan VibrationIOS ? Ini telah ditandai sebagai tidak berlaku lagi dan mendukung Vibration sejak Maret 2016 . Sepertinya kandidat yang mudah untuk dihapus.

@hramos saran bagus! Aku akan mengurusnya.

@cpojer Saya melihat bahwa Picker / PickerIOS tidak ditugaskan kepada siapa pun. Saya ingin mengerjakannya juga, jika memungkinkan.

Hai @rafaellincoln , untuk hal-hal picker, saya kira kami berencana untuk menggabungkannya terlebih dahulu di repo RN itu sendiri dan kemudian memindahkannya ke repo komunitas. Untuk penggabungan saya telah mengirimkan PR # 23359

Saya ingin memberikan pembaruan cepat tentang kemajuan yang telah dicapai semua orang dalam upaya Lean Core. Saya hanya ingin mengatakan betapa terpesona saya dengan semua kontribusi Anda hanya dalam waktu seminggu. Terima kasih banyak!

Inilah semua pekerjaan yang sudah selesai:

  • NetInfo (https://github.com/react-native-community/react-native-netinfo) berhasil dibagi dan dirilis pada npm melalui @ react-native-community / netinfo oleh @ matt-oakes, yang bahkan menambahkan tes baru dan fitur baru untuk modul!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1) berhasil dipisahkan oleh @ferrannp.
  • AsyncStorage (https://github.com/native-community/react-native-async-storage) ditarik oleh @Krizzu.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1) dipindahkan ke repo terpisah oleh @dmtrKovalenko.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1) dipisahkan oleh @michalchudziak.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1) diubah menjadi repo komunitas oleh @FonDorn.
  • PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1) diekstraksi oleh @rafaellincoln.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1) diekstrak oleh @Trancever.
  • @EvanBacon menambahkan pesan penghentian untuk ImageStore di # 23330.
  • @wellmonge menggabungkan AlertIOS dan Alert di # 23318.
  • Teknisi Callstack merilis versi pertama dari React Native CLI yang baru: https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

Saya juga ingin menyoroti bagaimana mengekstrak modul ini dapat menghasilkan pemeliharaan yang lebih baik dari modul tersebut, yaitu @ matt-oakes menambahkan tes untuk NetInfo (https://github.com/react-native-community/react-native-netinfo/pull/ 4) dan @ifsnow menambahkan jenis Flow ke AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4). Dengan memisahkan komponen ini dari React Native (dan Facebook), mereka dapat bergerak lebih cepat satu per satu tanpa diblokir oleh karyawan Facebook. Lebih lanjut, karena kita dapat memigrasi masalah yang ada dan Permintaan Tarik dari repositori React Native, itu juga akan mempermudah untuk mempertahankan React Native itu sendiri dan kita akan dapat menanggapi permintaan penarikan lebih cepat!

Inilah yang sedang kami kerjakan atau kerjakan selanjutnya:

  • Hapus GetaranIOS
  • Hapus dependensi pihak ketiga yang tidak digunakan
  • Mulai migrasi kode internal Facebook untuk menggunakan paket react-native-community baru

Sekali lagi, untuk semua orang yang telah membantu sejauh ini, terima kasih!

@tokopedia

  • Hapus dependensi yang tidak digunakan
  • Identifikasi semua dependensi di package.json yang tidak langsung digunakan di React Native

Tugas di atas diselesaikan menggunakan PR # 23428 dan # 23467

@tokopedia

  • Hapus SwipeableList

dibahas di # 23484, dapat menghapus ListView juga jika Anda mau.

FWIW, CameraRoll memiliki ketergantungan pada ListView. Mungkin memindahkannya terlebih dahulu akan berguna dalam menghapus ListView.

FWIW, CameraRoll memiliki ketergantungan pada ListView. Mungkin memindahkannya terlebih dahulu akan berguna dalam menghapus ListView.

File CameraRollView di RNTester tampaknya menjadi satu-satunya hal yang menggunakan ListView di ReactNative. Mungkin PR untuk menukar itu ke FlatList akan menjadi hal yang baik untuk dilakukan untuk memutus ketergantungan itu. Saya akan dengan senang hati menerima itu jika itu terjadi sebelum CameraRoll ditarik sepenuhnya

Jika dibandingkan dengan versi lain Ukuran ditingkatkan yang merupakan poin penting, Jadi apakah ada cara untuk mengurangi ukuran di react native 0.58.4, Hanya untuk satu halaman butuh 18MB
Berikut ini adalah dependensi saya
"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"

saya melihat bahwa navigatorIos telah dihapus dari rn 0,59. Saya bertanya-tanya apakah sudah ada paket komunitas untuk itu? @tokopedia

@cpojer Saya dapat mengerjakan yang ini, jika ada yang belum mulai mengerjakan ini

  • Hapus fetch polyfill dari repo dan gunakan kembali whatwg-fetch secara langsung jika memungkinkan

@ nimish-gupta mencobanya! Mungkin ada beberapa masalah, tetapi kita dapat membahasnya di PR dan melihat bagaimana kelanjutannya. Mungkin tidak mungkin untuk melakukan ini, tetapi mari kita coba dan lihat seberapa jauh kita bisa mendapatkannya.

@cpojer Saya ingin tahu apakah KeyboardAvoidingView cukup berguna untuk disimpan di inti.
Sudahkah kalian berpikir untuk menghapusnya juga untuk memberi ruang bagi solusi yang lebih kuat seperti https://github.com/APSL/react-native-keyboard-aware-scroll-view , atau apakah sangat berguna untuk tetap fokus ?

@elucaswork kami benar-benar menggunakan yang itu secara mengejutkan banyak di FB, jadi saya berharap kami akan tetap mempertahankannya untuk sementara waktu. Mungkin kita dapat mendiskusikan memindahkannya ke repo terpisah setelah kita selesai dengan pekerjaan yang saat ini tercakup dalam proyek ini.

Kerja bagus di sini. Namun, saya mencoba menggunakan NetInfo dan AsyncStorage dan tampaknya file podspec hilang. @cpojer Saya rasa banyak dari kita menggunakan Pod, bukankah seharusnya kita menjadikannya semacam standar dengan paket react-native yang memiliki kode ios asli?

Kerja bagus di sini. Namun, saya mencoba menggunakan NetInfo dan AsyncStorage dan tampaknya file podspec hilang. @cpojer Saya rasa banyak dari kita menggunakan Pod, bukankah seharusnya kita menjadikannya semacam standar dengan paket react-native yang memiliki kode ios asli?

Sepertinya ini memiliki subspec di podfile React Native yang mungkin perlu ditambahkan ke repo baru: https://github.com/facebook/react-native/blob/master/React.podspec#L301 -L304

@yaau @Theavior Tempat yang bagus. Saya telah membuka PR untuk menambahkan Podspec ke repo NetInfo baru:

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

@cpojer menurut pengalaman saya KeyboardAvoidingView benar-benar tidak stabil, mungkin ini adalah kesempatan yang baik untuk memperbaikinya jika akan tetap pada intinya ??

Saya ingin mengusulkan agar kita menghentikan ART untuk mendukung react-native-svg .

@justDanielMata ya, menurut saya sih harus diperbaiki kalau tetap inti, tapi itu harus ditangani dalam pembahasan yang berbeda.
@EvanBacon Saya akan membahas ini dengan tim dan kembali kepada Anda.

Hapus WebView dari repo RN

Saya senang menerima ini

@ericlewis sayangnya itu hanya bisa dilakukan dari pihak FB karena kita masih bergantung secara internal.

NavigatorIos telah dihapus dari react-native , @cpojer dapatkah Anda membuat repo di bawah react-native-community ? Saya ingin mengembalikannya, jika tidak apa-apa

saya memiliki versi yang berfungsi di sini
https://github.com/michaelknoch/react-native-navigator-ios

@sijad (fyi: saya belum memperbaiki impor jenis aliran yang rusak)

@sijad Kami hanya ingin memasukkan komponen ke dalam react-native-community yang kami tetap rekomendasikan untuk digunakan. Komponen yang kami keluarkan dari React Native sebagai bagian dari Lean Core di atas adalah komponen yang bagus untuk digunakan di aplikasi Anda. NavigatorIOS bukanlah sesuatu yang kami ingin orang terus gunakan karena kami merekomendasikan solusi navigasi lainnya. Namun, tampaknya @michaelknoch mengambil alih untuk mempertahankannya, jadi saya merekomendasikan menggunakan versi itu sampai Anda dapat pindah ke yang lain.

tetapi mengapa Anda menyarankan agar tidak menggunakan navigatorios? Apakah menurut Anda kinerja navigasi berbasis JS (fe react-navigation) cukup cepat sehingga navigasi asli tidak lagi wajib?
@tokopedia

@cpojer Hai baru saja membuat PR untuk ProgressViewIOS https://github.com/react-native-community/react-native-progress-view/pull/1

Sebaliknya @michaelknoch , kami merekomendasikan Anda untuk menggunakan solusi navigasi asli. Kebetulan NavigatorIOS adalah sistem navigasi lawas yang tidak lagi kami gunakan di Facebook. Saat ini, kami menggunakan sistem navigasi asli kustom kami sendiri di Facebook yang sayangnya bukan open source. Kami menyarankan orang untuk menggunakan https://github.com/wix/react-native-navigation.
@kdenz luar biasa, saya akan memeriksanya!

@cpojer Baru saja menyelesaikan migrasi dan SegmentedControlIos dan menambahkan aplikasi contoh.

  • Menguji Komponen dan semuanya bekerja dengan baik di proyek RN baru.
  • Dirilis ke npm .

@cpojer menyelesaikan pemindahan Clipboard-Api dari inti RN ke versi komunitas dan menambahkan aplikasi contoh untuk menguji semuanya.

  • Menguji Komponen dan semuanya bekerja dengan baik di proyek RN baru.
  • Dirilis ke npm .

@cpojer Saya baru saja mulai dengan react native, tetapi saya bisa mencoba

  • Pindahkan "TestModule" asli ke RNTester

jika belum terselesaikan!

@cpojer bagaimana dengan komponen Toast? Saya pikir itu harus ditinggalkan sekarang dan dihapus nanti.
Alasan:

  1. Toast hanyalah jenis / gaya notifikasi, ada banyak jenis komponen notifikasi
  2. Hanya ada implementasi Android
  3. Ada banyak sekali komponen "seperti roti panggang" yang dikelola oleh komunitas https://github.com/search?q=react+native+toast yang multiplatform

Apa yang Anda pikirkan?

Saya tertarik untuk menjaga TabBarIOS tetap ada dan dipelihara / bukti masa depan. Saya merasa ini cukup berharga, bersama dengan NavigatorIOS, sebagai solusi ringan dengan aksesibilitas kelas satu.

Jika ini adalah pendapat umum bahwa itu tidak boleh berada di bawah react-native-community, karena seperti NavigatorIOS itu sudah usang, saya akan melakukannya dengan akun saya sendiri tetapi saya lebih suka di bawah payung -community.

Apakah ada alasan penghentian selain karena tidak digunakan di dalam Facebook dan hanya untuk iOS (yang merupakan alasan yang layak)?

Saya memiliki versi yang berfungsi di sini: https://github.com/michaelknoch/react-native-tabbar-ios

@karen_karirrrrrrrrrrrrrrrrrrrrrrrrrg termasukan.rrrrrrrrrrrrrrrrrrrrrrrrrrrran

Hai, saya memindahkan kode asli ActionSheetIOS ke expo. Silakan periksa 🙇
https://github.com/expo/react-native-action-sheet/pull/105

Saya mencoba menemukan di mana react-clone-referenced-element digunakan, tetapi tidak berhasil. Apakah saya melewatkan sesuatu? Saya baru dalam berkontribusi dan bereaksi-basis kode asli, jadi maaf jika itu pertanyaan bodoh.

@Rendfold Anda tidak melewatkan sesuatu, saya bertanya-tanya hal yang persis sama.

Berikut adalah komit relevan yang ditambahkannya: https://github.com/facebook/react-native/commit/665954efcc4460839d00a572be84cf204a42c0d5

Sepertinya itu untuk memenuhi ketergantungan sekarang setelah ListView telah dihapus. Saya yakin ini hanya digunakan di dalam Facebook juga.

@ericlewis itu diperbarui di sana, tetapi tidak ditambahkan jadi saya melangkah lebih jauh. Harus pergi ke 2016 berkomitmen untuk menemukan di mana itu eaba2abc0b76f9a26703c87eecf4a8bb52f9ed3e
Tapi ya, Anda benar, ini untuk ListView.

@cpojer Saya mencolek di DrawerLayout / DrawerLayoutAndroid untuk # 23730 dan tampaknya cukup terisolasi.

Apakah akan menjadi kandidat yang baik untuk diekstraksi juga? Saya senang menerimanya.

Saya perhatikan bahwa dari modul yang disebutkan di sini, hanya react-native-async-storage dan react-native-netinfo yang telah lulus tes e2e untuk kedua platform, react-native-cameraroll juga memilikinya tetapi tesnya gagal di android.

Saya baru-baru ini melihat pengujian e2e dari react-native-svg menggunakan Detox, dan mengaturnya di travis dan bitrise:
https://travis-ci.org/msand/react-native-svg-e2e/builds
https://app.bitrise.io/app/1a150b039e9b8fbd#/builds

Saya memilikinya mengambil tangkapan layar di ios dan android, dan menguji pengaturan proyek baru di react-native biasa untuk keduanya, dan juga dengan cocoapods untuk ios.

Saya tidak memiliki akses untuk mengatur bitrise untuk repo react-native-svg, @cpojer apakah mungkin mendapatkan hak untuk itu? Atau haruskah saya memigrasi tes e2e ke circleci? Sepertinya emulator android memiliki akses ke kvm / akselerasi di sana.

Agar dapat berfungsi tanpa kvm di travis dan bitrise memerlukan canary emulator terbaru dan banyak upaya untuk menemukan konfigurasi yang berfungsi, karena tidak mendukung akselerasi. Bagaimanapun, jika ada modul lain yang tertarik untuk menyiapkan e2e di tempat lain selain circleci, maka repo ini mungkin berguna: https://github.com/msand/react-native-svg-e2e

Di luar topik: Jika seseorang tertarik untuk membantu pengujian react-native-svg, akan sangat bagus untuk mendapatkan skrip / aplikasi untuk menjalankan pengujian dari sini: https://github.com/web-platform-tests/ wpt / tree / master / svg
Mungkin dapat menggunakan https://github.com/kristerkari/react-native-svg-transformer untuk memuat file svg sebagaimana adanya, dan kemudian langkah perbandingan untuk tangkapan layar akan sangat membantu.

Berkenaan dengan penghentian / pemisahan ART, saya mendukung untuk memisahkannya dari repo react-native, dan membiarkannya hidup sebagaimana adanya dan mendapatkan perbaikan bug / peningkatan kinerja. Setidaknya jika Anda hanya memiliki misalnya data jalur sederhana yang ingin Anda render, dan tidak memerlukan bagian lain dari spesifikasi svg, maka kemungkinan ART akan lebih berkinerja bila digunakan setidaknya dalam react-native. Karena tidak harus mendukung banyak fitur sebagai sesuatu yang bertujuan untuk kesesuaian spesifikasi svg penuh.

Jika Anda merender ke kanvas menggunakan ART di web, ini mungkin lebih cepat daripada svg, tergantung pada kasus penggunaan; profil untuk menemukan hotspot / bottleneck Anda yang sebenarnya sebelum melakukan upaya dalam pengoptimalan semacam ini, dan lakukan pengukuran A / B yang tepat dengan statistik atas data yang cukup jika Anda melakukannya. Dan, jika Anda sudah memiliki kode yang menggunakan ART, mungkin tidak masalah untuk tetap menggunakannya. Tapi, untuk kode baru saya mungkin akan merekomendasikan menggunakan spek konforman svg dan menuliskannya dengan cara yang kompatibel dengan web (react-native-) (kecuali jika itu membutuhkan kinerja level canvas / webgl). Implementasi indeks kompatibilitas.web.js akan disertakan dalam rilis react-native-svg yang akan datang untuk tujuan ini juga.

Saya baru saja hari ini bertanya-tanya tentang cara membaca opsi "kurangi gerakan" di React Native, tetapi tampaknya itu belum diterapkan.
Apa cara terbaik untuk melakukan permintaan fitur dan mendapatkan visibilitasnya? Apakah https://react-native.canny.io/feature-requests masih menjadi forum pilihan untuk permintaan fitur?

@kristerkari Saya telah mengirimkan PR menambahkan dukungan untuk "mengurangi gerakan" menjadi AccessibilityInfo
https://github.com/facebook/react-native/pull/23839

@cpojer Hai, maaf saya keluar sebentar. Saya telah berhasil memindahkan react-native-status-bar. Tapi tidak mencela itu pada intinya. Haruskah saya melakukannya sekarang?
Dan juga saya berencana membuat rilis tambahan untuk paket react-native-status-bar.

@dmtrKovalenko ya, tolong lakukan!

Membuat PR untuk status-bar deprecation -> # 23898

Saya tidak memiliki akses untuk mengatur bitrise untuk repo react-native-svg, @cpojer apakah mungkin mendapatkan hak untuk itu? Atau haruskah saya memigrasi tes e2e ke circleci? Sepertinya emulator android memiliki akses ke kvm / akselerasi di sana.

@msand Saya pikir semua orang telah memilih CircleCI, karena ini berjalan lebih cepat seperti yang diukur oleh

react-native-cameraroll juga memilikinya tetapi pengujiannya gagal di android.

Saya mengalami masalah dalam mendapatkan tes Android untuk lulus, tesnya sangat sederhana (apakah aplikasi dimulai), jadi ada sesuatu dalam konfigurasi. Saya telah menyalin konfigurasi dari netinfo, tetapi tidak berfungsi di luar kotak. @ matt-oakes apakah Anda melihat sekilas jika ada sesuatu yang terlewat?

@bartolkaruza Ini adalah sesuatu yang saya perbaiki di repositori NetInfo di sini: https://github.com/react-native-community/react-native-netinfo/pull/25

Saya akan mengirimkan PR untuk memperbaiki Rol Kamera sekarang.

@cpojer ada rencana untuk mengekstrak tvOS dari intinya?

Saya rasa kita juga harus menghapus Button .

Hapus atau ekstrak? Saya lebih suka mengekstrak daripada menghapus.

Sebuah pertanyaan untuk perpustakaan react-native yang saat ini menggunakan fungsionalitas yang diekstrak ke dalam modul komunitas:

Apa pendekatan yang direkomendasikan untuk mengandalkan modul yang diekstrak? Dependensi langsung atau peerDependency?

Sebagai contoh, reactotron-react-native saat ini menggunakan AsyncStorage secara langsung. Saat menggunakan react-native-asyncstorage sebagai dependensi langsung, ini dapat menyebabkan beberapa versi digunakan dalam aplikasi yang mengonsumsi. Apakah ini sedang direncanakan atau haruskah ini merupakan ketergantungan sebaya?

Saya pikir itu harus menjadi ketergantungan, dan AsyncStorage mendefinisikan ReactNative sebagai peerDependency, dengan cara ini ia dapat menggunakan beberapa versi AsyncStorage di aplikasi yang sama (kecuali Anda ingin memastikan untuk menggunakan yang sama, dan Anda menjelaskannya di perpustakaan readme), tetapi proses install akan menampilkan peringatan jika dependensi ReactNative tidak dapat bertemu.

Apakah sesederhana ini? Bukankah akan ada beberapa versi yang berpotensi dari modul asli bernama "AsyncStorage"? Saya pikir ini bisa menimbulkan masalah, atau tidak?

Ya, akan ada beberapa versi, tetapi jika masing-masing versi berdiri sendiri dan tidak berbagi data di antara mereka, seharusnya tidak ada masalah.

Hai @cpojer Saya ingin membantu dengan beberapa masalah ini, dapatkah saya mulai dengan "Pindahkan komponen PickerIOS / Picker yang digabungkan ke repo komunitas"?

Hai @wagnermaciel , saya dan @bartolkaruza sedang mengerjakannya. Dan hampir selesai. @cpojer dapatkah Anda membuat repo komunitas. Sebenarnya saya kira rencananya adalah memindahkannya ke komunitas dan menggabungkan kedua komponen.

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

@jainuniya Jangan khawatir. @cpojer Apakah ada masalah di sini yang dapat Anda berikan kepada saya? Saya bekerja dengan sekelompok teman dan kami semua tertarik untuk terlibat sebisa kami 👍

@wagnermaciel terima kasih telah bergabung dalam upaya kami! Saya baru saja memperbarui postingan asli dan menghapus orang yang tidak responsif pada tugas yang mereka daftarkan. Semua yang di atas tanpa nama di sebelahnya dapat Anda pilih jika Anda mau. Yang mana yang ingin kamu kerjakan?

Hai @cpojer ,

@ aerlinn13 Saya

@cpojer Terima kasih atas tanggapan yang cepat! Dapatkah Anda menetapkan "Hapus ProgressBarAndroid dari repositori, mungkin pindah ke repo komunitas" kepada saya? Saya ingin sekali mengerjakannya. Terima kasih!!!

@wagnermaciel selesai! Menantikan kontribusi Anda :)

Hai @cpojer , saya ingin menyebutkan komponen ToastAndroid. Apakah Anda punya ide apa yang harus dilakukan dengan itu?
Sepertinya ToastAndroid digunakan di HMRLoadingView dan LinkingExample. Jadi dipertanyakan bagaimana cara mengganti tipe notifikasi untuk kedua komponen tersebut.
Pokoknya Jika digunakan secara internal oleh FB maka itu bukan masalah saat ini dan abaikan komentar saya :)

Posting asli saya:

@cpojer bagaimana dengan komponen Toast? Saya pikir itu harus ditinggalkan sekarang dan dihapus nanti.
Alasan:

  1. Toast hanyalah jenis / gaya notifikasi, ada banyak jenis komponen notifikasi
  2. Hanya ada implementasi Android
  3. Ada banyak sekali komponen "seperti roti panggang" yang dikelola oleh komunitas https://github.com/search?q=react+native+toast yang multiplatform

Apa yang Anda pikirkan?

@radeno Saya tidak berpikir kami akan menghapusnya sekarang, tapi kami mungkin memilih untuk melakukannya nanti.

Maaf @cpojer sangat sibuk bulan lalu tetapi saya akan melanjutkan pekerjaan di ProgressViewIOS hari ini

@cpojer Saya baru saja melihat "Deprecate StatusBarIOS" dicentang, tetapi StatusBarIOS.ios dan StatusBarIOS.android belum berubah sejak 2018. Apakah saya melewatkan sesuatu?

Jika tidak ada yang hilang, maaf. Jika tidak, beri tahu saya, karena saya dapat membantu.

@cpojer Bisakah Anda memberikan penjelasan tentang di mana menemukan atau cara membuat berkas untuk folder ios? Terima kasih sebelumnya!

@cpojer siap untuk memindahkan komponen apa pun yang belum ditetapkan, atau menangani pengauditan dependensi JS.

@cpojer Saya ingin berkontribusi untuk react-native karena perusahaan kami sedang menggunakannya dalam produksi. Saya menemukan masalah payung ini saat mencari masalah pertama yang baik, tetapi saya tidak dapat memahami apa yang masih diperebutkan.

Apa prioritas utamanya? Apakah Anda memerlukan bantuan lebih lanjut dengan masalah di atas (mis. Pindahkan ProgressViewIOS ke repo komunitas) atau dengan masalah yang ada di bagian pekerjaan mendatang? Ada beberapa yang tidak memiliki siapa pun yang ditugaskan (seperti yang memindahkan ProgressViewIOS) tetapi membaca utas sepertinya sudah diambil.

Prioritas utama

Apakah kami memiliki instruksi untuk membuat lib RNC baru di suatu tempat di wiki atau sesuatu? Mereka akan berguna untuk disimpan dan ditemukan oleh orang lain, tidak hanya untuk RNC tetapi juga sebagai template / pedoman untuk semua libs.

Saya baru saja menemukan ini sebenarnya, tetapi belum selesai. :)

Saya pikir kandidat berikutnya adalah:

  • KeyboardAvoidingView, SafeAreaView
  • Modal (?).

Dengan senang hati menerima SafeAreaView !

Apakah migrasi dari inti masih untuk diperebutkan? Jika demikian, apa kandidat terbaru selanjutnya? Saya ingin mencoba membantu juga :)

Saya pikir @brentvatne @ide @ericvicenti @kmagiera telah memberi tahu pendapat tentang apa yang masih bisa dipindahkan dan tidak memengaruhi pengalaman pengembang saat menggunakan pustaka pihak ketiga seperti navigasi-reaksi dan dihidupkan kembali.

Salah satu hal yang dapat kami gunakan untuk membantu adalah menyingkirkan penggunaan ToolbarAndroid di RNTester di Android. Bisakah seseorang mengganti penggunaannya dengan yang lain?

Baru saja selesai memperbarui pos tingkat atas. ImagePickerIOS adalah salah satu komponen yang tidak diklaim yang belum diekstraksi. Apakah ada orang yang ingin berusaha dan mengirim PR ke repositori yang dibuat di https://github.com/react-native-community/react-native-image-picker-ios ?

Akhirnya, tampaknya pekerjaan untuk menghadirkan DatePickerIOS dan DatePickerAndroid tidak pernah terwujud, lihat https://github.com/react-native-community/discussions-and-proposals/pull/85 - Ini adalah peluang bagus! Idealnya, seseorang mengambil alih tanggung jawab untuk mengekstrak kedua komponen DatePicker ke dalam repo ini: https://github.com/react-native-community/react-native-datepicker

Dengan dua ekspor tingkat tinggi, DatePickerIOS dan DatePickerAndroid.

Setelah versi awal jika dikirimkan dan komponen tidak digunakan lagi dari RN, komunitas akan dapat menggabungkan keduanya menjadi satu komponen.

cc @mmcknett dan @Swaagie

Menambahkan ReactART sebagai bagian lain dari RN yang ingin kami ekstrak ke dalam repo terpisah: https://github.com/react-native-community/react-native-art

Butuh bantuan!

dapatkah saya mengambil DatePickerIOS dan DatePickerAndroid ?

@sijad Apakah Anda pernah bekerja dengan React Native sebelumnya dan apakah Anda memiliki rencana untuk melakukan ekstraksi?

@cpojer Dapatkah saya menggunakan ReactART mulai Senin depan? Saat ini saya menginjili dan mendorong adopsi RN di tempat kerja, jadi saya harus berurusan dengan ReactART dan membungkus kode asli sebagai paket RN yang dapat digunakan kembali.

@ivanmoskalev terdengar hebat! Beri tahu saya saat Anda memulai dan buat PR untuk repo baru yang saya buat :)

@cpojer apakah Anda secara tidak sengaja mengabaikan cabang review ? Itu semua bekerja tanpa dokumen dan beberapa tes detoksifikasi.

edit: cc @sijad untuk kesadaran

edit 2: https://github.com/Swaagie/react-native-datetimepicker semua berfungsi seperti yang ada di cabang review . Saya tidak punya hak untuk membuat ulang repo atm itu, tetapi ingin menyelesaikannya.

Juga @sijad , jika Anda ingin berkontribusi dalam bentuk tinjauan menyeluruh dan perbaikan kode (jika diperlukan), kami akan sangat menyambutnya!

@cpojer @sijad , karya tersebut pasti terwujud seperti yang disebutkan @Swaagie . Saya juga mengulurkan tangan di Discord.

Jangan khawatir ketinggalan cabang - mudah untuk dilewatkan. Dalam retrospeksi saya seharusnya menyarankan Martijn membuka PR di Draft -negara sementara dia terus membuat PR yang lebih kecil untuk pekerjaan yang kami selesaikan dan masukkan ke dalam sprint kami.

Adakah tempat di mana saya dapat membantu menyarankan dokumentasi untuk prosedur operasi standar untuk modul yang lebih kecil ini di Lean Core pada react-native-community ? Kami telah belajar banyak tentang pengulangan pada react-native-datetimepicker - ingin sekali berbagi dengan komunitas yang lebih luas untuk membuat modularisasi lain lebih mudah / lebih cepat.

Ya ampun, saya harus memiliki dan kemudian membuat ulang repo dengan nama yang berbeda -.-

Bisakah Anda mengirim PR ke datepicker yang baru?

Akan melakukan! Terima kasih atas perputaran yang cepat! Juga tidak ada perasaan sulit, kami semua adalah manusia dan seperti @crobbins mengatakan kami seharusnya membuat pekerjaan lebih terlihat.

@cpojer dapatkah Anda memperbarui pos teratas dan menambahkan pegangan github saya ke:
Merge DatePickerIOS and DatePickerAndroid, move to community repo
Terima kasih!

@Swaagie Selesai!

Akan luar biasa jika Anda mengadopsi https://github.com/yfuks/react-native-action-sheet dan menggabungkannya dengan ActionSheetIOS

Jika Anda akan mempertahankan repo yang dibuat untuk memindahkan API dari inti React Native, pastikan Anda mampu mendukung implementasi untuk platform lain, dan pastikan untuk melihat implementasi yang setara di react-native-web dan bereaksi -native-windows.

@cpojer apakah Anda benar-benar melakukan semua itu atau dapatkah saya mengambil satu?
FWIW Saya telah membuat kemajuan dengan RCTImagePickerIOS dan akan mengirimkan PR dalam beberapa hari ke depan.

@ Johan-dutoit ya, sayangnya penghapusan modul hanya bisa dilakukan oleh karyawan Facebook. Menantikan ekstraksi ImagePickerIOS Anda!

@cpojer 🎉PR Dikirim dan diuji 🎉

@cpojer Saya ingin Anda bereaksi secara asli ke folder yang dianggap agak membingungkan, dalam file readme.md yang menjelaskan apa yang ingin Anda lakukan di setiap file. Ini akan sangat memudahkan mereka yang ingin berkontribusi pada proyek. Seperti kail

Sebagai contoh

image

  • React.js
    Tujuan utama dari file ini adalah ...
  • react-native-implementation.js
    Tujuan utama dari file ini adalah ...
  • react-native-interface.js
    Tujuan utama dari file ini adalah ...

Ketiga file tersebut mungkin sedikit mudah dipahami, tetapi ketika kita memiliki file seperti ini, ini bisa menjadi sedikit rumit.
image

Jelas mereka tidak harus terlalu deskriptif, apalagi menjelaskan apa yang dilakukan setiap file. Hanya definisi yang paling relevan atau dasar dari apa yang dimaksudkan untuk dilakukan di folder tertentu.

Selain itu, akan sangat membantu untuk menunjukkan garis besar cara kerja repositori ini. Saya ingin tahu pendapat Anda. Terimakasih untuk semuanya.

@cpojer Ada yang tersisa yang bisa saya ambil? Akan sangat senang untuk bergabung.

Seperti yang disebutkan @FLGMwt di https://github.com/facebook/react-native/issues/23313#issuecomment -469288200, akan sangat bagus untuk mengeluarkan DrawerLayoutAndroid juga

Akan sangat bagus untuk memindahkan ToastAndroid dan Animated juga

@ecreeth , file-file itu menggunakan createReactClass karena mereka bergantung pada mixin yang belum dihapus. File yang menggunakan createReactClass masih menggunakan propTypes tetapi akan dihapus untuk Flow setelah diperbarui.

@TheSavior Terima kasih banyak atas informasinya!

Ingin berkontribusi, saya melihat "Tombol Pindahkan ke repo komunitas" belum diambil. Apa yang perlu dilakukan? Akan sangat senang membantu!

Tentu. Cukup periksa yang lain seperti https://github.com/react-native-community/react-native-netinfo. Anda harus memiliki kode asli untuk ios dan android, ditambah js. Sayangnya, kami tidak memiliki cara khusus untuk membuat lib baru.

Hai Cara menggunakan tampilan web setelah menghapus tampilan web di RN

Hai, akan sangat senang membantu! Saya melihat bahwa semua tugas "hapus" telah ditetapkan ke @cpojer , apakah ada kelas yang dapat saya hapus untuk mendapatkan bantuan? misalnya "ImageStore"

Hai, saya dapat membantu memindahkan DatePickerComponents, beri tahu saya bagaimana saya bisa membantu @cpojer , Terima kasih!

Halo @cpojer , saya dapat membantu memindahkan komponen

Dengan senang hati saya mencoba memindahkan Button ke repo komunitas baru. Akan sangat menghargai beberapa panduan tentang cara melanjutkan, tetapi saya akan mulai dengan melihat sumbernya dan mulai memahami arah saya. @cpojer mohon saran.

PR dibuka untuk menghapus Hapus DatePickerAndroid, DatePickerIOS, TimePickerAndroid

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

Bagaimana kita memutuskan kapan menambahkan ekspor baru ke inti? Misalnya, useWindowDimensions hook dapat dibangun di ruang pengguna tetapi telah ditambahkan ke inti - https://github.com/facebook/react-native/blob/3b3c95b0170e60983eb6e89b910d100d08eee141/Libraries/Utilities/useWindowDimensions .js

Saya pikir pemikiran kami dengan hook adalah bahwa memodernisasi inti react-native untuk menyediakan hook secara default masuk akal. Tidaklah menyenangkan jika bereaksi asli hanya menyediakan API lama dan memiliki kaitan yang membungkusnya dalam paket komunitas terpisah.

Jadi menurut saya pengait adalah pertanyaan khusus yang berbeda dari umumnya menambahkan ekspor baru ke inti.

Hai semuanya! Saat ini tidak ada tindakan yang dapat dilakukan oleh anggota dari komunitas. Penghapusan yang saat ini dijadwalkan ditangguhkan karena dua alasan:

  • Kami menunggu beberapa saat hingga kami menghapus komponen untuk memberikan waktu kepada komunitas untuk bermigrasi ke versi yang diekstrak.
  • Penghapusan hanya dapat dilakukan oleh seseorang dari Facebook karena kami sebenarnya hanya memindahkan file-file tersebut menjadi internal Facebook hingga kami mengadopsi modul eksternal di masa mendatang.

Mengenai API berbasis hook, masalah ini bukanlah jalan yang tepat untuk diskusi itu. Secara umum, saya percaya kita harus menambahkan API berbasis hook secara progresif saat kita memikirkan kembali API publik kita di masa depan.

Halo semuanya, saya baru dalam berkontribusi pada proyek sumber terbuka dan saya ingin tahu apakah saya masih dapat membantu mengatasi masalah ini.

Penghapusan yang dijadwalkan saat ini ditangguhkan karena dua alasan ...

Apakah kesalahan bahwa ToolbarAndroid telah dihapus (secara diam-diam)?

@cpojer Dapatkah saya melakukan 'Pindahkan Tombol ke repo komunitas'?

@Archulan Anda dapat mengirim PR Anda ke react-native-button

@Arulan lihat komentar ini # 23313 (komentar)

@Archulan Anda dapat mengirim PR Anda ke react-native-button

Baik. Bisakah Anda membimbing saya dalam melakukan ini?

Saya pikir tidak masuk akal untuk mengeluarkan Button . Komponen ini sangat kecil dan sangat membantu untuk mendapatkan beberapa fungsionalitas dasar tanpa perlu menginstal pustaka apa pun.

@tokopedia

Saya pikir tidak masuk akal untuk mengeluarkan Button .

sangat aneh seperti react berisi <Button/>

setelah revolusi seharusnya ada

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

lainnya bisa didorong oleh komunitas.

untuk mendapatkan beberapa fungsionalitas dasar.

mungkin harus menggunakan monorepo di react-native dengan react-native-element seperti react dengan react-dom

@cpojer Apakah Getaran (https://reactnative.dev/docs/vibration) juga dipindahkan ke proyek komunitas? Jika demikian, dan karena tampaknya cukup kecil untuk memulai, saya dapat membantu dengan itu.

@cpojer dapatkah saya menghapus ImageStore ?

Apakah mungkin bantuan dengan ini? Saya seorang pemula dan saya pikir saya bisa belajar banyak dengan ini.
Salam.
Manuel Portero.

Jika ada bantuan yang masih dibutuhkan dengan ini, saya dengan senang hati membantu 😃

saya juga

Saya ingin berkontribusi. Apakah ada sesuatu yang saya bisa lakukan?

Apakah ada sesuatu yang saya bisa lakukan?

Saya ingin berkontribusi, apakah ada yang bisa saya lakukan?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat