์๋
ํ์ธ์, ์ฐ์ : ๋ฉ์ง ๋์๊ด์
๋๋ค!
API์ ์ฌ์ฉ๋ฒ์ ์ ๋ง ๊ต์ฅํฉ๋๋ค!
Nexus 5์ Android์์ RNRF๋ฅผ ์๋ํ๊ณ ์์ง๋ง ์๋ต์ด ๋งค์ฐ ๋๋ฆฝ๋๋ค. ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
https://drive.google.com/file/d/0B-zpEic041zoR1Fhd0VhTnA5VkU/view?usp=sharing
์ ๊ทธ๋ฐ์ง ์์ธ์?
๊ฐ์ฌ ํด์!
์๋๋ก์ด๋๊ฐ ์๋ค๋ ๋ฌธ์ . ์ด์ฉ๋ฉด ์ปค๋ฎค๋ํฐ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋๋ฒ๊น ์ ์๋ ํ์ต๋๊น? ์ด ๊ตฌ์ฑ ์์๋ exNavigator๋ฅผ ๋๋ฌ์ผ ๋ํผ์ผ ๋ฟ์ ๋๋ค. ExNavigator๋ ์๋๋ก์ด๋์์ ์ ์๋ํฉ๋๊น?
@timsuchanek , ๋ผ์ด๋ธ ๋ฆฌ๋ก๋ฉ๊ณผ ํฌ๋กฌ ๋๋ฒ๊น ์์ด ํ ์คํธํ์ จ๋์? ๋๋ฅผ ์ํด ๋ผ์ด๋ธ ๋ค์๋ก๋ ๋๋ ํฌ๋กฌ ๋๋ฒ๊น ์ด ์ผ์ ธ์์ ๋๋ง (๋งค์ฐ) ๋๋ฆฝ๋๋ค ;)
์, ๋๋ฒ๊ฑฐ๋ฅผ ํ์ฑํํ์ง ์๊ณ ์๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ์ฐพ์ ๊ฒ :
์ด๋ฏธ ํ ๋ฒ ์ด๋ฆฐ ๊ฒฝ์ฐ ํจ์ฌ ๋น ๋ฆ
๋๋ค.
์ฒ์ 1~2๋ฒ๋ง ๋๋ฆฝ๋๋ค.
ExNavigator ๋
๋ฆฝ ์คํํ์ ํ์ธํ๊ฒ ์ต๋๋ค.
@timsuchanek ์ ๊ณ ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ ๋๋ฉ์ด์
์ด ์์ผ๋ฉด ๋๋ฆฐ๊ฐ์(์: ์ ๋๋ฉ์ด์
๊ตฌ์ฑ์ด ์๋ <Scheme>
)? ๋ ๋๋น ์ง๋ฉด ์ฑ๋ฅ์ ์ํด ์ ๋๋ฉ์ด์
์ ํํํ ์ฉ์๊ฐ ์์ต๋๋ค. ๋๋ ์๋๋ก์ด๋๋ ๊ฐ์ง๊ณ ์์ง ์๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ด๊ฐ ์ง์ ์๋ํ ๊ฒ์ด๋ค.
Android 4.4์์ ์์ ์ฑ์ ์๋๊ฐ ๋๋ ค์ง ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค(๋ฒํผ ํด๋ฆญ์์ ๊ฒฝ๋ก ๋ณ๊ฒฝ๊น์ง ~2์ด ์์). ๊ทธ๋ฆฌ๊ณ exNavigator ์์ ์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํธ์ง : ํฌ๋กฌ ๋๋ฒ๊น ์ ํ์ฑํํ๋ฉด ์ง์ฐ์ด ๋ง์ ์ฒ๋ผ ์ฌ๋ผ์ง๋๋ค -__________-
@sbycrosz ํญ ๋ง๋ ๋๋ ๋ชจ๋ ํ์ด์ง์์ ๋๋ฆฝ๋๊น?
์ค๋ Android์์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ ์คํธํ์ผ๋ฉฐ ํฌ๋กฌ ๋๋ฒ๊น ์ ์ฌ์ฉํ์ง ์๋ ํ ์ ๋๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํญ ์ฌ์ด์ '์ ํ' ์ ๋๋ฉ์ด์ ์ ์ง์ฐ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์กฐ์ฌ ์ค์ ๋๋ค.
ํญ์์ '์ค์์น'๋ฅผ ํ ์คํธํ๋๋ฐ ํญ์ ๋ณ๊ฒฝํ๊ธฐ์๋ ์ฝ 1.5์ด ์ ๋๋ก ๋๋ฌด ๋๋ฆฝ๋๋ค. ํฌ๋กฌ ๋๋ฒ๊ทธ๋ฅผ ๋๊ณ ๋ผ์ด๋ธ ์๋ก๊ณ ์นจ์ ํด๋ดค๋๋ฐ ๋๊ฐ์ต๋๋ค.
์ต์ ๋ฒ์ ์ ํ์ธํ ์ ์์ต๋๊น? ๋ํ debug.js ๋ด์์ ์ฝ์ ๋ก๊น ์ ์ฃผ์์ ์ ๊ฑฐํ๊ณ ํ์ธํ์ญ์์ค.
Android ํ๋ธ๋ฆฟ์ ๋ฒ์ 2.3.1์์ ์์ ์ฑ์ ๋๋ฒ๊ทธํ๋ ค๊ณ ํ์ต๋๋ค. ์ ๋๋ฉ์ด์
์ ๋งค์ฐ ๋๋ ธ์ต๋๋ค.
๋ค์ ์ ์ฃผ์ ์ฒ๋ฆฌ๋์ง ์์ debug.js๊ฐ ์๋ ์ฝ์ ์ถ๋ ฅ์
๋๋ค.
๋ํ ๊ฐ๋จํ ์ฑ(๋ฒ์ 2.3.1 ์ฌ์ฉ)์ ๋ฆด๋ฆฌ์ค ๋น๋๋ฅผ ๋ง๋ค๊ณ Samsung Galaxy S3์์ ์คํํ์ต๋๋ค. ๋ค์ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋๋ ธ์ต๋๋ค.
"@exponent/react-native-navigator": "^0.3.5"๋ฅผ ์ต์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ์ ์์ต๋๊น?
ํต์ฌ ํ์๊ธฐ ์ฝ๋๋ฅผ ํ์ธํ์ญ์์ค
ํ๋ฒจ.
24ํ 2016๋ ะณ., ะฒ 21:18, doomsower [email protected] ะฝะฐะฟะธัะฐะป(ะฐ):
Android ํ๋ธ๋ฆฟ์ ๋ฒ์ 2.3.1์์ ์์ ์ฑ์ ๋๋ฒ๊ทธํ๋ ค๊ณ ํ์ต๋๋ค. ์ ๋๋ฉ์ด์ ์ ๋งค์ฐ ๋๋ ธ์ต๋๋ค.
๋ค์์ ์ฃผ์ ์ฒ๋ฆฌ๋์ง ์์ debug.js๊ฐ ์๋ ์ฝ์ ์ถ๋ ฅ์ ๋๋ค.
๋ํ ๊ฐ๋จํ ์ฑ(๋ฒ์ 2.3.1 ์ฌ์ฉ)์ ๋ฆด๋ฆฌ์ค ๋น๋๋ฅผ ๋ง๋ค๊ณ Samsung Galaxy S3์์ ์คํํ์ต๋๋ค. ๋ค์ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋๋ ธ์ต๋๋ค.
"@exponent/react-native-navigator": "^0.3.5"๋ฅผ ์ต์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ์ ์์ต๋๊น?โ
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
์๋ ํ์ธ์,
์ ๋ ๋๋ ค์ง๋ ํ์์ ๊ฒช๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํฌ๋กฌ ๋๋ฒ๊น
์ด ํ์ฑํ๋๋ฉด ๋ ๋น ๋ฆ
๋๋ค.
์๋ฎฌ๋ ์ดํฐ(Android ๋ฐ iOS) ๋ฐ ๋ฌผ๋ฆฌ์ ์ฅ์น์ ๋์์ ํฌ๋กฌ ๋๋ฒ๊น
์ด ๋นํ์ฑํ๋ ๊ฒฝ์ฐ์ ๋์ผํฉ๋๋ค.
์ด์จ๋ ๋ฌธ์ ๋ฅผ ์์ ํ ๋ถ๋ฆฌํ๊ธฐ ์ํด "@exponent/react-native-navigator"๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๊น?
๋๋
์๋ ํ์ธ์,
๋๋์ด ๋ฌธ์ ๊ฐ ์์์ง๋ง dev ๋ชจ๋๋ฅผ ๋นํ์ฑํํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
๋ฐ์ ๋ค์ดํฐ๋ธ github์ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://github.com/facebook/react-native/issues/3049
๋๋ ๋ค๋ฅธ ๋ผ์ฐํฐ๋ฅผ ์๋ํ๊ณ ๊ทธ๊ฒ์ ์๋๋ก์ด๋์์ ์ ํํ ๋์ผํ์ต๋๋ค. ๋ฐ๋ชจ๋
์์ฃผ ๋๋ฆฐ. ๋ฐ๋ผ์ react-native-router-flux์ ํด๋นํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. :)
ํ ๋
๋ฅด ๋ฒค. 26์ผ 2016 ร 03:10, doddys [email protected] a รฉcrit :
์๋ ํ์ธ์,
์ ๋ ๋๋ ค์ง๋ ํ์์ ๊ฒช๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํฌ๋กฌ ๋๋ฒ๊น ์ด
ํ์ฑํํ๋ฉด ๋ ๋น ๋ฆ ๋๋ค.
์๋ฎฌ๋ ์ดํฐ(Android ๋ฐ iOS)์ ๋ฌผ๋ฆฌ์ ์ฅ์น์ ๋์์ ๋์ผํฉ๋๋ค.
ํฌ๋กฌ ๋๋ฒ๊น ์ด ๋นํ์ฑํ ๋ ๊ฒฝ์ฐ์ ๊ฐ์ต๋๋ค.์ด์จ๋ "@exponent/react-native-navigator"๋ฅผ ์์ ํ ๋นํ์ฑํํ ์ ์์ต๋๊น?
๋ฌธ์ ๋ฅผ ๊ฒฉ๋ฆฌํ๋ ค๋ฉด?๋๋
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/aksonov/react-native-router-flux/issues/199#issuecomment -189078772
.
์๋ ํ์ธ์,
๋ง์นจ๋ด ๋ด ์ฅ์น/์๋ฎฌ๋ ์ดํฐ์์ ๋๋ฆฐ ์ด์ ๋ฅผ ์ฐพ์์ต๋๋ค. ๋๋ ๋ด ์์ ์ ์ค์ ๋๋ฌธ์ด์๋ค.
๊ฐ์๊ธฐ์์ console.log(action)๋ฅผ ์ํํ๊ณ ์์์ต๋๋ค. ๊ทธ๊ฒ์ ๋๋ฆฐ ์ผ์ด ๋ง์ด ๋ฐํ์ก์ต๋๋ค. ํนํ ์ฅ์น์์ ์คํํ ๋. ํฌ๋กฌ ๋๋ฒ๊น
์ด ์ผ์ ธ์์ ๋ ํจ์ฌ ๋ ๊ฐ๋ ฅํ ํฌ๋กฌ ์๋ฐ ์คํฌ๋ฆฝํธ ์์ง์ ์ฌ์ฉํ์ฌ ์คํ๋๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ต๋๋ค (๋
ธํธ๋ถ vs ์ฅ์น).
๋ชจ๋ ๋ก๊ทธ(์ก์ )๋ฅผ ์ ๊ฑฐํ ํ ์ง๊ธ์ด ํจ์ฌ ์ข์ต๋๋ค.
๋๋
@doddys ๋ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค ๐
@doddys ๋ด ๋ก๊ฑฐ ๋ฏธ๋ค์จ์ด์์ console.log๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค
๋๋ ์ด๊ฒ์ ๋ซ์ ๊ฒ์ด๋ค. ๋์ค์ ์ฐธ์กฐํ ์ ์๋๋ก redux ๋ฏธ๋ค์จ์ด์ด๋ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ฒ๊ทธ์ด๋ ์ฝ๋ ์ด๋์๋ console.log๊ฐ ์์ด์ผ ํฉ๋๋ค.
์๋
ํ์ธ์.
๋๋ ์ด๊ฒ์ ๊ฒฝํํ๊ณ ์๋ค. ๋๋ ํ๋ก์ ํธ ์ ์ฒด์์ console.log์ ๋ํ ๋ชจ๋ ํธ์ถ์ ์ ๊ฑฐํ๋ ค๊ณ ์๋ํ๊ณ , ๊ฐ๋ฐ ๋ชจ๋๋ฅผ ๋๊ณ , ํฌ๋กฌ ๋๋ฒ๊ทธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์์ผ๋ ค๊ณ ์๋ํ์ต๋๋ค. ์ฌ์ง์ด ๋ฆด๋ฆฌ์ค APK๋ฅผ ๋น๋ํ๊ณ react-native-router-flux ๋ฐ๋ชจ๋ฅผ ์๋ ๊ทธ๋๋ก ์คํํ๋ ค๊ณ ํ์ต๋๋ค. ... ๋ฌธ์ ๋ ์ฌ์ ํ ์ง์๋ฉ๋๋ค.
์ ํ์ ์ ์ ๋์ ๊ด์ฐฎ์ ๋ณด์ผ ์ ์์ง๋ง ์๋ค๋ก ์ด๋ํ์ฌ ๋ด๋น๊ฒ์ดํฐ์ ์คํธ๋ ์ค๋ฅผ ์ฃผ๋ฉด ์ฑ์ด ๊ฒฐ๊ตญ ๋๋ ค์ง๊ณ ๋๋ก๋ ์ ์ง๋๊ธฐ๋ ํฉ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ ๊ด๋ จ react-native ๋ฌธ์ https://github.com/facebook/react-native/issues/3049#issuecomment -143505930์ ๋ํ ์๊ฒฌ์ด ์์ต๋๋ค.
Android ์ฑ๋ฅ์ โโ๋ํ React Native ๊ณต์ ๋
ธํธ์์ ์ด ํด๊ฒฐ ๋ฐฉ๋ฒ๋ ์ธ๊ธ๋์ด ์์ต๋๋ค. https://facebook.github.io/react-native/docs/performance.html#slow -navigator-transitions
์ด๋ป๊ฒ ๋ react-native-router-flux์ InteractionManager ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํตํฉํ ์ ์์ต๋๊น?
๊ทธ๋๊น์ง๋ Android ๊ธฐ๊ธฐ์์ ๋ชจ๋์ ์ค์ ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ์ ๋ง ์ํ๊น์ด ์ผ์
๋๋ค.
๋๋ ์ค์ Android ์ฅ์น์ ์๋ฎฌ๋ ์ดํฐ๋ก ์ค๋ ํ์ฌ ์
๋ฐ์ดํธ๋ ์์ ๋ฅผ ์๋ํ๊ณ ์์๋๋ฐ ๋จ์ํ ์ฌ์ฉํ ์ ์์์ต๋๋ค.
์ต์ react-native
"react-native": "^0.25.1",
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด package.json
๋ฅผ ์
๋ฐ์ดํธํ๋ ค๊ณ ์๋ํ๋๋ฐ ์ด์ ๊ฝค ์ํํ๊ฒ ์คํ๋ฉ๋๋ค.
์ค์ Android ๊ธฐ๊ธฐ์์ ์คํํ ๋
USB์ ์ฐ๊ฒฐํ๋ฉด ๋ค์์ ์คํํด์ผ ํฉ๋๋ค.
๋ช
๋ น์ค์์.
$ react-native start
$ adb reverse tcp:8081 tcp:8081
$ react-native run-android
"JS Dev Mode"๋ฅผ ๋ ๊ฑฐ๋ ๊ทธ๋ ์ง ์์ผ๋ฉด
์ฅ์น์์ ๊ณ ํต์ค๋ฝ๊ฒ ๋๋ฆฌ๊ฒ ์คํ๋ฉ๋๋ค.
"react-native run-android"๋ฅผ ์คํํ ํ ์ฅ์น๋ฅผ "ํ๋ค์ด์ผ" ํฉ๋๋ค.
๋ฉ๋ด๋ฅผ ๋ถ๋ฌ์ต๋๋ค. "๊ฐ๋ฐ์ ์ค์ "์ ์ ํํ ๋ค์ "JS ๊ฐ๋ฐ ๋ชจ๋"๋ฅผ ์ ํ ์ทจ์ํ์ญ์์ค.
๊ทธ ํ์ "react-native run-android"๋ฅผ ๋ค์ ์คํํ๋ฉด ๋ ๋ง์์ผ ํฉ๋๋ค.
์ฑ๋ฅ, ์ ์ด๋ ๋๋ ๋น์ ์ ๋ฐ๋๋๋ค :)
์์ ์ฌํญ์ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ๋ด Nexus 6์ด ์คํ ์๋๊ฐ ๋งค์ฐ ๋๋ ค ๋๋ฒ๊ทธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋๋ก์ด๋ ๋ฒ์ ์ ๋๋ฒ๊น
ํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ ์ ์ ์์ต๋๊น?
๋ฌธ์ ๋ ์ค๋ซ๋์ ํด๊ฒฐ๋์ง ์์ต๋๋ค ...
๋ฅ์์ค 5x์ ๊ฒฝ์ฐ๋ ์์ ๋์ง ์์์ต๋๋ค.
RN(https://github.com/facebook/react-native/pull/10289)์์ NavigationExperimental์ ์ ๋ฐ์ดํธํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ JS ์ค๋ ๋์์ ์ ๋๋ฉ์ด์ ์ ์คํ๋ก๋ํ๋ pull ์์ฒญ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ react-native-router-flux๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ํ์ผ(์: NavigationAnimatedView๊ฐ ์ด์ NavigationTransitioner์)์ด ์๋ NavigationExperimental(react-native-navigation-experimental)์ ๋ถ๊ธฐ๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ฏ๋ก ์ ๋ฐ์ดํธํ ๊ฐ์น๊ฐ ์์ ๊ฒ์ ๋๋ค.
@aksonov ๋ react-native-navigation-experimental์ ํฌํฌ ํด์ ํ ์ ์์ต๋๊น? ๋ณ๊ฒฝ ๋น๋๋ฅผ ๊ฐ์ํ ๋ ๋ถ๊ธฐ๋ ๋ณต์ฌ๋ณธ์ ์ ์งํ๋ ๊ฒ์ ๋ชจํธํ ๊ฒ ๊ฐ์ต๋๋ค.
์๊ฒฉ ๋๋ฒ๊น ์ด ์ผ์ง ์ํ์์ ๋ฅ์์ค 5์์ ๋งค์ฐ ๋๋ฆผ
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋ฎฌ๋ ์ดํฐ์์๋ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฅ์น์์ ์๊ฒฉ js ๋๋ฒ๊น
์ด ํ์ฑํ๋๋ฉด ์ ๋๋ฉ์ด์
์ด ๋งค์ฐ ์ง์ฐ๋ฉ๋๋ค(์ํ/์์ง์ผ๋ก ์ ๋๋ฉ์ด์
๋๋ ํ๋ฉด ๊ฐ ๋ผ์ฐํ
). ๋๋ฌด ๋์๋ค, ๊ทธ๊ฒ์ ๋ง์ด ์ผ๊ณ ๊บผ์ผ ํ ๊ฒ์
๋๋ค.
์ํค ๋ ๋ 2
์ฐธ๊ณ ์ฉ:
๋ฉฐ์น ์ ๋๋ "react-native run-android"๋ฅผ ์คํํ์ฌ ๋ด ์ฅ์น์ ์ค์นํ ๋ ์๋ฌด๋ฐ ์ด์ ์์ด ์๋ฃํ๋ ๋ฐ ์ฝ 15/20๋ถ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ). ๊ทธ๋์ ๊ณ ํต์ค๋ฝ๊ฒ ์คํํ๊ณ ์คํํ ํ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ ํ ๋ด ๋ฌธ์ ๋ ๋ด๊ฐ ํ๋ก์ ๋ค์ ์๊ณ gradle.properties ํ์ผ์ ๋ด ํ๋ก์ ๊ตฌ์ฑ์ ์ฃผ์์ ๋ฌ์๋ค๋ ๊ฒ์ ์์๋์ต๋๋ค. ๊ทธ๋์ ๊ตฌ์ฑ์ ์ฃผ์์ ์ ๊ฑฐํ๊ณ ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. ์ ๊ทธ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ์ด ๊ตฌ์ฑ์ ๋ํด ๋ค์ ์ธ๊ธํ๋ฉด โโ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋๋ฆฌ๊ฒ ์คํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋๊ตฐ๊ฐ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์๊ณ ๋ค๋ฅธ ์๋ฃจ์ ์ด ์๋ํ๋ ๊ฒฝ์ฐ ์ด ์ค์ yout gradle.properties ํ์ผ์ ๋ฃ์ผ์ญ์์ค(๋ฌผ๋ก ํ๋ก์ ๋ค์ ์๋ ๊ฒฝ์ฐ์๋ง).
systemProp.http.proxyHost=192.168.X.XX //put your server IP here
systemProp.http.proxyPort=8888 //put your server PORT here
systemProp.http.proxyUser=xxxxxxx //put your PROXY USER here
systemProp.http.proxyPassword=xxxxxxx //put your PROXY USER PASSWORD here
systemProp.https.proxyHost=192.168.X.XX //put your server IP here
systemProp.https.proxyPort=8888 //put your server PORT here
systemProp.https.proxyUser=xxxxxxx //put your PROXY USER here
systemProp.https.proxyPassword=xxxxxxx //put your PROXY USER PASSWORD here
์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฌ๋ฌ๋ถ, ์ด๊ฒ์ด ๋์๊ฒ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์
๋๋ค( dev=false
๋ฐ ์๊ฒฉ js ๋๋ฒ๊น
๋นํ์ฑํ ์ ์ธ)
๋ฌธ์
๋ผ์ฐํฐ ์ ํ + Android + react-native-svg
ํด๊ฒฐ์ฑ
๋ถ๋ช ํ Svg๋ฅผ ํผํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ํ์ด ์ด๋ฃจ์ด์ง ๋๊น์ง ๋ ๋๋ง์ ์ง์ฐํ์ญ์์ค. ์ด ๊ธฐ์ ์ ๋ณํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. https://facebook.github.io/react-native/docs/performance.html#slow -navigator-transitions
์ ๊ฒฝ์ฐ์๋ svg ์ด๋ฏธ์ง๊ฐ ๊ฝค ๋ง์ง๋ง ๋คํํ ํ๋ฉด ํ๋จ์ ๋ ๋๋ง๋๋ฏ๋ก ์ฌ์ฉ์๊ฐ ๋ณด๋ ค๋ฉด ์คํฌ๋กคํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋น svgs ๋ ๋๋ง์ ์ง์ฐํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค(์ด๊ธฐ์๋ ์ฝ 4์ด, ์ดํ์๋ ์ฝ 1์ด ๋ฏธ๋ง).
์ง์ฐ์ ์์ฒด ๋ฐฉ์์ผ๋ก ์๋นํ ๊น๋ค๋กญ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ํํ๊ธฐ ์ํด HOC๋ฅผ ๋ง๋ค์์ต๋๋ค. ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(TS์์ ์์ฑํ์ผ๋ฉฐ ์ ํ ์ ๋ณด๋ฅผ ์คํธ๋ผ์ดํํ์ฌ JS๊ฐ ๋์์ง๋ง ์๋ํ์ง๋ ์์์ต๋๋ค).
import React from 'react'
import { InteractionManager } from 'react-native';
const MAX_DELAY = 500;
export default function providePartialRender(Component) {
return class PartialRenderProvider extends React.Component {
// initialize state (same as inside the constructor, just syntax sugar)
state = {
partialRender: true,
};
componentDidMount() {
const updatePartialRender = () => {
this.setState(state => {
state.partialRender = false
return state;
});
}
// workaround https://github.com/facebook/react-native/issues/8624
let called = false;
const timeout = setTimeout(() => { called = true; updatePartialRender() }, MAX_DELAY);
InteractionManager.runAfterInteractions(() => {
if (called) return;
clearTimeout(timeout);
updatePartialRender();
});
}
render() {
const props = Object.assign(
{},
this.props,
{ partialRender: this.state.partialRender }
);
return <Component {...props}/>
}
}
}
๊ทธ๋์ ์ง๊ธ,์ด HOC์ผ๋ก ๊ฐํํ๋ ๊ตฌ์ฑ ์์๋ ์๋ก์ด ์ํ๋ผ๋ ๊ฒ์ด๋ค partialRender
๊ตฌ์ฑ ์์์ lighweight ๋ฒ์ (๋ ๋๋งํ ์ง ์ฌ๋ถ๋ฅผ ๋งํด ์ค ๊ฒ์ด๋ค partialRender = true
) ๋๋ ๋ชจ๋ ๊ฒ์ ๋ ๋๋งํ๊ธฐ ์ํด ( partialRender = false
).
์ ํ์ ๊ธฐ๋ณธ ์ ๋๋ฉ์ด์ ์ ์ฌ์ฉํ๋ Facebook์ ์๋ก์ด "๊ณต์" ๋ด๋น๊ฒ์ดํฐ๋ https://reactnavigation.org/ ๋ฅผ ์ฐธ์กฐ
@Jickelsen ์ผ๋ง๋ ๊ณต์์ ์ ๋๊น?
@adambene์ ํ๋ ฅ์ ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค.
Chrome ๋๋ฒ๊ฑฐ๋ฅผ ๋๋ฉด ๋ชจ๋ ๊ฒ์ด ๋นจ๋ผ์ง๋๋ค. :)
@doddys ๋น์ ์ ํ๋ฅญํ ์ฌ๋์ ๋๋ค! ๊ทธ๊ฑฐ ์์?
@doddys ๊ณ ๋ง์์, ๋น์ ์ ํ๋ฃจ๋ฅผ ๊ตฌํ์ต๋๋ค!
ํด๊ฒฐ๋์ง ์์
"๋ฐ์ ๋ค์ดํฐ๋ธ ๋ผ์ฐํฐ ํ๋ญ์ค": "4.0.6",
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์,
๋ง์นจ๋ด ๋ด ์ฅ์น/์๋ฎฌ๋ ์ดํฐ์์ ๋๋ฆฐ ์ด์ ๋ฅผ ์ฐพ์์ต๋๋ค. ๋๋ ๋ด ์์ ์ ์ค์ ๋๋ฌธ์ด์๋ค.
๊ฐ์๊ธฐ์์ console.log(action)๋ฅผ ์ํํ๊ณ ์์์ต๋๋ค. ๊ทธ๊ฒ์ ๋๋ฆฐ ์ผ์ด ๋ง์ด ๋ฐํ์ก์ต๋๋ค. ํนํ ์ฅ์น์์ ์คํํ ๋. ํฌ๋กฌ ๋๋ฒ๊น ์ด ์ผ์ ธ์์ ๋ ํจ์ฌ ๋ ๊ฐ๋ ฅํ ํฌ๋กฌ ์๋ฐ ์คํฌ๋ฆฝํธ ์์ง์ ์ฌ์ฉํ์ฌ ์คํ๋๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ต๋๋ค (๋ ธํธ๋ถ vs ์ฅ์น).
๋ชจ๋ ๋ก๊ทธ(์ก์ )๋ฅผ ์ ๊ฑฐํ ํ ์ง๊ธ์ด ํจ์ฌ ์ข์ต๋๋ค.
๋๋