ããŒã«
ããäžåºŠãäœæ¥ããŒã«ã®ãããã¯ã匷調ããŸãã React Nativeã¯ããŒãžã§ã³1.0ã«ãŸã ããã»ã©è¿ã¥ããŠããããå°ãªããšã1.0ã§ãããããããã®è£œåçšã®å®å šã«æ©èœãããæŽç·ŽãããIDEãäžè¶³ããŠããçç±ã§ãã ãšã¯ãããçªç¶ã ãã³IDEã«åºäŒããŸããã ã¯ããããã¯æ¬åœã®IDEïŒæãããªçç±ã§macOSå°çšïŒã§ãããairbnbãè³Œå ¥ããŸããã ãããããã¹ãŠããã©è²ã§ããããšãå€æããããã§ã¯ãããŸããã ã¯ããããã§ã¯ãã³ã³ããŒãã³ããã³ãŒãã«ãã©ãã°ã¢ã³ãããããããã ãã§ããããŠã¹ã§ããã°ã©ã ãã§ããŸãã ç¹°ãè¿ããŸãããã³ã³ããŒãã³ãã®ãªã¹ãããããæ¯åãªãã£ã¹ã«è¡ãå¿ èŠã¯ãããŸããã ã©ã®ã³ã³ããŒãã³ãããŸã ååšãããã調ã¹ãããã®Webãµã€ãã ãããžã§ã¯ããæåéã1ããŒã¯ã§éå§ããããšãã§ããŸãïŒiOSã®ã¿ã§ãããAndroidã«ã¯åžžã«åé¡ããããŸãïŒã ããããããã¯ãã¹ãŠã®ããããçµãããšããã§ãã åºå®ãããcmdã§ã¯ãªãã¯ããããšã«ããã³ã³ããŒãã³ããžã®è¿ éãªç§»è¡ã¯ãããŸãããé©åãªãªã³ã¿ãŒãšèªåè£å®ãããããŸããã ã³ãŒãã£ã³ã°æ©èœã«é¢ããŠã¯ãããã¯éããããŠããªãã¿ã°ã®ã¿ã匷調衚瀺ã§ããã·ã³ãã«ãªã¡ã¢åž³ã§ãã ããããä»ã§ã¯å€§äŒæ¥ããã®ããŒã«ã§å¿ããã®ã§ããã®æ©æéçºãæåŸ ããŠããŸãã
åå¿ãã€ãã£ãã«é¢ããã»ãšãã©ã®ãããªãšãããŸããŸãªèšäºã®ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ã VSã³ãŒããããããšããã«èŠãããŸããã äºã¯æ¬åœã«è¯ãã§ããeslinterã¯ãã©ã°ã€ã³ãšããŠç°¡åã«æ¥ç¶ã§ããŸããããªãã¯ãããŒãæŸãããšãã§ããŸããautocomplitsãšã³ã³ããŒãã³ããžã®ç§»è¡ãããããŸãã çµã¿èŸŒã¿ã®gitãšçµ±åãããã¿ãŒããã«ãããããŸãã ãŸããç§ã¯ããã䜿çšããŸãããç§ã«ãšã£ãŠã¯å€§ããªãã€ãã¹ããããŸã-ããã©ã«ãã§ã¯ãéããŠãããã¡ã€ã«ã¯ããããåã®ãã¡ã€ã«ã眮ãæãããã®ããã«1ã€ã®ã¿ãã§éããŸãã ç°ãªããã¡ã€ã«ã§2ã€ã®ã¿ããéãã«ã¯ããã¡ã€ã«ã®ç·šéãéå§ããŠããã2çªç®ã®ã¿ãã§æ¢ã«éããŠããå¥ã®ã¿ããéãå¿ èŠããããŸãã 2ã3çš®é¡ã®ãã¡ã€ã«ããã°ãã衚瀺ããå¿ èŠãããå Žå
ãããã£ãŠãç§ã¯ãŸã Nuclideã«èœã¡çããŸããã ã flowãããã¯ã¢ãããããšããªãŒãã³ã³ããªãŒããå€§å¹ ã«åäžããã¯ãªãã¯ã«ããã³ã³ããŒãã³ããžã®è¿ éãªç§»è¡ã«å ããŠããã¹ãŠã®ãããã«ã¿ã€ãã³ã°ãè¿œå ãããŸãã ãããŸã§ã®ãšããã1åã®ã¯ãªãã¯ã§çŸãã䟿å©ãªãããžã§ã¯ãã®èµ·åãå¿ããå¿ èŠããããŸãã
ã«ã¡ã©ãå°å³ããã®ä»ã®è€éãªãã®ãæ±ã
ããã¯ãããã誰ã«ãšã£ãŠãæãèå³æ·±ã質åã§ãã æªããã¥ãŒã¹ã¯ãã«ã¡ã©ãšã«ãŒãã®ããã©ã«ãã³ã³ããŒãã³ãããªãããšã§ãã ãã€ãã£ãã³ãŒãã䜿çšããå¿ èŠããããŸãã è¯ããã¥ãŒã¹ã¯ããã¹ãŠãç§ãã¡ã®åã«ãã§ã«è¡ãããŠããããšã§ãïŒ
- airbnbã«ãã£ãŠäœæãããéåžžã«ã¯ãŒã«ãªããã ã ç§ã¯å人çã«äœ¿çšããŸãããããã¹ãŠãiOSãšAndroidã®äž¡æ¹ã§ããŸãæ©èœããéåžžã«ããŸãã«ã¹ã¿ãã€ãºãããŠããŸãã
- ã«ã¡ã©ããã§ã«ãããŸãã ç§ã¯å人çã«ã¯è©ŠããŠããŸããããèå³ã¯ãããŸãããå¿ èŠã¯ãããŸããã§ããã
- ãžãªããžã·ã§ãã³ã°ã§ã¯ãè¯ãã圌ã¯ç®±ããåºããŠããããšãã§ããŸãã
äžè¬çã«ããã§ã«å€ãã®æ©èœããã³ã³ããŒãã³ãããããŸãããã°ãŒã°ã«ã§æ€çŽ¢ããå¿ èŠããããŸãã ããããããªãã¯èªåã§æžãããšãã§ããŸãã
äœæ¥ããã»ã¹
React Nativeã®åé¡ã¯1ã€ã ãã§ããAndroidã®
æãå¥åŠãªã±ãŒã¹ïŒãã©ãŒãããæååã«å€æãããæ¥ä»ïŒãYYYY-MM-DD HHïŒmmïŒssãã¯ãiOSãšAndroidã§æåã®é·ããç°ãªããŸããã©ã®ãã©ãããã©ãŒã ã§äœåãªã¹ããŒã¹ããããŸããïŒ æ¿ãããã¢ã«ã€ãªããã ãã§ãã³ãŒãã¯çŽç²ãªjsäžã«ããããã«èŠããŸããiOSã§ã¯ãã¹ãŠãæ£åžžã«åäœããŸãããAndroidã§ã¯äœããããŸããããªãå¯èœæ§ããããŸãã ãããã£ãŠãã³ãŒããå€æŽããåŸã¯åžžã«äž¡æ¹ã®ãã©ãããã©ãŒã ã§ã¢ããªã±ãŒã·ã§ã³ããã¹ãããå¿ èŠãããããããã©ã®ãããªåé¡ã«ã€ãªãããã¯ããããŸããã
å®éãç§ã«ãšã£ãŠã¯ãäœããã®çç±ã§DateãAndroidäžã§æ²ãã£ãŠåäœããã®ãšåæ§ã®åé¡ã¯ãŸãã§ããããmomentJSã¯åé¡ãããŸããã ããã«åŸè ã䜿çšããŠãã ããã ããããç°ãªãæ§è³ªã®çµçã®åé¡ããããŸãã
第äžã«ãã¢ã³ããã€ãã¯ãã¹ã¿ã€ã«ã«ç€ºãããŠããã·ã§ãŒãã£ã³ã°æ¹æ³ããŸã£ããç¥ããŸããã ããã«ã¯å¥ã®ãã©ã¡ãŒã¿ããããŸã-'elevation'ã§ãããããã ãã§ãã 圱ã®è²ãååŸãéæ床-ãããã¯ãã¹ãŠã¢ã³ããã€ããééããŸãã
第äºã«ãç»é¢è§£å床ã ã¢ããã«ãã©ã³ã¯ãç¹ã«ãã©ã¹ã§å·šå€§ãªè§£å床ãæã£ãŠãããããå¿ èŠãªãã©ã³ããµã€ãºã®ãã¿ã³ãå ¬éãããšåé¡ãçºçããŸã.iOSã§ã¯ãã¹ãŠãããŸãèŠããŸãããAndroidã§ã¯ãã¹ãŠãåºçããŸã-ç»é¢ã¯å°ãããªããŸãã 幞ããªããšã«ãreact nativeã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ãèµ·åããããã©ãããã©ãŒã ãç¹å®ã§ããŸããããã«ãããã³ãŒãå ã®äœãïŒã¹ã¿ã€ã«ãªã©ïŒãå€æŽãããŸãã
éçºããã»ã¹èªäœã«é¢ããŠã¯ãAndroidã®ãã€ãã£ãéçºåŸã«åŸãããèªç±æã説æããã®ã¯å°é£ã§ãã Android SDKã¯ãç¹å®ã®äœãã®ããã«èšèšãããããŒã«ãæäŸããŸãããããã¯é¿ããããŸããã ããã§ã¯ãã¯ã©ã¹ãã¬ã€ã¢ãŠãã«ããã¯ãããã¢ã¯ãã£ããã£ããããå°ãªããšãããªããããŠããããšããããŠã¢ã¯ãã£ããã£ãããã¹ãã ãšèããããŸãããGoogleèªèº«ã§ãããããã«ã€ããŠäœãã§ããŸããã ãã®ããã圌ãã¯ããŒã¿ãã€ã³ãã£ã³ã°ãæäŸãããã®ã©ã€ãã©ãªã䜿çšããŠãã±ãŒã¹ã®99ïŒ ã®ã¢ã¯ãã£ããã£ã¯æŸèæãšããŠäœ¿çšãããã¬ã€ã¢ãŠããšViewModelãååŸããéäžã§Modelãæž¡ããŸãããã¬ã€ã¢ãŠãã§æ¢ã«ã¢ãã«ãšViewModelãæ瀺çã«æå®ããŸããã ãã®å Žåãããžãã¯ã¯ãŸã£ãããããŸããããã¢ã¯ãã£ããã£ããããŸãã æ å ±ãéä¿¡ããã«ã¯ãIntentãå¿ èŠã§ãããåçŽãªã¿ã€ãã®ã¿ãåé¡ãªãéä¿¡ã§ããŸãããªããžã§ã¯ããæž¡ãããå Žåã¯ããã¹ãŠParcelableãéä¿¡ããŸãã
ãããŠããã®ãããªäŸã¯ãããããããŸãã ãã€ãã£ãã®ãªã¢ã¯ã·ã§ã³ã®å Žåã... JavaScriptã®ã¿ããããããã ãã§ãã ãã®èŠçŽ ãŸãã¯ãã®èŠçŽ ã®äœææ¹æ³ã決å®ããŸãã ãã®ãããããã²ãŒã·ã§ã³ã«æ倧3ã€ã®ç°ãªãã©ã€ãã©ãªã䜿çšã§ããŸãã
ãšã«ãããã©ããªã¿ã¹ã¯ã§ã奜ããªããã«è§£æ±ºã§ããŸãïŒãŸããã»ãŒïŒã ãããŠãããã¯è©Šè¬ã®äžã§æãèå³æ·±ãã§ãã
ã³ã³ããŒãã³ã
ç¹èšäºé ã¯ãã³ã³ããŒãã³ãã«å€ããŸãã Webã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯ãããã¯äœ¿ãæ £ããããŒã«ã§ãããæºåž¯é»è©±ã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯ãããã¯åãªãç¹å¹è¬ã§ãã
ããã«ã¯3ã€ã®ç°ãªããã¿ã³ããããŸãã å®éã«ã¯éãã¯ãããŸãããããã¯1ã€ã®ã³ã³ããŒãã³ãã§ãã ã³ã³ããŒãã³ãã®æ¥å³»æ§ã®èŠæš¡ãç解ããŠããŸããïŒ ããã§ãå®å šã«ããšããèšèãããã¬ã€ã¢ãŠãã®ã³ããŒã¢ã³ãããŒã¹ããå¿ããããšãã§ããŸãã ã¯ããã¢ã³ããã€ãã«ã¯çè«çã«ã³ããŒã¢ã³ãããŒã¹ãããç§ãã¡ãæãã¹ãã¹ã¿ã€ã«ããããŸãã ãããããããã¯çŽç²ãªã³ã³ããŒãã³ãã«é©çšãããŸãã ã¯ãããã¿ã³ã®ã¹ã¿ã€ã«ãèšå®ã§ããŸãããäžã®åçã®ããã«ãã¿ã³ãäœæããã«ã¯ãAndroidã®1ã€ã®ãã¿ã³ã§ã¯äžååã§ãã ããã¯ãTextViewãšImageViewã®äž¡æ¹ãååšããå®å šã«ç¬ç«ããã¬ã€ã¢ãŠãã§ãããããããã¹ãŠãšã¬ã€ã¢ãŠãã«ã¯ç¬èªã®ã¹ã¿ã€ã«ãã©ã¡ãŒã¿ãŒããããŸãã ãŸãã3ã€ã®ãã¿ã³ã¯ãã¹ãŠããããã®ã³ã³ããŒãã³ãã®æ°ãç°ãªããŸããåçããªãå Žæã2ã€ã®ããã¹ããªã©ã§ããã€ãŸããAndroidã§ãããã®3ã€ã®ãã¿ã³ãã¹ãŠã3åå®äºããã«äœæããããšã¯ã§ããŸããã ããŠãåå¿ã§ãããã©ã®ããã«è¡ãããšãã§ããŸããïŒ ããã«ã¯3ã€ã®éæ³ããããŸãã
- å°éå ·
- ååšããèŠçŽ ã®ã¿ã衚瀺ãã
- ã¹ã¿ã€ã«ãªãŒããŒã¬ã€
ãã¹ãŠã®è©³çŽ°ãã芧ãã ããã
Androidã§ã¯ãæåã«ã¬ã€ã¢ãŠãã§ã³ã³ããŒãã³ããäœæãã次ã«ã¢ã¯ãã£ããã£ã§ID'shnikã«ãã£ãŠã³ã³ããŒãã³ããèŠã€ããããã€ãã®ãã©ã¡ãŒã¿ãŒãæž¡ããŸããããšãã°ãããã¹ããå€æŽããŸãã ããã¯ã衚瀺ãããã®ãäºåã«ããã£ãŠããå Žåã«æ©èœããŸãã è©Šè¬ã§ã¯ãå¿ èŠãªãã©ã¡ãŒã¿ãŒã䜿çšããŠäœæããå¿ èŠãããã³ã³ããŒãã³ãã瀺ããŸãã å¡©ãšã¯äœã§ããïŒ å°éå ·ã§ã¯ãç°¡åãªãã®ãããªããžã§ã¯ããŸã§ãåé¡ãªããã¹ãŠã転éã§ããŸãã äžå€®ã®ãã¿ã³ãšåãã§ãããç¢å°ãç°ãªããã¿ã³ããã1ã€å¿ èŠã ãšããŸãããã ã¢ã³ããã€ãã§ã¯ã4çªç®ã®ãã¿ã³ãæç»ããããã«å®è¡ãããã®åŸãå°éå ·ã«å¥ã®ã¢ã€ã³ã³ãæž¡ããŸãã
ããããããã§ããã«éæ³ãèµ·ãã£ãŠããŸãïŒ
{true && <Text> </Text>} {false && <Text> </Text>}
ãã€ã³ãã¯ããã®æ¹æ³ã§ã¯ååšããªããªããžã§ã¯ãã衚瀺ã§ããªãããšã§ãã åçåä»ãã§JSã䜿çšããŸããããšãã°ã次ã®ããã«èªåã§äŸ¿å©ã«äœ¿çšã§ããŸãã
const text = this.props.text; {text && <Text> {text} </Text>
textãã©ã¡ãŒã¿ãŒãpropsã«æž¡ããå Žåãã³ã³ããŒãã³ãã¯ãããã¬ã³ããªã³ã°ããŸããããããæž¡ããªãã£ãå Žåãããã¯ããªãã®ã§ããªãã§ããïŒ åçåä»ãã«åã³çŠç¹ãåœãŠã䟡å€ããããŸãã ãã¹ãŠã¯ããã¹ãã§åé¡ãããŸãããããã¹ãã¯trueãããã¹ãã¯falseã§ã¯ãªãããªããžã§ã¯ããšåãã§ãã ããããæ°åã®å Žåãåé¡ã¯0ãéä¿¡ããããšã§ããJSã¯ãããééã£ãŠãããšèããŸã...
ããžãã¯ã¯å°éãå§ããŸããïŒ ç§ãã¡ã¯ããã®äžã«ããå¯èœæ§ã®ãããã¹ãŠã®å¯èœãªãªãã·ã§ã³ãèæ ®ã«å ¥ããã³ã³ããŒãã³ããäœæããäžèšã§æ瀺ãããã¶ã€ã³ã§ããããã©ããããŸãã
ãããŠãããã§å¥ã®åé¡ãçºçããå¯èœæ§ããããŸã-倧ããããããã¹ãã倧ããããç»åãªã©ã¯ãã³ã³ããŒãã³ãã®å€èŠ³ãæãªãå¯èœæ§ããããŸãã ããã§ã¯ãã¢ã€ãã çªå·3ã圹ç«ã¡ãŸãã
<Text style={[styles.defaultStyle, this.props.customStyle]}> {this.props.text} </Text>
ã¹ã¿ã€ã«ãã¹ã¿ã€ã«ã®é åãšããŠå®çŸ©ããŸãã ããã¯ã©ãããæå³ã§ããïŒ ããã¯ãã¹ã¿ã€ã«ãå°éå ·ã«æž¡ããªãå Žåãã³ã³ããŒãã³ãã¯ããã©ã«ãã«ãªããäºåã«æ±ºå®ããããšãæå³ããŸãã ããããã«ã¹ã¿ã ã¹ã¿ã€ã«ãããšãã°äžããã®ã€ã³ãã³ãã«1ã€ã®ãã©ã¡ãŒã¿ãŒãæž¡ããšã©ããªããŸããïŒ ãããŠããã®ã³ã³ããŒãã³ãã«ã¯ããã©ã«ãã®ã¹ã¿ã€ã«ã«å ããŠäžéšã«ããã£ã³ã°ããããŸãã ãã€ã³ãã¯ãããã©ã«ãã®ã¹ã¿ã€ã«ãåžžã«å®å šã«é©çšãããã«ã¹ã¿ã ã¹ã¿ã€ã«ã§æž¡ããã©ã¡ãŒã¿ãŒã®ã¿ã眮ãæããããããšã§ãã ããªãã¡ ããã¹ãã®è²ã®ã¿ãå€æŽãããå Žå-åé¡ã§ã¯ãããŸããããµã€ãºãã€ã³ãã³ãããã®ä»ã®åã³ã¯æ¶ããŸããã ãŸããã¹ã¿ã€ã«ã«ãã©ã¡ãŒã¿ãŒãå¿ èŠãªãå Žåã¯ãã«ã¹ã¿ã ã¹ã¿ã€ã«ã§ãã®ãã©ã¡ãŒã¿ãŒã«å€nullãæž¡ããŸãã
ãããã«
reduxã䜿çšããŠããŒã¿ãæäœããããšãã§ããŸãããããã¯ãã«ãµã€ãºã®èšäºçšã«èšèšãããå¥åã®å²åŠã§ãã ç§ã¯ããã€ãã£ãéçºã®åŸãreduxã§åãããšãã«é¿ããããªããã®ãåãå ¥ãã5ã€ã®æ®µéããã¹ãŠçµããšèšããŸãã ãããããã®åŸãç§ã¯é¢äžãããã®ã¢ãããŒããæ¬åœã«å°éããŸããã
åå¿ãã€ãã£ãã¯èª°ã«ãšã£ãŠæãéèŠãªè³ªåã§ããïŒ ã¯ããã¿ããªã 補åãäœæãããšããiOSãšAndroidã®2ããŒã ã®éçºè ã確ä¿ããå¿ èŠããããŸãã 1ã€ã§ååã§ãã 第äžã«ãããã¯æãã«å®ããå¿ èŠãªäººã2åå°ãªããªãã第äºã«ã䟿å©ã§ã-ãã°ãçºçããããã«2ã€ã®ãã©ãããã©ãŒã ã«ä¿®æ£ãããŸããã ãããŠãçé¢ç®ãªäººãã¡ãåå ãå§ããŸããã FacebookãšInstagramã ãã§ã¯ãªããªããŸããã Airbnbãwalmartãtestaããããã®äººã¯äœããç¥ã£ãŠãããšæããŸãïŒ
ãããŠããããžã§ã¯ãã¯ããŒãžã§ã³1.0ã®ãªãªãŒã¹ã«è¿ã¥ããŠãããããããžã§ã¯ããéçºããããã«äžç·ã«éãŸã£ãå€ãã®èåãªäººãã¡ã¯ãã§ã«ããã«èå³ãæã£ãŠããŸãã é§ ã«å°çããããšãããªãã£ãããé»è»ãéããåã§ã¯ãªãé»è»ã«ä¹ããšãããŠããŒã¯ãªæ©äŒããããŸãã ããŒãžã§ã³1.0ã®å€§éãªãªãŒã¹åã«ãã®ããŒã«ãç¿åŸãã人ïŒç¹ã«æºåž¯é»è©±ã®ãã€ãã£ãéçºã®çµéšããã人ïŒã¯ãä»ã®äººããã倧ããªå©ç¹ããããŸãã