React-native: โ˜‚๏ธ ๋ฆฐ ์ฝ”์–ด

์— ๋งŒ๋“  2019๋…„ 02์›” 06์ผ  ยท  196์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/react-native

์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์šฐ๋ฆฌ๋Š”โ€œLean Coreโ€๋ผ๋Š” ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์ง„์ „์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๋™๊ธฐ๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค . ์ˆ˜๋…„์— ๊ฑธ์ณ React Native๋Š” ํ˜„์žฌ ๊ตฌ์‹์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์œ ์‚ฐ ์ธ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ถ•์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ •๋ฆฌํ•˜๊ณ  ์ €์žฅ์†Œ๋ฅผ ํ›จ์”ฌ ๋” ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ƒํƒœ๋กœ ๋งŒ๋“ค ๋•Œ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ €์žฅ์†Œ ์žฌ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ž‘์—…์„ ํฌํ•จํ•˜์—ฌ ๋ฆฐ ์ฝ”์–ด ๋ชฉํ‘œ์— ๋„๋‹ฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์ถ”์ ํ•˜๊ธฐ์œ„ํ•œ ํฌ๊ด„์  ์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋ฏ€๋กœ ์ƒˆ ํ•ญ๋ชฉ์ด ์ถ”๊ฐ€๋˜๊ณ  ์™„๋ฃŒ๋œ ํ•ญ๋ชฉ์€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ•ญ๋ชฉ์€ ์ž‘์—…์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ํ•ญ๋ชฉ์— ํ• ๋‹น ๋œ ์ด๋ฆ„์ด ๋ณด์ด์ง€ ์•Š๊ณ  ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ์˜๊ฒฌ์— ์ž์›ํ•˜์—ฌ ์ €์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค!

๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ๋Ÿฐํƒ€์ž„

React Native๋Š” ํ˜„์žฌ ๋งŽ์€ ์ˆ˜์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ตฌ์‹์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ์ €์žฅ์†Œ์˜ ์ผ๋ถ€์ด๋ฉฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€๋ฆฌ ์ €์žฅ์†Œ ๋˜๋Š” facebookarchive ๋กœ ์ด๋™ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋ชฉ๋ก์€ ๋ถ€๋ถ„์  ์œผ๋กœ @ axe-fb ๊ธฐ๋ฐ˜์œผ๋กœํ•ฉ๋‹ˆ๋‹ค . ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์€ ์•„๋ž˜์—์„œ @ matt-oakes์˜ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผ ๋Œ€๋žต์ ์œผ๋กœ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/facebook/react-native/issues/23313#issuecomment -461462981

  • [] ImageStore (@cpojer) ์ œ๊ฑฐ
  • [] PushNotificationIOS (@cpojer) ์ œ๊ฑฐ
  • [] AsyncStorage (@cpojer) ์ œ๊ฑฐ
  • [] ์Šฌ๋ผ์ด๋” ์ œ๊ฑฐ (@cpojer)
  • [] ProgressBarAndroid (@cpojer) ์ œ๊ฑฐ
  • [] ProgressViewIOS (@cpojer) ์ œ๊ฑฐ
  • [] MaskedViewIOS (@cpojer) ์ œ๊ฑฐ
  • [] ActionSheetIOS (@cpojer) ์ œ๊ฑฐ
  • [] ImagePickerIOS (@cpojer) ์ œ๊ฑฐ
  • [] Picker ๋ฐ PickerIOS ์ œ๊ฑฐ (@cpojer)
  • [] DatePickerAndroid, DatePickerIOS (@cpojer) ์ œ๊ฑฐ
  • [] ReactART (@cpojer) ์ œ๊ฑฐ

ํƒ€์‚ฌ ์ข…์†์„ฑ

์ˆ˜๋…„์— ๊ฑธ์ณ ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ์–‘์˜ ์˜์กด์„ฑ, ํŠนํžˆ JavaScript๋ฅผ ์ถ•์  ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Metro ๋ฐ react-native-cli ์™€ ๊ฐ™์€ React Native์—์„œ ํ•ญ๋ชฉ์„ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด๋Š” package.json์— ๋งŽ์€ ์–‘์˜ ๋„๊ตฌ ์ข…์†์„ฑ์„ ๋‚จ๊ฒจ ๋‘ ์—ˆ์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์€ RN ์ž์ฒด์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•„ React Native์˜ ์ „์ฒด ์„ค์น˜๊ฐ€ ๋ถ€ํ’€๋ ค์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ ๋œ ๋ชจ๋“  ์ข…์†์„ฑ์„ ๊ฐ์‚ฌํ•˜๊ณ  ์ œ๊ฑฐ ํ•  ์ˆ˜์žˆ๋Š” ์ข…์†์„ฑ์„ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์ข…์†์„ฑ

    • [] ์–ด๋–ค ์ข…์†์„ฑ์ด ํฐ์ง€, ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ

    • [] ๋ณด์•ˆ ์ˆ˜์ •์„ ์œ„ํ•ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜์žˆ๋Š” ์ข…์†์„ฑ ํŒŒ์•…

    • [] ๋” ์ž‘์€ ์„ค์น˜ ํฌ๊ธฐ๋ฅผ ์œ„ํ•ด ์ค‘๋ณต ์ œ๊ฑฐ (= ๋ฒ„์ „ ๋ถˆ์ผ์น˜ ๊ฐ์†Œ) ํ•  ์ˆ˜์žˆ๋Š” ์ข…์†์„ฑ ํŒŒ์•…

  • React Native ์ฝ”๋“œ๋ฅผ ์™ธ๋ถ€ ์ข…์†์„ฑ์œผ๋กœ ์ด๋™

    • [] ์‚ฌ๋ณธ์ด๋‚˜ ์ž์ฒด ๊ตฌํ˜„์„ ์œ ์ง€ํ•˜๋Š” ๋Œ€์‹  ํƒ€์‚ฌ ํŒจํ‚ค์ง€์—์„œ ๋” ์ž˜ ์ œ๊ณต ํ•  ์ˆ˜์žˆ๋Š” JavaScript ์ฝ”๋“œ ์‹๋ณ„

์ €์žฅ์†Œ ๊ตฌ์กฐ

ํ˜„์žฌ React Native ์ €์žฅ์†Œ๋Š” ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ์ด‰์ง„ํ•˜๋Š” ์กฐ์ง์ด ๊ฑฐ์˜์—†๋Š” ๋Œ€๊ทœ๋ชจ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ๋” ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๋กœ ์‚ฌ๋ฌผ์„ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ๋„ ์ด๋Ÿฌํ•œ ๋…ธ๋ ฅ์˜ ์ผํ™˜์œผ๋กœ ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ผํ™˜์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ํŒจํ‚ค์ง€๋กœ ๊ตฌ์„ฑ๋œ monorepo ๋ชจ๋ธ์„ ๋”ฐ๋ฅด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ์ง„์ ์ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๋  ๊ฒƒ์ด๋ฉฐ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์‹œ์ž‘ํ•˜๊ธฐ์œ„ํ•œ ์ดˆ๊ธฐ ์ž‘์—…๋งŒ์„ ์ถ”์  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • [] ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ๊ธฐ์กด ์ €์žฅ์†Œ์—์„œ ์ž‘๋™ํ•˜๋Š” ์ดˆ๊ธฐ ์„ค์ •์„ ์ œ๊ณตํ•˜๊ณ  Facebook์˜ ๋‚ด๋ถ€ ์„ค์ • (@cpojer) ๊ณผ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • [] TODO :์ด ์˜์—ญ์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์ž‘์—… ์‹๋ณ„

์™„๋ฃŒ๋œ ์ž‘์—…


์ด ๋ฌธ์ œ๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ์ „์— ์ด์ „ ์ž‘์—…์„ ๋ณด๋ ค๋ฉด ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.

Good first issue Help Wanted Ran Commands Discussion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ๋ฆฐ ์ฝ”์–ด ๋…ธ๋ ฅ์— ๋Œ€ํ•œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋น ๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ์ผ์ฃผ์ผ ๋„˜๊ฒŒ ๋‹น์‹ ์˜ ๋ชจ๋“  ๊ธฐ์—ฌ๋กœ ์ธํ•ด ๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋†€๋ž๋Š”์ง€ ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๋ฏธ ์™„๋ฃŒ๋œ ๋ชจ๋“  ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • NetInfo (https://github.com/react-native-community/react-native-netinfo)๋Š” @ matt-oakes์— ์˜ํ•ด @ react-native-community / netinfo๋ฅผ ํ†ตํ•ด npm์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1)๊ฐ€ @ferrannp์— ์˜ํ•ด ์„ฑ๊ณต์ ์œผ๋กœ ๋ถ„ํ• ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • AsyncStorage (https://github.com/react-native-community/react-native-async-storage)๋Š” @Krizzu๊ฐ€ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1)๋Š” @dmtrKovalenko์— ์˜ํ•ด ๋ณ„๋„์˜ ์ €์žฅ์†Œ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1)๋Š” @michalchudziak์— ์˜ํ•ด ๋ถ„ํ• ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1)๋Š” @FonDorn์— ์˜ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • @rafaellincoln์ด PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1)๋ฅผ ์ถ”์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1)๋Š” @Trancever์— ์˜ํ•ด ์ถ”์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • @EvanBacon ์€ # 23330์— ImageStore์— ๋Œ€ํ•œ ์ง€์› ์ค‘๋‹จ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • @wellmonge ๋Š” # 23318์—์„œ AlertIOS์™€ Alert๋ฅผ ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Callstack ์—”์ง€๋‹ˆ์–ด๋Š” ์ƒˆ๋กœ์šด React Native CLI์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค : https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ์„ ์ถ”์ถœํ•˜๋ฉด ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ๋” ๋‚˜์€ ์œ ์ง€ ๊ด€๋ฆฌ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Œ์„ ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. 4) ๋ฐ @ifsnow ๋Š” AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4)์— ํ๋ฆ„ ์œ ํ˜•์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ React Native (๋ฐ Facebook)์—์„œ ๋ถ„๋ฆฌํ•˜๋ฉด Facebook ์ง์›์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์ง€ ์•Š๊ณ  ๊ฐœ๋ณ„์ ์œผ๋กœ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ React Native ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ธฐ์กด ์ด์Šˆ์™€ Pull Request๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— React Native ์ž์ฒด๋ฅผ ๋” ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ๊ณ  pull ์š”์ฒญ์— ๋” ๋น ๋ฅด๊ฒŒ ์‘๋‹ต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—… ์ค‘์ด๊ฑฐ๋‚˜ ๋‹ค์Œ์— ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • VibrationIOS ์ œ๊ฑฐ
  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํƒ€์‚ฌ ์ข…์†์„ฑ ์ œ๊ฑฐ
  • ์ƒˆ๋กœ์šด react-native-community ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Facebook ๋‚ด๋ถ€ ์ฝ”๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ์ž‘

๋‹ค์‹œ ํ•œ๋ฒˆ, ์ง€๊ธˆ๊นŒ์ง€ ๋„์™€ ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ชจ๋“  196 ๋Œ“๊ธ€

@cpojer SnapshotViewIOS๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค ๐Ÿ”ช

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer , ๋ชจ๋‘ ๋ชจ์•„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

AsyncStorage๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๊ธฐ๊บผ์ด ํ•ด๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

NetInfo๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐ ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ Github ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋จผ์ € ์ƒ์„ฑ ํ•œ ๋‹ค์Œ ์ค€๋น„๊ฐ€๋˜๋ฉด react-native-community ์กฐ์ง์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์„๊นŒ์š”, ์•„๋‹ˆ๋ฉด ํ•ด๋‹น ์กฐ์ง์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ฆ‰์‹œ ์‹œ์ž‘ํ•ด์•ผํ• ๊นŒ์š”?

@cpojer ,์ด ๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๋ฅผ ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. "AlertIOS๋ฅผ Alert์™€ ๋ณ‘ํ•ฉ"์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค! ์œ„์˜ ํ•ญ๋ชฉ ์˜†์— ์ด๋ฆ„์„ ์ ์—ˆ์Šต๋‹ˆ๋‹ค.

@jdmunro PR์„ ๋ณด๋‚ด๊ณ  ์ €์—๊ฒŒ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฐฉ๋ฅ™ํ•˜๊ธฐ ์ „์— FB ํŠน์ • ๋ฌผ๊ฑด์„ ๊ฐ€์ ธ์™€ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@Krizzu ๋ฐ @ matt-oakes https://github.com/react-native-community/react-native-async-storage ๋ฐ https://github.com/react-native-community/react-native-netinfo๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํƒ€์‚ฌ ๋ชจ๋“ˆ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ฝ”๋“œ์™€ ํ•จ๊ป˜ PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ RN ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ ์™€์„œ ๋ณ„๋„์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋„ฃ์œผ๋ฉด๋ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ข…์†์„ฑ์œผ๋กœ RN์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๊ณ  ์›๋ž˜ ๊ตฌํ˜„์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚ด๋ ค ๊ฐ€๋ฉด ์‹ค์ œ๋กœ ์˜ต์…˜ ํŒจํ‚ค์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@wellmonge ๋Œ€๋‹จํ•ด! ์ž‘์—…์ด ๋ฌด์—‡์„ ์ˆ˜๋ฐ˜ํ• ์ง€ ์™„์ „ํžˆ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‘ ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜๊ณ  ํ†ตํ•ฉ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋ ๊นŒ์š”?

@cpojer ์Šฌ๋ผ์ด๋” ์ด๋™์„ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‚

๊ทธ ํ›„์—๋„ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฒƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ https://github.com/react-native-community/react-native-slider๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์ˆ˜ํ–‰ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ์œ„์˜ ์˜๊ฒฌ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

package.json์˜ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์œผ๋กœ @react-native-community/<project name> ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. @react-native-community/slider

@cpojer ๋‚˜๋Š” ViewPagerAndroid ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ iOS ์šฉ JS์—์„œ์ด ๋™์ž‘์„ ๊ตฌํ˜„ํ•˜๊ณ  Android ์šฉ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ฆด๋ ˆ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค (์ €๋ฅผ ์œ„ํ•ด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด thx ๐Ÿ˜„).

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer ์ €๋Š” Picker์™€ PickerIos๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ณ  ์ด๋™ํ•˜์—ฌ ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. :)

@ferrannp ๊ฐ€ https://github.com/react-native-community/react-native-viewpager ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค! ์œ„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
@jainkuniya ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ์ •ํ™•ํžˆ๋Š” ๋ชจ๋ฅด์ง€๋งŒ ๊ทธ๋“ค์„ ํ†ตํ•ฉํ•˜๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ˜์‘์„ ์œ„ํ•ด ์ž‘์€ PR์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค! ์œ„์˜ ํ•ญ๋ชฉ ์˜†์— ์ด๋ฆ„์„ ์ ์—ˆ์Šต๋‹ˆ๋‹ค.

@jdmunro PR์„ ๋ณด๋‚ด๊ณ  ์ €์—๊ฒŒ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฐฉ๋ฅ™ํ•˜๊ธฐ ์ „์— FB ํŠน์ • ๋ฌผ๊ฑด์„ ๊ฐ€์ ธ์™€ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@Krizzu ๋ฐ @ matt-oakes https://github.com/react-native-community/react-native-async-storage ๋ฐ https://github.com/react-native-community/react-native-netinfo๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํƒ€์‚ฌ ๋ชจ๋“ˆ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ฝ”๋“œ์™€ ํ•จ๊ป˜ PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ RN ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ ์™€์„œ ๋ณ„๋„์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋„ฃ์œผ๋ฉด๋ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ข…์†์„ฑ์œผ๋กœ RN์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๊ณ  ์›๋ž˜ ๊ตฌํ˜„์„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚ด๋ ค ๊ฐ€๋ฉด ์‹ค์ œ๋กœ ์˜ต์…˜ ํŒจํ‚ค์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@wellmonge ๋Œ€๋‹จํ•ด! ์ž‘์—…์ด ๋ฌด์—‡์„ ์ˆ˜๋ฐ˜ํ• ์ง€ ์™„์ „ํžˆ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‘ ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜๊ณ  ํ†ตํ•ฉ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋ ๊นŒ์š”?

ํ™•์‹คํ•œ! ๊ทธ๋ ‡๊ฒŒํ•ด์„œ๋ณด๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

StatusBarIOS ๋ฐ PushNotificationIOS์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cpojer Android ํŒจํ‚ค์ง€ ์ด๋ฆ„์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

NetInfo๋ฅผ ์˜ˆ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ com.facebook.react.modules.netinfo ์ž…๋‹ˆ๋‹ค. com.reactnativecommunity.modules.netinfo ์™€ ๊ฐ™์ด ์ถ”์ถœ ๋œ ๋ชจ๋“  ๋ชจ๋“ˆ์—์„œ ํ‘œ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋„์™€ ๋“œ๋ฆด๊นŒ์š”

  • SegmentedControlIOS๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™
  • ProgressViewIOS๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™

์ฒดํฌ ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ณ  ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์ด ์™„์ „ํžˆ ์ฑ„์›Œ ์กŒ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๐Ÿ‘‰ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ์„ ๋‹ค์‹œ ๋ณด๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.

@dmtrKovalenko ๋Š” https://github.com/react-native-community/react-native-statusbar๋ฅผ ์ƒ์„ฑ ํ•œ StatusBarIOS์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€ ์ด๋ฆ„์˜ @ matt-oakes ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ข‹๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ๊ธฐ์กด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด ์ €๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.
@kdenz SegmentedControlIOS์— ๋Œ€ํ•ด https://github.com/react-native-community/react-native-segmented-control ์ƒ์„ฑ
@vonovak ํ™•์ธ๋ž€ ์ €์žฅ์†Œ์— ๋Œ€ํ•ด https://github.com/react-native-community/react-native-checkbox ์ƒ์„ฑ

์ถ”์ถœ์„ ์œ„ํ•ด ์ทจํ•ด์•ผ ํ•  ๋Œ€๋žต์ ์ธ ๋‹จ๊ณ„๋ฅผ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ž‘์—…์ค‘์ธ ๋ชจ๋“ˆ์˜ ํ˜„์žฌ ๋ฒ„์ „๊ณผ ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋ณ„๋„์˜ git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ถ”์ถœํ•˜๊ณ  RN ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ƒ์„ฑ ๋œ PR๋กœ PR์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ ๋œ ๊ฒฝ์šฐ ์ž‘๋™ ๋ฐฉ์‹์˜ ์˜ˆ๋Š” react-native-webview ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ์ด๋ฏธ ์กด์žฌํ•˜๋Š” warnOnce ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ React Native์— ์ง€์› ์ค‘๋‹จ ๊ฒฝ๊ณ ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” react-native-implementation.js ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  3. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ๋ฌธ์ œ / PR์„ ์ข…๋ฃŒํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์ƒˆ๋กœ ์ƒ์„ฑ ๋œ ํ”„๋กœ์ ํŠธ์™€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ฆด๋ฆฌ์Šค ํ•œ๋‘ ๋ฒˆ ํ›„์— React Native์—์„œ ์ฝ”๋“œ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐ ํ•  ๊ฒƒ์ด๋ฉฐ,์ด ์‹œ์ ์—์„œ ์™ธ๋ถ€ ๋ชจ๋“ˆ ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋˜๋Š” RN ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ฆ‰์‹œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์ง€๋งŒ ์ƒˆ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ React Native์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ธฐ์กด API๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋„ค์ดํ‹ฐ๋ธŒ ์ข…์†์„ฑ์ด์žˆ๋Š” ๋ชจ๋“ˆ์—์„œ ์ž‘๋™ํ• ์ง€ ์—ฌ๋ถ€๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. :)

  • ImageStore๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™

๋‚˜๋Š” ๊ธฐ์กด์˜ FileSystem ์†”๋ฃจ์…˜์„ ์œ„ํ•ด ์ด๊ฒƒ์„ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์ด๋ฏธ์ง€์—์„œ Base64๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Android ์ง€์›์ด ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer! ๋‚˜๋Š” ๋„์šธ ๊ฒƒ์ด๋‹ค

  • MaskedViewIOS๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ ๊ฐ€๋Šฅ

๋„์™€ ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!
๋‚ด๊ฐ€ ์ผํ•  ์ˆ˜ ์žˆ์„๊นŒ

  • ์ €์žฅ์†Œ์—์„œ ProgressBarAndroid๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ?

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer! ๋„์™€ ๋“œ๋ฆด๊นŒ์š”?

  • ActionSheetIOS ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ expo๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

@cpojer ๋„์›€์„ ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Libraries / CameraRoll (ImagePickerIOS ๋ฐ CameraRoll ๊ตฌ์„ฑ ์š”์†Œ)์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

RNTester ์•ฑ์—๋Š” ์ž์ฒด package.json์ด ์—†์œผ๋ฏ€๋กœ ์ œ๊ฑฐํ•˜๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋Š” RNTester ์•ฑ์—์„œ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ข…์†์„ฑ์œผ๋กœ ์ฝ”์–ด์— ๋‚จ์•„ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šฌ๋ฆผํ™”์™€ ๊ด€๋ จํ•˜์—ฌ RNTester์˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@cpojer ํด๋ฆฝ ๋ณด๋“œ๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

์ด ์ž‘์—…์„ ๋„์™€ ๋“œ๋ฆด๊นŒ์š”? ๋ฟก๋ฟก

  • Picker๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

@jainkuniya ์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๋Š” ํ•จ๊ป˜ ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@zhaozhiming ํ™•์‹คํžˆ, ๋‚ด๊ฐ€ ๊ณ„ํšํ–ˆ๋˜ ๊ฒƒ์€ ๋จผ์ € RN repo ์ž์ฒด์— ๋ณ‘ํ•ฉ ํ•œ ๋‹ค์Œ ์ปค๋ฎค๋‹ˆํ‹ฐ repo๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํฅ๋ฏธ ๋กญ๊ตฐ. RNTester๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ•จ๊ป˜ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@cpojer ๋„์™€ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • "๊ณต์œ "๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™

๋˜ํ•œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์กฐ์ • ๋œ ํ…œํ”Œ๋ฆฟ์ด ์žˆ์œผ๋ฉด ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ฏ€๋กœ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ lib๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ธฐ์—ฌํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@pvinis ๋‚ด๊ฐ€ ์ž‘์—…์ค‘์ธ NetInfo ์ €์žฅ์†Œ์—์„œ์ด ์ปค๋ฐ‹์„ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

์•„์ง NetInfo ์ฝ”๋“œ๋Š” ์—†์ง€๋งŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Android ๋ฐ iOS ๋ถ€๋ถ„๊ณผ ์ค‘์ฒฉ ๋œ package.json ์—†์ด ์—ฐ๊ฒฐ๋˜๋Š” ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ NetInfo ์ฝ”๋“œ๋ฅผ ์ด๋™ ํ•œ ๋‹ค์Œ RNTester ์˜ˆ์ œ๋ฅผ example ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

@EvanBacon์€ ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. RN์— ๊ฒฝ๊ณ ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ImageStore ์‚ฌ์šฉ์„ ์ค‘๋‹จํ•˜๊ณ  ํƒ€์‚ฌ ์†”๋ฃจ์…˜์„ ์ถ”์ฒœํ•˜๋„๋ก ๋“ฑ๋ก ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

  • @FonDorn ๋‚˜๋Š” ๊ทธ ํ•˜๋‚˜๋ฅผ ์œ„ํ•ด ๋‹น์‹ ์„ ๋‚ด๋ ค ๋†“์•˜์Šต๋‹ˆ๋‹ค! PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก https://github.com/react-native-community/react-native-masked-view ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ ๋งŽ์€ ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋˜๋ฏ€๋กœ RN์—์„œ ์ฝ”๋“œ๋ฅผ ์ƒ๋‹นํžˆ ๋น ๋ฅด๊ฒŒ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .
  • @Naturalclar ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ๊ฐ€์‹ญ์‹œ์˜ค! ์ž‘์—…ํ•˜๊ณ  PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก https://github.com/react-native-community/react-native-progress-bar-android ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์ฆ‰์‹œ RN์—์„œ์ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์„ ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋กœ ์•ˆ๋‚ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • @bartolkaruza https://github.com/react-native-community/react-native-cameraroll ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค!
  • @deorukhkarchaitanya PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก https://github.com/react-native-community/react-native-clipboard ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@ matt-oakes๋Š” NetInfo๋กœ ์ด๋ฏธ ํ›Œ๋ฅญํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ์ถ”์ถœ์„ ๋ฐ˜์˜ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค : https://github.com/react-native-community/react-native-netinfo/pull/1

@pvinis ๋งคํŠธ - ์˜คํฌ์Šค @์œผ๋กœ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž์‹ ์˜ ์˜ˆ์ œ์™€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผํ•ด์•ผํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚˜๋ฉด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ถ”์ถœ ๋œ ๋ชจ๋“ˆ์„ ๋ชจ๋‘ ๊ฐ€์ ธ ์™€์„œ ํ•˜๋‚˜์˜ ์•ฑ์œผ๋กœ ํ†ตํ•ฉํ•˜๋Š” ๋‹จ์ผ RNTester ์˜ˆ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

VirtualizedList ๋‚จ์•˜์ฃ ? ์ด์ „์— ๋ชฉ๋ก์—์„œ ๋ดค์ง€๋งŒ ๋” ์ด์ƒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer ImageEditor๋ฅผ ๋ณ„๋„์˜ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•˜๋Š” ์ž‘์—…์„ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer ์ €๋Š”์ด ์ž‘์—…์„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

  • React Native์—์„œ ์ง์ ‘ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” package.json์˜ ๋ชจ๋“  ์ข…์†์„ฑ ์‹๋ณ„

@ matt-oakes์ด lib ๊ฐœ๋ฐœ์„ ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ฑฐ๋‚˜ ๋„์šธ ๊ณ„ํš์ž…๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์‰ฝ๊ฒŒ ์—…๋ฐ์ดํŠธ / ์‚ญ์ œ ๋ฐ ์žฌ์ƒ์„ฑ ํ•  ์ˆ˜์žˆ๋Š” lib๋ฅผ ํฌํ•จํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์‰ฝ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "์˜ˆ์ œ"์•ฑ์ด ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ œ ์ƒ๊ฐ์— "์˜ˆ์ œ"์•ฑ์€ lib ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๊ธฐ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "dev"์•ฑ์€ lib๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@brunolemos ์˜ˆ, ์ฒ˜์Œ์—๋Š” ๊ฑฐ๊ธฐ์— ๋„ฃ์€ ์‹ค์ˆ˜๋กœ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@Trancever PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก https://github.com/react-native-community/react-native-image-editor ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค!
@ nimish-gupta ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค! ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ข…์†์„ฑ์„ ๋…ผ์˜ํ•˜๋Š” ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” ์ œ๊ฑฐ ํ•  ์ˆ˜์žˆ๋Š” ์ด์œ ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ ํ’€ ์š”์ฒญ์„ ๋ณด๋‚ด์‹ญ์‹œ์˜ค (์˜ˆ : ์ฐพ์„ ์ˆ˜ ์—†์Œ ๋“ฑ).
@pvinis ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์Šค์บ ํด๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์  ์ผ์ง€ ๋…ผ์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ์–ป์„ ๋•Œ๊นŒ์ง€ https://github.com/react-native-community/react-native-webview ๋˜๋Š” https://github.com/react-native-community/react-native ์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—…

PickerIOS ๋ฐ ํ”ผ์ปค ํ”„๋กœ์ ํŠธ @cpojer ์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๊ฐˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค :

  • ์ถ”๊ฐ€ warning ์— PickerIOS ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋” ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฆด๋ฆฌ์Šค ํ›„ PickerIOS ์—์„œ RN .

๊ทธ๋™์•ˆ Picker ๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ?

@jainkuniya ๋‚˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ Picker๋Š” ํ›„๋“œ ์•„๋ž˜์—์„œ PickerIOS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. PickerAndroid์™€ PickerIOS๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋Œ€์‹  Picker ๋งŒ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์ตœ์„ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ๋งŽ์€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ด๋ฏธ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์—๊ฒŒ NetInfo ์ฝ”๋“œ๋ฅผ ์ด๋™ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด :

1) ์Šค์บ ํด๋”ฉ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด create-react-native-library ์‚ฌ์šฉ : npx react-native-create-library --platforms ios,android --package-identifier com.reactnativecommunity.netinfo --prefix RNC --license MIT netinfo
2) ์ƒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ์—์„œ react-native init NetInfoExample ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒ์„ฑ ๋œ ํด๋”์˜ ์ด๋ฆ„์„ example .
3) example/package.json ์ œ๊ฑฐํ•˜๊ณ  ์ข…์†์„ฑ ๋ฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฃจํŠธ package.json . ๋˜ํ•œ babel.config.js ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ƒ์„ฑ ๋œ ํŒŒ์ผ ์ค‘ ์ผ๋ถ€๋ฅผ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.
4) ์˜ˆ์ œ Android gradle ํŒŒ์ผ ๋ฐ Xcode ํ”„๋กœ์ ํŠธ์—์„œ React Native ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ../node_modules/react-native ๋Œ€ํ•œ ์ฐพ๊ธฐ ๋ฐ ๋ฐ”๊พธ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ../../node_modules/react-native ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค.
5) MainApplication.java ๋ฐ AppDelegate.m ์˜ ์ฃผ ๋ชจ๋“ˆ ์ด๋ฆ„ ๊ฒฝ๋กœ๋ฅผ index ์—์„œ example/index .
6) ์ถ”๊ฐ€ babel-plugin-module-resolver ๋ชจ๋“ˆ๊ณผ ๊ตฌ์„ฑ ์ด ๊ฐ™์€ babel.config.js . ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
7) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ˆ์ œ 1๊ณผ ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜์ง€๋งŒ settings.gradle Android ๊ฒฝ๋กœ๋Š” ../../android ( ์ด์™€ ๊ฐ™์ด ).
8) ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ ํŒŒ์ผ์„ ์ด๋™ํ•˜์—ฌ ์ด์ „ RCT ๋Œ€์‹  RNC (React Native Community) ์ ‘๋‘์‚ฌ๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. Javascript ์ฝ”๋“œ๋ฅผ js ํ•˜๊ณ  package.json ์—์„œ ์ธ๋ฑ์Šค ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
9) ๊ทธ๋Ÿฐ ๋‹ค์Œ RNTester ์—์„œ example ํ”„๋กœ์ ํŠธ๋กœ ์˜ˆ์ œ๋ฅผ ์ด๋™ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์•ฝ๊ฐ„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. RNTester์—์„œ ๋ณต์‚ฌ ํ•œ ์˜ˆ์ œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ example/index.js ํŒŒ์ผ์„ ์ž์œ ๋กญ๊ฒŒ ๊ฐ€์ ธ ์˜ค์‹ญ์‹œ์˜ค. ์›๋ž˜ RNTester์— ์žˆ์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€๋ฒผ์šด ํฌ์žฅ์ง€์ž…๋‹ˆ๋‹ค.
10) react-native-webview ๊ฐ€ ์„ค์ •๋˜๋Š” ๋ฐฉ์‹

์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. :)

@pvinis ์ €๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๊ณผ ๊ฐœ๋ฐœ์„ ๋•๋Š” ๊ฒƒ ์‚ฌ์ด์— ๋งŽ์€ ๊ต์ฐจ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ NetInfo์ฒ˜๋Ÿผ ํ‘œ๋ฉด์ ์ด ์ž‘์„ ๋•Œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ example ๋Š” ๊ฑฐ์˜ ๋™์‹œ์— ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์„ ๋ชจ๋‘ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ํ™” ๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์•„์ง ์™„์ „ํžˆ ์กฐ์‚ฌํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ์ด์ „ ์— React-native- ๋กœ ์—”๋“œ ํˆฌ ์—”๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Jet (Detox ๊ธฐ๋ฐ˜ ๋ฐ react-native-firebase )๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„์น˜ .

๋Œ€๋ฐ•. ๋ฉฐ์น  ์ „์— ์ผ๋ถ€ ์•ฑ ๊ธฐ๋Šฅ์„ lib๋กœ ์ถ”์ถœํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. package.json ์‚ญ์ œ ๋ฐ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ž‘์€ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ํ•œ ์ผ๊ณผ ๋‚ด๊ฐ€ ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ํ™•์ธํ•˜๊ณ  ์—ฌ์ „ํžˆ ๋ถˆ๋ถ„๋ช… ํ•œ ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์„ธ๋ถ€ ์‚ฌํ•ญ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. :)

@cpojer SnapshotViewIOS ๋„ ์ผ๋ถ€ iOS ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์— ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. RCTTest ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ์— ๋งํฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ• : https://github.com/facebook/react-native/blob/master/RNTester/js/RNTesterApp.ios.js#L180

๊ณต๊ฐœ RN ๋‚ด๋ณด๋‚ด๊ธฐ์—์„œ SnapshotViewIOS ๋งŒ ์ œ๊ฑฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰, ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ์„ ์œ„ํ•ด ์—ฌ์ „ํžˆ ๋น„๊ณต๊ฐœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๊ฐ€์ ธ ์˜ค๋Š” ํŒŒ์ผ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๊ฐ€ ์ •๋ง ์œ ์šฉํ–ˆ๊ณ  NetInfo ๋ชจ๋“ˆ์„ ์œ„ํ•ด ํ•  ์ˆ˜์žˆ๊ฒŒ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

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

์š”์•ฝํ•˜์ž๋ฉด ๋จผ์ € ๋ณต์‚ฌํ•ด์•ผ ํ•  ํŒŒ์ผ์„ ์ฐพ์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

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

์ด ํŒŒ์ผ์„ ์ €์žฅ์†Œ ์™ธ๋ถ€์— ๋‘์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

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

์ฒซ ๋ฒˆ์งธ filter-branch ๋ช…๋ น์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฉฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€์‹ฌ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ๋‹จ์ผ ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์€ ๋งค์šฐ ๋น ๋ฅด๋ฉฐ ํŒŒ์ผ์„ ์ƒˆ ํด๋”์—์„œ ๋ฃจํŠธ๋กœ ์ด๋™ ํ•œ ๋‹ค์Œ ์œ ์ง€ํ•˜๋ ค๋Š” ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ปค๋ฐ‹ ๋งŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ https://github.com/react-native-community/react-native-netinfo/commits/master ์™€ ๊ฐ™์€ ๊ธฐ๋ก์œผ๋กœ ๋๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, @cpojer ์ €๋Š” ์ž‘์—…ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

  • ProgressViewIOS๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

๊ฐ€์ ธ ์˜ค๊ธฐ polyfill์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ :

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ ํด๋ฆฌ ํ•„์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด whatwg-fetch๋ฅผ ์ง์ ‘ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Blob ๋ชจ๋“ˆ์€ ํ‘œ์ค€์ด ์•„๋‹ˆ๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํฌํฌํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์œผ๋กœ ์ž๋™ ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๊ทธ๋•Œ๊นŒ์ง€๋Š” ๋ถ„๊ธฐ ๋œ ํด๋ฆฌ ํ•„์„ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@cpojer Move "Share"to community repo ๋Š” ํ˜„์žฌ react-native ๋‚ด๋ถ€์˜ ๊ณต์œ ๋ณด๋‹ค ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ ์„ธํŠธ๊ฐ€์žˆ๋Š” ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€๋ฆฌ ํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” react-native-simple-share ๊ฐ™์€ ์ด๋ฆ„์˜ ์ƒˆ ์ €์žฅ์†Œ๋ฅผ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ๋ธŒ๋žœ์น˜๋ฅผ ๋ด์ฃผ์„ธ์š” (์ƒˆ๋กœ์šด ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๊ฐ€ ์ƒ๊ธฐ๋ฉด์ด ์ €์žฅ์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค)

๊ฐ€์ ธ ์˜ค๊ธฐ polyfill์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ :

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ ํด๋ฆฌ ํ•„์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด whatwg-fetch๋ฅผ ์ง์ ‘ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Blob ๋ชจ๋“ˆ์€ ํ‘œ์ค€์ด ์•„๋‹ˆ๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํฌํฌํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์œผ๋กœ ์ž๋™ ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๊ทธ๋•Œ๊นŒ์ง€๋Š” ๋ถ„๊ธฐ ๋œ ํด๋ฆฌ ํ•„์„ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

AbortController.Signal ์ง€์›์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„๊ธฐ ๋œ polyfill์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐพ๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”์–ด ๋‚ด๋ถ€์˜ ํด๋ฆฌ ํ•„ ๊ฐ€์ ธ ์˜ค๊ธฐ์˜ ๋ฏธ๋ž˜์— ๋งž์„๊นŒ์š”?

@cpojer PushNotificationIOS์—์„œ ์ž‘์—…ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@cpojer ๋‚ด๊ฐ€ ๋„์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค

  • ImageEditor๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™

๊ฐ์‚ฌ!

@ nicholaslee119 https://github.com/react-native-community/react-native-progress-view ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์œ„์˜ ์„ค๋ช…์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
@Ansalibrahim ์ข‹์€ ์ง€์ ์ž…๋‹ˆ๋‹ค. https://github.com/react-native-community/react-native-simple-share ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— PR์„ ๋ณด๋‚ด์ฃผ์„ธ์š”!
@rafaellincoln ์ž‘์—… ํ•  ์ˆ˜ ์žˆ๋„๋ก https://github.com/react-native-community/react-native-push-notification-ios ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
@dratwas @Trancever ๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋œ ์ €์žฅ์†Œ์—์„œ ๊ทธ์™€ ํ•จ๊ป˜ ์ž‘์—…ํ•˜์„ธ์š”.
@ Jyrno42 ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ง€์›ํ•˜๋Š” ํƒ€์‚ฌ ํด๋ฆฌ ํ•„๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@cpojer @Trancever ๊ฐ€์žˆ๋Š” ๊ฒƒ์„ ๋ณด์ง€ ๋ชปํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
์•„์ง ๋ณต์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Move ImageStore to a community repo ๋˜๋Š” Move ImagePickerIOS to a community repo ๋ณต์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@dratwas https://github.com/react-native-community/react-native-image-store ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค!

๋ˆ„๊ตฐ๊ฐ€ AsycnStorage ๋ฐ PushNotificationIOS๊ฐ€ ์ œ๊ฑฐ๋˜๋Š” ์ด์œ ๋ฅผ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‘˜ ๋‹ค ๋งŽ์€ ์•ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ œ๊ฑฐํ•˜๋Š” ๋Œ€์‹  ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

ํŠนํžˆ PushNoticationIos๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. PushNotificationIos๋ฅผ ์‚ฌ์šฉํ•˜๋Š” https://github.com/zo0r/react-native-push-notification ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋” ๋‚˜์€ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@vdlindenmark AsyncStorage๊ฐ€ ์ œ๊ฑฐ๋˜์ง€ ์•Š๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Picker๋ฅผ ๋ฐ›๊ณ  ์‹ถ์–ด์š” !!!

Move ImagePickerIOS to a community repo ์ด (๊ฐ€) ์•„์ง ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer PickerIOS ๋ฐ Picker ๋ณ‘ํ•ฉ์„ ์œ„ํ•ด # 23359๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ† ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค :).

์ด ๋ฌธ์ œ๋Š” ๊ณ ์ •๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค ๐Ÿ“Œ

์ƒํƒœ ํ‘œ์‹œ ์ค„์— ๋Œ€ํ•œ PR https://github.com/react-native-community/react-native-statusbar/pull/1

@dratwas ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ˜ผ๋ž€ ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. @EvanBacon์ด ์ง€์ ํ•œ๋Œ€๋กœ ์ด๋ฏธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํƒ€์‚ฌ ์˜ต์…˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ImageStore ์™„์ „ํžˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์ž์›ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?
@Krizzu ๊ฐ€ ์ง€์  ํ–ˆ๋“ฏ์ด @vdlindenmark ๋Š”์ด ๋‘ ๋ชจ๋“ˆ ๋ชจ๋‘ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ชจ๋“ˆ์— ๊ณ„์† ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
@Keraito PR์„ ๋ณด๋‚ผ https://github.com/react-native-community/react-native-image-picker-ios ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
@andersonaddo ์™„๋ฃŒ! ์ œ์•ˆ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@cpojer ์—ฌ๋Ÿฌ๋ถ„๋„ AccessibilityInfo ๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ํ‰๊ฐ€ํ–ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ฝ”์–ด์™€ ๋ณ„๋„๋กœ ์‚ด ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ React-Native์—์„œ ์ ‘๊ทผ์„ฑ ์ง€์›์„ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ทฐ ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ฑ ์ง€์›์„ ๋Š˜๋ฆฌ๊ณ  ๋” ๋งŽ์€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์œผ๋กœ ๋งŒ๋“ค๊ธฐ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ œ์•ˆ์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค (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),ํ•˜์ง€๋งŒ RN์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด์— ๋Œ€ํ•œ ๋ฌธ์ œ ๋‚˜ ์ œ์•ˆ์ด ์—†์Šต๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ ์ˆ˜์ค€์—์„œ ์ผ๋ถ€ ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ๋„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„

iOS์—์„œ UIAccessibility ์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜ต์…˜ (Android์—์„œ๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š” ์˜ต์…˜์„ ๋ชจ๋ฅด๊ฒ  ์Œ)์ด AccessibilityInfo ์—์„œ ์ œ๊ณต ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ๊ธฐ์—ฌ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@cpojer ํ• ๋‹น๋˜์ง€ ์•Š์€ ๋ชจ๋“ˆ์„ ๋ณผ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋„์›€์ด ํ•„์š” ํ•˜๋ฉด ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค .

  • ImageEditor๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™

@elucaswork ์ ‘๊ทผ์„ฑ์€ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ React Native ์ž์ฒด์˜ ์ผ๋ถ€ ์—ฌ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” React Native์˜ ์ ‘๊ทผ์„ฑ ์ง€์›์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
@dratwas ์ข‹์€ ์†Œ๋ฆฌ!

  • Picker๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

@cpojer ์ด ๋ฌธ์ œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

RN์ด ์ง€๊ธˆ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋‚˜ ์ œ์•ˆ์ด์—†๋Š” ๊ฒƒ์€ ์šด์˜ ์ฒด์ œ ์ˆ˜์ค€์—์„œ ์ผ๋ถ€ ์‚ฌ์šฉ์ž์˜ a11y ๊ธฐ๋ณธ ์„ค์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„

iOS์—์„œ UIAccessibility ์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜ต์…˜ (Android์—์„œ๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š” ์˜ต์…˜์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค)์ด AccessibilityInfo ์—์„œ ์ œ๊ณต ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋Š˜ React Native์—์„œ "reduce motion"์˜ต์…˜์„ ์ฝ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•ดํ–ˆ์ง€๋งŒ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฐ€์‹œ์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? https://react-native.canny.io/feature-requests๊ฐ€ ์—ฌ์ „ํžˆ ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•ด ์„ ํ˜ธ๋˜๋Š” ํฌ๋Ÿผ์ž…๋‹ˆ๊นŒ?

VibrationIOS ๋ฌด์—‡์„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? 2016 ๋…„ 3 ์›” ๋ถ€ํ„ฐ Vibration ๋Œ€์‹  ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์ œ๊ฑฐ ํ•  ์ˆ˜์žˆ๋Š” ํ›„๋ณด ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@hramos ์ข‹์€ ์ œ์•ˆ! ๋‚ด๊ฐ€ ๊ทธ๊ฑธ ์ œ๊ฑฐ ํ• ๊ฒŒ.

@cpojer ๋‚˜๋Š” Picker / PickerIOS๊ฐ€ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ํ• ๋‹น๋˜์ง€

์•ˆ๋…•ํ•˜์„ธ์š” @rafaellincoln , ์„ ํƒ ๋„๊ตฌ์˜ ๊ฒฝ์šฐ ๋จผ์ € RN ์ €์žฅ์†Œ ์ž์ฒด์—์„œ ๊ฒฐํ•ฉํ•œ ๋‹ค์Œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•  ๊ณ„ํš์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ์„ ์œ„ํ•ด PR # 23359๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ๋ฆฐ ์ฝ”์–ด ๋…ธ๋ ฅ์— ๋Œ€ํ•œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋น ๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ์ผ์ฃผ์ผ ๋„˜๊ฒŒ ๋‹น์‹ ์˜ ๋ชจ๋“  ๊ธฐ์—ฌ๋กœ ์ธํ•ด ๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋†€๋ž๋Š”์ง€ ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๋ฏธ ์™„๋ฃŒ๋œ ๋ชจ๋“  ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • NetInfo (https://github.com/react-native-community/react-native-netinfo)๋Š” @ matt-oakes์— ์˜ํ•ด @ react-native-community / netinfo๋ฅผ ํ†ตํ•ด npm์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ!
  • ViewPagerIOS (https://github.com/react-native-community/react-native-viewpager/pull/1)๊ฐ€ @ferrannp์— ์˜ํ•ด ์„ฑ๊ณต์ ์œผ๋กœ ๋ถ„ํ• ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • AsyncStorage (https://github.com/react-native-community/react-native-async-storage)๋Š” @Krizzu๊ฐ€ ๊ฐ€์ ธ ์™”์Šต๋‹ˆ๋‹ค.
  • StatusBar (https://github.com/react-native-community/react-native-statusbar/pull/1)๋Š” @dmtrKovalenko์— ์˜ํ•ด ๋ณ„๋„์˜ ์ €์žฅ์†Œ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Slider (https://github.com/react-native-community/react-native-slider/pull/1)๋Š” @michalchudziak์— ์˜ํ•ด ๋ถ„ํ• ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • MaskedViewIOS (https://github.com/react-native-community/react-native-masked-view/pull/1)๋Š” @FonDorn์— ์˜ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • @rafaellincoln์ด PushNotificationIOS (https://github.com/react-native-community/react-native-push-notification-ios/pull/1)๋ฅผ ์ถ”์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ImageEditor (https://github.com/react-native-community/react-native-image-editor/pull/1)๋Š” @Trancever์— ์˜ํ•ด ์ถ”์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • @EvanBacon ์€ # 23330์— ImageStore์— ๋Œ€ํ•œ ์ง€์› ์ค‘๋‹จ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • @wellmonge ๋Š” # 23318์—์„œ AlertIOS์™€ Alert๋ฅผ ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Callstack ์—”์ง€๋‹ˆ์–ด๋Š” ์ƒˆ๋กœ์šด React Native CLI์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค : https://blog.callstack.io/the-react-native-cli-has-a-new-home-79b63838f0e6

๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ์„ ์ถ”์ถœํ•˜๋ฉด ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ๋” ๋‚˜์€ ์œ ์ง€ ๊ด€๋ฆฌ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Œ์„ ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. 4) ๋ฐ @ifsnow ๋Š” AsyncStorage (https://github.com/react-native-community/react-native-async-storage/pull/4)์— ํ๋ฆ„ ์œ ํ˜•์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ React Native (๋ฐ Facebook)์—์„œ ๋ถ„๋ฆฌํ•˜๋ฉด Facebook ์ง์›์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์ง€ ์•Š๊ณ  ๊ฐœ๋ณ„์ ์œผ๋กœ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ React Native ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ธฐ์กด ์ด์Šˆ์™€ Pull Request๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— React Native ์ž์ฒด๋ฅผ ๋” ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ๊ณ  pull ์š”์ฒญ์— ๋” ๋น ๋ฅด๊ฒŒ ์‘๋‹ต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—… ์ค‘์ด๊ฑฐ๋‚˜ ๋‹ค์Œ์— ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • VibrationIOS ์ œ๊ฑฐ
  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํƒ€์‚ฌ ์ข…์†์„ฑ ์ œ๊ฑฐ
  • ์ƒˆ๋กœ์šด react-native-community ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Facebook ๋‚ด๋ถ€ ์ฝ”๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ์ž‘

๋‹ค์‹œ ํ•œ๋ฒˆ, ์ง€๊ธˆ๊นŒ์ง€ ๋„์™€ ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ฟก๋ฟก

  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ข…์†์„ฑ ์ œ๊ฑฐ
  • React Native์—์„œ ์ง์ ‘ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” package.json์˜ ๋ชจ๋“  ์ข…์†์„ฑ ์‹๋ณ„

์œ„์˜ ์ž‘์—…์€ PR # 23428 ๋ฐ # 23467์„ ์‚ฌ์šฉํ•˜์—ฌ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋ฟก๋ฟก

  • SwipeableList ์ œ๊ฑฐ

# 23484์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ListView๋„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

FWIW, CameraRoll์€ ListView์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋จผ์ € ์ œ๊ฑฐํ•˜๋ฉด ListView๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์œ ์šฉ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

FWIW, CameraRoll์€ ListView์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋จผ์ € ์ œ๊ฑฐํ•˜๋ฉด ListView๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์œ ์šฉ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

RNTester์˜ CameraRollView ํŒŒ์ผ์€ ReactNative์—์„œ ListView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์„ FlatList๋กœ ๋ฐ”๊พธ๋Š” PR์€ ๊ทธ ์˜์กด์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋Š” ์ข‹์€ ์ผ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. CameraRoll์ด ์™„์ „ํžˆ ์ œ๊ฑฐ๋˜๊ธฐ ์ „์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ธฐ๊บผ์ด ๋ฐ›์•„ ๋“ค์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฒ„์ „์— ๋น„ํ•ด ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋Š” ๊ฒƒ์ด ์š”์ ์ด๋ฏ€๋กœ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.58.4์—์„œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์€ ์—†๋‚˜์š”? ํ•œ ํŽ˜์ด์ง€์— 18MB๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค
๋‹ค์Œ์€ ๋‚ด ์˜์กด์„ฑ์ž…๋‹ˆ๋‹ค.
"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"

navigatorIos๊ฐ€ rn 0.59์—์„œ ์ œ๊ฑฐ ๋œ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์ปค๋ฎค๋‹ˆํ‹ฐ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ฟก๋ฟก

@cpojer ๋ˆ„๊ตฌ๋“ ์ง€์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ ํด๋ฆฌ ํ•„์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด whatwg-fetch๋ฅผ ์ง์ ‘ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@ nimish-gupta ์‹œ๋„ํ•ด๋ณด์„ธ์š”! ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ PR์—์„œ ๋…ผ์˜ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณด๋„๋กํ•ฉ์‹œ๋‹ค.

@cpojer KeyboardAvoidingView ๊ฐ€ ํ•ต์‹ฌ์„ ์œ ์ง€ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์œ ์šฉํ•œ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
https://github.com/APSL/react-native-keyboard-aware-scroll-view ์™€ ๊ฐ™์€ ๋” ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์„์œ„ํ•œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋„ ๊ณ ๋ คํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ํ•ต์‹ฌ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๊นŒ? ?

@elucaswork ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ FB์—์„œ ๋†€๋ž๊ฒŒ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ž ์‹œ ๋™์•ˆ ๊ณ„์† ์œ ์ง€ํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์—์„œ ํ˜„์žฌ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ์ž‘์—…์„ ๋งˆ์นœ ํ›„ ๋ณ„๋„์˜ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋…ผ์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ NetInfo ๋ฐ AsyncStorage๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ podspec ํŒŒ์ผ์ด ๋ˆ„๋ฝ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @cpojer ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ๋„ค์ดํ‹ฐ๋ธŒ iOS ์ฝ”๋“œ๊ฐ€์žˆ๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€๋กœ ์ผ์ข…์˜ ํ‘œ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์•ผํ•˜์ง€ ์•Š๋‚˜์š”?

์—ฌ๊ธฐ์„œ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ NetInfo ๋ฐ AsyncStorage๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ podspec ํŒŒ์ผ์ด ๋ˆ„๋ฝ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @cpojer ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ๋„ค์ดํ‹ฐ๋ธŒ iOS ์ฝ”๋“œ๊ฐ€์žˆ๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€๋กœ ์ผ์ข…์˜ ํ‘œ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์•ผํ•˜์ง€ ์•Š๋‚˜์š”?

React Native podfile์— ์ƒˆ ์ €์žฅ์†Œ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ํ•˜์œ„ ์‚ฌ์–‘์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/facebook/react-native/blob/master/React.podspec#L301 -L304

@syaau @TheSavior ์ข‹์€ ์ž๋ฆฌ. ์ƒˆ NetInfo ์ €์žฅ์†Œ์— Podspec์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋‚ด ๊ฒฝํ—˜์—์„œ @cpojer KeyboardAvoidingView ์ •๋ง ์ƒ‰๋‹ค๋ฅธ ๋ฐ, ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ํ•ต์‹ฌ์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ๋‹ค๋ฉด ๊ฐœ์„  ํ•  ์ข‹์€ ๊ธฐํšŒ์ผ๊นŒ์š” ??

react-native-svg ๋Œ€์‹  ART ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@justDanielMata ์˜ˆ, ํ•ต์‹ฌ์— ๋‚จ์•„ ์žˆ์œผ๋ฉด ๊ฐœ์„ ๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ† ๋ก ์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
@EvanBacon ํŒ€

RN ์ €์žฅ์†Œ์—์„œ WebView ์ œ๊ฑฐ

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฐ›์•„ ๊ธฐ์ฉ๋‹ˆ๋‹ค

@ericlewis๋Š” ์•ˆํƒ€๊น๊ฒŒ๋„ FB ์ธก์—์„œ๋งŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚ด๋ถ€์ ์œผ๋กœ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

NavigatorIos ์ด (๊ฐ€) react-native ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. @cpojer react-native-community ์•„๋ž˜์— ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ดœ์ฐฎ๋‹ค๋ฉด ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ์–ด

์—ฌ๊ธฐ์— ์ž‘๋™ํ•˜๋Š” ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/michaelknoch/react-native-navigator-ios

@sijad (fyi : ๊นจ์ง„ ํ๋ฆ„ ์œ ํ˜• ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค)

@sijad ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ react-native-community ๋„ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์œ„์˜ Lean Core์˜ ์ผ๋ถ€๋กœ React Native์—์„œ ์ด๋™ํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ชจ๋‘ ์•ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ํ›Œ๋ฅญํ•œ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค. NavigatorIOS๋Š” ๋‹ค๋ฅธ ํƒ์ƒ‰ ์†”๋ฃจ์…˜์„ ๊ถŒ์žฅํ•˜๋ฏ€๋กœ ์‚ฌ๋žŒ๋“ค์ด ๊ณ„์† ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ @michaelknoch ๊ฐ€ ๊ทธ๊ฒƒ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ์—๊ฒŒ ๊ฐ€์ ธ๊ฐ„ ๊ฒƒ

ํ•˜์ง€๋งŒ ์™œ navigatorios๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ๊ณ  ์กฐ์–ธํ•ฉ๋‹ˆ๊นŒ? JS ๊ธฐ๋ฐ˜ ํƒ์ƒ‰ (fe react-navigation)์˜ ์„ฑ๋Šฅ์ด ๋” ์ด์ƒ ๊ธฐ๋ณธ ํƒ์ƒ‰์ด ํ•„์ˆ˜๊ฐ€ ์•„๋‹Œ๋งŒํผ ๋น ๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?
๋ฟก๋ฟก

@cpojer ์•ˆ๋…•ํ•˜์„ธ์š” ๋ฐฉ๊ธˆ ProgressViewIOS์— ๋Œ€ํ•œ PR์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/react-native-community/react-native-progress-view/pull/1

๋ฐ˜๋Œ€๋กœ @michaelknoch ๋Š” ๊ธฐ๋ณธ ํƒ์ƒ‰ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. NavigatorIOS๋Š” ๋” ์ด์ƒ Facebook์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ ˆ๊ฑฐ์‹œ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์‹œ์Šคํ…œ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” ์•ˆํƒ€๊น๊ฒŒ๋„ ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์•„๋‹Œ Facebook์—์„œ ์ž์ฒด ๋งž์ถคํ˜• ๊ธฐ๋ณธ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด https://github.com/wix/react-native-navigation ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค
@kdenz ๋Œ€๋‹จํ•ด , ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ํ™•์ธ ํ•  ๊ฒƒ์ด๋‹ค!

@cpojer ๋ฐฉ๊ธˆ SegmentedControlIos ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ์š”์•ฝ์„ ์™„๋ฃŒํ•˜๊ณ  ์˜ˆ์ œ ์•ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ƒˆ RN ํ”„๋กœ์ ํŠธ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • npm์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@cpojer๋Š” Clipboard-Api ๋ฅผ RN ์ฝ”์–ด์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ์œ„ํ•œ ์˜ˆ์ œ ์•ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ƒˆ RN ํ”„๋กœ์ ํŠธ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • npm์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@cpojer ๋‚˜๋Š” ์ตœ๊ทผ์— ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ˜์‘์œผ๋กœ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋„ค์ดํ‹ฐ๋ธŒ "TestModule"์„ RNTester๋กœ ์ด๋™

์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ!

@cpojer ํ† ์ŠคํŠธ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ๋‚˜์ค‘์— ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์›์ธ:

  1. Toast๋Š” ๋˜ ๋‹ค๋ฅธ ์œ ํ˜• / ์Šคํƒ€์ผ์˜ ์•Œ๋ฆผ์ด๋ฉฐ, ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์•Œ๋ฆผ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Android ๊ตฌํ˜„ ๋งŒ ์žˆ์Œ
  3. ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ https://github.com/search?q=react+native+toast์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ˆ˜๋งŽ์€ "toast like"๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

TabBarIOS๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์œ ์ง€ / ๋ฏธ๋ž˜ ์ฆ๊ฑฐ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. NavigatorIOS์™€ ํ•จ๊ป˜ ์ผ๋ฅ˜ ์ ‘๊ทผ์„ฑ์„ ๊ฐ–์ถ˜ ๊ฒฝ๋Ÿ‰ ์†”๋ฃจ์…˜์œผ๋กœ ๋งค์šฐ ๊ฐ€์น˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

react-native-community ์•„๋ž˜์— ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค๋Š” ์ผ๋ฐ˜์ ์ธ ์˜๊ฒฌ์ด๋ผ๋ฉด NavigatorIOS์™€ ๊ฐ™์ด ์ด๋ฏธ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ๊ณ„์ •์œผ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ด์ง€๋งŒ -community์˜ ์šฐ์‚ฐ ์•„๋ž˜์—์„œ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

ํŽ˜์ด์Šค ๋ถ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  iOS ์ „์šฉ์ด๋ผ๋Š” ๊ฒƒ ์™ธ์— ์‚ฌ์šฉ ์ค‘๋‹จ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‚˜์š”?

์—ฌ๊ธฐ์— ์ž‘๋™ํ•˜๋Š” ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค : https://github.com/michaelknoch/react-native-tabbar-ios

๋ฟก๋ฟก

์•ˆ๋…•ํ•˜์„ธ์š”, ActionSheetIOS ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์—‘์Šคํฌ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ํ™•์ธ ํ•ด์ฃผ์„ธ์š” ๐Ÿ™‡
https://github.com/expo/react-native-action-sheet/pull/105

react-clone-referenced-element ์‚ฌ์šฉ ๋œ ๊ณณ์„ ์ฐพ์œผ๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ธฐ์—ฌํ•˜๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์— ๋ฐ˜์‘ํ•˜๋Š” ๋ฐ ์ต์ˆ™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์–ด๋ฆฌ์„์€ ์งˆ๋ฌธ์ด๋ผ๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@Rendfold ๋‹น์‹ ์€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ๋‚˜๋Š” ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ๊ถ๊ธˆํ•ดํ•˜๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๋œ ๊ด€๋ จ ์ปค๋ฐ‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/facebook/react-native/commit/665954efcc4460839d00a572be84cf204a42c0d5

ListView๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ข…์†์„ฑ์„ ์ถฉ์กฑ์‹œํ‚ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด Facebook ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@ericlewis ๊ฑฐ๊ธฐ์—์„œ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์ง€๋งŒ ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋” ๋‚˜์•„๊ฐ”์Šต๋‹ˆ๋‹ค. 2016 ๋…„์— ๊ฐ€์„œ eaba2abc0b76f9a26703c87eecf4a8bb52f9ed3e
๊ทธ๋Ÿฌ๋‚˜ ๋„ค, ๋‹น์‹ ์ด ์˜ณ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ListView์ž…๋‹ˆ๋‹ค.

@cpojer ์ €๋Š” DrawerLayoutAndroid 23730 ์— ๋Œ€ํ•ด DrawerLayoutAndroid ์—์„œ ํŒŒ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ฝค ๊ณ ๋ฆฝ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถ”์ถœํ•˜๊ธฐ์— ์ข‹์€ ํ›„๋ณด๊ฐ€ ๋ ๊นŒ์š”? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ฐ›์•„ ๋“ค์—ฌ์„œ ๊ธฐ์˜๋‹ค.

์—ฌ๊ธฐ์— ์–ธ๊ธ‰ ๋œ ๋ชจ๋“ˆ ์ค‘ react-native-async-storage ๋ฐ react-native-netinfo ๋งŒ ๋‘ ํ”Œ๋žซํผ ๋ชจ๋‘์— ๋Œ€ํ•ด e2e ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์œผ๋ฉฐ react-native-cameraroll ์—๋„ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์ง€๋งŒ Android์—์„œ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์ตœ๊ทผ Detox๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ react-native-svg์˜ e2e ํ…Œ์ŠคํŠธ๋ฅผ ์‚ดํŽด๋ณด๊ณ  travis ๋ฐ bitrise์— ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
https://travis-ci.org/msand/react-native-svg-e2e/builds
https://app.bitrise.io/app/1a150b039e9b8fbd#/builds

iOS์™€ Android ๋ชจ๋‘์—์„œ ์Šคํฌ๋ฆฐ ์ƒท์„ ์ฐ๊ณ , ๋ชจ๋‘์— ๋Œ€ํ•ด ์ผ๋ฐ˜ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ถ”๊ฐ€๋กœ iOS ์šฉ cocoapods๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ-SVG REPO์— ๋Œ€ํ•œ ์„ค์ • bitrise์— ์•ก์„ธ์Šค ํ•  ์ˆ˜์—†๋Š”, @cpojer๋Š” ๊ทธ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ์š”? ์•„๋‹ˆ๋ฉด e2e ํ…Œ์ŠคํŠธ๋ฅผ circleci๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ์•ˆ๋“œ๋กœ์ด๋“œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ kvm / ๊ฐ€์†์— ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

travis ๋ฐ bitrise์—์„œ kvm์—†์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ์ตœ์‹  ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์นด๋‚˜๋ฆฌ์•„๊ฐ€ ํ•„์š”ํ–ˆ๊ณ  ๊ฐ€์†์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ตฌ์„ฑ์„ ์ฐพ์œผ๋ ค๊ณ  ๋งŽ์€ ์‹œ๋„๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด circleci๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ณณ์—์„œ e2e๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด์žˆ๋Š” ๊ฒฝ์šฐ์ด ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/msand/react-native-svg-e2e

Off topic : ๋ˆ„๊ตฐ๊ฐ€ react-native-svg ํ…Œ์ŠคํŠธ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์Šคํฌ๋ฆฝํŠธ / ์•ฑ์„ ์–ป๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. https://github.com/web-platform-tests/ wpt / ํŠธ๋ฆฌ / ๋งˆ์Šคํ„ฐ / svg
https://github.com/kristerkari/react-native-svg-transformer ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ svg ํŒŒ์ผ์„์žˆ๋Š” ๊ทธ๋Œ€๋กœ๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์Šคํฌ๋ฆฐ ์ƒท์— ๋Œ€ํ•œ ๋น„๊ต ๋‹จ๊ณ„๊ฐ€ ์ •๋ง ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ART๋ฅผ ๋น„์ถ”์ฒœ / ๋ถ„ํ• ๊ณผ ๊ด€๋ จํ•˜์—ฌ, ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ถ„๋ฆฌํ•˜๊ณ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ๋ฒ„๊ทธ ์ˆ˜์ • / ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ๋ Œ๋”๋งํ•˜๋ ค๋Š” ๋‹จ์ˆœ ๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ ๋งŒ ์žˆ๊ณ  svg ์‚ฌ์–‘์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ตœ์†Œํ•œ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ART๊ฐ€ ๋” ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์™„์ „ํ•œ svg ์‚ฌ์–‘ ์ค€์ˆ˜๋ฅผ ๋ชฉํ‘œ๋กœํ•˜๋Š” ๊ฒƒ๋งŒ ํผ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์›น์—์„œ ART๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์บ”๋ฒ„์Šค๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ svg๋ณด๋‹ค ๋น ๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ตœ์ ํ™”์— ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด๊ธฐ ์ „์— ์‹ค์ œ ํ•ซ์ŠคํŒŸ / ๋ณ‘๋ชฉ ์ง€์ ์„ ์ฐพ์•„ ๋‚ด๊ณ  ์ถฉ๋ถ„ํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋กœ ์ ์ ˆํ•œ A / B ์ธก์ •์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ART๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ์ฝ”๋“œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•˜๋Š” svg๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  (react-native-) ์›น ํ˜ธํ™˜ ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค (์บ”๋ฒ„์Šค / webgl ์ˆ˜์ค€ ์„ฑ๋Šฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ). ์ด ๋ชฉ์ ์„ ์œ„ํ•ด ํ–ฅํ›„ react-native-svg ๋ฆด๋ฆฌ์Šค์—๋„ ํ˜ธํ™˜์„ฑ index.web.js ๊ตฌํ˜„์ด ํฌํ•จ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋Š˜ React Native์—์„œ "reduce motion"์˜ต์…˜์„ ์ฝ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•ดํ–ˆ์ง€๋งŒ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฐ€์‹œ์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? https://react-native.canny.io/feature-requests๊ฐ€ ์—ฌ์ „ํžˆ ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•ด ์„ ํ˜ธ๋˜๋Š” ํฌ๋Ÿผ์ž…๋‹ˆ๊นŒ?

@kristerkari ์ €๋Š” AccessibilityInfo "๋ชจ์…˜ ๊ฐ์†Œ"์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” PR์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/facebook/react-native/pull/23839

@cpojer ์•ˆ๋…•ํ•˜์„ธ์š”, ์ž ์‹œ ๋™์•ˆ ๋‚˜๊ฐ€์„œ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. react-native-status-bar๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ์—์„œ ๊ทธ๊ฒƒ์„ ๋น„๋‚œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?
๋˜ํ•œ react-native-status-bar ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋งŒ๋“ค ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

@dmtrKovalenko ์˜ˆ, ์ œ๋ฐœ!

์ง€์› ์ค‘๋‹จ ์ƒํƒœ ํ‘œ์‹œ ์ค„์— ๋Œ€ํ•œ PR ์ž‘์„ฑ-> # 23898

๋‚˜๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ-SVG REPO์— ๋Œ€ํ•œ ์„ค์ • bitrise์— ์•ก์„ธ์Šค ํ•  ์ˆ˜์—†๋Š”, @cpojer๋Š” ๊ทธ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ์š”? ์•„๋‹ˆ๋ฉด e2e ํ…Œ์ŠคํŠธ๋ฅผ circleci๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ์–ด์จŒ๋“  ์•ˆ๋“œ๋กœ์ด๋“œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ kvm / ๊ฐ€์†์— ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@msand ๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด CircleCI์— ์ •์ฐฉํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. @gengjiawen์ด ๋ฒค์น˜๋งˆํ‚น ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋” ๋นจ๋ฆฌ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์ด '๊ณต์‹์ '์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

react-native-cameraroll์—๋„ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ Android์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Android ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์ •๋ง ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค (์•ฑ์ด ์‹œ์ž‘๋จ). ๊ตฌ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. netinfo์—์„œ ๊ตฌ์„ฑ์„ ๋ณต์‚ฌํ–ˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. @ matt-oakes ํŠนํžˆ ๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ํ•œ ๋ˆˆ์— ๋ณด์‹ญ๋‹ˆ๊นŒ?

@bartolkaruza ์ด๊ฒƒ์€ NetInfo ์ €์žฅ์†Œ์—์„œ ์ˆ˜์ • ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค : https://github.com/react-native-community/react-native-netinfo/pull/25

์ง€๊ธˆ ์นด๋ฉ”๋ผ ๋กค ์ˆ˜์ •์„ ์œ„ํ•ด PR์„ ์ œ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@cpojer ์ฝ”์–ด์—์„œ tvOS๋ฅผ ์ถ”์ถœ ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Button ๋„ ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ถ”์ถœ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ ๋ชจ๋“ˆ๋กœ ์ถ”์ถœ ๋œ ๊ธฐ๋Šฅ์„ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์งˆ๋ฌธ :

์ถ”์ถœ ๋œ ๋ชจ๋“ˆ์— ์˜์กดํ•˜๋Š” ๊ถŒ์žฅ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ง์ ‘์ ์ธ ์ข…์†์„ฑ ๋˜๋Š” peerDependencies?

์˜ˆ๋ฅผ ๋“ค์–ด reactotron-react-native๋Š” ํ˜„์žฌ AsyncStorage๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. react-native-asyncstorage ๋ฅผ ์ง์ ‘ ์ข…์†์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ๋น„ ์•ฑ์—์„œ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด peerDependency๋ฅผ ์œ„ํ•ด ๊ณ„ํš๋˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ข…์†์„ฑ์ด์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  AsyncStorage๋Š” ReactNative๋ฅผ peerDependency๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋™์ผํ•œ ์•ฑ์—์„œ ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ AsyncStorage๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋™์ผํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋ช…ํ™•ํ•˜๊ฒŒ ๋„ฃ์Šต๋‹ˆ๋‹ค) readme), ๊ทธ๋Ÿฌ๋‚˜ ReactNative ์ข…์†์„ฑ์„ ์ถฉ์กฑ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค์— ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•ฉ๋‹ˆ๊นŒ? ๋ช…๋ช… ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ "AsyncStorage"์˜ ์ž ์žฌ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฒ„์ „์ด ์—†์„๊นŒ์š”? ์ด๊ฒƒ์ด ๋ฌธ์ œ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ, ์—ฌ๋Ÿฌ ๋ฒ„์ „์ด์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ ๋ฒ„์ „์ด ๋…๋ฆฝํ˜•์ด๊ณ  ๋‘˜ ์‚ฌ์ด์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer ์ €๋Š”์ด ๋ฌธ์ œ์˜ ์ผ๋ถ€๋ฅผ ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. "๋ณ‘ํ•ฉ ๋œ PickerIOS / Picker ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™"๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @wagnermaciel , ์ €์™€ @bartolkaruza ๊ฐ€ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. @cpojer ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“œ

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

@jainkuniya ๊ฑฑ์ • ๋งˆ์„ธ์š”. @cpojer ์—ฌ๊ธฐ์— ๋‚˜์—๊ฒŒ ํ• ๋‹น ํ•  ์ˆ˜์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋Š” ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์œผ๋กœ ์ฐธ์—ฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

@wagnermaciel ์šฐ๋ฆฌ์˜ ๋…ธ๋ ฅ์—

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer , "ImagePickerIOS๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ"์ด๋™ํ•˜๋„๋ก ์ง€์ • ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@ aerlinn13 ๋‚˜๋Š” ๋‹น์‹ ์„ ๊ทธ์—๊ฒŒ ๋‚ด๋ ค ๋†“์•˜์Šต๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— PR์„ ๋ณด๋‚ด๊ณ  ์ €์—๊ฒŒ ํ•‘์„ ๋ณด๋‚ด๋ฉด ๊ฑฐ๊ธฐ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :) ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@cpojer ๋น ๋ฅธ ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! "์ €์žฅ์†Œ์—์„œ ProgressBarAndroid ์ œ๊ฑฐ, ๊ฐ€๋Šฅํ•˜๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™"์„ ๋‚˜์—๊ฒŒ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ผํ•˜๊ณ  ์‹ถ๋‹ค. ๊ฐ์‚ฌ!!!

@wagnermaciel ์™„๋ฃŒ! ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค :)

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer , ToastAndroid ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์œผ๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
HMRLoadingView ๋ฐ LinkingExample์—์„œ ToastAndroid๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์•Œ๋ฆผ ์œ ํ˜•์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์˜๋ฌธ์ž…๋‹ˆ๋‹ค.
์–ด์จŒ๋“  FB์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํ˜„์žฌ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๋‚ด ์˜๊ฒฌ์„ ๋ฌด์‹œํ•˜์‹ญ์‹œ์˜ค :)

๋‚ด ์›๋ž˜ ๊ฒŒ์‹œ๋ฌผ :

@cpojer ํ† ์ŠคํŠธ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ๋‚˜์ค‘์— ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์›์ธ:

  1. Toast๋Š” ๋˜ ๋‹ค๋ฅธ ์œ ํ˜• / ์Šคํƒ€์ผ์˜ ์•Œ๋ฆผ์ด๋ฉฐ, ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์•Œ๋ฆผ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Android ๊ตฌํ˜„ ๋งŒ ์žˆ์Œ
  3. ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ https://github.com/search?q=react+native+toast์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ˆ˜๋งŽ์€ "toast like"๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

@radeno ์ง€๊ธˆ ๋‹น์žฅ ์ œ๊ฑฐ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚˜์ค‘์— ์ œ๊ฑฐํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค @cpojer ์ง€๋‚œ๋‹ฌ ์— ์ •๋ง ๋ฐ”๋นด์ง€๋งŒ ์˜ค๋Š˜ ProgressViewIOS ์ž‘์—…์„ ์žฌ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

@cpojer ๋ฐฉ๊ธˆ "Deprecate StatusBarIOS"๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ์ง€๋งŒ StatusBarIOS.ios ๋ฐ StatusBarIOS.android ๋Š” 2018 ๋…„ ์ดํ›„๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฐ„๊ณผ ํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋น ์ง„ ๊ฒƒ์ด ์—†์œผ๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ๋„์™€ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cpojer ios ํด๋”์— ๋Œ€ํ•œ ํŒŒ์ผ์„ ์ฐพ์„ ์œ„์น˜ ๋˜๋Š” ์ƒ์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@cpojer ๋Š” ์•„์ง ํ• ๋‹น๋˜์ง€ ์•Š์€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜ JS ์ข…์†์„ฑ ๊ฐ์‚ฌ๋ฅผ ์ฒ˜๋ฆฌ ํ•  ์ค€๋น„๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@cpojer ์šฐ๋ฆฌ ํšŒ์‚ฌ๊ฐ€ ํ˜„์žฌ ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ react-native์— ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ข‹์€ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”์ด ์šฐ์‚ฐ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฌด์—‡์ด ์žกํž ๊ฒƒ์ธ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.

์ตœ์šฐ์„  ์ˆœ์œ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ƒ์œ„ ๋ฌธ์ œ (์˜ˆ : ProgressViewIOS๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™) ๋˜๋Š” ํ–ฅํ›„ ์ž‘์—… ์„น์…˜์—์žˆ๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๋„์›€์ด ํ•„์š”ํ•˜์‹ญ๋‹ˆ๊นŒ? ํ• ๋‹น ๋œ ์‚ฌ๋žŒ์ด์—†๋Š” ์ผ๋ถ€ (์˜ˆ : ProgressViewIOS๋ฅผ ์ด๋™ํ•˜๋Š” ์‚ฌ๋žŒ)๊ฐ€ ์žˆ์ง€๋งŒ ์ด๋ฏธ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@RafaelOda ์˜ค๋Š˜์˜ ์ตœ์šฐ์„  ๊ณผ์ œ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ๋•๊ณ , ์ €์žฅ์†Œ์˜ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์ด์— ๋Œ€์‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์—ฌ๊ธฐ์— ์„ ์–ธ ๋œ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒƒ์„ ์‹๋ณ„ํ•˜๊ณ  ์ด์‚ฌ๋ฅผ ์œ„ํ•ด ์ œ์‹œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„ํ‚ค ์–ด๋”˜๊ฐ€์— ์ƒˆ RNC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๊นŒ? RNC๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ผ์ข…์˜ ํ…œํ”Œ๋ฆฟ / ๊ฐ€์ด๋“œ ๋ผ์ธ์œผ๋กœ ๋ณด๊ด€ํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚œ ๊ทธ๋ƒฅ ๋ฐœ๊ฒฌ ์ด ์‚ฌ์‹ค์€ ์žˆ์ง€๋งŒ, ์•„์ง ์•„๋‹ˆ์—์š”. :)

๋‹ค์Œ ํ›„๋ณด์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • KeyboardAvoidingView, SafeAreaView
  • ๋ชจ๋‹ฌ (?).

SafeAreaView ๊ฐ€์ ธ ๊ฐ€์„œ ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ฝ”์–ด์—์„œ ์ด๋Ÿฌํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ตœ์‹  ๋‹ค์Œ ํ›„๋ณด์ž๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ €๋„ ์†์„ ๋‚ด๋ฐ€๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค :)

@brentvatne @ide @ericvicenti @kmagiera ๋Š” ๋ฐ˜์‘ ํƒ์ƒ‰ ๋ฐ ์žฌ ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์—ฌ์ „ํžˆ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ „๋‹ฌํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์„๋ฐ›์„ ์ˆ˜์žˆ๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” Android์˜ RNTester์—์„œ ToolbarAndroid ์‚ฌ์šฉ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ ์‚ฌ์šฉ๋ฒ•์„ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ตœ์ƒ์œ„ ๊ฒŒ์‹œ๋ฌผ ์—…๋ฐ์ดํŠธ๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ImagePickerIOS๋Š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์•„์ง ์ถ”์ถœ๋˜์ง€ ์•Š์€ ์†Œ์œ ๊ถŒ์ด์—†๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. https://github.com/react-native-community/react-native-image-picker-ios ์—์„œ ๋งŒ๋“  ์ €์žฅ์†Œ์— ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด๊ณ  PR์„ ๋ณด๋‚ด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋งˆ์ง€๋ง‰์œผ๋กœ, DatePickerIOS ๋ฐ DatePickerAndroid๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ์ž‘์—…์ด ์‹คํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/react-native-community/discussions-and-proposals/pull/85 ์ฐธ์กฐ โ€“ ์ด๊ฒƒ์€ ์ข‹์€ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค! ์ด์ƒ์ ์œผ๋กœ๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‘ DatePicker ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ์ด ์ €์žฅ์†Œ๋กœ ์ถ”์ถœํ•˜๋Š” ๋ฐ ๋น„์šฉ์„ ๋ถ€๋‹ดํ•ฉ๋‹ˆ๋‹ค : https://github.com/react-native-community/react-native-datepicker

๋‘ ๊ฐœ์˜ ์ƒ์œ„ ์ˆ˜์ค€ ๋‚ด๋ณด๋‚ด๊ธฐ, DatePickerIOS ๋ฐ DatePickerAndroid๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๋ฒ„์ „์ด ๋ฐฐ์†ก๋˜๊ณ  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ RN์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋‘ ๊ฐ€์ง€๋ฅผ ๋‹จ์ผ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ณ‘ํ•ฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cc @mmcknett ๋ฐ @Swaagie

๋ณ„๋„์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ถ”์ถœํ•˜๋ ค๋Š” RN์˜ ๋˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์œผ๋กœ ReactART๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/react-native-community/react-native-art

๋„์›€ ํ•„์š”!

DatePickerIOS ์™€ DatePickerAndroid ์žˆ๋‚˜์š”?

@sijad ์ด์ „์— React Native๋กœ ์ž‘์—… ํ•œ ์ ์ด ์žˆ์œผ๋ฉฐ ์ถ”์ถœ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@cpojer ๋‹ค์Œ ์›”์š”์ผ๋ถ€ํ„ฐ

@ivanmoskalev ๋Œ€๋‹จํ•ด! ์‹œ์ž‘ํ•  ๋•Œ ์•Œ๋ ค์ฃผ๊ณ  ๋‚ด๊ฐ€ ๋งŒ๋“  ์ƒˆ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ PR์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. :)

@cpojer ์‹ค์ˆ˜๋กœ review ์ง€์ ์„ ์™„์ „ํžˆ ๊ฐ„๊ณผ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์„œ์™€ ํ•ด๋… ํ…Œ์ŠคํŠธ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์ž‘์—…์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ์ธ์‹์„์œ„ํ•œ cc @sijad

ํŽธ์ง‘ 2 : https://github.com/Swaagie/react-native-datetimepicker๋Š” ๋ชจ๋‘ review ๋ธŒ๋žœ์น˜์—์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ €์žฅ์†Œ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜์žˆ๋Š” ๊ถŒํ•œ์ด ์—†์ง€๋งŒ ๋๋‚ด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ @sijad , ์ฒ ์ €ํ•œ ๊ฒ€ํ†  ๋ฐ ์ฝ”๋“œ ์ˆ˜์ • (ํ•„์š”ํ•œ ๊ฒฝ์šฐ)์˜ ํ˜•ํƒœ๋กœ ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋งค์šฐ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

@cpojer @sijad @Swaagie๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ž‘์—…์€ ํ™•์‹คํžˆ ๊ตฌ์ฒดํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Discord์—์„œ๋„ ์—ฐ๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€์ ์„ ๋†“์น  ์—ผ๋ ค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ„๊ณผํ•˜๊ธฐ ์‰ฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ์ด์ผœ ๋ณด๋ฉด Martijn์ด Draft -state์—์„œ PR์„ ์—ด๋ผ๊ณ  ์กฐ์–ธ ํ–ˆ์–ด์•ผํ–ˆ๋Š”๋ฐ, ๊ทธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ฐฉ์ˆ˜ํ•˜๊ณ  ์šฐ๋ฆฌ ์Šคํ”„๋ฆฐํŠธ์— ๋„ฃ์€ ์ž‘์—…์— ๋Œ€ํ•ด ๋” ์ž‘์€ PR์„ ๊ณ„์†ํ•ด์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

react-native-community Lean Core์—์žˆ๋Š” ์ด๋Ÿฌํ•œ ์ž‘์€ ๋ชจ๋“ˆ์˜ ํ‘œ์ค€ ์šด์˜ ์ ˆ์ฐจ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ œ์•ˆ ํ•  ์ˆ˜์žˆ๋Š” ๊ณณ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” react-native-datetimepicker ์—์„œ ๋งŽ์€ ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜์—ฌ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“ˆํ™”๋ฅผ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋„“์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์˜ค ์ด๋Ÿฐ, ๋‹ค๋ฅธ ์ด๋ฆ„์˜ repo๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค .-.-

์ƒˆ๋กœ์šด datepicker์— PR์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ•  ๊ฒƒ์ด๋‹ค! ๋น ๋ฅธ ์ฒ˜๋ฆฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๋˜ํ•œ ํž˜๋“  ๊ฐ์ •๋„์—†๊ณ , ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์ธ๊ฐ„์ด๋ฉฐ @crobbins ๊ฐ€ ์ž‘์—…์„ ๋” ์ž˜ ๋ณด์ด๊ฒŒ

@cpojer ์ƒ๋‹จ ๊ฒŒ์‹œ๋ฌผ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‚ด github ํ•ธ๋“ค์„ ๋‹ค์Œ์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Merge DatePickerIOS and DatePickerAndroid, move to community repo
๊ฐ์‚ฌ!

@Swaagie ์™„๋ฃŒ!

https://github.com/yfuks/react-native-action-sheet ๋ฅผ ์ฑ„ํƒํ•˜๊ณ  ActionSheetIOS์™€ ๋ณ‘ํ•ฉํ•˜๋ฉด ๋†€๋ž„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

React Native ์ฝ”์–ด์—์„œ API๋ฅผ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ๊ตฌํ˜„์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  react-native-web์—์„œ ๋™๋“ฑํ•œ ๊ตฌํ˜„์„ ํ™•์ธํ•˜๊ณ  react -๋„ค์ดํ‹ฐ๋ธŒ ์œˆ๋„์šฐ.

@ cpojer ์ •๋ง ๊ทธ ๋ชจ๋“  ๊ฒƒ์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๋‚ด๊ฐ€ ํ•˜๋‚˜๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
FWIW RCTImagePickerIOS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ ๋ฉฐ์น  ์ด๋‚ด์— PR์„ ์ œ์ถœํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@ Johan-dutoit ์˜ˆ, ์•ˆํƒ€๊น๊ฒŒ๋„ ๋ชจ๋“ˆ ์ œ๊ฑฐ๋Š” Facebook ์ง์› ๋งŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ImagePickerIOS ์ถ”์ถœ์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค!

@cpojer ๐ŸŽ‰PR ์ œ์ถœ ๋ฐ ํ…Œ์ŠคํŠธ ๋จ ๐ŸŽ‰

@cpojer ๊ฐ ํŒŒ์ผ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…์„ ์„ค๋ช…ํ•˜๋Š” readme.md ํŒŒ์ผ์—์„œ ์•ฝ๊ฐ„ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ํด๋”์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ ์žํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ํฌ๊ฒŒ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚š์‹œ ์ฒ˜๋Ÿผ

์˜ˆ๋ฅผ ๋“ค๋ฉด

image

  • React.js
    ์ด ํŒŒ์ผ์˜ ์ฃผ์š” ๋ชฉ์ ์€ ...
  • react-native-implementation.js
    ์ด ํŒŒ์ผ์˜ ์ฃผ์š” ๋ชฉ์ ์€ ...
  • react-native-interface.js
    ์ด ํŒŒ์ผ์˜ ์ฃผ์š” ๋ชฉ์ ์€ ...

์ด ์„ธ ํŒŒ์ผ์€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์™€ ๊ฐ™์€ ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ์•ฝ๊ฐ„ ๋ณต์žก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
image

๋ถ„๋ช…ํžˆ ๊ฐ ํŒŒ์ผ์ด ๋ฌด์—‡์„ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ๋งํ•  ๊ฒƒ๋„์—†๊ณ  ๋„ˆ๋ฌด ์„ค๋ช…์ ์ผ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํŠน์ • ํด๋”์—์„œ ์ˆ˜ํ–‰ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ์ด ์žˆ๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ์ •์˜ ๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ์ด ์ €์žฅ์†Œ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@cpojer ๋‚ด๊ฐ€ ์„ ํƒํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@FLGMwt ๊ฐ€ https://github.com/facebook/react-native/issues/23313#issuecomment -469288200์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด DrawerLayoutAndroid ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ToastAndroid ๋ฐ Animated ๋„ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@ecreeth , ํ•ด๋‹น ํŒŒ์ผ์€ ์•„์ง ์ œ๊ฑฐ๋˜์ง€ ์•Š์€ ๋ฏน์Šค ์ธ์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— createReactClass๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. createReactClass๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹propTypes๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์—…๋ฐ์ดํŠธ๋˜๋ฉด Flow์— ๋Œ€ํ•ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

@TheSavior ์ •๋ณด๋ฅผ ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. "์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ์ด๋™ ๋ฒ„ํŠผ"์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

ํ™•์‹คํ•œ. https://github.com/react-native-community/react-native-netinfo ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ํ™•์ธ

์•ˆ๋…•ํ•˜์„ธ์š” RN์—์„œ webview๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ webview๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”, ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค! ๋ชจ๋“  "์ œ๊ฑฐ"์ž‘์—…์ด @cpojer ์— ํ• ๋‹น ๋œ ๊ฒƒ์„

์•ˆ๋…•ํ•˜์„ธ์š”, DatePickerComponents ์ด๋™์— ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @cpojer , ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” @cpojer , CheckBox ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ด๋™ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ๋‚ดํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Button์„ ์ƒˆ๋กœ์šด ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์˜ฎ๊ธธ ์ˆ˜์žˆ์–ด์„œ ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ๊ณ ๋ง™๊ฒŒ ์ƒ๊ฐํ•˜์ง€๋งŒ ์†Œ์Šค๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๋‚ด ๋ฐฉํ–ฅ์„ ์žก๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. @cpojer ์กฐ์–ธ์„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Remove DatePickerAndroid, DatePickerIOS, TimePickerAndroid๋ฅผ ์ œ๊ฑฐํ•˜๋Š” PR ์—ด๋ฆผ

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

์ฝ”์–ด์— ์ƒˆ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ถ”๊ฐ€ ํ• ์‹œ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด useWindowDimensions ํ›„ํฌ๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ๋นŒ๋“œ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”์–ด์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค-https: //github.com/facebook/react-native/blob/3b3c95b0170e60983eb6e89b910d100d08eee141/Libraries/Utilities/useWindowDimensions .js

ํ›„ํฌ์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ์ƒ๊ฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ›„ํฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”์–ด๋ฅผ ํ˜„๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. React Native๊ฐ€ ๋ ˆ๊ฑฐ์‹œ API ๋งŒ ์ œ๊ณตํ•˜๊ณ  ํ›„ํฌ๋ฅผ ๋ณ„๋„์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ํŒจํ‚ค์ง€๋กœ ๋ž˜ํ•‘ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ €๋Š” ํ›„ํฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”์–ด์— ์ƒˆ๋กœ์šด ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅธ ํŠน์ • ์งˆ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…• ๋ชจ๋‘๋“ค! ํ˜„์žฌ ์ปค๋ฎค๋‹ˆํ‹ฐ ํšŒ์›์ด ์ทจํ•  ์ˆ˜์žˆ๋Š” ์กฐ์น˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์˜ˆ์ •๋œ ์‚ญ์ œ๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋ณด๋ฅ˜ ์ค‘์ž…๋‹ˆ๋‹ค.

  • ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ถ”์ถœ ๋œ ๋ฒ„์ „์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ฑฐ ํ•  ๋•Œ๊นŒ์ง€ ์ž ์‹œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚˜์ค‘์— ์™ธ๋ถ€ ๋ชจ๋“ˆ์„ ์ฑ„ํƒ ํ•  ๋•Œ๊นŒ์ง€ ์‹ค์ œ๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ Facebook ๋‚ด๋ถ€๋กœ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ๋Š” Facebook์˜ ๋ˆ„๊ตฐ๊ฐ€ ๋งŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›„ํฌ ๊ธฐ๋ฐ˜ API์™€ ๊ด€๋ จํ•˜์—ฌ์ด ๋ฌธ์ œ๋Š” ํ•ด๋‹น ํ† ๋ก ์— ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•ž์œผ๋กœ ๊ณต๊ฐœ API๋ฅผ ์žฌ๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ์ ์ฐจ์ ์œผ๋กœ ํ›„ํฌ ๊ธฐ๋ฐ˜ API๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์ด ์ฒ˜์Œ์ด๋ฉฐ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์˜ˆ์ •๋œ ์ œ๊ฑฐ๊ฐ€ ๋‘ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋ณด๋ฅ˜ ์ค‘์ž…๋‹ˆ๋‹ค ...

์–ด์จŒ๋“  ToolbarAndroid ๊ฐ€ (์ž๋™์œผ๋กœ) ์ œ๊ฑฐ ๋œ ๊ฒƒ์ด ์‹ค์ˆ˜์˜€์Šต๋‹ˆ๊นŒ?

@cpojer '์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ๋กœ ๋ฒ„ํŠผ ์ด๋™'์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@Archulan ์€ PR์„ react-native-button์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Archulan ์ด ๋Œ“๊ธ€์„ ์ฐธ์กฐ # 23313 (๋Œ“๊ธ€)

@Archulan ์€ PR์„ react-native-button์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์•„. ์ด ์ž‘์—…์„ ์•ˆ๋‚ดํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

Button ๋ฐ–์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์€ ๋ง์ด๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋งค์šฐ ์ž‘์œผ๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•  ํ•„์š”์—†์ด ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ œ์ž๋ฆฌ์— ๋‘๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฟก๋ฟก

Button ๋ฐ–์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์€ ๋ง์ด๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

react <Button/> ํฌํ•จ๋˜์–ด์žˆ๋Š” ๊ฒƒ์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ˜๋ช… ํ›„์—๋Š”

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

๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์˜ํ•ด ์ฃผ๋„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

react-native ์—์„œ react-native-element ์™€ ํ•จ๊ป˜ react ์™€ react-dom ์—์„œ monorepo๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@cpojer Vibration (https://reactnative.dev/docs/vibration)๋„ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ๋กœ ์˜ฎ๊ฒจ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์‹œ์ž‘ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์ž‘์€ ๊ฒƒ ๊ฐ™์•„์„œ ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cpojer ImageStore ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ๋„์›€์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋Š” ์ดˆ๋ณด์ž์ด๊ณ  ์ด๊ฒƒ์œผ๋กœ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์•ˆ ์ธ์‚ฌ.
๋งˆ๋ˆ„์—˜ ํฌ๋ฅดํ…Œ๋กœ.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋„์›€์ด ์—ฌ์ „ํžˆ ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ƒ

๋‚˜๋„

๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ญ”๊ฐ€ํ• ๋งŒํ•œ ์ผ์ด ์žˆ์„๊นŒ์š”?

์ œ๊ฐ€ ๋ญ”๊ฐ€ํ• ๋งŒํ•œ ์ผ์ด ์žˆ์„๊นŒ์š”?

๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์€๋ฐ ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰