ããããŸã第äžã«ïŒçŽ æŽãããã©ã€ãã©ãªïŒ
APIãšäœ¿çšæ³ã¯çŽç²ã«çŽ æŽãããã§ãïŒ
Nexus 5ã®Androidã§RNRFãè©ŠããŠããŸãããå¿çãéåžžã«é
ããªããŸãããã¡ããã芧ãã ããã
https://drive.google.com/file/d/0B-zpEic041zoR1Fhd0VhTnA5VkU/view?usp=sharing
ãªããããªã®ããäœãèãã¯ãããŸããïŒ
ããããšãïŒ
ç§ãã¢ã³ããã€ããæã£ãŠããªãåé¡ã å€åã³ãã¥ããã£ã¯å©ããããšãã§ããŸãã ãããã°ããããšããŸãããïŒ ãã®ã³ã³ããŒãã³ãã¯ãexNavigatorã®åãªãã©ãããŒã§ãã ExNavigatorã¯Androidã§ããŸãæ©èœããŸããïŒ
@timsuchanek ãã©ã€ããªããŒããšã¯ããŒã ãããã°ãªãã§ãã¹ãããŸãããïŒ ç§ã«ãšã£ãŠã¯ãã©ã€ããªããŒããŸãã¯Chromeãããã°ããªã³ã«ããŠããå Žåã«ã®ã¿ïŒéåžžã«ïŒé ããªããŸã;ïŒ
ã¯ãããããã¬ãŒãæå¹ã«ããã«è©ŠããŸããã ããããç§ãèŠã€ãããã®ïŒ
ãã§ã«äžåºŠéããŠããå Žåã¯ãã¯ããã«é«éã§ãã
æåã®1ã2åã ãé
ãã§ãã
ExNavigatorã¹ã¿ã³ãã¢ãã³ã確èªããŸã
ãã@timsuchanekãããå ±åããŠãããŠããããšãã ã¢ãã¡ãŒã·ã§ã³ãªãã§ã¯é
ãã§ããïŒã€ãŸããã¢ãã¡ãŒã·ã§ã³æ§æ<Scheme>
ïŒïŒ æªåããå Žåã¯ãããã©ãŒãã³ã¹ã®ããã«ã¢ãã¡ãŒã·ã§ã³ã劥åããã€ããã§ãã ç§ãAndroidãæã£ãŠããªãããèªåã§è©ŠããŠã¿ãŸãã
Android 4.4ã§ãµã³ãã«ã¢ããªã®é床ãäœäžããŠããããšã確èªã§ããŸãïŒãã¿ã³ãã¯ãªãã¯ããŠããã«ãŒããå€æŽããããŸã§ã«æ倧2ç§ããããŸãïŒã ãŸããexNavigatorã®äŸã«ãåãåé¡ã¯ãããŸããã
ç·šéïŒã¯ãã ãããã°ãæå¹ã«ããåŸãé 延ã¯éæ³ã®ããã«æ¶ããŸã-__________-
@sbycroszã¿ãããŒãŸãã¯ãã¹ãŠã®ããŒãžã§é ãã§ããïŒ
ç§ã¯ä»æ¥Androidã§ãã®ã©ã€ãã©ãªããã¹ãããŠããŸããããChromeãããã°ã䜿çšããªãéããæ£åžžã«åäœããŠããããã§ãã
ã¿ãéã®ãåãæ¿ããã¢ãã¡ãŒã·ã§ã³ã«ã¯é 延ãããããã§ãã 調ã¹ãŠããŸãã
ã¿ãã®ãã¹ã€ãããããã¹ãããŸããããé ãããŠã¿ããå€æŽããã«ã¯çŽ1.5ç§ã§ãã Chromeã®ãããã°ãšã©ã€ããªããŒãããªãã«ããŸãããåãã§ãã
ææ°çã確èªããŠããããŸããïŒ ãŸããdebug.jså ã®ã³ã³ãœãŒã«ãã°ã®ã³ã¡ã³ãã解é€ããŠç¢ºèªããŠãã ããã
Androidã¿ãã¬ããã§ããŒãžã§ã³2.3.1ã®ãµã³ãã«ã¢ããªããããã°ããããšããŸããã ã¢ãã¡ãŒã·ã§ã³ã¯éåžžã«é
ãã£ãã
ããã¯ãdebug.jsãã³ã¡ã³ããããŠããªãã³ã³ãœãŒã«åºåã§ãã
ãŸããã·ã³ãã«ãªã¢ããªã®ãªãªãŒã¹ãã«ãïŒããŒãžã§ã³2.3.1ã䜿çšïŒãäœæããSamsung GalaxyS3ã§å®è¡ããŸããã ç¹°ãè¿ããŸããããã¹ãŠãéåžžã«é
ãã£ãã
ãã¶ãã@exponent / react-native-navigatorãïŒã^ 0.3.5ããææ°ã®ãã®ã«æŽæ°ãããšä¿®æ£ãããŸããïŒ
ã³ã¢ãšã¯ã¹ããã²ãŒã¿ãŒã³ãŒãã確èªããŠãã ãã
ããã«ã
24æ¥ã 2016г.ãв21æ18åãdoomsower [email protected] МапОÑалïŒÐ°ïŒïŒ
Androidã¿ãã¬ããã§ããŒãžã§ã³2.3.1ã®ãµã³ãã«ã¢ããªããããã°ããããšããŸããã ã¢ãã¡ãŒã·ã§ã³ã¯éåžžã«é ãã£ãã
ããã¯ãdebug.jsãã³ã¡ã³ããããŠããªãã³ã³ãœãŒã«åºåã§ãã
ãŸããã·ã³ãã«ãªã¢ããªã®ãªãªãŒã¹ãã«ãïŒããŒãžã§ã³2.3.1ã䜿çšïŒãäœæããSamsung GalaxyS3ã§å®è¡ããŸããã ç¹°ãè¿ããŸããããã¹ãŠãéåžžã«é ãã£ãã
ãã¶ãã@exponent / react-native-navigatorãïŒã^ 0.3.5ããææ°ã®ãã®ã«æŽæ°ãããšä¿®æ£ãããŸããïŒâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ããã
ããã
ç§ãé
ããªã£ãŠããŸãã ãã ããchromeãããã°ãæå¹ã«ãããšãããé«éã«ãªããŸãã
ã·ãã¥ã¬ãŒã¿ãŒïŒAndroidããã³iOSïŒããã³ç©çããã€ã¹ã§ã®åäœã¯ãChromeãããã°ãç¡å¹ã«ãªã£ãŠããå Žåãšåãã§ãã
åé¡ãåãåããããã«ã@exponent / react-native-navigatorããå®å šã«ç¡å¹ã«ããæ¹æ³ã¯ãããŸããïŒ
ããã£
ããã
ç§ããã®åé¡ãæ±ããŠããŸããããéçºã¢ãŒããç¡å¹ã«ããããšã§è§£æ±ºããŸããã
ããã§react-nativegithubã®åé¡ïŒ
https://github.com/facebook/react-native/issues/3049
å¥ã®ã«ãŒã¿ãŒãè©ŠããŸããããAndroidã§ããŸã£ããåãã§ããã ãã¢ã¯
éåžžã«é
ãã ã ãããreact-native-router-fluxã«ãªããã©ããã¯ããããŸãã:)
ãããŒ
Levenã 26févrã 2016幎3æ10åà ãdoddys [email protected] AécritïŒ
ããã
ç§ãé ããªã£ãŠããŸãã ãã ããChromeã®ãããã°ã
æå¹ã«ãããšãããé«éã«ãªããŸãã
ã·ãã¥ã¬ãŒã¿ãŒïŒAndroidãšiOSïŒãšç©çããã€ã¹ã§ã®åäœã¯åãã§ã
ã¯ãã ãããã°ãç¡å¹ã«ãªã£ãŠãããšãã®ããã«ããšã«ããã@exponent / react-native-navigatorããå®å šã«ç¡å¹ã«ããæ¹æ³ã¯ãããŸãã
åé¡ãåãåããã«ã¯ïŒããã£
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/aksonov/react-native-router-flux/issues/199#issuecomment -189078772
ã
ããã
ç§ã¯ã€ãã«ãããç§ã®ããã€ã¹/ã·ãã¥ã¬ãŒã¿ãŒã§é
ãçç±ãèŠã€ããŸããã ç§ã¯èªåã®éã¡ã«ãããã®ã§ããã
ã¬ãã¥ãŒãµãŒã§console.logïŒactionïŒãå®è¡ããŠããŸããã ããã¯å€ãã®é
ãããšãå€æããŸãã ç¹ã«ããã€ã¹ã§å®è¡ããå Žåã ã¯ããŒã ãããã°ããªã³ã«ãªã£ããšãã¯ãã¯ããã«åŒ·åãªã¯ããŒã JavaScriptãšã³ãžã³ïŒã©ããããããšããã€ã¹ïŒã䜿çšããŠå®è¡ããããããåé¡ãããŸããã§ããã
ãã¹ãŠã®ãã°ïŒã¢ã¯ã·ã§ã³ïŒãåé€ããåŸãä»ã§ã¯ã¯ããã«è¯ããªã£ãŠããŸãã
ããã£
@doddysã¯ç§ã®ããã«åããŸãð
@doddysãã¬ãŒããã«ãŠã§ã¢ã§console.logã䜿çšããŠããŸã
ãããéããŸãã å°æ¥ã®åç §ã®ããã«ããããreduxããã«ãŠã§ã¢ã§ãããããã®ã©ã€ãã©ãªã®ãããã°ã§ãããã«ããããããã³ãŒãã®ã©ãã«ãconsole.logããªãããšã確èªããŠãã ããã
ããã«ã¡ã¯ã
ç§ã¯ãããçµéšããŠããŸãã ãããžã§ã¯ãå
šäœã§console.logãžã®ãã¹ãŠã®åŒã³åºããåé€ããéçºã¢ãŒãããªãã«ããchromeãããã°ã䜿çš/䜿çšããªãããã«ããŸãã...ãªãªãŒã¹APKããã«ãããreact-native-router-fluxãã¢ããã®ãŸãŸå®è¡ããããšããŸããã ...ãããŠåé¡ã¯ãŸã 解決ããŠããŸããã
ãã©ã³ãžã·ã§ã³ã¯ãã°ããã¯åé¡ãªãããã«èŠãããããããŸããããååŸã«ç§»åããŠããã²ãŒã¿ãŒã«ã¹ãã¬ã¹ãäžãããšãã¢ããªã¯æçµçã«é
ããªããå Žåã«ãã£ãŠã¯ããªãŒãºããããšãããããŸãã
é¢é£ããreact-nativeã®åé¡https://github.com/facebook/react-native/issues/3049#issuecomment-143505930ã«ãåé¿çã説æããã³ã¡ã³ãããã
Androidã®ããã©ãŒãã³ã¹ã«é¢ããReactNativeã®å
¬åŒããŒãã«ã¯ããã®åé¿çãèšèŒãããŠããŸãïŒ https ïŒ//facebook.github.io/react-native/docs/performance.html#slow -navigator-transitions
ã©ãããããããInteractionManagerã®åé¿çãreact-native-router-fluxã«çµ±åããããšã¯å¯èœã§ããããïŒ
ãããŸã§ã¯ãAndroidããã€ã¹ã§ã¢ãžã¥ãŒã«ãå®éã«äœ¿çšããããšã¯ã§ããªããšæããŠããŸããããã¯æ¬åœã«æ®å¿µã§ãã
ç§ã¯ä»æ¥ã®æç¹ã§æŽæ°ããããµã³ãã«ãå®éã®Androidããã€ã¹ãšã·ãã¥ã¬ãŒã¿ãŒã®äž¡æ¹ã§è©ŠããŠããŸããããããã¯åã«äœ¿çšã§ããŸããã§ããã
package.json
ãæŽæ°ããŠãææ°ã®react-native
"react-native": "^0.25.1",
ã䜿çšããããšããŸããããä»ã§ã¯ããªãã¹ã ãŒãºã«å®è¡ãããŸãã
å®éã®Androidããã€ã¹ã§å®è¡ããå Žå
USBã«æ¥ç¶ãããšã次ã®ã³ãã³ããå®è¡ããå¿
èŠããããŸã
ã³ãã³ãã©ã€ã³ããã
$ react-native start
$ adb reverse tcp:8081 tcp:8081
$ react-native run-android
ãJSéçºã¢ãŒããããªãã«ãããã
ããã€ã¹äžã§çã
ããã»ã©é
ãå®è¡ãããŸãã
ãreact-nativerun-androidããå®è¡ããåŸãããã€ã¹ããã·ã§ã€ã¯ãããå¿
èŠããããŸã
ã¡ãã¥ãŒã衚瀺ããŸãã ãéçºèšå®ããéžæãããJSéçºã¢ãŒããã®ãã§ãã¯ãå€ããŸãã
ãã®åŸããreact-native run-androidããããäžåºŠå®è¡ãããšãããã«å€ãã®ããšãå¿
èŠã«ãªããŸã
ããã©ãŒããŒãå°ãªããšãç§ã¯ããªãã«é¡ã£ãŠããŸã:)
äžèšã¯ä¿®æ£ãããŸããã§ããã Nexus 6ã®åäœãéåžžã«é
ãããããããã°ã«äœ¿çšã§ããŸããã
ããªããããªãã®AndroidããŒãžã§ã³ããããã°ããæ¹æ³ã誰ãç¥ãããšãã§ããŸãã...
ãã®åé¡ã¯é·ãéä¿®æ£ãããŠããŸãã...
ãã¯ãµã¹5xã®å Žåãä¿®æ£ãããŠããŸããã
RNïŒhttps://github.com/facebook/react-native/pull/10289ïŒãããã«ãªã¯ãšã¹ãããããNavigationExperimentalãæŽæ°ããŠJSã¹ã¬ããããã¢ãã¡ãŒã·ã§ã³ããªãããŒãããŠããããã§ããããã§ãã®åé¡ã解決ããã¯ãã§ãã
ãã ããreact-native-router-fluxã¯NavigationExperimentalã®ãã©ãŒã¯ããŒãžã§ã³ïŒreact-native-navigation-experimentalïŒã䜿çšããŠãããããéæšå¥šã®ãã¡ã€ã«ãããã€ããããŸãïŒããšãã°ãNavigationAnimatedViewã¯NavigationTransitionerã«ãªããŸããïŒãããããæŽæ°ãã䟡å€ããããŸãã
@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ç»åã¯ããªãã®æ°ã§ããã幞ããªããšã«ç»é¢ã®äžéšã«ã¬ã³ããªã³ã°ãããããããŠãŒã¶ãŒã¯ãããã衚瀺ããããã«ã¹ã¯ããŒã«ããå¿ èŠããããŸãã ãããã£ãŠããããã®svgã®ã¬ã³ããªã³ã°ãé ãããã ãã§ãããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ããããŸããïŒæåã¯çŽ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
ãšããæ°ããå°éå
·ããããã³ã³ããŒãã³ãã®è»œéããŒãžã§ã³ãã¬ã³ããªã³ã°ãããïŒ partialRender = true
ïŒããã¹ãŠãã¬ã³ããªã³ã°ãããïŒ partialRender = false
ïŒã
ãã©ã³ãžã·ã§ã³ã«ãã€ãã£ãã¢ãã¡ãŒã·ã§ã³ã䜿çšããFacebookã®æ°ãããå ¬åŒãããã²ãŒã¿ãŒã«ã€ããŠã¯ã httpsïŒ//reactnavigation.org/ãåç §ããŠ
@Jickelsenããã¯ã©ã®ãããå ¬åŒã§ããïŒ
@adambeneã¯å ±åç·šéè ãªã¹ãã確èªããŸãã
Chromeãããã¬ãŒã®ã¹ã€ãããåãã ãã§ããã¹ãŠãé«éã«ãªããŸã:)
@doddysããªãã¯çŽ æŽããã人ã§ãïŒ ç¥ã£ãŠãã§ããïŒ
@doddysããããšããããªãã¯ãã®æ¥ãæã£ãïŒ
解決ãããŠããŸãã
"react-native-router-flux"ïŒ "4.0.6"ã
æãåèã«ãªãã³ã¡ã³ã
ããã
ç§ã¯ã€ãã«ãããç§ã®ããã€ã¹/ã·ãã¥ã¬ãŒã¿ãŒã§é ãçç±ãèŠã€ããŸããã ç§ã¯èªåã®éã¡ã«ãããã®ã§ããã
ã¬ãã¥ãŒãµãŒã§console.logïŒactionïŒãå®è¡ããŠããŸããã ããã¯å€ãã®é ãããšãå€æããŸãã ç¹ã«ããã€ã¹ã§å®è¡ããå Žåã ã¯ããŒã ãããã°ããªã³ã«ãªã£ããšãã¯ãã¯ããã«åŒ·åãªã¯ããŒã JavaScriptãšã³ãžã³ïŒã©ããããããšããã€ã¹ïŒã䜿çšããŠå®è¡ããããããåé¡ãããŸããã§ããã
ãã¹ãŠã®ãã°ïŒã¢ã¯ã·ã§ã³ïŒãåé€ããåŸãä»ã§ã¯ã¯ããã«è¯ããªã£ãŠããŸãã
ããã£