์ง๋ ๋ช ๋ฌ ๋์ ์ฐ๋ฆฌ๋โLean Coreโ๋ผ๋ ํ๋ก์ ํธ์ ๋ํด ๋ ผ์ํ๊ณ ์ง์ ์ ์ด๋ฃจ์์ต๋๋ค. ์ด ํ๋ก์ ํธ์ ๋ํ ์ฐ๋ฆฌ์ ๋๊ธฐ๋ฅผ ์ฝ์ผ์ญ์์ค . ์๋ ์ ๊ฑธ์ณ React Native๋ ํ์ฌ ๊ตฌ์์ด๊ฑฐ๋ ์ฌ์ฉ๋์ง ์๊ฑฐ๋ ๋ค๋ฅธ ์ ์ฐ ์ธ ๋ง์ ๋ถ๋ถ์ ์ถ์ ํ์ต๋๋ค. ์์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ๊ณ ์ ์ฅ์๋ฅผ ํจ์ฌ ๋ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ํ๋ก ๋ง๋ค ๋์ ๋๋ค.
์ด๊ฒ์ ์ ์ฅ์ ์ฌ๊ตฌ์ฑ์ ๋ํ ์์ ์ ํฌํจํ์ฌ ๋ฆฐ ์ฝ์ด ๋ชฉํ์ ๋๋ฌํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์์ ์ ์ถ์ ํ๊ธฐ์ํ ํฌ๊ด์ ์ธ ์์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ ์ต์ ์ํ๋ก ์ ์ง๋๋ฏ๋ก ์ ํญ๋ชฉ์ด ์ถ๊ฐ๋๊ณ ์๋ฃ๋ ํญ๋ชฉ์ ์ ๊ฑฐ๋ฉ๋๋ค. ์ผ๋ถ ํญ๋ชฉ์ ์์ ์ ์ถ์ ํ๊ธฐ ์ํด ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์์ฑํฉ๋๋ค. ์๋ ํญ๋ชฉ์ ํ ๋น ๋ ์ด๋ฆ์ด ๋ณด์ด์ง ์๊ณ ๋์์ด ํ์ํ๋ฉด ์๊ฒฌ์ ์์ํ์ฌ ์ ์๊ฒ ์ฐ๋ฝํ์ฌ ์์ํ์ญ์์ค!
React Native๋ ํ์ฌ ๋ง์ ์์ ๊ตฌ์ฑ ์์์ ํจ๊ป ์ ๊ณต๋๋ฉฐ, ๋๋ถ๋ถ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ฑฐ๋ ๊ตฌ์์ด์ง๋ง ์ฌ์ ํ ์ ์ฅ์์ ์ผ๋ถ์ด๋ฉฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ์ด ์น์ ์ ํญ๋ชฉ์ ๋ํด ์ฌ์ฉํ์ง ์๋ ํญ๋ชฉ์ ์์ ํ ์ ๊ฑฐํ๊ฑฐ๋ ์ปค๋ฎค๋ํฐ ๊ด๋ฆฌ ์ ์ฅ์ ๋๋ facebookarchive ๋ก ์ด๋ํ๋ ค๊ณ ํฉ๋๋ค. ์ฌ๊ธฐ ๋ชฉ๋ก์ ๋ถ๋ถ์ ์ผ๋ก @ axe-fb ๊ธฐ๋ฐ์ผ๋กํฉ๋๋ค . ๋ง์ด๊ทธ๋ ์ด์ ์ ์๋์์ @ matt-oakes์ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ ๋๋ต์ ์ผ๋ก ์ํ ํ ์ ์์ต๋๋ค. https://github.com/facebook/react-native/issues/23313#issuecomment -461462981
์๋ ์ ๊ฑธ์ณ ์ฐ๋ฆฌ๋ ๋ง์ ์์ ์์กด์ฑ, ํนํ JavaScript๋ฅผ ์ถ์ ํด ์์ต๋๋ค. ๋ํ Metro ๋ฐ react-native-cli ์ ๊ฐ์ React Native์์ ํญ๋ชฉ์ ์ฎ๊ฒผ์ต๋๋ค. ์ด๋ package.json์ ๋ง์ ์์ ๋๊ตฌ ์ข ์์ฑ์ ๋จ๊ฒจ ๋ ์์์ ์๋ฏธํ๋ฉฐ, ๋๋ถ๋ถ์ RN ์์ฒด์์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง ์์ React Native์ ์ ์ฒด ์ค์น๊ฐ ๋ถํ๋ ค์ง๋๋ค. ๋ํ ์ฌ์ฉ ๋ ๋ชจ๋ ์ข ์์ฑ์ ๊ฐ์ฌํ๊ณ ์ ๊ฑฐ ํ ์์๋ ์ข ์์ฑ์ ์๋ณํ๋ ๊ฒ๋ ์ข์ต๋๋ค.
ํ์ฌ React Native ์ ์ฅ์๋ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ด์งํ๋ ์กฐ์ง์ด ๊ฑฐ์์๋ ๋๊ท๋ชจ ์ ์ฅ์์ ๋๋ค. ๋ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ก ์ฌ๋ฌผ์ ์ฎ๊ธฐ๋ ๊ฒ๋ ์ด๋ฌํ ๋ ธ๋ ฅ์ ์ผํ์ผ๋ก ์ฐ๋ฆฌ์ ๋ชฉํ์ ๋๋ค. ๊ทธ ์ผํ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ์์ ํจํค์ง๋ก ๊ตฌ์ฑ๋ monorepo ๋ชจ๋ธ์ ๋ฐ๋ฅด๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๋ ๊ฒ์ด๋ฉฐ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์์ํ๊ธฐ์ํ ์ด๊ธฐ ์์ ๋ง์ ์ถ์ ํ ๊ฒ์ ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์์ฑ๋๊ธฐ ์ ์ ์ด์ ์์
์ ๋ณด๋ ค๋ฉด ํด๋ฆญํ์ญ์์ค.
@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
์ ๊ฐ์ด ์ถ์ถ ๋ ๋ชจ๋ ๋ชจ๋์์ ํ์ค์ผ๋ก ๋ง๋ค์ด์ผํฉ๋๊น?
๋์ ๋๋ฆด๊น์
์ฒดํฌ ๋ฐ์ค๋ฅผ ์ ํํ๊ฒ ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ์ ์ถํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ค๋ช
์ ๋ค์ ์ดํด๋ณด๊ณ ๋ฌธ์ ํ
ํ๋ฆฟ์ด ์์ ํ ์ฑ์ ์ก๋์ง ํ์ธํ ์ ์์ต๋๊น?
๐ ๋ฒ๊ทธ ๋ณด๊ณ ์ ๋ฌธ์ ํ ํ๋ฆฟ์ ๋ค์ ๋ณด๋ ค๋ฉด ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํ์ญ์์ค.
@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 ์์ฑ
์ถ์ถ์ ์ํด ์ทจํด์ผ ํ ๋๋ต์ ์ธ ๋จ๊ณ๋ฅผ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
warnOnce
๋ชจ๋์ ์ฌ์ฉํ์ฌ React Native์ ์ง์ ์ค๋จ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์์ ๋ react-native-implementation.js ๋ฅผ ์ฐธ์กฐํ์ธ์.๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. :)
- ImageStore๋ฅผ ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ก ์ด๋
๋๋ ๊ธฐ์กด์ FileSystem
์๋ฃจ์
์ ์ํด ์ด๊ฒ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์์์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํต์ฌ ์ฌ์ฉ ์ฌ๋ก๋ ์ด๋ฏธ์ง์์ Base64๋ฅผ ๊ฐ์ ธ ์ค๋ ๊ฒ์
๋๋ค. ๋ํ Android ์ง์์ด ์์ต๋๋ค.
์๋ ํ์ธ์ @cpojer! ๋๋ ๋์ธ ๊ฒ์ด๋ค
๋์ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค!
๋ด๊ฐ ์ผํ ์ ์์๊น
์๋ ํ์ธ์ @cpojer! ๋์ ๋๋ฆด๊น์?
@cpojer ๋์์ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. Libraries / CameraRoll (ImagePickerIOS ๋ฐ CameraRoll ๊ตฌ์ฑ ์์)์ ๋ฑ๋กํฉ๋๋ค.
RNTester ์ฑ์๋ ์์ฒด package.json์ด ์์ผ๋ฏ๋ก ์ ๊ฑฐํ๋ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ RNTester ์ฑ์์ ์ ๊ฑฐํ๊ฑฐ๋ ์ข ์์ฑ์ผ๋ก ์ฝ์ด์ ๋จ์ ์์ด์ผํฉ๋๋ค. ์ด ์ฌ๋ฆผํ์ ๊ด๋ จํ์ฌ RNTester์ ์ ๊ทผ ๋ฐฉ์์ ๋ฌด์์ ๋๊น?
@cpojer ํด๋ฆฝ ๋ณด๋๋ฅผ ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ก ์ด๋ํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค. :)
์ด ์์ ์ ๋์ ๋๋ฆด๊น์? ๋ฟก๋ฟก
@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 ์ฌ์ฉ์ ์ค๋จํ๊ณ ํ์ฌ ์๋ฃจ์ ์ ์ถ์ฒํ๋๋ก ๋ฑ๋ก ํ์๊ฒ ์ต๋๊น?
@ 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 ์ ๋ ์์ ํ๊ณ ์ถ์ต๋๋ค
๊ฐ์ฌํฉ๋๋ค
๊ฐ์ ธ ์ค๊ธฐ 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 ๋ด๊ฐ ๋์ธ ์ ์์๋ค
๊ฐ์ฌ!
@ 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 ํ ๋น๋์ง ์์ ๋ชจ๋์ ๋ณผ ์ ์์ผ๋ฏ๋ก ๋์์ด ํ์ ํ๋ฉด ํ๊ฒ ์ต๋๋ค .
@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๋ฅผ ์ ์ถํ์ต๋๋ค.
๋ชจ๋ ์ฌ๋๋ค์ด ๋ฆฐ ์ฝ์ด ๋ ธ๋ ฅ์ ๋ํ ์งํ ์ํฉ์ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธํ๊ณ ์ถ์์ต๋๋ค. ๋๋ ๋จ์ง ์ผ์ฃผ์ผ ๋๊ฒ ๋น์ ์ ๋ชจ๋ ๊ธฐ์ฌ๋ก ์ธํด ๋ด๊ฐ ์ผ๋ง๋ ๋๋๋์ง ๋งํ๊ณ ์ถ์ต๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
์ด๋ฏธ ์๋ฃ๋ ๋ชจ๋ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ํ ์ด๋ฌํ ๋ชจ๋์ ์ถ์ถํ๋ฉด ํด๋น ๋ชจ๋์ ๋ ๋์ ์ ์ง ๊ด๋ฆฌ๋ก ์ด์ด์ง ์ ์์์ ๊ฐ์กฐํ๊ณ ์ถ์ต๋๋ค. 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 ์์ฒญ์ ๋ ๋น ๋ฅด๊ฒ ์๋ต ํ ์ ์์ต๋๋ค!
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์์ ์ค์ด๊ฑฐ๋ ๋ค์์ ์์ ํ๋ ๊ฒ์ ๋๋ค.
๋ค์ ํ๋ฒ, ์ง๊ธ๊น์ง ๋์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๋ฟก๋ฟก
- ์ฌ์ฉํ์ง ์๋ ์ข ์์ฑ ์ ๊ฑฐ
- 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 ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ์์ฝ์ ์๋ฃํ๊ณ ์์ ์ฑ์ ์ถ๊ฐํ์ต๋๋ค.
@cpojer๋ Clipboard-Api ๋ฅผ RN ์ฝ์ด์์ ์ปค๋ฎค๋ํฐ ๋ฒ์ ์ผ๋ก ์ ํํ๊ณ ๋ชจ๋ ๊ฒ์ ํ ์คํธํ๊ธฐ์ํ ์์ ์ฑ์ ์ถ๊ฐํ์ต๋๋ค.
@cpojer ๋๋ ์ต๊ทผ์ ๋ค์ดํฐ๋ธ ๋ฐ์์ผ๋ก ์์ํ์ง๋ง ์๋ํด ๋ณผ ์ ์์ต๋๋ค.
์์ง ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ!
@cpojer ํ ์คํธ ๊ตฌ์ฑ ์์๋ ์ด๋ป์ต๋๊น? ์ง๊ธ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ ๋์ค์ ์ ๊ฑฐํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์ธ:
๋น์ ์ด ๊ทธ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
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๋ฅผ ์ถ์ถ ํ ๊ณํ์ด ์์ต๋๊น?
@ MohamadKh75 ์ฐธ์กฐ https://github.com/react-native-community/discussions-and-proposals/issues/111
Button
๋ ์ ๊ฑฐํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๊ฑฐํ๊ฑฐ๋ ์ถ์ถ ํ์๊ฒ ์ต๋๊น? ๋๋ ์ ๊ฑฐํ๋ ๊ฒ๋ณด๋ค ์ถ์ถํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
์ปค๋ฎค๋ํฐ ๋ชจ๋๋ก ์ถ์ถ ๋ ๊ธฐ๋ฅ์ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ง๋ฌธ :
์ถ์ถ ๋ ๋ชจ๋์ ์์กดํ๋ ๊ถ์ฅ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ง์ ์ ์ธ ์ข ์์ฑ ๋๋ peerDependencies?
์๋ฅผ ๋ค์ด reactotron-react-native๋ ํ์ฌ AsyncStorage๋ฅผ ์ง์ ์ฌ์ฉํฉ๋๋ค. react-native-asyncstorage ๋ฅผ ์ง์ ์ข ์์ฑ์ผ๋ก ์ฌ์ฉํ๋ฉด ์๋น ์ฑ์์ ์ฌ๋ฌ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด peerDependency๋ฅผ ์ํด ๊ณํ๋๊ณ ์์ต๋๊น?
๋๋ ๊ทธ๊ฒ์ด ์ข ์์ฑ์ด์ด์ผํ๋ค๊ณ ์๊ฐํ๊ณ AsyncStorage๋ ReactNative๋ฅผ peerDependency๋ก ์ ์ํฉ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋์ผํ ์ฑ์์ ์ฌ๋ฌ ๋ฒ์ ์ AsyncStorage๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค (๋์ผํ ๊ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ ๋๋ฅผ ์ ์ธํ๊ณ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ช ํํ๊ฒ ๋ฃ์ต๋๋ค) readme), ๊ทธ๋ฌ๋ ReactNative ์ข ์์ฑ์ ์ถฉ์กฑ ํ ์์๋ ๊ฒฝ์ฐ ์ค์น ํ๋ก์ธ์ค์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
๊ฐ๋จํฉ๋๊น? ๋ช ๋ช ๋ ๋ค์ดํฐ๋ธ ๋ชจ๋ "AsyncStorage"์ ์ ์ฌ์ ์ผ๋ก ์ฌ๋ฌ ๋ฒ์ ์ด ์์๊น์? ์ด๊ฒ์ด ๋ฌธ์ ๋ก ์ด์ด์ง ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น?
์, ์ฌ๋ฌ ๋ฒ์ ์ด์์ ์ ์์ง๋ง ๊ฐ ๋ฒ์ ์ด ๋ ๋ฆฝํ์ด๊ณ ๋ ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์๋ ํ์ธ์ @cpojer ์ ๋์ด ๋ฌธ์ ์ ์ผ๋ถ๋ฅผ ๋๊ณ ์ถ์ต๋๋ค. "๋ณํฉ ๋ PickerIOS / Picker ๊ตฌ์ฑ ์์๋ฅผ ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ก ์ด๋"๋ถํฐ ์์ํ ์ ์์ต๋๊น?
์๋ ํ์ธ์ @wagnermaciel , ์ ์ @bartolkaruza ๊ฐ ์์ ์ค์ ๋๋ค. ๊ฑฐ์ ๋๋ฌ์ต๋๋ค. @cpojer ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ฅผ ๋ง๋
@jainkuniya ๊ฑฑ์ ๋ง์ธ์. @cpojer ์ฌ๊ธฐ์ ๋์๊ฒ ํ ๋น ํ ์์๋ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ์ ๋ ์น๊ตฌ๋ค๊ณผ ํจ๊ป ์ผํ๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ํ ์์๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฐธ์ฌํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค ๐
@wagnermaciel ์ฐ๋ฆฌ์ ๋ ธ๋ ฅ์
์๋ ํ์ธ์ @cpojer , "ImagePickerIOS๋ฅผ ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ก"์ด๋ํ๋๋ก ์ง์ ๋ ์ ์์ต๋๋ค. ์ ์ง ๊ด๋ฆฌํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค. ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@ aerlinn13 ๋๋ ๋น์ ์ ๊ทธ์๊ฒ ๋ด๋ ค ๋์์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ๋ณด๋ด๊ณ ์ ์๊ฒ ํ์ ๋ณด๋ด๋ฉด ๊ฑฐ๊ธฐ์์ ์ฒ๋ฆฌํ๊ฒ ์ต๋๋ค :) ๊ฐ์ฌํฉ๋๋ค!
@cpojer ๋น ๋ฅธ ์๋ต์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! "์ ์ฅ์์์ ProgressBarAndroid ์ ๊ฑฐ, ๊ฐ๋ฅํ๋ฉด ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ก ์ด๋"์ ๋์๊ฒ ํ ๋น ํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ ๋ํด ์ผํ๊ณ ์ถ๋ค. ๊ฐ์ฌ!!!
@wagnermaciel ์๋ฃ! ๊ทํ์ ๊ธฐ์ฌ๋ฅผ ๊ธฐ๋ํฉ๋๋ค :)
์๋
ํ์ธ์ @cpojer , ToastAndroid ๊ตฌ์ฑ ์์๋ฅผ ์ธ๊ธํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๊ฒ์ผ๋ก ๋ฌด์์ ํ ์ ์๋์ง ์๊ณ ์์ต๋๊น?
HMRLoadingView ๋ฐ LinkingExample์์ ToastAndroid๊ฐ ์ฌ์ฉ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ๋ ๊ตฌ์ฑ ์์์ ์๋ฆผ ์ ํ์ ๋์ฒดํ๋ ๋ฐฉ๋ฒ์ ์๋ฌธ์
๋๋ค.
์ด์จ๋ FB์์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ค๋ฉด ํ์ฌ ๋ฌธ์ ๊ฐ ์๋๋ฉฐ ๋ด ์๊ฒฌ์ ๋ฌด์ํ์ญ์์ค :)
๋ด ์๋ ๊ฒ์๋ฌผ :
@cpojer ํ ์คํธ ๊ตฌ์ฑ ์์๋ ์ด๋ป์ต๋๊น? ์ง๊ธ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ ๋์ค์ ์ ๊ฑฐํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์ธ:
- Toast๋ ๋ ๋ค๋ฅธ ์ ํ / ์คํ์ผ์ ์๋ฆผ์ด๋ฉฐ, ๋ค์ํ ์ ํ์ ์๋ฆผ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค.
- Android ๊ตฌํ ๋ง ์์
- ๋ฉํฐ ํ๋ซํผ ์ธ ์ปค๋ฎค๋ํฐ https://github.com/search?q=react+native+toast์์ ๊ด๋ฆฌํ๋ ์๋ง์ "toast like"๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค.
๋น์ ์ด ๊ทธ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น?
@radeno ์ง๊ธ ๋น์ฅ ์ ๊ฑฐ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ง๋ง ๋์ค์ ์ ๊ฑฐํ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
์ฃ์กํฉ๋๋ค @cpojer ์ง๋๋ฌ ์ ์ ๋ง ๋ฐ๋นด์ง๋ง ์ค๋ ProgressViewIOS ์์ ์ ์ฌ๊ฐํ๊ฒ ์ต๋๋ค
@cpojer ๋ฐฉ๊ธ "Deprecate StatusBarIOS"๊ฐ ์ ํ๋์ด ์์ง๋ง StatusBarIOS.ios ๋ฐ StatusBarIOS.android ๋ 2018 ๋ ์ดํ๋ก ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ๋ด๊ฐ ๊ฐ๊ณผ ํ ๊ฒ์ด ์์ต๋๊น?
๋น ์ง ๊ฒ์ด ์์ผ๋ฉด ์ฃ์กํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๋์ ๋๋ฆด ์ ์์ต๋๋ค.
@cpojer ios ํด๋์ ๋ํ ํ์ผ์ ์ฐพ์ ์์น ๋๋ ์์ฑ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช ์ ์ ๊ณต ํ ์ ์์ต๋๊น? ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@wagnermaciel ํ๋ก์ธ์ค๋ https://github.com/facebook/react-native/issues/23313#issuecomment -461462981์ ์ฐธ์กฐ https://github.com/facebook/react-native/blob/master/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js#L12
@cpojer ๋ ์์ง ํ ๋น๋์ง ์์ ๊ตฌ์ฑ ์์๋ฅผ ์ด๋ํ๊ฑฐ๋ JS ์ข ์์ฑ ๊ฐ์ฌ๋ฅผ ์ฒ๋ฆฌ ํ ์ค๋น๊ฐ๋์์ต๋๋ค.
@cpojer ์ฐ๋ฆฌ ํ์ฌ๊ฐ ํ์ฌ ํ๋ก๋์ ์์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก react-native์ ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค. ๋๋ ์ข์ ์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ๊ฒ์ํ๋์ด ์ฐ์ฐ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ง๋ง ์ฌ์ ํ ๋ฌด์์ด ์กํ ๊ฒ์ธ์ง ์ดํดํ ์ ์์๋ค.
์ต์ฐ์ ์์๋ ๋ฌด์์ ๋๊น? ์์ ๋ฌธ์ (์ : ProgressViewIOS๋ฅผ ์ปค๋ฎค๋ํฐ ์ ์ฅ์๋ก ์ด๋) ๋๋ ํฅํ ์์ ์น์ ์์๋ ๋ฌธ์ ์ ๋ํด ๋ ๋ง์ ๋์์ด ํ์ํ์ญ๋๊น? ํ ๋น ๋ ์ฌ๋์ด์๋ ์ผ๋ถ (์ : ProgressViewIOS๋ฅผ ์ด๋ํ๋ ์ฌ๋)๊ฐ ์์ง๋ง ์ด๋ฏธ ๊ฐ์ ธ์จ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ค๋ ๋๋ฅผ ์ฝ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
@RafaelOda ์ค๋์ ์ต์ฐ์ ๊ณผ์ ๋ ๋ฌธ์ ํด๊ฒฐ์ ๋๊ณ , ์ ์ฅ์์ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ๋ถ๋ฅํ๊ณ ์ด์ ๋์ํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ฌ๊ธฐ์ ์ ์ธ ๋ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฒ์ ์๋ณํ๊ณ ์ด์ฌ๋ฅผ ์ํด ์ ์ ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ํค ์ด๋๊ฐ์ ์ RNC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ด ์์ต๋๊น? RNC๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ผ์ข ์ ํ ํ๋ฆฟ / ๊ฐ์ด๋ ๋ผ์ธ์ผ๋ก ๋ณด๊ดํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐพ์ ์ ์๋๋กํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
๋ ๊ทธ๋ฅ ๋ฐ๊ฒฌ ์ด ์ฌ์ค์ ์์ง๋ง, ์์ง ์๋์์. :)
๋ค์ ํ๋ณด์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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 ํ์ผ์์ ์ฝ๊ฐ ํผ๋์ค๋ฌ์ด ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ํด๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๊ฒ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ํ๋ ์ฌ๋๋ค์ ํฌ๊ฒ ๋์ธ ๊ฒ์ ๋๋ค. ๋์ ์ฒ๋ผ
React.js
react-native-implementation.js
react-native-interface.js
์ด ์ธ ํ์ผ์ ์ดํดํ๊ธฐ ์ฌ์ธ ์ ์์ง๋ง ์ด์ ๊ฐ์ ํ์ผ์ด ์์ผ๋ฉด ์ฝ๊ฐ ๋ณต์ก ํ ์ ์์ต๋๋ค.
๋ถ๋ช ํ ๊ฐ ํ์ผ์ด ๋ฌด์์ํ๋์ง ์ค๋ช ํ๋ ๊ฒ์ ๋งํ ๊ฒ๋์๊ณ ๋๋ฌด ์ค๋ช ์ ์ผ ํ์๋ ์์ต๋๋ค. ํน์ ํด๋์์ ์ํ ํ ์์ ์ ๋ํ ๊ฐ์ฅ ๊ด๋ จ์ฑ์ด ์๊ฑฐ๋ ๊ธฐ๋ณธ ์ ์ ๋ง ํด๋น๋ฉ๋๋ค.
๋ํ์ด ์ ์ฅ์๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ๊ฐ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๊ทํ์ ์๊ฒฌ์ ์๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@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 ์ด๋ฆผ
์ฝ์ด์ ์ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ถ๊ฐ ํ ์๊ธฐ๋ฅผ ์ด๋ป๊ฒ ๊ฒฐ์ ํฉ๋๊น? ์๋ฅผ ๋ค์ด useWindowDimensions
ํํฌ๋ ์ฌ์ฉ์ ๊ณต๊ฐ์ ๋น๋ ํ ์ ์์ง๋ง ์ฝ์ด์ ์ถ๊ฐ๋์์ต๋๋ค-https: //github.com/facebook/react-native/blob/3b3c95b0170e60983eb6e89b910d100d08eee141/Libraries/Utilities/useWindowDimensions .js
ํํฌ์ ๋ํ ์ฐ๋ฆฌ์ ์๊ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํํฌ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ฐ์ ๋ค์ดํฐ๋ธ ์ฝ์ด๋ฅผ ํ๋ํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. React Native๊ฐ ๋ ๊ฑฐ์ API ๋ง ์ ๊ณตํ๊ณ ํํฌ๋ฅผ ๋ณ๋์ ์ปค๋ฎค๋ํฐ ํจํค์ง๋ก ๋ํํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
๊ทธ๋์ ์ ๋ ํํฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฝ์ด์ ์๋ก์ด ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ํน์ ์ง๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ ๋ชจ๋๋ค! ํ์ฌ ์ปค๋ฎค๋ํฐ ํ์์ด ์ทจํ ์์๋ ์กฐ์น๊ฐ ์์ต๋๋ค. ํ์ฌ ์์ ๋ ์ญ์ ๋ ๋ค์ ๋ ๊ฐ์ง ์ด์ ๋ก ๋ณด๋ฅ ์ค์ ๋๋ค.
ํํฌ ๊ธฐ๋ฐ 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
์ ๊ฑฐ ํ ์ ์์ต๋๊น?
์ด๊ฒ์ ๋ํ ๊ฐ๋ฅํ ๋์์ด ์์ต๋๊น? ์ ๋ ์ด๋ณด์์ด๊ณ ์ด๊ฒ์ผ๋ก ๋ง์ ๊ฒ์ ๋ฐฐ์ธ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฌธ์ ์ธ์ฌ.
๋ง๋์ ํฌ๋ฅดํ
๋ก.
์ด๊ฒ์ ๋ํ ๋์์ด ์ฌ์ ํ ํ์ํ๋ค๋ฉด ๊ธฐ๊บผ์ด ๋์ ๋๋ฆฌ๊ฒ ์ต๋๋ค ๐
๋๋
๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค. ์ ๊ฐ ๋ญ๊ฐํ ๋งํ ์ผ์ด ์์๊น์?
์ ๊ฐ ๋ญ๊ฐํ ๋งํ ์ผ์ด ์์๊น์?
๊ธฐ์ฌํ๊ณ ์ถ์๋ฐ ํ ์์๋ ์ผ์ด ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ชจ๋ ์ฌ๋๋ค์ด ๋ฆฐ ์ฝ์ด ๋ ธ๋ ฅ์ ๋ํ ์งํ ์ํฉ์ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธํ๊ณ ์ถ์์ต๋๋ค. ๋๋ ๋จ์ง ์ผ์ฃผ์ผ ๋๊ฒ ๋น์ ์ ๋ชจ๋ ๊ธฐ์ฌ๋ก ์ธํด ๋ด๊ฐ ์ผ๋ง๋ ๋๋๋์ง ๋งํ๊ณ ์ถ์ต๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
์ด๋ฏธ ์๋ฃ๋ ๋ชจ๋ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ํ ์ด๋ฌํ ๋ชจ๋์ ์ถ์ถํ๋ฉด ํด๋น ๋ชจ๋์ ๋ ๋์ ์ ์ง ๊ด๋ฆฌ๋ก ์ด์ด์ง ์ ์์์ ๊ฐ์กฐํ๊ณ ์ถ์ต๋๋ค. 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 ์์ฒญ์ ๋ ๋น ๋ฅด๊ฒ ์๋ต ํ ์ ์์ต๋๋ค!
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์์ ์ค์ด๊ฑฐ๋ ๋ค์์ ์์ ํ๋ ๊ฒ์ ๋๋ค.
๋ค์ ํ๋ฒ, ์ง๊ธ๊น์ง ๋์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!