ã¢ããªã±ãŒã·ã§ã³ã®äººæ°ãé«ãã»ã©ãå®è¡ããããã€ã¹ã®ãªã¹ããé·ããªããŸãã ããæç¹ã§ããããåé¡ã«ãªããŸããç¹å®ã®ã¢ãã«ã§ã®ã¿ããã€ãã®ãã°ãç¥ç§çã«åçŸããããŸããŸãå€ãã®ããã€ã¹ã§è£œåããã¹ãããå¿
èŠããããŸãã
è€æ°ã®ããã€ã¹ããµããŒãããåé¡ã¯ããã¡ãŒã ã®å©ããåããŠè§£æ±ºã§ããŸãã ãã®ã¬ããŒãã§ã¯ãäžè¬çãªãã¡ãŒã ãšãããããéçºããã³ãã¹ãããã»ã¹ã«çµ±åããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã
-ç§ã®ååã¯Pavel Novikovã§ããNewCloud Technologies瀟ã§åããŠããŸãã ãMy Officeã補åã«åãçµãã§ããããã®ãªãã£ã¹ã¹ã€ãŒãã®AndroidããŒãžã§ã³ãäœæããŠããŸãã ã¢ããªã±ãŒã·ã§ã³èªäœã¯éåžžã«å€§ããã§ãã ãŸãããã¹ãŠãã¢ãŒããã¯ãã£ã®èŠ³ç¹ããã©ã®ããã«é
眮ãããŠãããã説æããŸãããã®åŸããã¡ãŒã ãå¿
èŠãªçç±ã«ç§»ãããšãã§ããŸãã å€ãã®ã³ãŒããšå€éšã®äŸåé¢ä¿ããããšãã«ã€ãã³ãããããã©ããããŸãã¯ãã®ãããªã€ãã³ãããªããã©ããããããŠãããå¿
èŠãã©ãããç解ããããšãã§ããŸãã ãã¡ãŒã ãã¯ãŒã«ã§å¿
èŠã§ãããšãã決å®ãããæ£ç¢ºã«è¡ãããšãã§ããŸãã ãã©ããã
åã®ã¹ããŒã«ãŒã¯ããã©ãã¿ãŒã¯å
éšçã«SKIã䜿çšããŠãããšè¿°ã¹ãŸããã ãŸãããã€ãã£ãã䜿çšãããã¹ãŠã®ããã¥ã¡ã³ããå®å
šã«SKIã§æç»ãããŸãã äºã¯éåžžã«é«éã§ãåªããã©ã€ãã©ãªã§ãã
My Office Documentsã¢ããªã±ãŒã·ã§ã³ã®äžå¿ã«ã¯ãã€ãã£ãã³ã¢ã§ããCOREããããŸããããã¯ç€Ÿå
ã§è¡ãããŸãããããŒã å
šäœãäœæããŸãã çŽç²ãªC ++ã§èšè¿°ãããŠãããããåå©çšã§ããŸãã 補åã©ã€ã³ã§äœæ¥ãããã¹ãŠã®ããŒã ã§åå©çšãããŸãã
ããã¯ããã¹ã¯ãããããŠã§ããAndroidãiOSã§ãã Tizenã§ãããããã¯å®å
šãã€éåžžã«ããŸãè¡ãããŠããŸãã
æãéèŠãªããšã¯ãCOREãè¡ã人ã¯ããã®COREã䜿çšãããã¹ãŠã®äººãšéåžžã«å¯æ¥ã«çµã³ã€ããŠãããšããããšã§ãã ããšãã°ãã¢ãã€ã«ã¯ã©ã€ã¢ã³ããiOSãAndroidãªã©ã®äŸ¿å©ãªæ©èœãèŠæ±ããç¶æ³ããããŸããããã¹ã¯ãããã§ã¯ããŸã圹ã«ç«ã¡ãŸããã ãã®ãããªããšããããŸãã
ããããéåžžã«äºæ³éãã«ãã°ãçŸããããšãéåžžã«äºæ³ãããŸã-ãã¹ã¯ãããããã®é¢æ°ãèŠæ±ããããèªäœãAndroidã§äœ¿çšãããå¥ã®é¢æ°ã®åäœããããã«å€æŽããããã§ãã ããã¯éåžžã«äžè¬çãªç¶æ³ã§ãããç§ãã¡ã®ä»äºã¯ãããšãã°ãã¹ãŠã®ã¢ãã€ã«ãã©ãããã©ãŒã ã§ãåäŸãã¡ãå©ããååãããã°ããã°ããä¿®æ£ããããã«ããã®ãããªå Žæããã°ããèŠã€ããããšã§ãã
3ã€ã®ã³ã³ããŒãã³ãããããŸãããã€ãã£ãCOREããã®COREãã©ãããããŠããAndroidã©ã€ãã©ãªãããã³Javaã¢ããªã±ãŒã·ã§ã³ã§ãã ãã€ãã£ãCOREã¯çŽç²ãªC ++ã§ãã ããã«ããœãŒã¹ã³ãŒãã®åœ¢åŒã§ã¯ãAndroidã¢ãžã¥ãŒã«ã«éããããã€ãã£ãã®ãã¹ãŠã®ãã€ã³ãã£ã³ã°ãè¡ãããå°ããªã¬ã€ã€ãŒãè¿œå ãããäœããã®ããžãã¯ãè¿œå ãããŸãã ããã«ãSKIã䜿çšãããã¹ãŠã®ã¬ã³ããªã³ã°ããã®ã¢ãžã¥ãŒã«ã§è¡ãããŸãã 次ã«ãæšæºã®ARã©ã€ãã©ãªãšããŠã®ã¢ãžã¥ãŒã«ãã¢ããªã±ãŒã·ã§ã³ã«æ¿å
¥ãããããã䜿çšããŸãã
äœã§ãèµ·ãããŸã-ãã€ãã£ããCOREããã€ã³ããŒã«ãã°ãçŸããããšããããŸãã Javaã¯ã©ã¹ããã€ãã£ãã¯ã©ã¹ã«èª€ã£ãŠãã€ã³ãããããã€ãã£ãã¡ãœãããåŒã³åºãããšãã«ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããç¶æ³ãåãåã£ããšãã®ãåãäžæºè¶³ãªãªã³ã¯äŸå€ã ãããŠããã°ã¯Javaã³ãŒãã«ãããŸãã
æãéèŠãªããšã¯ãåé¡ãã©ãã«ããããã§ããã ãæ©ãç解ããŠã解決ããããããããšã§ãã ãã€ã³ããŒã§çºçãããã°ãããã«ãã£ããããŠãUIã«å°éããªãããã«ããã®ã¯è¯ãããšã§ããæåãã¹ãã ããã¯æéã§ãããéåžžã«åçŽãªééãã§ãããç°¡åã«èŠã€ããŠä¿®æ£ã§ããŸãã
ãããè¡ãã«ã¯ããã¹ããå¿
èŠã§ã-ãã®ç¶æ³ã§ã§ããæé«ã®ãã®ã ç§ãã¡ã®ã¿ã¹ã¯ã¯ãã¢ããªã±ãŒã·ã§ã³ãšããŠæ©èœããã³ãŒããäœæããããšã§ãã åäœããããšã確èªããæãç°¡åãªæ¹æ³ã¯ããã¹ããäœæããããšã§ãã ãã¹ãã¯ãŸã£ããç°ãªããŸãã ãŠããããUIãçµ±åãã¹ãã®ãã¹ãŠãäœæããŸãã
ãã¹ãããããšããäºå®ã«å ããŠããã¹ããå®è¡ããå¿
èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ã®éçºæã«äœæãããã¹ãã¯å¿ããŠå®è¡ããããåãã€ããæå³ããããŸããããã®åŸãã³ãŒããå€æŽãããŸãã 2ãæãçµã¡ããããã®ãã¹ããå®è¡ããããšã«ããŸããããçµã¿ç«ãŠããããŸããã§ããã ããã¯ééã£ãŠããŸãããã¹ãã¯åžžã«æ©èœããã¯ãã§ãã
CIã§ãã¹ããå®æçã«å®è¡ããå¿
èŠããããŸãã ããã§ãªããã°ããããã¯ç¡æå³ã§ãã åã®ãã¹ããããå Žåããã¹ãã¯ãããŸããã
åäœãã¹ãã§ã¯ããã¹ãŠãéåžžã«ç°¡åã§ãã grluãã¹ããã¿ã¹ã¯ãéå§ããŸãã CIã§å®è¡ãããŸã-ãã¹ãŠãæ£åžžã§ãã¢ããªã±ãŒã·ã§ã³ã®åäœãã¹ããå®è¡ãããã¬ããŒããã¬ããŒãã衚瀺ãããŸãã
Androidãã¹ãã¯ãæ¥ç¶Androidãã¹ããšããŠå®è¡ãããŸããããã§ã¯åããŠããããã¹ããå¿
èŠã§ãããããã€ã¹ã§ã®ã¿è¿œè·¡ãããŸãã ãããŠãããã§åé¡ãçºçããŸããUIããã³çµ±åãã¹ãã¯å®éã®ããã€ã¹ã§å®è¡ããå¿
èŠããããŸãã ãŸããCIã¯å®éã®ããã€ã¹ã§ã¯ãããŸããã ãã®åé¡ã¯ããã€ãã®æ¹æ³ã§è§£æ±ºã§ããŸãã
ããšãã°ãããã€ã¹ãCIãµãŒããŒã«æ¥ç¶ããŸãã ç§ã¯èªåã§è©Šããããšã¯ãããŸããããããŸãããã¯ãã§ãã ãµãŒããŒããããããã¯æ¬¡ã®ããŒãã«ãŸãã¯ããŒãã«ã®äžã«ãããããã€ã¹ãããã«æ¥ç¶ããã·ã¹ãã ã®ããããã€ã¹ãããããèªèãããã¹ãŠãæ£åžžã§ããã¹ãŠãéå§ããŸãã
CIã§ãšãã¥ã¬ãŒã¿ãŒãå®è¡ã§ããŸãã ããã¯éåžžã«æ©èœããããŒãžã§ã³ã§ãåãJenkinsã¯ãšãã¥ã¬ãŒã¿ãå®è¡ã§ãããã©ã°ã€ã³ããµããŒãããŠããŸãããåé¡ã¯ãšãã¥ã¬ãŒã¿ã86çªç®ã®ãšãã¥ã¬ãŒã¿ã§ããå¯èœæ§ãé«ãããšã§ãã çµ±åã«ããçµ±åãã¹ãã«ã€ããŠèª¬æããŠããå Žåããã®å Žåãç§ã¯å€éšäŸåé¢ä¿ãæå³ããŸããç¹ã«ããã€ãã£ãã³ãŒãããããããããããããã¯ãã€ãã£ãã³ãŒãã§ãã çµ±åãã¹ããšã¯ãããã©ã¹ãã®è«çããã¹ããããã¹ããæå³ããŸãã
ãã®çµæããããè¡ãããšã¯å¯èœã§ãããããŸã䟿å©ã§ã¯ãããŸããã ããã€ã¹ãçŽæ¥æ¥ç¶ãããªãã·ã§ã³ã¯ããŸã䟿å©ã§ã¯ãªãããšãã¥ã¬ãŒã¿ã¯åœ¹ã«ç«ã¡ãŸããã å€ä»£ã®ãArmovskiyãã䜿çšã§ããŸãããããã¯ãŸããŸãã®ã¢ã€ãã¢ã§ãã
次ã«ãOpen STFãããžã§ã¯ããã·ãŒã³ã«å
¥ããŸãã
å€ãã®ããã€ã¹ããããŸãããã¹ãŠã1å°ã®ã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããã¹ãŠã®ããã€ã¹ãäžå
çã«æäœã§ããããã«ããã®ã³ã³ãã¥ãŒã¿ãŒã«ã¢ã¯ã»ã¹ããæ¹æ³ãåŠã³ãŸãããã
ãããªæãã§ãã åçã¯ãããžã§ã¯ãèªäœããååŸãããŸãã ããã€ã¹ã®ãªã¹ããå©çšå¯èœã§ãããç§ãã¡ã¯çã«æ¥ç¶ãã圌ãšå®å
šã«é£æºããããšãã§ããŸãã 衚瀺ãããŠããã®ã¯ããã¡ãŒã ã«æ¥ç¶ãããŠãããWebã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠå®å
šã«å¶åŸ¡ãããå®å
šã«æ©èœããã©ã€ãããã€ã¹ã§ãã
Open STFãããžã§ã¯ãã¯ãªãŒãã³ãœãŒã¹ã§ãããããã€ãã®å©ç¹ããããŸãã ãŸããå®éã®ããã€ã¹ã§äœæ¥ããŸãã ã»ãšãã©ã®Androidéçºè
ãšåæ§ã«ãããã€ã¹ã§ã³ãŒãããã§ãã¯ããå¿
èŠãããããšãç解ããŠããŸãã ãšãã¥ã¬ãŒã¿ãŒã¯åªããŠããŸãããå®éã®ããã€ã¹ã§ç¢ºèªããå¿
èŠããããã®ããããããããŸããåããã€ãã£ããSSLã§åäœããŸãã åäœãç°ãªãå¯èœæ§ã®ãããã®ããããããããŸãã ãã¡ãŒã ã¯ãã®åé¡ã解決ããŸãã
ãã°ãããããšã¯ããã®ãã¡ãŒã ã§äœæ¥ããããã«ããã€ã¹ã®ã«ãŒããå¿
èŠãªãããšã§ãã ããã€ã¹ããã¡ãŒã ã«æ¥ç¶ããã ãã§ãäœæ¥ã«äœ¿çšã§ããŸãã
ããã¯äŸ¿å©ãªãããã°ã§ãã åçŽã«IPãä»ããŠãããã¯ãŒã¯äžã§èŠããããã€ã¹ã«DBçµç±ã§æ¥ç¶ããããšã劚ãããã®ã¯äœããããŸãããåäœäžã®ã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããŠããããã€ã¹ã®ããã«åäœããŸãã åžžã«ããã€ã¹ã®ç»é¢ã衚瀺ãããæã ãã§ãªãããŠã¹ã§ãæäœã§ããŸãã
ããã€ã¹ã¯ããã€ãã®ã³ãã³ãã䜿çšã§ããŸãã ç§ãã¡ã®å Žåãããã¯èå³æ·±ãã±ãŒã¹ã§ãã 瀟å
ã«ã¯åºç¯ãªããã€ã¹çŸ€ãšãããããšé£æºããè€æ°ã®ããŒã ããããŸãã ç§ãã¡ã¯éçºè
ããã¹ã¿ãŒã§ãããå
šå¡ãè¿ãã«åº§ã£ãŠãããä»äºã«ã¯ããã€ã¹ãå¿
èŠã§ãã 2çªç®ã®ããŒã ã¯èªååã§ãå¥ã®ããã¢ã«åº§ã£ãŠããŸãããAndroidãå«ããã¹ãŠã®ãŠãŒã¶ãŒåãã«ç¬èªã®æè¡ã¹ã¿ãã¯ã䜿çšããŠèªååããããã¹ããäœæããŠããŸãã ãŸãã瀟å
ã®ãã¹ãŠã®ããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã 3çªç®ã¯ãµããŒããµãŒãã¹ã§ãã ãŸããã§ããã ãå€ãã®ããã€ã¹ãå¿
èŠã§ãã 補åã®åé¡ã«ã€ããŠæžããšããããããåçŸããå¿
èŠããããŸãã åé¡ã¯ç°ãªãå ŽåããããŸãã å©ç¹ã¯ãäŒç€Ÿã®ãã¹ãŠã®ããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããããšã§ãã ããã¯ãã©ã¹ã§ããããã€ã¹äžã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããé«éãªãµããŒããæäŸã§ããŸãã
ãªã¢ãŒãã§äœæ¥ãããšäŸ¿å©ã§ãã 楜ããçµæãQAã¯ãããè¡ããŸãïŒèª°ããç
æ°ã§ãããããªãã£ã¹ã«è¡ãããšãã§ããªãå Žåãããã¯åœŒããåãããšãã§ããªããšããæå³ã§ã¯ãããŸããã 圌ãã¯èŸ²å Žã«å
¥ããããã€ã¹ã圌ãã®é£ã«æšªããã£ãŠãããã®ããã«ããã€ãã®ããã«åããŸãã
ã¹ã¯ã©ã ã«åãçµã¿ãå®æçã«ãã¢ãå®æœããŠããŸãã çŽ1幎éããã¡ãŒã ã§ã®ã¿AndroidããŒã ã®ãã¹ãŠã®ãã¢ãå®è¡ããŠããŸãã ããã¯ãäœæãããè€æ°ã®æ©èœãè€æ°ã®ã¹ããŒãªãŒãããã€ã¹ç»é¢ã®è¡šç€ºãã¿ãã¬ããã«é¢ãã1ã€ã®ã¹ããŒãªãŒã次ã®ã¹ããŒãªãŒã®è¡šç€ºãå¥ã®ããã€ã¹ãžã®åãæ¿ããã¿ãã¬ããã®è¡šç€ºãå¿
èŠãªå Žåã«éåžžã«äŸ¿å©ã§ãã ãã®ã¢ãããŒãã¯æéãç¯çŽããå®éã®ããã€ã¹ããã䟿å©ã§ãã
Rest APIããããèªååã«ã€ããŠèããããšãã§ããŸãã
ãã¹ãŠã®ããã€ã¹ã¯ã1ãæã§é çªã«å
é»ãããåžžã«å
é»ãããŠããŸãã 1å°ã®ããã€ã¹ã§äœãããã¬ã€ããå¿
èŠãããå ŽåããããŸãããFIGã®åšãã«æšªããã£ãŠããã®ã§ãæŸé»ãããå ŽæãããããŸãã
ä»ã®ãããžã§ã¯ããšåæ§ã«ãæ¬ ç¹ããããŸãã ãã¹ãŠã®ããã€ã¹ããµããŒããããŠããããã§ã¯ãããŸããã æ£ç¢ºãªã«ãŒã«ã«ååãä»ããããšã¯ã§ããŸããã ããã€ã¹ããã¡ãŒã ã«æ¥ç¶ãããšãæ€åºãããªãããšããããŸãã ããã¯ãã£ãã«èµ·ãããŸãããæåéã1ã€ãŸãã¯2ã€ã®ããã€ã¹ããããŸããã å
¬åå
šäœã®95ïŒ
ãæ£åžžã«æ©èœããŠããŸãã äžéšã®äžåœäººã«ã¯äŸå€ããããŸã-ããã¯æªå®ã§ãã 86çªç®ã®ããã»ããµäžã®1ã€ã®ããã€ã¹ãFIGã¯ãã®çç±ãç¥ã£ãŠããŸãã
æŽæ°ããã«ã¯ããŸã䟿å©ã§ã¯ãããŸããã STF補åèªäœã®æŽæ°ã®åé¡ã«ã€ããŠïŒããã¯ãªãŒãã³ãœãŒã¹ã§ãããããDevOpsããŒã ã¯åœç€Ÿã®æŽæ°ã«åãçµãã§ããŸãã ãã¿ã³ãã¯ãªãã¯ããŠæŽæ°ããã®ã¯ç°¡åã§ã¯ãããŸããã ããããäžå¯èœãªããšã¯äœããããŸããã ç§ãã¡ã¯ãªãŒãã³ãœãŒã¹ã«ã€ããŠè©±ããŠããã®ã§ãããã»ã¹ãä¿é²ããããšãã§ããŸããåé¡ã¯é倧ã§ã¯ãããŸããã
å
éšãããã¯ãŒã¯å€ãžã®ãªãªãŒã¹ã¯æãŸãããããŸããã ãã®ãã¡ãŒã ã¯ãããã¯ãŒã¯å
ã§å転ããŠããŸãããå®éã«ã¯ããã€ã¹ã«å®å
šã«ã¢ã¯ã»ã¹ã§ããå¶éã¯ãªããããã€ã¹ãæäœããã ãã§ããã®ã§ãã€ã³ã¿ãŒãããäžã§èŒããªãããšããå§ãããŸãã ã å®éã®ããã€ã¹ã䜿çšããŠäœããå®è¡ã§ããå Žåã¯ããã¡ãŒã ã§ãããå®è¡ã§ããŸãã ãããã£ãŠãå
éšã§äœ¿çšããããã«æ®ããŠããããšããå§ãããŸãã
ã©ã®ããã«èŠããŸããïŒ å€åŽã«ã¯ããã¡ãŒã èªäœãå®è¡ãããŠãããµãŒããŒãã¢ã¯ã»ã¹ã§ããWebããã«ããããŸãã
ãã®Webããã«ã¯ããŒãã«ã€ããŠç¥ã£ãŠããŸãã åããŒãã¯ãããã€ã¹ãæ¥ç¶ãããŠããã³ã³ãã¥ãŒã¿ãŒã§ãã è€æ°ã®ããŒããååšããå¯èœæ§ããããŸã-ã¹ã±ãŒãªã³ã°ã®åé¡ã ããã€ã¹èªäœã¯ãWebããŒãžã§ã³ãå®è¡ãããŠããããã€ã¹ã§ã¯ãªããããŒãã«æ¥ç¶ãããŠããŸãã ç§ãã¡ã®ã±ãŒã¹ã§ã¯ã2ã€ã®ããŒããããŒã å
ã«ããããã1ã€ããµããŒãäžã§ããããã«èŠããŸããããã¯åã«ããŒããè¿ãããã§ãã ç©ççã«ã¯ããã¹ãŠã®ããã€ã¹ã1ãæã«ããããã§ã¯ãããŸãããããã®ãããªåäžã®ã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠãã¹ãŠã«ã¢ã¯ã»ã¹ã§ããŸãã
ãã¹ãŠã®ããã€ã¹ã«ã¯ã補åã®çš®é¡ãOSããŒãžã§ã³ãSDKã¬ãã«ããã®ããã€ã¹ã®ã¢ãŒããã¯ãã£ãæžã蟌ãŸããŸãã ãããŠåœŒã®å Žæã¯ç§ã話ããŠãããããã€ããŒã§ãã 2ã€ã®ãããã€ããŒããããŸãã ãããã¯ããµããŒãããã€ã¹ããã³ããã€ã¹ã§ãã åŸè
ã«ã¯è§Šããªãããã«ããŸã;ãããã¯åäžã®ã€ã³ã¿ãŒãã§ãŒã¹ããã¢ã¯ã»ã¹å¯èœãªããã€ã¹ã§ãã
ãã¡ãŒã èªäœã¯GitHubã«ãããŸã ã æåã®ãªã³ã¯ã¯ãåºåçãªãã®ã§ãã
ãããäžããæ¹æ³ãéå§ããæ¹æ³ãäœæ¥ããæ¹æ³ã«ã€ããŠã®ãã¹ãŠã®æ瀺ããããŸãã ãã¹ãŠã®é·æãšçæã説æãããŠããããããžã§ã¯ãã¯ããªãããææžåãããŠããŸãã
åé¡ã¯ãã©ãããããããããã2ã€ã®ããšã®åéãäœããªããã°ãªããªãã£ãããšã§ãã ãã¹ããšãã¡ãŒã ããããŸãã
CIãµãŒããŒã¯ãããªããäžçªå¥œããªãµãŒãã¹ã§ãã ç§ãã¡ã¯Jenkinsã䜿çšããŠããŸããJenkinsã«ã€ããŠã®ã€ã³ã¿ãŒãã§ã€ã¹ã®äŸã¯ãããŸãããããªãã¯äœã«ãçµã³ã€ããŠããŸããã
STFãµãŒããŒïŒãµãŒããŒèªäœããããã€ããŒãããã€ã¹ïŒããããŸãã
ããããçµã¿åãããæ¹æ³ã¯ïŒ æããã«ãæãç°¡åãªæ¹æ³ã¯Gradleãã©ã°ã€ã³ã§ããã¹ããå®è¡ãããšãã«ãã¡ãŒã ãžã®æ¥ç¶ãæ§æã§ããŸãã
圌ã¯äœãã§ããŸããïŒ ããªãåºæ¬çãªãã®ã 圌ã¯ããã¹ããå®è¡ããã®ã«å¿
èŠãªããã€ã¹ãéžæããéå§ããåã«ãããã«æ¥ç¶ããæåŸã«æ¥ç¶ã解é€ããŸããããã€ã¹ãããã¯ãããŸãŸã«ããŠããã®ã¯è¯ããªãããã§ãã
é©åãªããã€ã¹ã¯äœã§ããïŒ ãã©ã°ã€ã³ãä»ããŠãå¿
èŠãªããã€ã¹ãæ£ç¢ºã«æè»ã«æ§æã§ããŸãã ååã§ãã£ã«ã¿ãªã³ã°ããããNexusãSamsungã䜿çšãããããã£ã«ã¿ãªã³ã°ããéãéžæãããã§ããŸãã ããã¯1ã€ã®å°ããªãã¹ãã»ããã§ããå¯èœæ§ããããŸãã2ã€ã®ããã€ã¹ã§å®è¡ããäœãå£ããŠããªãããšã確èªãããšããããšã§ãã ãŸãã¯ãæ¯æ©å®è¡ããŸããããã«ããããã¹ãŠã®ããã€ã¹ã䜿çšããããã¹ãŠãéå§ããããã¹ãŠã衚瀺ãããŸãã
å»ºç¯ ç¹å®ã®ã¢ãŒããã¯ãã£ã§ãã¹ããå®è¡ããå¿
èŠãããå ŽåããããŸãã å ŽåããããŸãããããã¯ãã°ãã°å¿
èŠã§ã¯ãããŸããã
ãããã€ããŒã¯ç§ãã¡ã«ãšã£ãŠäŸ¿å©ã§ããç§ãã¡ã¯ããµããŒãã®ããã€ã¹ã«è§Šããªãããã«ããŠãããããæãªãããšãªããäºãã«å¹²æžããªãããšãçŽæããŸãã ç§ãã¡ã¯èšãããšãã§ããŸãïŒãµããŒãã§ããã€ã¹ã«è§Šããªãã§ãã ããã
APIã¬ãã«ã§äžŠã¹æ¿ããããšã䟿å©ã§ãã äœããã®çç±ã§API 21以éã§ãã¹ããå®è¡ããå Žåã¯ãã§ããŸãã
æ¥ç¶ã¯ãšãŠãç°¡åã§ãã Grandleãã©ã°ã€ã³ãšåæ§ã«ãåæ§ã®æ§æã§çµ±åãããŸãã é©çšãã©ã°ã€ã³ãäœæãããšãaccessibleã«è¡šç€ºãããŸãã
ããã§ã次ã®ã¹ããããå®è¡ãããŸããã èµ·åæã«ããã©ã°ã€ã³ãæ©èœããããã«ãCIã§å®è¡ããããã¹ãå®è¡ã¿ã¹ã¯ã«ãã€ã³ãããå¿
èŠããããŸãã ãã®ããã«ããŠè¡ãããŸãã äžäŸ¿ãããããŸãããããã®ãŸãŸã§ãã æ¹åã¯åé¡ã§ã¯ãããŸããã äž»ãªããšã¯ãconnectToSmartphoneTestFarmã¿ã¹ã¯ã«ã¢ã¿ããã§ããããšã§ãã ããã¯äž»èŠãªã¿ã¹ã¯ã§ãããããã€ã¹ãžã®æ¥ç¶ãšããã€ã¹ã®è§£æŸãæ
åœããŸãã
ããŠã3çªç®-ãã¡ãŒã ãã©ã¡ãŒã¿ãŒã®èšå®ã baseUrlã¯ããã¡ãŒã ãé
眮ãããŠãããã¹ã§ãã apiKey-RESTçµç±ã§æ¥ç¶ããããã®ããŒãããã¯ãã¡ãŒã ã³ã³ãœãŒã«ã§æ§æãããŸãã adbPath-èŠã€ãã£ããã¹ãŠã®ããã€ã¹ã§adbConnectæäœãå®è¡ãããããã«ããŸãã ã¿ã€ã ã¢ãŠã-ã·ã¹ãã èšå®ãããã©ã«ãã¯åã§ãã äœããã®çç±ã§ããã€ã¹ã䜿çšãããªãå Žåããã¡ãŒã èªäœãããã€ã¹ã解æŸããããã«å¿
èŠã§ãã
ãããããã¡ãŒã ã䜿çšãããã¹ãã®å®è¡ã®æ§åã§ãã connectedDebugAndroidTestã¯ãã¹ãŠã®ãã¹ããå®è¡ãããã©ã¡ãŒã¿ãŒã¯ãµããŒãã䜿çšããªãããã«ããã«æž¡ããããšèšããŸãã ãã£ã«ã-ãã®å ŽåãæåŠã ããã«ã5ã€ã®ããã€ã¹ãå¿
èŠã§ããããããã¯ãã¹ãŠ-DK21ãã€ãŸãLollypop以äžã§ããå¿
èŠããããŸãã
Jenkinså
ã§ãžã§ããã»ããã¢ãããããšã次ã®ããã«ãªããŸãã ããã§ããããã®ãã©ã¡ãŒã¿ãŒãæ§æãããŠéä¿¡ãããŸãã ããã¯ãã©ã°ã€ã³ã®äžéšã§ã¯ãªããJenkinsã§ã®äœæ¥ã¯èªåã§è¡ãå¿
èŠããããŸãã ããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãæå®ããããšã¯ã§ããŸããããç®èãªããšã«èšå®ããã1ã€ã®ãžã§ããäœæããŸãã æ°ã«ããå¿
èŠããªãå Žåã¯ããã«ããã¿ã³ã ãã䜿çšããŸãã å°æ¥çã«åãããšããããããããŸããã
ãã®çµæããã¹ãŠã®ãã¹ããå®è¡ããåŸãGUnitãèµ·åããããã®æãæšæºçãªHTMLã¬ããŒãã衚瀺ãããŸããã1ã€ã ãã®åŽé¢ããããŸãããããã¯ç°ãªãããã€ã¹ã§å®è¡ãããããšãããããŸãã å®è¡ãããã¹ãŠã®ãã¹ãã®ååã衚瀺ãããåããã€ã¹ã§å®è¡ãããããšãããããŸãã äœããã®ãªã°ã¬ãã·ã§ã³ãæ¢ãããã«ããã®åæã«åºã¥ããŠå®è¡ããã®ã«ã©ãã ãæéãããããã確èªããããšãã§ããŸãã ããã«æ³ååã®é£è¡ããããŸã-åãã³ãŒãã100åå®è¡ããããã枬å®ãããã¹ããèããããšãã§ããŸãã ãŸãã86çªãŸãã¯ARMã®ã³ãŒããã©ã®ããã«åäœããããããããŸããé«éãŸãã¯äœéã§ãã ãã¡ãŒã ã¯ããã«åœ¹ç«ã¡ãŸãã®ã§ãæã§æ¥ç¶ããããšã¯ã§ããŸããããèªåã¢ãŒãã§æ¥ç¶ã§ããŸãã
ãã©ã°ã€ã³èªäœã¯GitHubã§ãå
¥æã§ããŸããç°¡åãªããã¥ã¡ã³ãããããŸãããå°ãªããšãããã€ããããŸãã ç°¡åã«æ¥ç¶ããŸãã ãã¹ãŠã®ãã£ãŒãããã¯ãæè¿ããŸãã èªåçšã®ãã©ã°ã€ã³ãäœæããŸããã ãããããã¡ãŒã ãæ£åžžã«äœ¿çšã§ããªãã£ãå¯äžã®çç±ã§ãã æåŸã«ããããåã¶ããšãã§ããŸããã
Gradleã¯å®¢èŠ³çãªçç±ã§ã©ãã«ãååšããªãããšã«èšåãã䟡å€ããããŸãã ããšãã°ãAppiumã®å ŽåããããŸãã Appiumãã¯ãããžã«é¢ãããã¹ããäœæããèªååãšã³ãžãã¢ã®ããŒã ãããããšãåã«è¿°ã¹ãŸããã Gradleã¯ããã§èããããŸããã§ããããèŸ²å Žã䜿çšããå¿
èŠããããŸããã
端æ«ã§ããå¯èœæ§ããããŸãã ãã¡ãŒã ããããããã€ã¹ã§äœããã®ã¯ã©ãã·ã¥ãçºçããŸããããããããã°ãåãåã£ãŠããã¡ã€ã«ãããŠã³ããŒããããªã©ãäœã§ãããã§ãããã ã©ããã ããã€ã¹ãåãåºããŠæ¥ç¶ããŸãïŒãã ãããã¡ãŒã ã®éæ³ã¯ãã¹ãŠå€±ãããŸãïŒããäœããã®è¿œå ã®ã¯ã©ã€ã¢ã³ãã䜿çšããŸãã
圌ãã¯åãããšãããã·ã³ãã«ãªããŒã«ãéçºããŸããããã¿ãŒããã«ãä»ããŠåäœããŸãã ãŸããããã€ã¹ã«æ¥ç¶ããåæãããªã¹ãããadbã§äœ¿çšã§ããããã«æ¥ç¶ããããšãã§ããŸãããã®ã³ãã³ãã¯ãããã€ã¹ãèŠã€ããã5ã€ã®Nexusãå¿
èŠã§ã-å
šå¡ã«æ¥ç¶ããŸãã ã³ãã³ããå®è¡ãããšãadbã§5ã€ã®ããã€ã¹ã䜿çšå¯èœã«ãªããŸãã ã¿ãŒããã«ããäœã§ãã§ããŸãããŸã䟿å©ã§ãã äž»ãªå©ç¹ã¯ãæã§è¡ããããé«éã§ãã ãŸããGitHubã§ãå©çšã§ããŸã ã
çŽç²ã«æè¡çã«ã¯ãGradleãã©ã°ã€ã³ãšã¯ã©ã€ã¢ã³ãã¯STLã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãäžç·ã«äœ¿çšããŸãã ãµãŒããŒå
šäœã¯Javaã§èšè¿°ãããŠããŸããäœæ¥äžã«UIã¹ã¿ãžãªããããã€ã¹ãçŽæ¥éžæã§ããããã«ãã¹ã¿ãžãªçšã®ãã©ã°ã€ã³ãè¿œå ããèšç»ãããã«ãããŸãã ç§èªèº«ã®æ°æã¡ã§ã¯ãéå»6ãæéãæã§ããã€ã¹ã«è§ŠããŠããŸããã ããã€ã¹ã¯ãã¡ãŒã äžã«ãããWebã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠããã€ã¹ã«æ¥ç¶ããadbã«æ¥ç¶ãããã¡ãŒã äžã®ãã¹ãã³ããŒããŸããæã§ããã€ã¹ã«è§Šããªãã§ãã ããã å¥ã®ããã€ã¹ã«æ¥ç¶ããã ãã§ãå¥ã®ããã€ã¹ãšé£æºããŸãã
éçºäžã«ããŸãéåæã¯ãããŸããã ãã£ãããšãç§ãã¡ã®ããŒã ã§ã¯ä»ã®éçºè
ãã»ãŒåãããšãããŠããããšã«æ°ã¥ããŸãã å¯äžã®ããšãQAããã¯ã圌ãã¯èšã-äžå¿«ã
å°ãã ãã§ããããã¹ãã«ã€ããŠãã ç§ã¯äž»ã«ãã¹ãã®ã³ã³ããã¹ãã§ãã¡ãŒã ã䜿çšããŸãã UIãã¹ãã¯çµ±åãã¹ãã§ã¯ãããŸããã ããã¯äžéšã®äººã«ã¯ãã£ããã³ã«æãããããããŸããããUIãã¹ãã¯ããã€ã¹ã«äŸåããå¯èœæ§ããããšããçµè«ã«åŸããŸãã ç§ã¯ãã¹ããŒããã©ã³ã§ç»é¢ããã¹ãããã¹ããŒããã©ã³ã§ã®ã¿å®è¡ãã¹ãè¿
éãªãã¹ãã«ã€ããŠè©±ããŠããã ã¿ãã¬ããã§ã¯ãæå³ããããŸãããéãåæ§ã§ãã ã¿ãã¬ããçšãã¿ãã¬ããçšã®ç¹å®ã®ãã¹ãããããŸãã ã¹ããŒããã©ã³ã§ã¯ãèµ·åããªãããå€æŽãããå Žæããèµ·åããå¿
èŠããããŸãã å®è¡ãããšããã¹ãã«æ¬ é¥ãçããåºåãåœé°æ§ãšãªããå¹²æžããŸãã çè«çã«ã¯ããã¹ãã¯åæ Œããå¿
èŠãããããã¹ãŠãæ£åžžã§ãããã客芳çãªçç±ã§åæ ŒããŸããã ãããŠã圌ããåæ Œããããã«èŠããããåã£ãçç±ã§åæ Œããå Žåãããã¯ããã»ã¹ã劚害ããæ
å ±ã³ã³ãã³ãã¯å€±ãããŸãã
ã¿ã¹ã¯ã¯ããããåé¢ããããšã§ãã ããã¯ããã¡ãŒã ã§ã®äœæ¥ããã»ã¹å
šäœãšã説æãããã¹ãŠã®èªååãçµ±åãå§ãããšãã«ééããããšã§ãã çµ±åãã¹ããšUIãã¹ãã®äž¡æ¹ããããŸãã
ããã€ãã®æ¹æ³ããããŸãã æãåçŽãªãã®ãç¥ãããŠããŸãã ãããŠã奜ããã¹ãŠã®åŽåè
ã
ç¬èªã®ãã¹ãã©ã³ããŒãäœæããŠãã¯ã©ã¹åãªã©ãåæã§ããŸãã äœæ¥ãªãã·ã§ã³ã¯ããªãã§ãã TestIntegrationãŸãã¯TestUIã§çµããã¯ã©ã¹ã«ååãä»ããŠãã ããã ããã¯æå¹ãªãªãã·ã§ã³ã§ã-ãã¹ãã©ã³ããŒãããã解決ããŸãã
Gradle. , Gradle, . Stack Overflow , .
JUnit Suit â , . , . , â Gradle test runner , .
. â IntegrationSuite â , . : .
, , suite, . , . , . , adb instrumentation frame. , , « ». . . , , .
Jenkins , , . , CORE. , , , , AR. , . .
, , , - - , , â , restore. , , - â ? . ç§ãã¡ã¯ç解ãå§ããŸãã , .
, . , Jenkins . , â , , , .
? â , . , â , . , , , . , ⊠â , , , . , , - .
, , . , .
, â , , , , , - SSL, , , UI . GUnity CI , , .
. : , , - . , , , job . «». .
ããã ãã§ã GitHub , â , , . , -.
â 2 , Python, REST . , .
, . , . -, REST -, , , , . , .