ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãã¡ãã¬ãŒåºå ±ã®é¿éšã§ããå
æ¥éå¬ããã Developers SummitïŒãããµãïŒ2018 ã«ãã¡ãã¬ãŒã® CTO ã»å¹³å±±ãç»å£ããŸããã ãããµãã®ä»åã®ããŒãã¯ã å€ãããã® Ã å€ãããªããã® ãã ã¬ã¬ã·ãŒãªæ¥çãã€ã³ã¿ãŒãããã®åã§å€ããã€ã€ããããã®é¢çœãããšã³ãžãã¢ã«ç¥ã£ãŠãããããããã§ããããš CodeZine ïŒ EdTechZine ç·šéé·ã®ææšãããšçãäžãã£ãããšã§ãããŒã¯ã»ãã·ã§ã³ãå®çŸã ãå»ç ÃITããšããŠã¡ãã¬ãŒ CTO ã»å¹³å±±ãããéè ÃITããšããŠãããŒãã©ã¯ãŒã CTO ã»äžåºãããããé£²é£ ÃITããšããŠãã¬ã¿ CTO ã»å¢äºãã ãç»å£ããã¡ã·ãªããŒã¿ãŒã«  CodeZineïŒEdTechZine ç·šéé·ã®ææšããããè¿ãããŠã®å®æœãšãªããŸããã ã©ããªè©±ãé£ã³åºããã®ããäžéšã§ã¯ãããŸãã玹ä»ããŸãïŒ ãããã X-Tech ã£ãŠïŒ Â ææšããã¯åé ã§ãX-Tech ã«ã€ããŠã IT ã®å°å
¥ããé
ããŠããæ¥çã«ãããŠã ã¹ã¿ãŒãã¢ãããããæŽç·Žããã IT æè¡ã«ããæ°ããªäŸ¡å€ãä»çµã¿ãæäŸããåã ããšå®çŸ©ãå®éã«åäºæ¥ã§ã¯ã©ãããæããïŒãšè©±ãé²ã¿ãŸããã Fintech ã®å°æ¥åãšããŠã ãã£ãã·ã¥ã¬ã¹ç€ŸäŒãå®çŸããã ããåºã«ãšã£ãŠãçŸéã£ãŠæ¬åœã¯äžäŸ¿ãªãã®ã®ã¯ããæ¯æ¥ãé£ãéãæºåããªããšãããªãããããŸã倧éããåºã«çœ®ããŠãããªãããã宿çã«éè¡ã«å
¥éãã«è¡ã£ããããŠããã®ãçŸç¶ãããããç
©ãããããå°ããã€ç¡ãããŠããããã§ããããšããããŒãã©ã¯ãŒãã»äžåºããã ãéïŒçŸéãšãããããªâåœããåâãæ·±ãæ ¹ãããŠããã®ã¯ãå»çã®äžçãåæ§ã§ãã ãå»çã¯ãæªã ã«çŽã®ã«ã«ãã FAX æåãæ®ã£ãŠããããããããã€ã³ã¿ãŒããããæµžéããŠããªãããã¡ããå»çã·ã¹ãã ããããŸãããå»åž«ãå»çåŸäºè
ã®èšãããšããã®ãŸãŸèããŠäœã£ããšãããã®ãå€ããŠã å
šäœæé©ãåããŠããªã ãšãã課é¡ããããŸãããšåŒç€Ÿã»å¹³å±±ã話ããŸãã å€ãã®åºèã«å
±éãã課é¡ãæ¬è³ªçã«è§£æ±ºããŠããããšã倧å X-Tech ã§ã¯ãã€ã³ã¿ãŒããããµãŒãã¹ã«ãã倧ããªå€åããããåããããŸã§äœ¿ãæ
£ããŠããªããµãŒãã¹ã ãã«ãæ§ã
ãªæ¹åèŠæãå
¥ãããšãå°ãªããããŸããã ãå®éã«ãµãŒãã¹ã䜿ã£ãŠé ããŠãã飲é£åºããæ§ã
ãªèŠæãé ãã®ã§ãããåŒç€Ÿã¯äžåã«ã¹ã¿ãã€ãºãããªãããšããã¹ã¿ã³ã¹ããšã£ãŠããŸãã飲é£åºã®äŸ¡æ Œãã¿ã€ãã¯æ§ã
ã ãã©ãçªãè©°ãããšå®ã¯èª²é¡ã¯å
±éããŠãããããããã¢ãªã³ã°ããªããã æ¬è³ªçãªèª²é¡ãèŠã€ããŠã解決çãæäŸãã ããã«ããŠããŸãããšãäºçŽ/顧客管çãµãŒãã¹ã ãã¬ã¿ ããæäŸãããã¬ã¿ã»å¢äºããã ããã¯å»çã§ãåæ§ã§ãã¬ã¬ã·ãŒãªæ¥çã ãšãå»åž«ã®ããéãã«ãããã¯ããäœãããšã«åŸããªã©ã®é¢ä¿æ§ãçãŸãããããšããç¶æ³ã¯ãããŸããã§ãããã¯ã å°éåéãéã察çãªååšãšæããŠããã©ã€ããæã£ãŠè°è«ãã§ããããšã倧å ã§ãããããšå¹³å±±ãçããŸãã X-Tech ã§æŽ»èºã§ãããšã³ãžãã¢ã¯ïŒ CTO 察è«ãšããããšãããã話ã¯ãX-Tech ãæ¯ããçµç¹äœããã«ã äŒç€Ÿã§åããšã³ãžãã¢ã®ç¹åŸŽãæ±ãããããã®ãèããããšã ã飲é£çµéšè
ãå€ãããã§ã¯ãªãã®ã§ãããé£ã¹ãã®ã奜ããªäººã¯å€ãã瀟å¡å士ã§é£äºã«è¡ãããšãå€ããããŸã«ãšã³ã²ã«èšæ°å€§äžå€«ããªãšæããŸãïŒç¬ïŒãã¹ã¿ãŒãã¢ããã ãããããæ±ãããã圹å²ãåºå®ãããæ¥ã
å€ãã£ãŠããŸããææ©çã«å€ããããšã«æµææããªãããšã倧åã§ããããšãå¢äºããã äžåºãããããããã«ãäžã®äžã®èª²é¡è§£æ±ºãžã®ã¢ãããŒã·ã§ã³ã匷ããšæãããšããã«åæãããã«å¹³å±±ãã ãããã¯ãã«èªããæã£ãŠãã人ãå€ã ã§ãããããšç¶ããŸããã X-Tech ãªãã§ã¯ã®éçºããŒã ã£ãŠïŒ æåŸã«ãçµç¹ã¥ãããæ¡çšã§æ°ãã€ããŠããããšã«ã¯ãå瀟ãããªåçããããŸããã ããããŒãã©ã¯ãŒãã§ã¯ããããã¯ãããšã«ããŒã ãçµãã§ããŠã ã¹ã¢ãŒã«ããŒã ã§éå¶ããããšãå¿ãããŠããŸã ãæè¡éžå®ãå«ããŠããã®ããŒã ã䜿ãã¹ããšå€æããããããšãå
±æåã倧åã§ããããããè¶³ããã«ãªãããšããããç§ã CTO ã«ãªã£ãŠããããããããã®ã¯æäœéã«æŽçããŸãããã ïŒäžåºããïŒ ãæ¡çšã¯ãã£ãšé 匵ã£ãŠãããã©ããã£ãšè¶³ããŠããŸãããããšããšçµéšçã«ã·ãã¢ãããã«å±€ãæ¡çšããããšèããŠããŸããããçŸåšã¯ãžã¥ãã¢ãŸã§å¹
ãåºããŠããŸãããã ãã¹ã¿ãŒãã¢ããã§ã¯æ®å¿µãªãããŒãããããã°ã©ã ãæããäœè£ã¯ãªãããšãå€ããã ããããâ åããäœãäžããããã®ãâããããèããŠããŸã ãæè¡ãããžãã¹ãããŒã®ã€ããã¯ååã«æããããªãããã©ãæ¥çãæè¡ã®é¢çœãã¯ãã¬ã¿ã ããããäžããããããšããããšæãããïŒå¢äºããïŒ ãä»ã¡ãã¬ãŒã¯ãšã³ãžãã¢ãšãã¶ã€ããŒããã£ã¬ã¯ã¿ãŒãå»åž«ã§ 30 人ãããã®éçºããŒã ã§ããã è·çš®éã®ééããªããããšã培åºããŠããŸã ãiOS ãšã³ãžãã¢ããµãŒããµã€ããããã³ããšã³ãããšæ
åœãåããããšã§æ
å ±æçµ¶ãèµ·ãããããã·ã§ã³ã«ãã£ãŠäººãã¢ãµã€ã³ããè·çš®ã暪æããŠåãçµããç°å¢ãäœã£ãŠããŸããïŒå¹³å±±ïŒ æåŸã«å¹³å±±ã¯ãX-Tech 㯠Web ãšã³ãžãã¢ã®ãã®ãšæãããã¡ã§ãããtoB åãã«åºãå±éããŠãããããã¯ããå€ããïŒãããµãã®åå è
ã«å€ããããªïŒSIer ç³»ã®ãšã³ãžãã¢ã®æ¹ã«ãè¿ããåããæããŠããããäžçã ãšæãããã²æ¬¡ã®ãã£ãªã¢ãšããŠãã€ã³ã¿ãŒãããã®äŒç€Ÿãéžæè¢ã«ãããã ãšããã®ãæã£ãŠããã ãããšå¬ããã§ãïŒããšå匷ãã³ã¡ã³ãããŠãã»ãã·ã§ã³ãç· ããŸããã 2 æã«ã¯ã æ¥çµ xTECH ããåµåããããªã©ããŸããŸã泚ç®ã® X-Tech åéã ã©ããªããšãã§ããæ¥çãªã®ããã¡ãã¬ãŒã¯ã©ããªããžã§ã³ã«åããŠåããŠããã®ããªã©ããã£ãšè©±ãèããŠã¿ãããšããæ¹ã¯ããã²ãé£çµ¡ãã ããïŒ www.wantedly.com
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã https://www.medley.jp/recruit/creative.html
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®èéã§ããå»çä»è·ã®æ±äººãµã€ãã ãžã§ãã¡ãã¬ãŒ ãã®éçºãæ
åœããŠããŸãã æšå¹Žããžã§ãã¡ãã¬ãŒã§ã¯äºæ¥æãå©çšããæ¡çšç®¡çç»é¢ã® UI ãªãã¥ãŒã¢ã«ãè¡ããŸããããŠãŒã¶ã䜿ãããã UI ã¥ãããç®æãããã«ãé·æéã«ããã誰ãéçºããŠãäžè²«æ§ãã UI ãå®çŸã§ãããããªã·ã¹ãã ãå¿
èŠã§ããããã§ä»åã¯ãComposableã㪠UI ã·ã¹ãã ã®å®çŸãããŒãã«ãã©ã®ããã«éçºãè¡ã£ãã®ãã«ã€ããŠãå
±æãããŠããã ããŸãã èæ¯ïŒç»é¢ãæ©èœè¿œå ã®ãã³ã« UI ã®äžè²«æ§ããªããªã£ãŠãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ãšã¯ãå»çæ©é¢ãä»è·æœèšã®æ¡çšæ
åœè
ãæ±äººæ
å ±ã®ç®¡çãå¿åè
ã®éžèç¶æ³ã®ç®¡çãªã©ãè¡ãç»é¢ã§ãã ãã®æ¡çšç®¡çç»é¢ã§ããããªãã¥ãŒã¢ã«ä»¥å㯠Angular ããã¬ãŒã ã¯ãŒã¯ãšããŠæ¡çšãã SPA ã§ãUI ã«é¢ããŠã¯ AngularUI ã® Bootstrap ãå©çšããŠãããããã®ãšã³ãžãã¢ãå®è£
ãè¡ã£ãŠããŸããã ãããªãã® UI ãã¹ããŒãã£ãŒã«å®çŸã§ããç¹ã«ãããŠã¯ãBootsrap ã®ãã㪠UI ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åããããæ©æµã¯å€§ããã£ãã®ã§ãããäžæ¹ã§ãå
æ¬çã« UI èšèšãè¡ã£ãŠããããã§ã¯ãªãã å人ã屿çã« UI ãäœã£ãŠããã®ã§ãç»é¢ãæ©èœã远å ããŠããäžã§äžè²«æ§ããªã UI ãå¢ããŠããç¶æ
ã«ãªã£ãŠããŸããã å®éã«ãŠãŒã¶ã€ã³ã¿ãã¥ãŒãªã©ãè¡ã£ãŠã¿ããšãããã°ã€ã³ããåŸã©ãããã°è¯ãã®ãåãããªãããããããšããæ©èœãããããšãä»ãŸã§ç¥ããªãã£ããããxx ãã©ãã«ããã®ãåãããªãããªã©ã®æèŠãå€ã
ãããå
šé¢ç㪠UI ã®èŠçŽããå¿
èŠã«ãªã£ãŠããŸããã å»çãä»è·ã®çŸå Žã§ã®äººæäžè¶³ãè§£æ¶ããããã«æ¡çšæ
åœè
ã«æäŸããããŒã«ãšããŠãä»åŸããã«æ©èœæ¡å
ããŠããããšãæ±ããããŠããŸããããæ©èœæ¡å
ããŠããããšã«èãããç¶æ
ã«ã¯ãªããšããã®ããããã¯ãããŒã ã®ã¡ã³ããŒã®å
±éèªèã§ããã ããã§ãå
šäœçã«æ
å ±èšèšããèŠçŽããŠãã¶ã€ã³ãå·æ°ããä»åŸãããã¯ããæé·ãããŠããäžã§ã¹ã±ãŒã«å¯èœãª UI ãæäŸã§ããããã«ãããããUI ãªãã¥ãŒã¢ã«ã決å®ããŸããã ããã³ããšã³ãã§å¿
èŠã ã£ãããš Bootstrap ãçšããŠãšã³ãžãã¢ã®ã¿ã§ UI ãäœã£ãŠããã®ãšã¯ç°ãªãããªãã¥ãŒã¢ã«ã§ã¯ç€Ÿå
ã®ãã¶ã€ããŒãçŸç¶ã® UI äžã®èª²é¡ãæŽçãããã¶ã€ã³ãäœæããŸããã ããã«äŒŽã£ãŠãèªåã§å
šãŠã® UI ããŒããäœæããããšã«ãªããŸããããBootstrap ã«é Œããã£ãŠãããšããšã¯éããå
ç¢æ§ãšæè»æ§ã䌎ã£ã UI ã·ã¹ãã ãèªåãã¡ã§æ§ç¯ããå¿
èŠããããŸããã ãªãã¥ãŒã¢ã«åã®æ¡çšç®¡çç»é¢ã® UI ã¯äžè²«æ§ã«æ¬ ããŠããããŠãŒã¶ã¯éåžžã«å€ãã®æäœãåŠã¶å¿
èŠããããŸãããããã®è²¬ä»»ã¯ãã¶ã€ããŒã ãã§ãªã UI éçºããããšã³ãžãã¢ã«ã倧ãã«ãããŸãã è¯ããã¶ã€ã³ãã§ããŠããæçµçã«ãããã¯ãã® UI ã¯ã³ãŒãã«ãã£ãŠäœãäžãããããã®ãªã®ã§ããšã³ãžãã¢æ¬¡ç¬¬ã§äžè²«æ§ã«æ¬ ãã UI ã«ãªã£ãŠããŸãããšã¯ååã«ããåŸããšæããŸãã åŸã
ã«ããŠèµ·ããåŸãã®ã¯ãç®ã«ããæ©äŒãæ¯èŒçå°ãªãç»é¢ã§ãã£ãããæ¹ä¿®å¯Ÿè±¡ã§ã¯ãªãéšåãªã©ãæ°ã¥ããã厩ããŠããããæå³ããªã UI ã«ãªã£ãŠããŸã£ãŠããããšããããšã§ããããããã£ãç¶æ³ã«é¥ã倧ããªèŠå ãšããŠã¯ããã³ããšã³ãã®éšåã§äžè²«æ§ã«å¯Ÿããé
æ
®ãã§ããŠãªãããšã 1 ã€ã ãšæããŸãã ããã§ããã§ã«ããæ¡çšç®¡çç»é¢ã䜿ããããããã®ã¯ãã¡ãããä»åŸã¹ã±ãŒã«ããŠããäžã§ äžè²«æ§ã®ãã UI ãæ
ä¿ãç¶ããŠããããã«ã¯ããªãã¥ãŒã¢ã«ã§ããã³ããšã³ããå
ç¢ã§æè»ãª UI ã·ã¹ãã ãžãšå€ããå¿
èŠããããŸãã ã UI ãªãã¥ãŒã¢ã«ã§éçºäžå€§åã«ããããš UI ã®äžè²«æ§ãä¿ã€ãšãªããšãä»ã®ããã³ããšã³ãã§ã¯ãã¯ãåœç¶ã®ããšãããããŸããããã³ã³ããŒãã³ãæåã§æ§æããããšã«ãªããšæããŸãã æè¡éžå®ãšããŠã¯ãäžè¿°ã®éããªãã¥ãŒã¢ã«ä»¥å㯠AngularïŒv1.4.11ïŒãå©çšããŠããŸãããããªãã¥ãŒã¢ã«ã®ã¿ã€ãã³ã°ã§ React ãžç§»è¡ããŸããã React ãéžæããçç±ãšããŠã¯ãåŠç¿ã³ã¹ãã®ç¹ãã³ãã¥ããã£ã掻çºã§ãšã³ã·ã¹ãã ãå
å®ããŠããç¹ãåäžæ¹åã®ããŒã¿ãããŒãã·ã³ãã«ãª API ãªã©ãç·åçã«å€æããŠã®ãã®ã§ãããç®äžã®èª²é¡ã§ãã UI ã³ã³ããŒãã³ãã®ã¡ã³ããããªãã£ã«é¢ããŠãé©åãªéžæè¢ã§ãããšèããŸããã CSS ã®æ¹ã¯ãšãããšããªãã¥ãŒã¢ã«å㯠Bootstrap ã§ãŸããªããªãéšå㯠Sass ã§ããããã®ãšã³ãžãã¢ãæžãããããã«æžããšããç¶æ
ã§ãããããªãã¥ãŒã¢ã«ã§ Sass ã«å ããŠäžéš PostCSS ãšããæ§æã«å€æŽããŠãèšèšã¯ ITCSSãLint ã stylelint ã§è¡ãããšãã圢ã«ããŸããã ITCSS ãéžæããèæ¯ãšããŠã¯ããã®è©³çŽ°åºŠé ã®ã¬ã€ã€ãŒéå±€ã«ãã£ãŠã«ã¹ã±ãŒãã管çããããç¹ãã¬ã€ã€ãŒã®å¢æžã§å®¹æã«ã¹ã±ãŒã«ã§ããç¹ãªã©ããéžæããŸããã CSS in JS ãèæ
®ã¯ããŸãããããªãã¥ãŒã¢ã«ã®æç¹ã§ã¯ãããšããæ±ºå®çãªéžæè¢ãç¡ãã£ãããšãããïŒãŸã styled-components ãæ£åŒãªãªãŒã¹ãããŠãªãã£ãïŒã classnames ãå©çšããŸããã ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®éžå®ãéèŠã§ãããUI ã·ã¹ãã ãå·æ°ããäžã§ éçºäžæãéèŠããã®ã¯ãComposabilityïŒã³ã³ããŒãã³ãã®çµã¿åããã容æã§ããããšïŒã ã§ããã Composable ã§ãããšããããšã¯ãã€ãŸãæ§ã
ãªç¶æ³ã«ãããŠçµã¿èŸŒã¿å¯èœãªç¶æ
ã§ãããåå©çšæ§ãé«ããšããããšã«ãªããŸãã ããããã®ã³ã³ããŒãã³ããçµã¿åãããããšã容æã«åºæ¥ããšãšãã«ãè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããç¶æ
ãã 1 〠1 ã€åè§£ããããšã容æãªç¶æ
ãæãŸãããçµæçã«ããã§ UI ãæ§ç¯ããããæ¹ä¿®ããããç¶æ
ã«èªç¶ãšãªãã¯ãã§ãã ã¢ãŒãã«ãäŸã«ããããšãã¢ãŒãã«ã®äžã§è¡šç€ºããã³ã³ãã³ãèŠçŽ ãã¢ãŒãã«ã®èé¢ã«æ·ããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯ãã¢ãŒãã«ã³ã³ããŒãã³ãèªäœã«ã¯å«ãŸãå¥ã®ã³ã³ããŒãã³ããšããŠåãåºããæ¹ãåå©çšãããããçµã¿åãããããããšããããšã§ãã < ModalFrame > < Modal > < ModalHead > ... </ ModalHead > < ModalBody > ... </ ModalBody > </ Modal > < Overlay /> </ ModalFrame > äžèšã®äŸã§ãããšãã¢ãŒãã«ãç»é¢ã®äžå€®ã«é
眮ããããšã¯ <ModalFrame /> ãè¡ãã <Modal /> èªäœã¯ã¢ãŒãã«ã«å
å
ãããã³ã³ãã³ãã®ã³ã³ãããšããŠã®åœ¹å²ã ããæã¡ãŸãã <Overlay /> ãç¬ç«ããã³ã³ããŒãã³ãã® 1 ã€ã§ãã¢ãŒãã«ä»¥å€ãšãçµã¿åãããŠå©çšããŠããŸãã ã³ã³ãããšãªãã³ã³ããŒãã³ããšãã®åãšãªãã³ã³ããŒãã³ãã¯ãå¥ã³ã³ããŒãã³ãã«åé¢ãããŠããããšã§ããäºãã«äŸåããªãããã«ãªããŸãã ãŸããSass ãã¡ã€ã«ããã®ã³ã³ããŒãã³ãæ§æã«åãããŠåããŠããŸãã ITCSS ã«ãããŠã <ModalFrame /> ã®ãããªã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€å Žåã®ã¹ã¿ã€ã«ã¯ Objects ã¬ã€ã€ãŒïŒè£
食ãæããªã UI ãã¿ãŒã³ã®ã¬ã€ã€ãŒïŒãšãªããè£
食ãæã€ <Modal /> ã <Overlay /> 㯠Components ã¬ã€ã€ãŒãšããŠæ±ããŸãã @import âobjects.modal-frameâ; @import âcomponents.modalâ; @import âcomponents.overlayâ; CSS ã¯ãã®ç¹æã®ã«ã¹ã±ãŒãã詳现床ã«ãã£ãŠæ±ºå®ãããã¹ã¿ã€ã«ããããäŸåé¢ä¿ãæããªãç¶æ
ãäœãããšãå°é£ã§ãããITCSS ã®èãã«åã£ãŠãããã® CSS ã®ç¹åŸŽã«éãããªãããã«è©³çŽ°åºŠã®äœããã®ããé çªã« @import ããããã«ããŠããŸãã Sass ãã¡ã€ã«ã®äžèº«ã§ããã _objecst.modal-frame.scss 㯠<ModalFrame /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããããã«ããŸãã .o-modal-frame { position : fixed ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; z-index : map-get( $zIndexMap , modalFrame ) ; } _components.modal.scss ãåæ§ã« <Modal /> ã®ã¹ã¿ã€ã«ã®ã¿ãèšè¿°ããŸãã .c-modal { position : relative ; margin : 0 auto ; width : 900 px ; min-width : 640 px ; background-color : $JM-White ; box-shadow : 0 1 px 6 px 0 rgba( $JM-Black , 0.2 ) ; z-index : map-get( $zIndexMap , modal ) ; } ãã®ããã« Sass ãš React ã³ã³ããŒãã³ãæ¯ã« 1 察 1 ã®é¢ä¿ã«ãªãããã«ããŠããŸãã ãã¬ãã£ãã¯ã¹ãšããŠä»äžããŠãã c- ã o- 㯠ITCSS ã®ã¬ã€ã€ãŒã®ããšãæããŸãã o- 㯠Objects ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ã c- 㯠Components ã¬ã€ã€ãŒã®ãã¬ãã£ãã¯ã¹ã§ãã åºæ¬çã« React ã® UI ã³ã³ããŒãã³ãå
ã§ã¯ãã³ã³ããŒãã³ãã®çš®å¥ã«å¿ã㊠c- ã o- ã®ãã¬ãã£ãã¯ã¹ãæã€ã¯ã©ã¹ãšãç¶æ
ã«ãã£ãŠä»ãããå€ããããã State ã¬ã€ã€ãŒã® s- ãã¬ãã£ãã¯ã¹ã®ã¯ã©ã¹ã®ã¿ã䜿çšããŸãã 話ã React ã«æ»ããšãäžèšã®ãããªããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºããã ãã®åœ¹å²ãæã€ <AppBar /> ã³ã³ããŒãã³ãã¯ã props.children ã§åèŠçŽ ãåãåããããã«ãªã£ãŠããã ãã§ããã®å
容ã«ã¯é¢ç¥ããªãããã«ãªã£ãŠããŸãã const AppBar = ( props ) => { return < div className = "o-app-bar" > { props . children } </ div > ; }; å
å
ããåã³ã³ããŒãã³ããäœã§ããã <AppBar /> ã¯èªåèªèº«ã®è²¬ä»»ã ããæããã°è¯ãã®ã§ãéçºäžãã·ã³ãã«ã«èããããŸãã className ã«æž¡ããŠãã o-app-bar 㯠ITCSS ã® Objects ã¬ã€ã€ãŒã®ã¯ã©ã¹ã§ãã .o-app-bar { position : fixed ; top : 0 ; left : 0 ; right : 0 ; z-index : map-get( $zIndexMap , appBar ) ; } ããããŒèŠçŽ ãç»é¢äžéšã«åºå®è¡šç€ºãããã¬ã€ã¢ãŠãã®ã¿ã®åœ¹å²ãæã€ã³ã³ããŒãã³ããªã®ã§ãObjects ã¬ã€ã€ãŒãšãªãã o-app-bar ã«ã¯ã¬ã€ã¢ãŠãç®çã®ã¹ã¿ã€ã«ã®ã¿ãæãããŸãã ãžã§ãã¡ãã¬ãŒã®æ¡çšç®¡çç»é¢ã§ã¯ãå»çæ©é¢ãä»è·æœèšããæ±è·è
ã«åããæ
å ±ãå
¥åããŠããã ãããã«å€ãã®ãã©ãŒã èŠçŽ ããããéåžžã«ç
©éã«ãªããã¡ã§ããã ããããã®åœ¹å²ãæããã³ã³ããŒãã³ããçµã¿åãããããšã§ãUI éçºäžã®å
ç¢æ§ãæè»æ§ãé«ãããã ããã«åªããŸããã å®éã®ãªãã¥ãŒã¢ã«éçºæã«ã¯ãå
šãŠã® UI ã³ã³ããŒãã³ããå®è£
ããåã«ãéçºåŽã§ã¯ãã¶ã€ããŒãçšæãã Sketch ãããå
šãŠã® UI ããŒããæŽãåºãäœæ¥ãè¡ãããã®äžã§åè§£äžå¯èœãªã¬ãã«ãŸã§ã³ã³ããŒãã³ããåè§£ããŠãããå®è£
ãã¹ãã³ã³ããŒãã³ããäžèЧåããŸããã ãã®åŸãäœæããã³ã³ããŒãã³ãäžèЧããå
š UI ã³ã³ããŒãã³ãã Storybook ã«å®è£
ããŠãããŸããã Storybook ã¯ãUI ã³ã³ããŒãã³ãéçºã®ãµã³ãããã¯ã¹ç°å¢ãšããŠãReact ã Vue ãå©çšããéçºã§ã¯å²ãšäžè¬çã«å©çšãããããã«ãªã£ãŠãããšæããŸãããªãã¥ãŒã¢ã«æãåã³ã³ããŒãã³ãã®éçºç°å¢ãšããŠå©çšããŠãã³ã³ããŒãã³ãã®ãã¿ãŒã³ãçµã¿åããã®ç¢ºèªãªã©ã Storybook äžã§è¡ããŸããã ç»é¢ãäœã£ãŠããæ®µéã§ã¯ã çšæãã UI ã³ã³ããŒãã³ããçµã¿åãããŠå©çšããã°ç»é¢å
šäœã®å€§åã® UI ãåºæ¥äžãã ããã«ãªã£ãŠããŸããã 现ããéšåã§ã¯ãäºåã«çšæããã³ã³ããŒãã³ãã«äžè¶³ããã£ãããå®è£
ããåŸã§ä»æ§ã®å€æŽã«ããã³ã³ããŒãã³ãèªäœãåé€ããããšããåè§£äžå¯èœãªç¶æ
ãŸã§èœãšã蟌ããŠãªãã³ã³ããŒãã³ããèŠã€ãã£ãããšãæ§ã
ãªåçç¹ã¯ãããŸãããã§ãããªãã¥ãŒã¢ã«å
šäœãéããŠæ¯ãè¿ããšãComposable 㪠UI ã³ã³ããŒãã³ãã§å
ç¢ã§æè»æ§ã®ããæ§æã«ãããšããããšã«äžå®ã®ææã¯åºããããªãšæããŸãã ãŸãšã UI ãªãã¥ãŒã¢ã«ä»¥éãæ¡çšç®¡çç»é¢ã§ã¯ãªãã¥ãŒã¢ã«æã® UI ã·ã¹ãã ãåå°ã«ããŠãç¶ç¶çã«æ©èœã远å ã»æ¹ä¿®ããŠããŸãã ãããã¯ãã§èšããŠãã KPI ãé 調ã«é·ç§»ããŠããŠã顧客ããã®åãåããããªãã¥ãŒã¢ã«ä»¥åã®ãããªãUI äžã®åé¡ã§å©çšãå°é£ã§ãããšãããã®ã¯æžå°ããããžãã£ããªçµæãåŸãããŠããŸãã éçºãããäžã§ã Composable ã«ãªãããã«ã³ã³ããŒãã³ã矀ãäœæããããšã§ã ãªãã¥ãŒã¢ã«ä»¥é㯠UI ã®æ¹ä¿®ãã·ã³ãã«ã«è¡ããããã«ãªããéçºã¡ã³ããŒã®ã¹ãã«ã»ããã«å·Šå³ãããéšåãå°ãªããªããéçºå¹çãäžãããŸãã ã ãã®ãããªç¹ãããªãã¥ãŒã¢ã«èªäœã¯è¯ãã£ããšæããšåæã«ãäžæ¹ã§ããã«è¯ã UI ãæäŸããããã«åãçµãã¹ãããšã¯ãå°ãªããªããšæããŸãã äŸãã°æ¡çšç®¡çç»é¢ãååã«ã¢ã¯ã»ã·ãã«ã ãšã¯èšããªãããããã©ãŒãã³ã¹é¢ã§ãããäžå±€ã®åªåãæ±ããããŸãããã¡ãã UI ã³ã³ããŒãã³ãã®å
ç¢æ§ããŸã ååãšã¯èšããŸããã ããè¯ããããã¯ããæäŸããããã«ãããã£ã課é¡ã«å¯ŸããŠãç¶ç¶ããŠåãçµãã§ãããããšæããŸãã ãç¥ãã ã¡ãã¬ãŒã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ããŒãåéããŠããŸãã ã¡ãã¬ãŒã§ã®éçºã«ãèå³ããæ¹ã¯ããã¡ããã芧ãã ããã ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®æ¥äžã§ããã€ã³ã¿ãŒã³ãçµãŠæ°åãšããŠã¡ãã¬ãŒã«å
¥ããçŸåšã¯ 1 幎çãšã³ãžãã¢ãšã㊠ãªã³ã©ã€ã³èšºçã¢ã㪠CLINICS ã®éçºãæ
åœããŠããŸããå
æ¥éçºæ¬éšã§ããã¯ãªãåå®¿ãæ²³å£æ¹ã§è¡ã£ãŠããŸããã®ã§ã詳现ãã¬ããŒãããŸãã 幎å§ã®ããã¯ãªããå宿ã§è¡ãæå³ ã¡ãã¬ãŒã®éçºæ¬éšã§ã¯ãããŒã ãã«ãã£ã³ã°ãç®çãšããŠããŒããã¥ãŒãªã©å
šäœã§ãªãã¬ãã·ã¥ãããæ©äŒãå¹Žã«æ°åèšããŠããŸãã ãã®ãªãã¬ãã·ã¥ã®äžç°ãšããŠè¡ã£ãŠããã¡ãã¬ãŒã®ã幎å§ã®ããã¯ãªãå宿ãã¯ãæšå¹Žããè¡ãããŠããŸããæšå¹Žã®ã¬ããŒã㯠ãã¡ã ã«ãããŸãã ã¡ãã¬ãŒéçºæ¬éšå
šäœã®ããã¯ãªããå宿ã§è¡ãæå³ã¯äž»ã«äºã€ãããŸãã 芪çŠãæ·±ãã äžã€ç®ã®çç±ã¯èŠªçŠãæ·±ããããšã«ãããŸãã ãªãã¬ãã·ã¥ãå
Œãã äžäœæã®éžæã飿ºã»èŠªå¯æãæ·±ããå Ž ã宿çã«çšæããããã«ããŠããŸããå®éã«å宿ãçµããŠæ¯ãè¿ã£ãŠã¿ãŠãã åå®¿ã¯æ¥åžžããå¯ãªäº€æµãããå ŽãšããŠæé« ã ã£ããªãšæããŸãã æ¹åæ§ã®å
±æ äºã€ç®ã®çç±ã¯æ¹åæ§ã®å
±æã®ããã§ãã æšå¹Žã®å宿ã§ã¯ãä»åŸã©ããã£ãæ¹åãäŒç€ŸãšããŠããŸãåãããã¯ããšããŠç®æããŠè¡ãã®ããšãã£ã話ã CTO ã»å¹³å±±ããå
±æããŸãããæ®æ®µã®æ¥åããé¢ããå Žæã§ãããã話ã«åãåãããšããæå³ã§ã å
±éã®è»žããã匷ãæã€ããã«ã¯å宿ãé©å ã ãšå®æããä»å¹Žãå宿ãè¡ãããšã«ãªããŸããã å宿å
ã»ã¢ã¯ãã£ããã£ã®éžå® ããããéçºå宿ã§ã¯ãªãã£ããããéžå®ã«ã¯æ¬¡ã®é
ç®ãéèŠããŸããã äºåæ°åãå容ã§ãããã£ãã·ãã£ãããããš ãã©ã€ããŒãã§ãè¡ããããæãåºã«ãªããããªå Žæã§ããããš ã¢ã¯ãã£ããã£ãè¿ãã«ããããš +α ã§ããŒããã¥ãŒãªã©ãã§ããããš äžèšã®æ¡ä»¶ããã¹ãŠæºãããå Žæã調æ»ããŸããããã宿ã¯ãããã¢ã¯ãã£ããã£ããªãããã¢ã¯ãã£ããã£ã¯ããã宿ããªããã®ããã«ãªããªãããããããšããããªãèŠåŽããŸããã æçµçã«ã¯ãããå
šãŠã«ãããããå
ãšããŠã宿æ³å
ã æ²³å£æ¹ã«ã³ããªãŒã³ããŒãž ãã ã«ãã¢ã¯ãã£ããã£ã¯ ã«ã³ããªãŒã¬ã€ã¯ã·ã¹ãã 㺠ãã ã«ãäžè©±ã«ãªãããšã«ããŸããã ãŸããã¢ã¯ãã£ããã£ã«é¢ããŠã¯ãã«ããŒäœéšãã»ããšãã¥ãããªã©æ§ã
ãªãã®ãçšæãããŠããŸããããæ¬¡ã®èгç¹ãã æŽçªæ¢æ€ ãéžæããŸããã æ®æ®µåº§ãã£ã±ãªããªã®ã§ãéåãè¡ããããš æ°ããåºæ¿ãåããããããã«ãéæ¥åžžæãäœéšã§ããããš ã¡ã³ããŒã®æ®æ®µèŠããªãæ§åãã§ãŠããããªã髿æã®é«ãŸãå Žæã§ããããš éæ¥åžžãªäœéšãã§ããæŽçªæ¢æ€ åœæ¥ãæ²³å£æ¹é§
ã«éåããåŸã¯ãŸãã¢ã¯ãã£ããã£ã«æã¿ãŸããã ã¿ããªã§éæ¥åžžãäœéšãããªãã¬ãã·ã¥ããŠãããããšéžæãããã®ã§ããããç§ãå«ãæŽçªæ¢æ€ããã人ã¯ããããã©ããã£ããã®ã ãããšã¯ã¯ã¯ã¯ããªããå¯å£«ã®æš¹æµ·ãæ£çããŸããã ä»åäœéšããæŽçªã¯å¯å£«ã®éæšã¶å暹海ã«ãã å¯å£«é¢šç©Ž ãåããŠæ¬æ ŒçãªæŽçªãèŠãæã
ã¯æ¯ãåããããªé¢šæ¯ã«å§åãããŸããã å
æ¥ã®é±åã¡ãã¬ãŒ ã§æ²èŒãããåçã¯ãŸãã«æŽçªã«å
¥ãããšããã¡ã³ããŒã§ããã æã£ã以äžã«æŽçªæã®ããæŽçªãå§¿ã衚ããããŒã£ãšãªããŸããã 倩äºã«é ãã¶ã€ããããæãã€ããŠæªæããããããå¯èœæ§ããããŸãããããã«ã¡ããã»æè¢ã»çã£èµ€ãªã€ãªããšãã£ãã°ããºãã¬ã³ã¿ã«ã§ããã®ã§ããã¹ãŠè£
çããŠæŽçªã«æã¿ãŸããã æŽçªã®äžã¯æãããéæ®µã®ãªããèªç¶ãã®ãŸãŸã®æŽçªãããã岩ãããåºãã§å€©äºãäœãã£ããããã®ã§æã£ã以äžã«è£
åã圹ã«ç«ã¡ãŸããã æ°·æ±ãããäžãå¥¥ã®æ¹ãŸã§é²ãã¡ã³ã㌠æŽçªãšããã°æ°·æ±ïŒãšæã£ãŠããã®ã§ãããã¡ããã©æ°æ¥åã«éšãéã£ã圱é¿ã§ãæ®æ®µããè¶³å
ã倩äºããæ°·æ±ãããããçããŠããã®ã§è§Šã£ãŠã¿ãããåããŠã®çµéšã°ããã§ããã æ°·ãå€ã圱é¿ã§æ»ããããããšããããŸããããã¬ã€ããããšå
è¡ããŠããã¡ã³ããŒããã®å©èšã«å©ãããã€ã€é²ãããšãã§ããŸããã ç¡äºã«çéããŸããïŒ æ®æ®µã¯äžç·ã«ä»äºãããŠãã仲éãšäŒç€Ÿã§ã¯ãªãæŽçªãšãã空éã§äžç·ã«ãããšããäžæè°ãªç¶æ³ãšãé©åºŠãªéåã®ãããæ°åã¯é«æããæ®æ®µã¯èŠãããªããããªååã®äžé¢ãèŠãããšãã§ããè¯ãçµéšã«ãªã£ããšæããŸãã 2018 幎ã®éçºæ¬éšããã¯ãªãïŒ ã¢ã¯ãã£ããã£ã§é©åºŠã«éåãããåŸã¯ã³ããŒãžã«ç§»ããå°ããã€ãé
ã飲ãã§ãã€ããå§ããã¿ã€ãã³ã°ã§ã2018 幎ã®ããã¯ãªããšã㊠CTO ã»å¹³å±±ã«ãããã¬ãŒã³ãè¡ããŸããã æšå¹Ž 2017 幎ã¯åã€ã®ãããã¯ãã®ãã¡ãžã§ãã¡ãã¬ãŒã» MEDLEY ã» CLINICS ã®å€§èŠæš¡ãªãã¥ãŒã¢ã«ãããã倧ããªå€åã®å¹ŽãšãªããŸããã ãŸããä»åŸã©ããã£ãäŒç€Ÿã«ããŠãããããïŒå»çæ¥çã«ã©ããã£ãåœ¢ã§æã
ãè²¢ç®ããŠããã®ãïŒãããŠãã®ããã«äºæ¥ãšããŠããŸããããã¯ããšã㊠2018 幎ã¯ã©ããã£ãäœå¶ã§æšé²ããŠããã®ããšãã£ãäºæãå
±æãããŸããã ãªãããã®ãïŒã©ããã£ãŠããã®ãïŒãšãã£ãæ ¹æ¬çãªæéãèæ¯ãå
ã«å
±æããŠãããããšã§ãä»åŸã®ä»äºã«ãããäžã€ã®è»žãã§ããããã¯ãªãã«ãªã£ãããšæããŸãã ç§èªèº«äžå¹Žé CLINICS ã«é¢ãã£ãŠãããããèèº«ã§æããŠããå€åãèŠåŽãæãåºãã€ã€ããããã¯ãã»äºæ¥ãçå®ã«æé·ããŠããããšãæããããšãã§ããæ¬¡ã®æéã確èªããè¯ãæ©äŒãšãªããŸããã 平山ã®ãããã¯ãã»äºæ¥ã»äŒç€Ÿã«å¯Ÿããç±ãæã㯠ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž ã«ãæžãããŠããŸãã®ã§ããã²ã芧ãã ããã ããŒããã¥ãŒ&飲㿠ããã¯ãªãåŸã¯ããŒããã¥ãŒïŒãããŠé£²ã¿ïŒ ç«ã«åŒ·ãã¡ã³ããŒã¯èãçŒããããæçãåŸæãªã¡ã³ããŒã¯çŒããã°ããã¹ã¿ãäœã£ãŠã¯é£ã¹ãŠé£²ãã§è«ç¬ããæãæãã«åå®¿ãæ¥œããã§ããŸããã ãŸãã¯èãçŒãç«ã«åŒ·ãã¡ã³ã㌠è«ç¬ããã¡ã³ããŒïŒé
ããåããã³ãããã±æ°å³ïŒ æãæãã«ãã€ããã¡ã³ã㌠äœè«ã§ãããäžã®ç»åã§å
šå¡ãçãŠããç°è²ã®ããŒã«ãŒã¯ããã¯ãªãçŽåã«é
ãããã¡ãã¬ãŒãªãã£ã·ã£ã«ã°ããºã®äžã€ã ãã¶ã€ã³éšé·ã»ããšã ããã¶ã€ã³ããã¡ãã¬ãŒããŒã«ãŒã§ãã å®ã¯ã¡ãã¬ãŒã§ã¯ããŒã«ãŒä»¥å€ã«ããã¡ãã T ã·ã£ããçµåµèãªã©ã°ããºãå¢ããŠããŸãã æ°ãã€ãããå¢ããŠããã®ã§åéã¯å€§å€ã§ãããä»å¹Žã¯ã©ããã£ãã°ããºãäœãããã®ãä»ããæ¥œãã¿ã§ãã ã¡ã³ããŒå士ã§é£²ãã§é£ã¹ãŠãã€ãããªããããããã¯ããžã®æãããã©ã€ããŒãã®è©±ãªã©ãèªãåã宎äŒãå€é
ããŸã§ç¶ããŸããã ãŸãšã ãããã ã£ãã§ããããïŒã¡ãã¬ãŒéçºæ¬éšã®ããã¯ãªãåå®¿ã®æ§åãå°ãã§ãäŒããã°å¹žãã§ãã ã¢ã¯ãã£ããã£ãããŒããã¥ãŒãéããŠãã芪å¯ã«ããã¬ãŒã³ãéããŠèªèã®å
±æãã§ããè¯ãå宿ã«ãªã£ããšæããŸãã ãªããä»åã®å®¿æ³å
㯠倧人æ°ã§ã察å¿å¯èœãªã³ããŒãžãçšæãã ããŸã Wi-Fi ãªã©ã®éä¿¡èšåãæŽããåä»ã®æ¹ã®å¯Ÿå¿ãäžå¯§ã§ããã©ã€ããŒãã§ãå©çšããããªãçŽ æµãªå®¿ã§ããã éçºå宿çã®å€§äººæ°ã§ã®å®¿ãæ¢ããŠããæ¹ã«ãåèã«ãªãã°å¹žãã§ãã æåŸã« æåŸã«ãªããŸããããä»åã®å宿ã®äŒç»éå¶ããªãŒãããŠãããæ°å±
ããããããšãããããŸããïŒ æ¥å¹ŽãŸãããã¯ãªãå宿ãããã§ããïŒïŒCTO ãæ®åœ±ããŠãããã®ã§ãCTO äžåšã®éååçïŒ ã¡ãã¬ãŒã§ã¯ãããŒã ã§æ°ããå»çäœéšãæäŸãããããã¯ããäžç·ã«åµããã£ã¬ã¯ã¿ãŒããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãã ãèå³ããæ¹ã¯ããŸãã¯ãæ°è»œã«è©±ãèãã«ãè¶ããã ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®æ¥äžã§ããã€ã³ã¿ãŒã³ãçµãŠæ°åãšããŠã¡ãã¬ãŒã«å
¥ããçŸåšã¯ 1 幎çãšã³ãžãã¢ãšã㊠ãªã³ã©ã€ã³èšºçã¢ã㪠CLINICS ã®éçºãæ
åœããŠããŸããå
æ¥éçºæ¬éšã§ããã¯ãªãåå®¿ãæ²³å£æ¹ã§è¡ã£ãŠããŸããã®ã§ã詳现ãã¬ããŒãããŸãã 幎å§ã®ããã¯ãªããå宿ã§è¡ãæå³ ã¡ãã¬ãŒã®éçºæ¬éšã§ã¯ãããŒã ãã«ãã£ã³ã°ãç®çãšããŠããŒããã¥ãŒãªã©å
šäœã§ãªãã¬ãã·ã¥ãããæ©äŒãå¹Žã«æ°åèšããŠããŸãã ãã®ãªãã¬ãã·ã¥ã®äžç°ãšããŠè¡ã£ãŠããã¡ãã¬ãŒã®ã幎å§ã®ããã¯ãªãå宿ãã¯ãæšå¹Žããè¡ãããŠããŸããæšå¹Žã®ã¬ããŒã㯠ãã¡ã ã«ãããŸãã ã¡ãã¬ãŒéçºæ¬éšå
šäœã®ããã¯ãªããå宿ã§è¡ãæå³ã¯äž»ã«äºã€ãããŸãã 芪çŠãæ·±ãã äžã€ç®ã®çç±ã¯èŠªçŠãæ·±ããããšã«ãããŸãã ãªãã¬ãã·ã¥ãå
Œãã äžäœæã®éžæã飿ºã»èŠªå¯æãæ·±ããå Ž ã宿çã«çšæããããã«ããŠããŸããå®éã«å宿ãçµããŠæ¯ãè¿ã£ãŠã¿ãŠãã åå®¿ã¯æ¥åžžããå¯ãªäº€æµãããå ŽãšããŠæé« ã ã£ããªãšæããŸãã æ¹åæ§ã®å
±æ äºã€ç®ã®çç±ã¯æ¹åæ§ã®å
±æã®ããã§ãã æšå¹Žã®å宿ã§ã¯ãä»åŸã©ããã£ãæ¹åãäŒç€ŸãšããŠããŸãåãããã¯ããšããŠç®æããŠè¡ãã®ããšãã£ã話ã CTO ã»å¹³å±±ããå
±æããŸãããæ®æ®µã®æ¥åããé¢ããå Žæã§ãããã話ã«åãåãããšããæå³ã§ã å
±éã®è»žããã匷ãæã€ããã«ã¯å宿ãé©å ã ãšå®æããä»å¹Žãå宿ãè¡ãããšã«ãªããŸããã å宿å
ã»ã¢ã¯ãã£ããã£ã®éžå® ããããéçºå宿ã§ã¯ãªãã£ããããéžå®ã«ã¯æ¬¡ã®é
ç®ãéèŠããŸããã äºåæ°åãå容ã§ãããã£ãã·ãã£ãããããš ãã©ã€ããŒãã§ãè¡ããããæãåºã«ãªããããªå Žæã§ããããš ã¢ã¯ãã£ããã£ãè¿ãã«ããããš +α ã§ããŒããã¥ãŒãªã©ãã§ããããš äžèšã®æ¡ä»¶ããã¹ãŠæºãããå Žæã調æ»ããŸããããã宿ã¯ãããã¢ã¯ãã£ããã£ããªãããã¢ã¯ãã£ããã£ã¯ããã宿ããªããã®ããã«ãªããªãããããããšããããªãèŠåŽããŸããã æçµçã«ã¯ãããå
šãŠã«ãããããå
ãšããŠã宿æ³å
ã æ²³å£æ¹ã«ã³ããªãŒã³ããŒãž ãã ã«ãã¢ã¯ãã£ããã£ã¯ ã«ã³ããªãŒã¬ã€ã¯ã·ã¹ãã 㺠ãã ã«ãäžè©±ã«ãªãããšã«ããŸããã ãŸããã¢ã¯ãã£ããã£ã«é¢ããŠã¯ãã«ããŒäœéšãã»ããšãã¥ãããªã©æ§ã
ãªãã®ãçšæãããŠããŸããããæ¬¡ã®èгç¹ãã æŽçªæ¢æ€ ãéžæããŸããã æ®æ®µåº§ãã£ã±ãªããªã®ã§ãéåãè¡ããããš æ°ããåºæ¿ãåããããããã«ãéæ¥åžžæãäœéšã§ããããš ã¡ã³ããŒã®æ®æ®µèŠããªãæ§åãã§ãŠããããªã髿æã®é«ãŸãå Žæã§ããããš éæ¥åžžãªäœéšãã§ããæŽçªæ¢æ€ åœæ¥ãæ²³å£æ¹é§
ã«éåããåŸã¯ãŸãã¢ã¯ãã£ããã£ã«æã¿ãŸããã ã¿ããªã§éæ¥åžžãäœéšãããªãã¬ãã·ã¥ããŠãããããšéžæãããã®ã§ããããç§ãå«ãæŽçªæ¢æ€ããã人ã¯ããããã©ããã£ããã®ã ãããšã¯ã¯ã¯ã¯ããªããå¯å£«ã®æš¹æµ·ãæ£çããŸããã ä»åäœéšããæŽçªã¯å¯å£«ã®éæšã¶å暹海ã«ãã å¯å£«é¢šç©Ž ãåããŠæ¬æ ŒçãªæŽçªãèŠãæã
ã¯æ¯ãåããããªé¢šæ¯ã«å§åãããŸããã å
æ¥ã®é±åã¡ãã¬ãŒ ã§æ²èŒãããåçã¯ãŸãã«æŽçªã«å
¥ãããšããã¡ã³ããŒã§ããã æã£ã以äžã«æŽçªæã®ããæŽçªãå§¿ã衚ããããŒã£ãšãªããŸããã 倩äºã«é ãã¶ã€ããããæãã€ããŠæªæããããããå¯èœæ§ããããŸãããããã«ã¡ããã»æè¢ã»çã£èµ€ãªã€ãªããšãã£ãã°ããºãã¬ã³ã¿ã«ã§ããã®ã§ããã¹ãŠè£
çããŠæŽçªã«æã¿ãŸããã æŽçªã®äžã¯æãããéæ®µã®ãªããèªç¶ãã®ãŸãŸã®æŽçªãããã岩ãããåºãã§å€©äºãäœãã£ããããã®ã§æã£ã以äžã«è£
åã圹ã«ç«ã¡ãŸããã æ°·æ±ãããäžãå¥¥ã®æ¹ãŸã§é²ãã¡ã³ã㌠æŽçªãšããã°æ°·æ±ïŒãšæã£ãŠããã®ã§ãããã¡ããã©æ°æ¥åã«éšãéã£ã圱é¿ã§ãæ®æ®µããè¶³å
ã倩äºããæ°·æ±ãããããçããŠããã®ã§è§Šã£ãŠã¿ãããåããŠã®çµéšã°ããã§ããã æ°·ãå€ã圱é¿ã§æ»ããããããšããããŸããããã¬ã€ããããšå
è¡ããŠããã¡ã³ããŒããã®å©èšã«å©ãããã€ã€é²ãããšãã§ããŸããã ç¡äºã«çéããŸããïŒ æ®æ®µã¯äžç·ã«ä»äºãããŠãã仲éãšäŒç€Ÿã§ã¯ãªãæŽçªãšãã空éã§äžç·ã«ãããšããäžæè°ãªç¶æ³ãšãé©åºŠãªéåã®ãããæ°åã¯é«æããæ®æ®µã¯èŠãããªããããªååã®äžé¢ãèŠãããšãã§ããè¯ãçµéšã«ãªã£ããšæããŸãã 2018 幎ã®éçºæ¬éšããã¯ãªãïŒ ã¢ã¯ãã£ããã£ã§é©åºŠã«éåãããåŸã¯ã³ããŒãžã«ç§»ããå°ããã€ãé
ã飲ãã§ãã€ããå§ããã¿ã€ãã³ã°ã§ã2018 幎ã®ããã¯ãªããšã㊠CTO ã»å¹³å±±ã«ãããã¬ãŒã³ãè¡ããŸããã æšå¹Ž 2017 幎ã¯åã€ã®ãããã¯ãã®ãã¡ãžã§ãã¡ãã¬ãŒã» MEDLEY ã» CLINICS ã®å€§èŠæš¡ãªãã¥ãŒã¢ã«ãããã倧ããªå€åã®å¹ŽãšãªããŸããã ãŸããä»åŸã©ããã£ãäŒç€Ÿã«ããŠãããããïŒå»çæ¥çã«ã©ããã£ãåœ¢ã§æã
ãè²¢ç®ããŠããã®ãïŒãããŠãã®ããã«äºæ¥ãšããŠããŸããããã¯ããšã㊠2018 幎ã¯ã©ããã£ãäœå¶ã§æšé²ããŠããã®ããšãã£ãäºæãå
±æãããŸããã ãªãããã®ãïŒã©ããã£ãŠããã®ãïŒãšãã£ãæ ¹æ¬çãªæéãèæ¯ãå
ã«å
±æããŠãããããšã§ãä»åŸã®ä»äºã«ãããäžã€ã®è»žãã§ããããã¯ãªãã«ãªã£ãããšæããŸãã ç§èªèº«äžå¹Žé CLINICS ã«é¢ãã£ãŠãããããèèº«ã§æããŠããå€åãèŠåŽãæãåºãã€ã€ããããã¯ãã»äºæ¥ãçå®ã«æé·ããŠããããšãæããããšãã§ããæ¬¡ã®æéã確èªããè¯ãæ©äŒãšãªããŸããã 平山ã®ãããã¯ãã»äºæ¥ã»äŒç€Ÿã«å¯Ÿããç±ãæã㯠ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž ã«ãæžãããŠããŸãã®ã§ããã²ã芧ãã ããã ããŒããã¥ãŒ&飲㿠ããã¯ãªãåŸã¯ããŒããã¥ãŒïŒãããŠé£²ã¿ïŒ ç«ã«åŒ·ãã¡ã³ããŒã¯èãçŒããããæçãåŸæãªã¡ã³ããŒã¯çŒããã°ããã¹ã¿ãäœã£ãŠã¯é£ã¹ãŠé£²ãã§è«ç¬ããæãæãã«åå®¿ãæ¥œããã§ããŸããã ãŸãã¯èãçŒãç«ã«åŒ·ãã¡ã³ã㌠è«ç¬ããã¡ã³ããŒïŒé
ããåããã³ãããã±æ°å³ïŒ æãæãã«ãã€ããã¡ã³ã㌠äœè«ã§ãããäžã®ç»åã§å
šå¡ãçãŠããç°è²ã®ããŒã«ãŒã¯ããã¯ãªãçŽåã«é
ãããã¡ãã¬ãŒãªãã£ã·ã£ã«ã°ããºã®äžã€ã ãã¶ã€ã³éšé·ã»ããšã ããã¶ã€ã³ããã¡ãã¬ãŒããŒã«ãŒã§ãã å®ã¯ã¡ãã¬ãŒã§ã¯ããŒã«ãŒä»¥å€ã«ããã¡ãã T ã·ã£ããçµåµèãªã©ã°ããºãå¢ããŠããŸãã æ°ãã€ãããå¢ããŠããã®ã§åéã¯å€§å€ã§ãããä»å¹Žã¯ã©ããã£ãã°ããºãäœãããã®ãä»ããæ¥œãã¿ã§ãã ã¡ã³ããŒå士ã§é£²ãã§é£ã¹ãŠãã€ãããªããããããã¯ããžã®æãããã©ã€ããŒãã®è©±ãªã©ãèªãåã宎äŒãå€é
ããŸã§ç¶ããŸããã ãŸãšã ãããã ã£ãã§ããããïŒã¡ãã¬ãŒéçºæ¬éšã®ããã¯ãªãåå®¿ã®æ§åãå°ãã§ãäŒããã°å¹žãã§ãã ã¢ã¯ãã£ããã£ãããŒããã¥ãŒãéããŠãã芪å¯ã«ããã¬ãŒã³ãéããŠèªèã®å
±æãã§ããè¯ãå宿ã«ãªã£ããšæããŸãã ãªããä»åã®å®¿æ³å
㯠倧人æ°ã§ã察å¿å¯èœãªã³ããŒãžãçšæãã ããŸã Wi-Fi ãªã©ã®éä¿¡èšåãæŽããåä»ã®æ¹ã®å¯Ÿå¿ãäžå¯§ã§ããã©ã€ããŒãã§ãå©çšããããªãçŽ æµãªå®¿ã§ããã éçºå宿çã®å€§äººæ°ã§ã®å®¿ãæ¢ããŠããæ¹ã«ãåèã«ãªãã°å¹žãã§ãã æåŸã« æåŸã«ãªããŸããããä»åã®å宿ã®äŒç»éå¶ããªãŒãããŠãããæ°å±
ããããããšãããããŸããïŒ æ¥å¹ŽãŸãããã¯ãªãå宿ãããã§ããïŒïŒCTO ãæ®åœ±ããŠãããã®ã§ãCTO äžåšã®éååçïŒ ã¡ãã¬ãŒã§ã¯ãããŒã ã§æ°ããå»çäœéšãæäŸãããããã¯ããäžç·ã«åµããã£ã¬ã¯ã¿ãŒããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãã ãèå³ããæ¹ã¯ããŸãã¯ãæ°è»œã«è©±ãèãã«ãè¶ããã ããïŒ https://www.medley.jp/recruit/creative.html
ããã«ã¡ã¯ãéçºæ¬éšã®æ¥äžã§ããã€ã³ã¿ãŒã³ãçµãŠæ°åãšããŠã¡ãã¬ãŒã«å
¥ããçŸåšã¯ 1 幎çãšã³ãžãã¢ãšã㊠ãªã³ã©ã€ã³èšºçã¢ã㪠CLINICS ã®éçºãæ
åœããŠããŸããå
æ¥éçºæ¬éšã§ããã¯ãªãåå®¿ãæ²³å£æ¹ã§è¡ã£ãŠããŸããã®ã§ã詳现ãã¬ããŒãããŸãã 幎å§ã®ããã¯ãªããå宿ã§è¡ãæå³ ã¡ãã¬ãŒã®éçºæ¬éšã§ã¯ãããŒã ãã«ãã£ã³ã°ãç®çãšããŠããŒããã¥ãŒãªã©å
šäœã§ãªãã¬ãã·ã¥ãããæ©äŒãå¹Žã«æ°åèšããŠããŸãã ãã®ãªãã¬ãã·ã¥ã®äžç°ãšããŠè¡ã£ãŠããã¡ãã¬ãŒã®ã幎å§ã®ããã¯ãªãå宿ãã¯ãæšå¹Žããè¡ãããŠããŸããæšå¹Žã®ã¬ããŒã㯠ãã¡ã ã«ãããŸãã ã¡ãã¬ãŒéçºæ¬éšå
šäœã®ããã¯ãªããå宿ã§è¡ãæå³ã¯äž»ã«äºã€ãããŸãã 芪çŠãæ·±ãã äžã€ç®ã®çç±ã¯èŠªçŠãæ·±ããããšã«ãããŸãã ãªãã¬ãã·ã¥ãå
Œãã äžäœæã®éžæã飿ºã»èŠªå¯æãæ·±ããå Ž ã宿çã«çšæããããã«ããŠããŸããå®éã«å宿ãçµããŠæ¯ãè¿ã£ãŠã¿ãŠãã åå®¿ã¯æ¥åžžããå¯ãªäº€æµãããå ŽãšããŠæé« ã ã£ããªãšæããŸãã æ¹åæ§ã®å
±æ äºã€ç®ã®çç±ã¯æ¹åæ§ã®å
±æã®ããã§ãã æšå¹Žã®å宿ã§ã¯ãä»åŸã©ããã£ãæ¹åãäŒç€ŸãšããŠããŸãåãããã¯ããšããŠç®æããŠè¡ãã®ããšãã£ã話ã CTO ã»å¹³å±±ããå
±æããŸãããæ®æ®µã®æ¥åããé¢ããå Žæã§ãããã話ã«åãåãããšããæå³ã§ã å
±éã®è»žããã匷ãæã€ããã«ã¯å宿ãé©å ã ãšå®æããä»å¹Žãå宿ãè¡ãããšã«ãªããŸããã å宿å
ã»ã¢ã¯ãã£ããã£ã®éžå® ããããéçºå宿ã§ã¯ãªãã£ããããéžå®ã«ã¯æ¬¡ã®é
ç®ãéèŠããŸããã äºåæ°åãå容ã§ãããã£ãã·ãã£ãããããš ãã©ã€ããŒãã§ãè¡ããããæãåºã«ãªããããªå Žæã§ããããš ã¢ã¯ãã£ããã£ãè¿ãã«ããããš +α ã§ããŒããã¥ãŒãªã©ãã§ããããš äžèšã®æ¡ä»¶ããã¹ãŠæºãããå Žæã調æ»ããŸããããã宿ã¯ãããã¢ã¯ãã£ããã£ããªãããã¢ã¯ãã£ããã£ã¯ããã宿ããªããã®ããã«ãªããªãããããããšããããªãèŠåŽããŸããã æçµçã«ã¯ãããå
šãŠã«ãããããå
ãšããŠã宿æ³å
ã æ²³å£æ¹ã«ã³ããªãŒã³ããŒãž ãã ã«ãã¢ã¯ãã£ããã£ã¯ ã«ã³ããªãŒã¬ã€ã¯ã·ã¹ãã 㺠ãã ã«ãäžè©±ã«ãªãããšã«ããŸããã ãŸããã¢ã¯ãã£ããã£ã«é¢ããŠã¯ãã«ããŒäœéšãã»ããšãã¥ãããªã©æ§ã
ãªãã®ãçšæãããŠããŸããããæ¬¡ã®èгç¹ãã æŽçªæ¢æ€ ãéžæããŸããã æ®æ®µåº§ãã£ã±ãªããªã®ã§ãéåãè¡ããããš æ°ããåºæ¿ãåããããããã«ãéæ¥åžžæãäœéšã§ããããš ã¡ã³ããŒã®æ®æ®µèŠããªãæ§åãã§ãŠããããªã髿æã®é«ãŸãå Žæã§ããããš éæ¥åžžãªäœéšãã§ããæŽçªæ¢æ€ åœæ¥ãæ²³å£æ¹é§
ã«éåããåŸã¯ãŸãã¢ã¯ãã£ããã£ã«æã¿ãŸããã ã¿ããªã§éæ¥åžžãäœéšãããªãã¬ãã·ã¥ããŠãããããšéžæãããã®ã§ããããç§ãå«ãæŽçªæ¢æ€ããã人ã¯ããããã©ããã£ããã®ã ãããšã¯ã¯ã¯ã¯ããªããå¯å£«ã®æš¹æµ·ãæ£çããŸããã ä»åäœéšããæŽçªã¯å¯å£«ã®éæšã¶å暹海ã«ãã å¯å£«é¢šç©Ž ãåããŠæ¬æ ŒçãªæŽçªãèŠãæã
ã¯æ¯ãåããããªé¢šæ¯ã«å§åãããŸããã å
æ¥ã®é±åã¡ãã¬ãŒ ã§æ²èŒãããåçã¯ãŸãã«æŽçªã«å
¥ãããšããã¡ã³ããŒã§ããã æã£ã以äžã«æŽçªæã®ããæŽçªãå§¿ã衚ããããŒã£ãšãªããŸããã 倩äºã«é ãã¶ã€ããããæãã€ããŠæªæããããããå¯èœæ§ããããŸãããããã«ã¡ããã»æè¢ã»çã£èµ€ãªã€ãªããšãã£ãã°ããºãã¬ã³ã¿ã«ã§ããã®ã§ããã¹ãŠè£
çããŠæŽçªã«æã¿ãŸããã æŽçªã®äžã¯æãããéæ®µã®ãªããèªç¶ãã®ãŸãŸã®æŽçªãããã岩ãããåºãã§å€©äºãäœãã£ããããã®ã§æã£ã以äžã«è£
åã圹ã«ç«ã¡ãŸããã æ°·æ±ãããäžãå¥¥ã®æ¹ãŸã§é²ãã¡ã³ã㌠æŽçªãšããã°æ°·æ±ïŒãšæã£ãŠããã®ã§ãããã¡ããã©æ°æ¥åã«éšãéã£ã圱é¿ã§ãæ®æ®µããè¶³å
ã倩äºããæ°·æ±ãããããçããŠããã®ã§è§Šã£ãŠã¿ãããåããŠã®çµéšã°ããã§ããã æ°·ãå€ã圱é¿ã§æ»ããããããšããããŸããããã¬ã€ããããšå
è¡ããŠããã¡ã³ããŒããã®å©èšã«å©ãããã€ã€é²ãããšãã§ããŸããã ç¡äºã«çéããŸããïŒ æ®æ®µã¯äžç·ã«ä»äºãããŠãã仲éãšäŒç€Ÿã§ã¯ãªãæŽçªãšãã空éã§äžç·ã«ãããšããäžæè°ãªç¶æ³ãšãé©åºŠãªéåã®ãããæ°åã¯é«æããæ®æ®µã¯èŠãããªããããªååã®äžé¢ãèŠãããšãã§ããè¯ãçµéšã«ãªã£ããšæããŸãã 2018 幎ã®éçºæ¬éšããã¯ãªãïŒ ã¢ã¯ãã£ããã£ã§é©åºŠã«éåãããåŸã¯ã³ããŒãžã«ç§»ããå°ããã€ãé
ã飲ãã§ãã€ããå§ããã¿ã€ãã³ã°ã§ã2018 幎ã®ããã¯ãªããšã㊠CTO ã»å¹³å±±ã«ãããã¬ãŒã³ãè¡ããŸããã æšå¹Ž 2017 幎ã¯åã€ã®ãããã¯ãã®ãã¡ãžã§ãã¡ãã¬ãŒã» MEDLEY ã» CLINICS ã®å€§èŠæš¡ãªãã¥ãŒã¢ã«ãããã倧ããªå€åã®å¹ŽãšãªããŸããã ãŸããä»åŸã©ããã£ãäŒç€Ÿã«ããŠãããããïŒå»çæ¥çã«ã©ããã£ãåœ¢ã§æã
ãè²¢ç®ããŠããã®ãïŒãããŠãã®ããã«äºæ¥ãšããŠããŸããããã¯ããšã㊠2018 幎ã¯ã©ããã£ãäœå¶ã§æšé²ããŠããã®ããšãã£ãäºæãå
±æãããŸããã ãªãããã®ãïŒã©ããã£ãŠããã®ãïŒãšãã£ãæ ¹æ¬çãªæéãèæ¯ãå
ã«å
±æããŠãããããšã§ãä»åŸã®ä»äºã«ãããäžã€ã®è»žãã§ããããã¯ãªãã«ãªã£ãããšæããŸãã ç§èªèº«äžå¹Žé CLINICS ã«é¢ãã£ãŠãããããèèº«ã§æããŠããå€åãèŠåŽãæãåºãã€ã€ããããã¯ãã»äºæ¥ãçå®ã«æé·ããŠããããšãæããããšãã§ããæ¬¡ã®æéã確èªããè¯ãæ©äŒãšãªããŸããã 平山ã®ãããã¯ãã»äºæ¥ã»äŒç€Ÿã«å¯Ÿããç±ãæã㯠ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž ã«ãæžãããŠããŸãã®ã§ããã²ã芧ãã ããã ããŒããã¥ãŒ&飲㿠ããã¯ãªãåŸã¯ããŒããã¥ãŒïŒãããŠé£²ã¿ïŒ ç«ã«åŒ·ãã¡ã³ããŒã¯èãçŒããããæçãåŸæãªã¡ã³ããŒã¯çŒããã°ããã¹ã¿ãäœã£ãŠã¯é£ã¹ãŠé£²ãã§è«ç¬ããæãæãã«åå®¿ãæ¥œããã§ããŸããã ãŸãã¯èãçŒãç«ã«åŒ·ãã¡ã³ã㌠è«ç¬ããã¡ã³ããŒïŒé
ããåããã³ãããã±æ°å³ïŒ æãæãã«ãã€ããã¡ã³ã㌠äœè«ã§ãããäžã®ç»åã§å
šå¡ãçãŠããç°è²ã®ããŒã«ãŒã¯ããã¯ãªãçŽåã«é
ãããã¡ãã¬ãŒãªãã£ã·ã£ã«ã°ããºã®äžã€ã ãã¶ã€ã³éšé·ã»ããšã ããã¶ã€ã³ããã¡ãã¬ãŒããŒã«ãŒã§ãã å®ã¯ã¡ãã¬ãŒã§ã¯ããŒã«ãŒä»¥å€ã«ããã¡ãã T ã·ã£ããçµåµèãªã©ã°ããºãå¢ããŠããŸãã æ°ãã€ãããå¢ããŠããã®ã§åéã¯å€§å€ã§ãããä»å¹Žã¯ã©ããã£ãã°ããºãäœãããã®ãä»ããæ¥œãã¿ã§ãã ã¡ã³ããŒå士ã§é£²ãã§é£ã¹ãŠãã€ãããªããããããã¯ããžã®æãããã©ã€ããŒãã®è©±ãªã©ãèªãåã宎äŒãå€é
ããŸã§ç¶ããŸããã ãŸãšã ãããã ã£ãã§ããããïŒã¡ãã¬ãŒéçºæ¬éšã®ããã¯ãªãåå®¿ã®æ§åãå°ãã§ãäŒããã°å¹žãã§ãã ã¢ã¯ãã£ããã£ãããŒããã¥ãŒãéããŠãã芪å¯ã«ããã¬ãŒã³ãéããŠèªèã®å
±æãã§ããè¯ãå宿ã«ãªã£ããšæããŸãã ãªããä»åã®å®¿æ³å
㯠倧人æ°ã§ã察å¿å¯èœãªã³ããŒãžãçšæãã ããŸã Wi-Fi ãªã©ã®éä¿¡èšåãæŽããåä»ã®æ¹ã®å¯Ÿå¿ãäžå¯§ã§ããã©ã€ããŒãã§ãå©çšããããªãçŽ æµãªå®¿ã§ããã éçºå宿çã®å€§äººæ°ã§ã®å®¿ãæ¢ããŠããæ¹ã«ãåèã«ãªãã°å¹žãã§ãã æåŸã« æåŸã«ãªããŸããããä»åã®å宿ã®äŒç»éå¶ããªãŒãããŠãããæ°å±
ããããããšãããããŸããïŒ æ¥å¹ŽãŸãããã¯ãªãå宿ãããã§ããïŒïŒCTO ãæ®åœ±ããŠãããã®ã§ãCTO äžåšã®éååçïŒ ã¡ãã¬ãŒã§ã¯ãããŒã ã§æ°ããå»çäœéšãæäŸãããããã¯ããäžç·ã«åµããã£ã¬ã¯ã¿ãŒããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãã ãèå³ããæ¹ã¯ããŸãã¯ãæ°è»œã«è©±ãèãã«ãè¶ããã ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®æ¥äžã§ããã€ã³ã¿ãŒã³ãçµãŠæ°åãšããŠã¡ãã¬ãŒã«å
¥ããçŸåšã¯ 1 幎çãšã³ãžãã¢ãšã㊠ãªã³ã©ã€ã³èšºçã¢ã㪠CLINICS ã®éçºãæ
åœããŠããŸããå
æ¥éçºæ¬éšã§ããã¯ãªãåå®¿ãæ²³å£æ¹ã§è¡ã£ãŠããŸããã®ã§ã詳现ãã¬ããŒãããŸãã 幎å§ã®ããã¯ãªããå宿ã§è¡ãæå³ ã¡ãã¬ãŒã®éçºæ¬éšã§ã¯ãããŒã ãã«ãã£ã³ã°ãç®çãšããŠããŒããã¥ãŒãªã©å
šäœã§ãªãã¬ãã·ã¥ãããæ©äŒãå¹Žã«æ°åèšããŠããŸãã ãã®ãªãã¬ãã·ã¥ã®äžç°ãšããŠè¡ã£ãŠããã¡ãã¬ãŒã®ã幎å§ã®ããã¯ãªãå宿ãã¯ãæšå¹Žããè¡ãããŠããŸããæšå¹Žã®ã¬ããŒã㯠ãã¡ã ã«ãããŸãã ã¡ãã¬ãŒéçºæ¬éšå
šäœã®ããã¯ãªããå宿ã§è¡ãæå³ã¯äž»ã«äºã€ãããŸãã 芪çŠãæ·±ãã äžã€ç®ã®çç±ã¯èŠªçŠãæ·±ããããšã«ãããŸãã ãªãã¬ãã·ã¥ãå
Œãã äžäœæã®éžæã飿ºã»èŠªå¯æãæ·±ããå Ž ã宿çã«çšæããããã«ããŠããŸããå®éã«å宿ãçµããŠæ¯ãè¿ã£ãŠã¿ãŠãã åå®¿ã¯æ¥åžžããå¯ãªäº€æµãããå ŽãšããŠæé« ã ã£ããªãšæããŸãã æ¹åæ§ã®å
±æ äºã€ç®ã®çç±ã¯æ¹åæ§ã®å
±æã®ããã§ãã æšå¹Žã®å宿ã§ã¯ãä»åŸã©ããã£ãæ¹åãäŒç€ŸãšããŠããŸãåãããã¯ããšããŠç®æããŠè¡ãã®ããšãã£ã話ã CTO ã»å¹³å±±ããå
±æããŸãããæ®æ®µã®æ¥åããé¢ããå Žæã§ãããã話ã«åãåãããšããæå³ã§ã å
±éã®è»žããã匷ãæã€ããã«ã¯å宿ãé©å ã ãšå®æããä»å¹Žãå宿ãè¡ãããšã«ãªããŸããã å宿å
ã»ã¢ã¯ãã£ããã£ã®éžå® ããããéçºå宿ã§ã¯ãªãã£ããããéžå®ã«ã¯æ¬¡ã®é
ç®ãéèŠããŸããã äºåæ°åãå容ã§ãããã£ãã·ãã£ãããããš ãã©ã€ããŒãã§ãè¡ããããæãåºã«ãªããããªå Žæã§ããããš ã¢ã¯ãã£ããã£ãè¿ãã«ããããš +α ã§ããŒããã¥ãŒãªã©ãã§ããããš äžèšã®æ¡ä»¶ããã¹ãŠæºãããå Žæã調æ»ããŸããããã宿ã¯ãããã¢ã¯ãã£ããã£ããªãããã¢ã¯ãã£ããã£ã¯ããã宿ããªããã®ããã«ãªããªãããããããšããããªãèŠåŽããŸããã æçµçã«ã¯ãããå
šãŠã«ãããããå
ãšããŠã宿æ³å
ã æ²³å£æ¹ã«ã³ããªãŒã³ããŒãž ãã ã«ãã¢ã¯ãã£ããã£ã¯ ã«ã³ããªãŒã¬ã€ã¯ã·ã¹ãã 㺠ãã ã«ãäžè©±ã«ãªãããšã«ããŸããã ãŸããã¢ã¯ãã£ããã£ã«é¢ããŠã¯ãã«ããŒäœéšãã»ããšãã¥ãããªã©æ§ã
ãªãã®ãçšæãããŠããŸããããæ¬¡ã®èгç¹ãã æŽçªæ¢æ€ ãéžæããŸããã æ®æ®µåº§ãã£ã±ãªããªã®ã§ãéåãè¡ããããš æ°ããåºæ¿ãåããããããã«ãéæ¥åžžæãäœéšã§ããããš ã¡ã³ããŒã®æ®æ®µèŠããªãæ§åãã§ãŠããããªã髿æã®é«ãŸãå Žæã§ããããš éæ¥åžžãªäœéšãã§ããæŽçªæ¢æ€ åœæ¥ãæ²³å£æ¹é§
ã«éåããåŸã¯ãŸãã¢ã¯ãã£ããã£ã«æã¿ãŸããã ã¿ããªã§éæ¥åžžãäœéšãããªãã¬ãã·ã¥ããŠãããããšéžæãããã®ã§ããããç§ãå«ãæŽçªæ¢æ€ããã人ã¯ããããã©ããã£ããã®ã ãããšã¯ã¯ã¯ã¯ããªããå¯å£«ã®æš¹æµ·ãæ£çããŸããã ä»åäœéšããæŽçªã¯å¯å£«ã®éæšã¶å暹海ã«ãã å¯å£«é¢šç©Ž ãåããŠæ¬æ ŒçãªæŽçªãèŠãæã
ã¯æ¯ãåããããªé¢šæ¯ã«å§åãããŸããã å
æ¥ã®é±åã¡ãã¬ãŒ ã§æ²èŒãããåçã¯ãŸãã«æŽçªã«å
¥ãããšããã¡ã³ããŒã§ããã æã£ã以äžã«æŽçªæã®ããæŽçªãå§¿ã衚ããããŒã£ãšãªããŸããã 倩äºã«é ãã¶ã€ããããæãã€ããŠæªæããããããå¯èœæ§ããããŸãããããã«ã¡ããã»æè¢ã»çã£èµ€ãªã€ãªããšãã£ãã°ããºãã¬ã³ã¿ã«ã§ããã®ã§ããã¹ãŠè£
çããŠæŽçªã«æã¿ãŸããã æŽçªã®äžã¯æãããéæ®µã®ãªããèªç¶ãã®ãŸãŸã®æŽçªãããã岩ãããåºãã§å€©äºãäœãã£ããããã®ã§æã£ã以äžã«è£
åã圹ã«ç«ã¡ãŸããã æ°·æ±ãããäžãå¥¥ã®æ¹ãŸã§é²ãã¡ã³ã㌠æŽçªãšããã°æ°·æ±ïŒãšæã£ãŠããã®ã§ãããã¡ããã©æ°æ¥åã«éšãéã£ã圱é¿ã§ãæ®æ®µããè¶³å
ã倩äºããæ°·æ±ãããããçããŠããã®ã§è§Šã£ãŠã¿ãããåããŠã®çµéšã°ããã§ããã æ°·ãå€ã圱é¿ã§æ»ããããããšããããŸããããã¬ã€ããããšå
è¡ããŠããã¡ã³ããŒããã®å©èšã«å©ãããã€ã€é²ãããšãã§ããŸããã ç¡äºã«çéããŸããïŒ æ®æ®µã¯äžç·ã«ä»äºãããŠãã仲éãšäŒç€Ÿã§ã¯ãªãæŽçªãšãã空éã§äžç·ã«ãããšããäžæè°ãªç¶æ³ãšãé©åºŠãªéåã®ãããæ°åã¯é«æããæ®æ®µã¯èŠãããªããããªååã®äžé¢ãèŠãããšãã§ããè¯ãçµéšã«ãªã£ããšæããŸãã 2018 幎ã®éçºæ¬éšããã¯ãªãïŒ ã¢ã¯ãã£ããã£ã§é©åºŠã«éåãããåŸã¯ã³ããŒãžã«ç§»ããå°ããã€ãé
ã飲ãã§ãã€ããå§ããã¿ã€ãã³ã°ã§ã2018 幎ã®ããã¯ãªããšã㊠CTO ã»å¹³å±±ã«ãããã¬ãŒã³ãè¡ããŸããã æšå¹Ž 2017 幎ã¯åã€ã®ãããã¯ãã®ãã¡ãžã§ãã¡ãã¬ãŒã» MEDLEY ã» CLINICS ã®å€§èŠæš¡ãªãã¥ãŒã¢ã«ãããã倧ããªå€åã®å¹ŽãšãªããŸããã ãŸããä»åŸã©ããã£ãäŒç€Ÿã«ããŠãããããïŒå»çæ¥çã«ã©ããã£ãåœ¢ã§æã
ãè²¢ç®ããŠããã®ãïŒãããŠãã®ããã«äºæ¥ãšããŠããŸããããã¯ããšã㊠2018 幎ã¯ã©ããã£ãäœå¶ã§æšé²ããŠããã®ããšãã£ãäºæãå
±æãããŸããã ãªãããã®ãïŒã©ããã£ãŠããã®ãïŒãšãã£ãæ ¹æ¬çãªæéãèæ¯ãå
ã«å
±æããŠãããããšã§ãä»åŸã®ä»äºã«ãããäžã€ã®è»žãã§ããããã¯ãªãã«ãªã£ãããšæããŸãã ç§èªèº«äžå¹Žé CLINICS ã«é¢ãã£ãŠãããããèèº«ã§æããŠããå€åãèŠåŽãæãåºãã€ã€ããããã¯ãã»äºæ¥ãçå®ã«æé·ããŠããããšãæããããšãã§ããæ¬¡ã®æéã確èªããè¯ãæ©äŒãšãªããŸããã 平山ã®ãããã¯ãã»äºæ¥ã»äŒç€Ÿã«å¯Ÿããç±ãæã㯠ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž ã«ãæžãããŠããŸãã®ã§ããã²ã芧ãã ããã ããŒããã¥ãŒ&飲㿠ããã¯ãªãåŸã¯ããŒããã¥ãŒïŒãããŠé£²ã¿ïŒ ç«ã«åŒ·ãã¡ã³ããŒã¯èãçŒããããæçãåŸæãªã¡ã³ããŒã¯çŒããã°ããã¹ã¿ãäœã£ãŠã¯é£ã¹ãŠé£²ãã§è«ç¬ããæãæãã«åå®¿ãæ¥œããã§ããŸããã ãŸãã¯èãçŒãç«ã«åŒ·ãã¡ã³ã㌠è«ç¬ããã¡ã³ããŒïŒé
ããåããã³ãããã±æ°å³ïŒ æãæãã«ãã€ããã¡ã³ã㌠äœè«ã§ãããäžã®ç»åã§å
šå¡ãçãŠããç°è²ã®ããŒã«ãŒã¯ããã¯ãªãçŽåã«é
ãããã¡ãã¬ãŒãªãã£ã·ã£ã«ã°ããºã®äžã€ã ãã¶ã€ã³éšé·ã»ããšã ããã¶ã€ã³ããã¡ãã¬ãŒããŒã«ãŒã§ãã å®ã¯ã¡ãã¬ãŒã§ã¯ããŒã«ãŒä»¥å€ã«ããã¡ãã T ã·ã£ããçµåµèãªã©ã°ããºãå¢ããŠããŸãã æ°ãã€ãããå¢ããŠããã®ã§åéã¯å€§å€ã§ãããä»å¹Žã¯ã©ããã£ãã°ããºãäœãããã®ãä»ããæ¥œãã¿ã§ãã ã¡ã³ããŒå士ã§é£²ãã§é£ã¹ãŠãã€ãããªããããããã¯ããžã®æãããã©ã€ããŒãã®è©±ãªã©ãèªãåã宎äŒãå€é
ããŸã§ç¶ããŸããã ãŸãšã ãããã ã£ãã§ããããïŒã¡ãã¬ãŒéçºæ¬éšã®ããã¯ãªãåå®¿ã®æ§åãå°ãã§ãäŒããã°å¹žãã§ãã ã¢ã¯ãã£ããã£ãããŒããã¥ãŒãéããŠãã芪å¯ã«ããã¬ãŒã³ãéããŠèªèã®å
±æãã§ããè¯ãå宿ã«ãªã£ããšæããŸãã ãªããä»åã®å®¿æ³å
㯠倧人æ°ã§ã察å¿å¯èœãªã³ããŒãžãçšæãã ããŸã Wi-Fi ãªã©ã®éä¿¡èšåãæŽããåä»ã®æ¹ã®å¯Ÿå¿ãäžå¯§ã§ããã©ã€ããŒãã§ãå©çšããããªãçŽ æµãªå®¿ã§ããã éçºå宿çã®å€§äººæ°ã§ã®å®¿ãæ¢ããŠããæ¹ã«ãåèã«ãªãã°å¹žãã§ãã æåŸã« æåŸã«ãªããŸããããä»åã®å宿ã®äŒç»éå¶ããªãŒãããŠãããæ°å±
ããããããšãããããŸããïŒ æ¥å¹ŽãŸãããã¯ãªãå宿ãããã§ããïŒïŒCTO ãæ®åœ±ããŠãããã®ã§ãCTO äžåšã®éååçïŒ ã¡ãã¬ãŒã§ã¯ãããŒã ã§æ°ããå»çäœéšãæäŸãããããã¯ããäžç·ã«åµããã£ã¬ã¯ã¿ãŒããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãã ãèå³ããæ¹ã¯ããŸãã¯ãæ°è»œã«è©±ãèãã«ãè¶ããã ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp
ããã«ã¡ã¯ãéçºæ¬éšã®æ¥äžã§ããã€ã³ã¿ãŒã³ãçµãŠæ°åãšããŠã¡ãã¬ãŒã«å
¥ããçŸåšã¯ 1 幎çãšã³ãžãã¢ãšã㊠ãªã³ã©ã€ã³èšºçã¢ã㪠CLINICS ã®éçºãæ
åœããŠããŸããå
æ¥éçºæ¬éšã§ããã¯ãªãåå®¿ãæ²³å£æ¹ã§è¡ã£ãŠããŸããã®ã§ã詳现ãã¬ããŒãããŸãã 幎å§ã®ããã¯ãªããå宿ã§è¡ãæå³ ã¡ãã¬ãŒã®éçºæ¬éšã§ã¯ãããŒã ãã«ãã£ã³ã°ãç®çãšããŠããŒããã¥ãŒãªã©å
šäœã§ãªãã¬ãã·ã¥ãããæ©äŒãå¹Žã«æ°åèšããŠããŸãã ãã®ãªãã¬ãã·ã¥ã®äžç°ãšããŠè¡ã£ãŠããã¡ãã¬ãŒã®ã幎å§ã®ããã¯ãªãå宿ãã¯ãæšå¹Žããè¡ãããŠããŸããæšå¹Žã®ã¬ããŒã㯠ãã¡ã ã«ãããŸãã ã¡ãã¬ãŒéçºæ¬éšå
šäœã®ããã¯ãªããå宿ã§è¡ãæå³ã¯äž»ã«äºã€ãããŸãã 芪çŠãæ·±ãã äžã€ç®ã®çç±ã¯èŠªçŠãæ·±ããããšã«ãããŸãã ãªãã¬ãã·ã¥ãå
Œãã äžäœæã®éžæã飿ºã»èŠªå¯æãæ·±ããå Ž ã宿çã«çšæããããã«ããŠããŸããå®éã«å宿ãçµããŠæ¯ãè¿ã£ãŠã¿ãŠãã åå®¿ã¯æ¥åžžããå¯ãªäº€æµãããå ŽãšããŠæé« ã ã£ããªãšæããŸãã æ¹åæ§ã®å
±æ äºã€ç®ã®çç±ã¯æ¹åæ§ã®å
±æã®ããã§ãã æšå¹Žã®å宿ã§ã¯ãä»åŸã©ããã£ãæ¹åãäŒç€ŸãšããŠããŸãåãããã¯ããšããŠç®æããŠè¡ãã®ããšãã£ã話ã CTO ã»å¹³å±±ããå
±æããŸãããæ®æ®µã®æ¥åããé¢ããå Žæã§ãããã話ã«åãåãããšããæå³ã§ã å
±éã®è»žããã匷ãæã€ããã«ã¯å宿ãé©å ã ãšå®æããä»å¹Žãå宿ãè¡ãããšã«ãªããŸããã å宿å
ã»ã¢ã¯ãã£ããã£ã®éžå® ããããéçºå宿ã§ã¯ãªãã£ããããéžå®ã«ã¯æ¬¡ã®é
ç®ãéèŠããŸããã äºåæ°åãå容ã§ãããã£ãã·ãã£ãããããš ãã©ã€ããŒãã§ãè¡ããããæãåºã«ãªããããªå Žæã§ããããš ã¢ã¯ãã£ããã£ãè¿ãã«ããããš +α ã§ããŒããã¥ãŒãªã©ãã§ããããš äžèšã®æ¡ä»¶ããã¹ãŠæºãããå Žæã調æ»ããŸããããã宿ã¯ãããã¢ã¯ãã£ããã£ããªãããã¢ã¯ãã£ããã£ã¯ããã宿ããªããã®ããã«ãªããªãããããããšããããªãèŠåŽããŸããã æçµçã«ã¯ãããå
šãŠã«ãããããå
ãšããŠã宿æ³å
ã æ²³å£æ¹ã«ã³ããªãŒã³ããŒãž ãã ã«ãã¢ã¯ãã£ããã£ã¯ ã«ã³ããªãŒã¬ã€ã¯ã·ã¹ãã 㺠ãã ã«ãäžè©±ã«ãªãããšã«ããŸããã ãŸããã¢ã¯ãã£ããã£ã«é¢ããŠã¯ãã«ããŒäœéšãã»ããšãã¥ãããªã©æ§ã
ãªãã®ãçšæãããŠããŸããããæ¬¡ã®èгç¹ãã æŽçªæ¢æ€ ãéžæããŸããã æ®æ®µåº§ãã£ã±ãªããªã®ã§ãéåãè¡ããããš æ°ããåºæ¿ãåããããããã«ãéæ¥åžžæãäœéšã§ããããš ã¡ã³ããŒã®æ®æ®µèŠããªãæ§åãã§ãŠããããªã髿æã®é«ãŸãå Žæã§ããããš éæ¥åžžãªäœéšãã§ããæŽçªæ¢æ€ åœæ¥ãæ²³å£æ¹é§
ã«éåããåŸã¯ãŸãã¢ã¯ãã£ããã£ã«æã¿ãŸããã ã¿ããªã§éæ¥åžžãäœéšãããªãã¬ãã·ã¥ããŠãããããšéžæãããã®ã§ããããç§ãå«ãæŽçªæ¢æ€ããã人ã¯ããããã©ããã£ããã®ã ãããšã¯ã¯ã¯ã¯ããªããå¯å£«ã®æš¹æµ·ãæ£çããŸããã ä»åäœéšããæŽçªã¯å¯å£«ã®éæšã¶å暹海ã«ãã å¯å£«é¢šç©Ž ãåããŠæ¬æ ŒçãªæŽçªãèŠãæã
ã¯æ¯ãåããããªé¢šæ¯ã«å§åãããŸããã å
æ¥ã®é±åã¡ãã¬ãŒ ã§æ²èŒãããåçã¯ãŸãã«æŽçªã«å
¥ãããšããã¡ã³ããŒã§ããã æã£ã以äžã«æŽçªæã®ããæŽçªãå§¿ã衚ããããŒã£ãšãªããŸããã 倩äºã«é ãã¶ã€ããããæãã€ããŠæªæããããããå¯èœæ§ããããŸãããããã«ã¡ããã»æè¢ã»çã£èµ€ãªã€ãªããšãã£ãã°ããºãã¬ã³ã¿ã«ã§ããã®ã§ããã¹ãŠè£
çããŠæŽçªã«æã¿ãŸããã æŽçªã®äžã¯æãããéæ®µã®ãªããèªç¶ãã®ãŸãŸã®æŽçªãããã岩ãããåºãã§å€©äºãäœãã£ããããã®ã§æã£ã以äžã«è£
åã圹ã«ç«ã¡ãŸããã æ°·æ±ãããäžãå¥¥ã®æ¹ãŸã§é²ãã¡ã³ã㌠æŽçªãšããã°æ°·æ±ïŒãšæã£ãŠããã®ã§ãããã¡ããã©æ°æ¥åã«éšãéã£ã圱é¿ã§ãæ®æ®µããè¶³å
ã倩äºããæ°·æ±ãããããçããŠããã®ã§è§Šã£ãŠã¿ãããåããŠã®çµéšã°ããã§ããã æ°·ãå€ã圱é¿ã§æ»ããããããšããããŸããããã¬ã€ããããšå
è¡ããŠããã¡ã³ããŒããã®å©èšã«å©ãããã€ã€é²ãããšãã§ããŸããã ç¡äºã«çéããŸããïŒ æ®æ®µã¯äžç·ã«ä»äºãããŠãã仲éãšäŒç€Ÿã§ã¯ãªãæŽçªãšãã空éã§äžç·ã«ãããšããäžæè°ãªç¶æ³ãšãé©åºŠãªéåã®ãããæ°åã¯é«æããæ®æ®µã¯èŠãããªããããªååã®äžé¢ãèŠãããšãã§ããè¯ãçµéšã«ãªã£ããšæããŸãã 2018 幎ã®éçºæ¬éšããã¯ãªãïŒ ã¢ã¯ãã£ããã£ã§é©åºŠã«éåãããåŸã¯ã³ããŒãžã«ç§»ããå°ããã€ãé
ã飲ãã§ãã€ããå§ããã¿ã€ãã³ã°ã§ã2018 幎ã®ããã¯ãªããšã㊠CTO ã»å¹³å±±ã«ãããã¬ãŒã³ãè¡ããŸããã æšå¹Ž 2017 幎ã¯åã€ã®ãããã¯ãã®ãã¡ãžã§ãã¡ãã¬ãŒã» MEDLEY ã» CLINICS ã®å€§èŠæš¡ãªãã¥ãŒã¢ã«ãããã倧ããªå€åã®å¹ŽãšãªããŸããã ãŸããä»åŸã©ããã£ãäŒç€Ÿã«ããŠãããããïŒå»çæ¥çã«ã©ããã£ãåœ¢ã§æã
ãè²¢ç®ããŠããã®ãïŒãããŠãã®ããã«äºæ¥ãšããŠããŸããããã¯ããšã㊠2018 幎ã¯ã©ããã£ãäœå¶ã§æšé²ããŠããã®ããšãã£ãäºæãå
±æãããŸããã ãªãããã®ãïŒã©ããã£ãŠããã®ãïŒãšãã£ãæ ¹æ¬çãªæéãèæ¯ãå
ã«å
±æããŠãããããšã§ãä»åŸã®ä»äºã«ãããäžã€ã®è»žãã§ããããã¯ãªãã«ãªã£ãããšæããŸãã ç§èªèº«äžå¹Žé CLINICS ã«é¢ãã£ãŠãããããèèº«ã§æããŠããå€åãèŠåŽãæãåºãã€ã€ããããã¯ãã»äºæ¥ãçå®ã«æé·ããŠããããšãæããããšãã§ããæ¬¡ã®æéã確èªããè¯ãæ©äŒãšãªããŸããã 平山ã®ãããã¯ãã»äºæ¥ã»äŒç€Ÿã«å¯Ÿããç±ãæã㯠ã¡ãã¬ãŒå¹³å±±ã®äžå€®çªç Ž ã«ãæžãããŠããŸãã®ã§ããã²ã芧ãã ããã ããŒããã¥ãŒ&飲㿠ããã¯ãªãåŸã¯ããŒããã¥ãŒïŒãããŠé£²ã¿ïŒ ç«ã«åŒ·ãã¡ã³ããŒã¯èãçŒããããæçãåŸæãªã¡ã³ããŒã¯çŒããã°ããã¹ã¿ãäœã£ãŠã¯é£ã¹ãŠé£²ãã§è«ç¬ããæãæãã«åå®¿ãæ¥œããã§ããŸããã ãŸãã¯èãçŒãç«ã«åŒ·ãã¡ã³ã㌠è«ç¬ããã¡ã³ããŒïŒé
ããåããã³ãããã±æ°å³ïŒ æãæãã«ãã€ããã¡ã³ã㌠äœè«ã§ãããäžã®ç»åã§å
šå¡ãçãŠããç°è²ã®ããŒã«ãŒã¯ããã¯ãªãçŽåã«é
ãããã¡ãã¬ãŒãªãã£ã·ã£ã«ã°ããºã®äžã€ã ãã¶ã€ã³éšé·ã»ããšã ããã¶ã€ã³ããã¡ãã¬ãŒããŒã«ãŒã§ãã å®ã¯ã¡ãã¬ãŒã§ã¯ããŒã«ãŒä»¥å€ã«ããã¡ãã T ã·ã£ããçµåµèãªã©ã°ããºãå¢ããŠããŸãã æ°ãã€ãããå¢ããŠããã®ã§åéã¯å€§å€ã§ãããä»å¹Žã¯ã©ããã£ãã°ããºãäœãããã®ãä»ããæ¥œãã¿ã§ãã ã¡ã³ããŒå士ã§é£²ãã§é£ã¹ãŠãã€ãããªããããããã¯ããžã®æãããã©ã€ããŒãã®è©±ãªã©ãèªãåã宎äŒãå€é
ããŸã§ç¶ããŸããã ãŸãšã ãããã ã£ãã§ããããïŒã¡ãã¬ãŒéçºæ¬éšã®ããã¯ãªãåå®¿ã®æ§åãå°ãã§ãäŒããã°å¹žãã§ãã ã¢ã¯ãã£ããã£ãããŒããã¥ãŒãéããŠãã芪å¯ã«ããã¬ãŒã³ãéããŠèªèã®å
±æãã§ããè¯ãå宿ã«ãªã£ããšæããŸãã ãªããä»åã®å®¿æ³å
㯠倧人æ°ã§ã察å¿å¯èœãªã³ããŒãžãçšæãã ããŸã Wi-Fi ãªã©ã®éä¿¡èšåãæŽããåä»ã®æ¹ã®å¯Ÿå¿ãäžå¯§ã§ããã©ã€ããŒãã§ãå©çšããããªãçŽ æµãªå®¿ã§ããã éçºå宿çã®å€§äººæ°ã§ã®å®¿ãæ¢ããŠããæ¹ã«ãåèã«ãªãã°å¹žãã§ãã æåŸã« æåŸã«ãªããŸããããä»åã®å宿ã®äŒç»éå¶ããªãŒãããŠãããæ°å±
ããããããšãããããŸããïŒ æ¥å¹ŽãŸãããã¯ãªãå宿ãããã§ããïŒïŒCTO ãæ®åœ±ããŠãããã®ã§ãCTO äžåšã®éååçïŒ ã¡ãã¬ãŒã§ã¯ãããŒã ã§æ°ããå»çäœéšãæäŸãããããã¯ããäžç·ã«åµããã£ã¬ã¯ã¿ãŒããšã³ãžãã¢ããã¶ã€ããŒãåéããŠããŸãã ãèå³ããæ¹ã¯ããŸãã¯ãæ°è»œã«è©±ãèãã«ãè¶ããã ããïŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ | æ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ã³ããŒã®ã¹ããŒãªãŒ å®¶æãå人ãç
æ°ã«ãªã£ãæã«æãã®æãå·®ãã®ã¹ãå»çã®åã... www.medley.jp