DD Planetã®ãããžã§ã¯ãã®1ã€ãéçºãããšããç§ã¯æåŸã®éžæè¢ã«é Œã£ãŠããŸããã ãŸãããã®èšäºã§ã¯ãã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã®éçºçµéšãééããåé¡ãèŠã€ãã£ã解決çã«ã€ããŠèª¬æããŸãã
ã¯ãã¹ãã©ãããã©ãŒã ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºããããã®3ã€ã®ã¢ãããŒã
ãŸããiOSãšAndroidã®2ã€ã®ã¢ããªã±ãŒã·ã§ã³ãåæã«ååŸããå¿ èŠãããå Žåã«ã©ã®ã¢ãããŒãã䜿çšããããæ€èšããŸãã
1ã€ç®ã¯ãæéãšãªãœãŒã¹ã®äž¡é¢ã§æãé«äŸ¡ãªãã®ã§ããã©ãããã©ãŒã ããšã«åå¥ã®ã¢ããªã±ãŒã·ã§ã³ãéçºããŸãã ãã®ã¢ãããŒãã®è€éãã¯ãåãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãç¬èªã®ã¢ãããŒããå¿ èŠãšãããšããäºå®ã«ãããŸãïŒããã¯ãéçºãè¡ãããŠããèšèªïŒAndroidã®å Žåã¯JavaãŸãã¯KotlinãiOSã®å Žåã¯Objective-CãŸãã¯SwiftïŒãšUIéšåã®èšè¿°æ¹æ³ã®äž¡æ¹ã§è¡šçŸãããŸãã¢ããªã±ãŒã·ã§ã³ïŒããããaxmlããã³xibãŸãã¯ã¹ããŒãªãŒããŒããã¡ã€ã«ïŒã
ãã®äºå®ã ãã§ãããã®ã¢ãããŒãã§ã¯2ã€ã®éçºããŒã ãç·šæããå¿ èŠããããšããäºå®ã«ã€ãªãããŸãã ããã«ãåãã©ãããã©ãŒã ã®ããžãã¯ãè€è£œããå¿ èŠããããŸãïŒAPIããã³ããžãã¹ããžãã¯ãšã®çžäºäœçšã

ãããã䜿çšãããAPIã®æ°ãå¢ãããã©ããªãã§ããããïŒ

ããã¯ã人çè³æºã®å¿ èŠéãã©ã®ããã«æžããããšããçåãæããããŸãã ãã©ãããã©ãŒã ããšã«ã³ãŒããè€è£œããå¿ èŠæ§ãåãé€ããŸãã ãã®åé¡ã解決ããååãªæ°ã®ãã¬ãŒã ã¯ãŒã¯ãšãã¯ãããžãŒããããŸãã
ã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯ïŒXamarin.Formsãªã©ïŒã䜿çšãããšã1ã€ã®ããã°ã©ãã³ã°èšèªã§ã³ãŒããèšè¿°ããããŒã¿ããžãã¯ãšUIããžãã¯ãäžåºŠã«1ç®æã§èšè¿°ããããšãã§ããŸãã ãããã£ãŠã2ã€ã®éçºããŒã ã䜿çšããå¿ èŠã¯ãªããªããŸãã ãããŠããããžã§ã¯ããã³ã³ãã€ã«ããçµæã2ã€ã®ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãåºåãããŸãã ããã2çªç®ã®ã¢ãããŒãã§ãã

å€ãã®äººã¯ãXamarinãäœã§ãããããŸãã¯å°ãªããšãããã«ã€ããŠèããããšããããšæããŸãããã©ã®ããã«æ©èœããŸããïŒ Xamarinã¯ã.NETãã©ãããã©ãŒã ã®ãªãŒãã³ãœãŒã¹å®è£ ã§ããMonoã«åºã¥ããŠããŸãã Monoã«ã¯ãç¬èªã®CïŒã³ã³ãã€ã©ãã©ã³ã¿ã€ã ãããã³WinFormsãšASP.Netã®å®è£ ãå«ãå€æ°ã®ã©ã€ãã©ãªãå«ãŸããŠããŸãã
ãããžã§ã¯ãã®ç®æšã¯ãCïŒã§èšè¿°ãããããã°ã©ã ãWindows以å€ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒUnixã·ã¹ãã ãMac OSãªã©ïŒã§å®è¡ã§ããããã«ããããšã§ãã Xamarinãã¬ãŒã ã¯ãŒã¯èªäœã¯ãæ¬è³ªçã«ã¯ãéçºè ã«ãã©ãããã©ãŒã ã®SDKãšãããã®ã³ã³ãã€ã©ãŒãžã®ã¢ã¯ã»ã¹ãæäŸããã¯ã©ã¹ã©ã€ãã©ãªã§ãã 次ã«ãXamarin.Formsã䜿çšãããšãäž¡æ¹ã®ãã©ãããã©ãŒã çšã«åãèšèªã§èšè¿°ã§ããã ãã§ãªããXAMLããŒã¯ã¢ããã䜿çšããŠç»é¢ãèšèšããããšãã§ããŸãã ãããžã§ã¯ãã®ã¢ã»ã³ããªã®çµæãã³ã³ãã€ã«æ®µéã§ãã¹ãŠã®XFã³ã³ãããŒã«ãåãã©ãããã©ãŒã ã®ãã€ãã£ãã«å€æãããããããã¹ãŠã®ãã©ãããã©ãŒã ã§ã»ãŒåãå€èŠ³ã«ãªããŸãã

éçºè ã¯ããã©ãããã©ãŒã ã®æ©èœïŒæçŽã¹ãã£ããŒãããããªãŒã¬ãã«ãªã©ïŒã«ã¢ã¯ã»ã¹ããå¿ èŠãããå ŽåããŸãã¯å¶åŸ¡åäœã埮調æŽããå¿ èŠãããå Žåã«ã®ã¿ãåãã©ãããã©ãŒã ã®ã³ãŒããèšè¿°ããããšã匷å¶ãããŸãã å Žåã«ãã£ãŠã¯ãã¢ããªã±ãŒã·ã§ã³ã®éçºæã«ãã©ãããã©ãŒã äŸåã®ã³ãŒããèšè¿°ããå¿ èŠãããå ŽåããããŸããããã®å Žåã§ãããã©ãããã©ãŒã æ©èœãã€ã³ã¿ãŒãã§ã€ã¹ã«æã¡èŸŒãã§ãåŸã§å ±éãããžã§ã¯ãããæäœããããšãçŠæ¢ãã人ã¯ããŸããã
1ã€ã®ããã°ã©ãã³ã°èšèªãå°ããªã³ãŒããªã©ã ããã¯ãã¹ãŠçŸããããã«èãããŸãããXamarin.Formsã¯ç¹å¹è¬ã§ã¯ãªãããã®çŸããã¯ãã¹ãŠçŸå®ã®ç³ã®äžã§å£ããŠããŸãã çµã¿èŸŒã¿ã®XFã³ã³ãããŒã«ããããã®èŠä»¶ãæºãããªããªã£ãç¶æ³ãçºçãããšããã«ãç»é¢ãšã³ã³ãããŒã«ã®æ§é ã¯ãŸããŸãè€éã«ãªããŸãã äžè¬çãªãããžã§ã¯ãã®ç»é¢ãå¿«é©ã«äœ¿çšããã«ã¯ããŸããŸãå€ãã®ã«ã¹ã¿ã ã¬ã³ããªã³ã°ãäœæããå¿ èŠããããŸãã
ããã¯ãã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã«äœ¿çšãã3çªç®ã®ã¢ãããŒãã«é²ã¿ãŸãã
Xamarin Formsã䜿çšãããšãäœæ¥ãåçŽåãããã®ã§ã¯ãªããè€éã«ãªãå¯èœæ§ãããããšãæ¢ã«ããã£ãŠããŸãã ãã®ãããã¢ãŒããã¯ãã£ãè€éãªç»é¢ããã€ãã£ãã®ãã®ãšã¯æ ¹æ¬çã«ç°ãªãèšèšèŠçŽ ããã³ã³ã³ãããŒã«ãå®è£ ããããã«ã劥åãšãæåãš2çªç®ã®ã¢ãããŒããçµã¿åãããå¯èœæ§ãèŠã€ãããŸããã
Xamarin Formsã䜿çšããªãäžè¬çãªPCLãããžã§ã¯ããšãXamarin AndroidãšXamarin iOSã®2ã€ã®ãããžã§ã¯ããšãã3ã€ã®ãããžã§ã¯ãããããŸãã 1ã€ã®èšèªã2ã€ã®ãããžã§ã¯ãéã®å ±éããžãã¯ã§ãã¹ãŠãèšè¿°ããæ©äŒã¯ãŸã ãããŸãããåäžã®XAMLããŒã¯ã¢ããã®å¶éã¯ãããŸããã UIã³ã³ããŒãã³ãã¯åãã©ãããã©ãŒã ã§å¶åŸ¡ãããAndroidã§ã¯ãã€ãã£ãããŒã«ããã€ãã£ãAXMLãiOSã§ã¯XIBãã¡ã€ã«ã䜿çšããŸãã ã³ã¢ãããžã§ã¯ããšãã©ãããã©ãŒã ãããžã§ã¯ãéã®æ¥ç¶ã¯ããŒã¿ã¬ãã«ã§ã®ã¿ç·šæããããããåãã©ãããã©ãŒã ã«ã¯ã¬ã€ãã©ã€ã³ã«åŸãæ©èœããããŸãã
ãã®ãããªé¢ä¿ãæŽçããã«ã¯ãMVVMãã¶ã€ã³ãã¿ãŒã³ãšãXamarinã®ããªãäžè¬çãªå®è£ ã§ããMVVMCrossã䜿çšã§ããŸãã ãã®äœ¿çšã«ãããäœæ¥ã®ãããžãã¹ããžãã¯ãå šäœãèšè¿°ããåç»é¢ã«å ±éã®ViewModelãä¿æãããã®ã¬ã³ããªã³ã°ããã©ãããã©ãŒã ã«å§ããããšãã§ããŸãã ãŸãã2人ã®éçºè ãåãç»é¢ïŒäžæ¹ã¯ããžãã¯-ããäžæ¹ã¯UIïŒãæäœãããäºãã«å¹²æžããªãããã«ããããšãã§ããŸãã ãã¿ãŒã³ã®å®è£ ã«å ããŠãäœæ¥ã«ååãªæ°ã®ããŒã«ïŒDIããã³IoCã®å®è£ ïŒãååŸããŸãã ãã©ãããã©ãŒã ãšã®çžäºäœçšãäžè¬çãªã³ãŒãã®ã¬ãã«ã«äžããã«ã¯ãéçºè ã¯ã€ã³ã¿ãŒãã§ã€ã¹ã宣èšããŠãã©ãããã©ãŒã ã«å®è£ ããã ãã§ãã éåžžãMvvmCrossã¯ç¬èªã®ãã©ã°ã€ã³ã®ã»ããããã§ã«æäŸããŠããŸãã ããŒã ã§ã¯ããã©ãããã©ãŒã ãšå ±éã³ãŒãéã§ã¡ãã»ãŒãžã亀æããããã«ã¡ãã»ã³ãžã£ãŒãã©ã°ã€ã³ã䜿çšãããã¡ã€ã«ãæäœããïŒã®ã£ã©ãªãŒããç»åãéžæãããªã©ïŒãã©ã°ã€ã³ã䜿çšããŸãã
è€éãªèšèšãšãã«ãã¬ãã«ããã²ãŒã·ã§ã³ã®åé¡ã解決ããŸã
åã«è¿°ã¹ãããã«ãç»é¢äžã§è€éãªè¡šçŸã䜿çšããå Žåããã¬ãŒã ã¯ãŒã¯ã¯äººçãããè€éã«ããå¯èœæ§ããããŸãã ããããè€éãªèŠçŽ ãšã¯äœã§ããïŒ ç§ã¯äž»ã«iOSéçºã«æºãã£ãŠããããããã®ãã©ãããã©ãŒã ã®äŸãæ€èšããŸãã ããšãã°ãå ¥åãã£ãŒã«ãã®ãããªäºçŽ°ãªãã®ã«ã¯ãããã€ãã®ç¶æ ãšãåãæ¿ããšèŠèŠåã®ããã®ååãªããžãã¯ããããŸãã

ãŠãŒã¶ãŒå ¥åãåŠçããéçšã§ããã®ãããªå ¥åã³ã³ãããŒã«ãããã§éçºãããŸããã å ¥åãã£ãŒã«ãã®äžã«ååãäžãããã¹ã¯ãæäœããæ¥é èŸãèšå®ããæ¥å°ŸèŸãä»ããCapsLockãæŒããããšãã«éç¥ãããšã©ãŒæ å ±ã®å ¥åãšåºåã®çŠæ¢ã®2ã€ã®ã¢ãŒãã§æ å ±ãæ€èšŒããŸãã ã³ã³ãããŒã«å ã®ããžãã¯ã¯çŽ1000è¡ããããŸãã ãããŠãå ¥åãã£ãŒã«ãã®èšèšã§äœãè€éã«ãªãã®ã§ããããïŒ
ç§ãã¡ãèŠãè€éãªã³ã³ãããŒã«ã®ç°¡åãªäŸã ç»é¢ã¯ã©ãã§ããïŒ

ãŸããã»ãšãã©ã®å Žåãåäžã®ã¢ããªã±ãŒã·ã§ã³ç»é¢ã¯åäžã®ã¯ã©ã¹-UIViewControllerã§ããããã®åäœã説æããããšãæ確ã«ããŸãã éçºäžããã«ãã¬ãã«ããã²ãŒã·ã§ã³ã®äœæãå¿ èŠã§ããã éçºãããã¢ããªã±ãŒã·ã§ã³ã®æŠå¿µã¯ãäžåç£ã®ç®¡çãšãé£äººãèªæ²»äœãšã®ããåãã«åž°çããŸãã ãã®ãããããããã£ããã¬ãŒã³ããŒã·ã§ã³ã¬ãã«ïŒèªå® ãéœåžãå°åïŒãã³ã³ãã³ãã¿ã€ãã®3ã€ã®ã¬ãã«ã®ããã²ãŒã·ã§ã³ãæ§ç¯ãããŸããã ãã¹ãŠã®åãæ¿ãã¯ã1ã€ã®ç»é¢å ã§å®è¡ãããŸãã
ããã¯ããŠãŒã¶ãŒãã©ãã«ããŠããã©ã®ãããªã³ã³ãã³ããèŠãŠããããç解ã§ããããã«ããããã«è¡ãããŸããã ãã®ãããªããã²ãŒã·ã§ã³ãæŽçããããã«ãã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ç»é¢ã¯1ã€ã®ã³ã³ãããŒã©ãŒããé ãé¢ããŠæ§æãããŠããŸãã èŠèŠçã«ã¯3ã€ã®éšåã«åããããšãã§ããŸããã誰ãããã§äœ¿çšãããŠããã³ã³ãããŒã©ãŒã®æ°ãæšæž¬ã§ããŸããïŒ

15åã®ã¡ã€ã³ã³ã³ãããŒã©ãŒã ãããŠãããã¯ã³ã³ãã³ãã®ããã ãã§ãã
ããã§ã¯ããã®ãããªã¢ã³ã¹ã¿ãŒã¯ã¡ã€ã³ç»é¢ã«äœãã§ããŠãããªãæ°åãããã§ãã ãã¡ããã1ç»é¢ã«15åã®ã³ã³ãããŒã©ãŒããããŸãã ããã¯ã¢ããªã±ãŒã·ã§ã³å šäœã®é床ã«åœ±é¿ãããããäœããã®æ¹æ³ã§æé©åããå¿ èŠããããŸãã
åæåæåãæåŠããŸããããã¹ãŠã®ãã¥ãŒã¢ãã«ã¯ãå¿ èŠãªå Žåã«ã®ã¿ããã¯ã°ã©ãŠã³ãã§åæåãããŸãã ã¬ã³ããªã³ã°æéãççž®ããããã«ããããã®ç»é¢ã®xibãã¡ã€ã«ãç Žæ£ããŸããã絶察äœçœ®æ±ºããšèšç®ã¯ãèŠçŽ éã®äŸåé¢ä¿ãèšç®ãããããåžžã«é«éã§ãã
éåžžã«å€ãã®ã³ã³ãããŒã©ãŒã远跡ããã«ã¯ãç解ããå¿ èŠããããŸãã
- ããããã®ç¶æ ã¯ã©ã®ãããªç¶æ ã§ããïŒ
- ãŠãŒã¶ãŒã¯ã©ãã«ããŸããã
- å¥ã®ã³ã³ãããŒã©ãŒã«ç§»åãããšãã«åœŒãæåŸ ãããã®ã
ãããè¡ãããã«ããŠãŒã¶ãŒã®äœçœ®ããŠãŒã¶ãŒã衚瀺ããã³ã³ãã³ãã®çš®é¡ãããã²ãŒã·ã§ã³ã®å±¥æŽãªã©ã«é¢ããæ å ±ãä¿åããå¥ã®ããã²ãŒã·ã§ã³ããã»ããµãäœæããŸããã 圌ã¯åæåã®é åºãšå¿ èŠæ§ãå¶åŸ¡ããŸãã
åã¿ãã¯ã³ã³ãããŒã©ãŒã®ã¹ã©ã€ããŒã§ããããïŒã¹ã¯ã€ããã©ã³ãžã·ã§ã³ãäœæããããïŒããããããç¬èªã®ç¶æ ã«ããããšãã§ããŸãïŒããšãã°ãããã¥ãŒã¹ãã¯äžæ¹ãéããããäžæ¹ã¯ãæ祚ããè¡ããŸãïŒã ããã«ã¯ãåãããã²ãŒã·ã§ã³ããã»ããµãç¶ããŸãã ãã¬ãŒã³ããŒã·ã§ã³ã®ã¬ãã«ãèªå® ããå°åã«å€æŽããŠããåãçš®é¡ã®ã³ã³ãã³ãã«ãšã©ãŸããŸãã
ããŒã¿ã®æµãããªã¢ã«ã¿ã€ã ã§å¶åŸ¡ããŸã
ã¢ããªã±ãŒã·ã§ã³å ã®éåžžã«å€ãã®ããŒã¿ã䜿çšããŠããã¹ãŠã®ã»ã¯ã·ã§ã³ã®é¢é£æ å ±ã®é ä¿¡ããªã¢ã«ã¿ã€ã ã§æŽçããå¿ èŠããããŸãã ãã®åé¡ã解決ããã«ã¯ã3ã€ã®æ¹æ³ãåºå¥ã§ããŸãã
- ã¿ã€ããŒãŸãã¯ããªã¬ãŒã«ãã£ãŠAPIã«ã¢ã¯ã»ã¹ããç»é¢äžã®é¢é£ã³ã³ãã³ããåèŠæ±ããŸãã
- ãµãŒããŒã«æ°žç¶çã«æ¥ç¶ãããªã¢ã«ã¿ã€ã ã§å€æŽãåä¿¡ããŸãã
- ã³ã³ãã³ãã®å€æŽã§ããã·ã¥ãåä¿¡ããŸãã
ããããã®ã¢ãããŒãã«ã¯é·æãšçæããããããããããã®é·æã®ã¿ãéžæããŠã3ã€ãã¹ãŠã䜿çšããããšããå§ãããŸãã ã¢ããªã±ãŒã·ã§ã³å ã®ã³ã³ãã³ãããããããã¬ã®ã¥ã©ãŒãããã³ãµãŒãã¹ã®ããã€ãã®ã¿ã€ãã«æ¡ä»¶ä»ãã§åå²ããŸããã ããã¯ãã€ãã³ããããŠãŒã¶ãŒãžã®éç¥ãŸã§ã®èš±å®¹æéã決å®ããããã«è¡ãããŸãã ããšãã°ããã£ããã¡ãã»ãŒãžãéä¿¡ããçŽåŸã«è¡šç€ºããã-ããã¯ãããã³ã³ãã³ãã§ãã å¥ã®ãªãã·ã§ã³ïŒè¿é£ããã®ããŒãªã³ã°ã ãããéåžžã®ã³ã³ãã³ãã§ããããã圌ãä»ããŸãã¯ããã«èŠãŠãéãã¯ãããŸããã ã¢ããªã±ãŒã·ã§ã³å ã®å°ããªéç¥ïŒæªèªã¡ãã»ãŒãžãã³ãã³ããªã©ïŒã¯ãç·æ¥é ä¿¡ãå¿ èŠãªãµãŒãã¹ã³ã³ãã³ãã§ããã倧éã®ããŒã¿ãå¿ èŠãšããŸããã
å€æããïŒ
- ãããã³ã³ãã³ã-APIãšã®æ°žç¶çãªæ¥ç¶ã
- éåžžã®ã³ã³ãã³ã-APIãžã®httpãªã¯ãšã¹ãã
- ã·ã¹ãã ã³ã³ãã³ã-ããã·ã¥éç¥ã
æãèå³æ·±ãã®ã¯ãäžå®ã®æ¥ç¶ãç¶æããããšã§ãã Webãœã±ãããæäœããããã®ç¬èªã®ã¯ã©ã€ã¢ã³ããäœæããããšã¯ããããã®ç©Žã®äžæ©ã§ãããããä»ã®ãœãªã¥ãŒã·ã§ã³ãæ¢ãå¿ èŠããããŸãã ãã®çµæãSignalRã©ã€ãã©ãªãŒã§åæ¢ããŸããã ãããäœã§ãããèŠãŠã¿ãŸãããã
ASP.Net SignalRã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®åæ¹åéä¿¡ãæäŸããããªã¢ã«ã¿ã€ã ã§ã®ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®å¯Ÿè©±ãç°¡çŽ åãããã€ã¯ããœããã®ã©ã€ãã©ãªã§ãã ãµãŒããŒã«ã¯ãæ¥ç¶ãæ¥ç¶åæã€ãã³ããæ¥ç¶ã¯ã©ã€ã¢ã³ããã°ã«ãŒãã«çµåããã¡ã«ããºã ãããã³æ¿èªã管çããããã®æ¬æ ŒçãªAPIãå«ãŸããŠããŸãã
SignalRã¯ãwebsocketãLongPollingãããã³httpãªã¯ãšã¹ãã®äž¡æ¹ããã©ã³ã¹ããŒããšããŠäœ¿çšã§ããŸãã ãã©ã³ã¹ããŒãã®ã¿ã€ãã匷å¶çã«æå®ããããã©ã€ãã©ãªãä¿¡é Œã§ããŸããwebsocketã䜿çšã§ããå Žåãwebsocketãä»ããŠåäœãããããäžå¯èœãªå Žåã¯ã蚱容ããããã©ã³ã¹ããŒããèŠã€ãããŸã§åæ¢ããŸãã ãã®äºå®ã¯ãã¢ãã€ã«ããã€ã¹ã§ã®äœ¿çšãèšç»ãããŠãããšããäºå®ãèãããšãéåžžã«å®çšçã§ããããšãããããŸããã
åèšãã©ã®ãããªå©çãåŸãããŸããïŒ
- ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ä»»æã®ã¿ã€ãã®ã¡ãã»ãŒãžã亀æããæ©èœã
- Webãœã±ããããã³ã°ããŒãªã³ã°ãããã³Httpãªã¯ãšã¹ããèªåçã«åãæ¿ããã¡ã«ããºã ã
- æ¥ç¶ã®çŸåšã®ã¹ããŒã¿ã¹ã«é¢ããæ å ±ã
- ã¯ã©ã€ã¢ã³ããã°ã«ãŒãã«ãŸãšããæ©äŒã
- ã°ã«ãŒãå ã§ã¡ãã»ãŒãžãéä¿¡ããããžãã¯ãæäœããããã®å®çšçãªæ¹æ³ã
- ãµãŒããŒãã¹ã±ãŒãªã³ã°ããæ©èœã
ãã¡ãããããã¯ãã¹ãŠã®ããŒãºãæºãããŠããããã§ã¯ãããŸããããç掻ãèãã楜ã«ãªããŸãã
ãããžã§ã¯ãå ã§ã¯ãSignalRã©ã€ãã©ãªã§ã©ãããŒã䜿çšãããŸããããã«ãããã©ãããŒã®æäœãããã«ç°¡åã«ãªããŸãã
- æ¥ç¶ã®ç¶æ ãç£èŠããæå®ãããæ¡ä»¶ã«åŸã£ãŠããŸãäžæãçºçããå Žåã«åæ¥ç¶ããŸãã
- æ¥ç¶ãè¿ éã«çœ®æãŸãã¯åéããããšãã§ããå€ãæ¥ç¶ãéåæã§åŒ·å¶çµäºããã¬ããŒãžã³ã¬ã¯ã¿ãŒã«åŒãè£ãããã«æäŸããŸã-å€æããããã«ãæ¥ç¶ã¡ãœããã¯ã¯ããŒãžã£ãŒã¡ãœããïŒç Žæ£ãŸãã¯åæ¢ïŒããã10åéãåäœããããããããéããå¯äžã®æ¹æ³ã§ã;
- ã¡ãã»ãŒãžãéä¿¡ããããã®ãã¥ãŒãç·šæããŠãæ¥ç¶ã®åæ¥ç¶ãŸãã¯åãªãŒãã³ã«ãã£ãŠéä¿¡ãäžæãããªãããã«ããŸãã
- äºæããªããšã©ãŒãçºçããå Žåã«ãé©åãªããªã²ãŒãã«å¶åŸ¡ã移ããŸãã
ãããã®åã©ãããŒïŒã¯ã©ã€ã¢ã³ããšåŒã³ãŸãïŒã¯ããã£ãã·ã¥ã·ã¹ãã ãšé£æºããŠåäœããæ¥ç¶ãåæãããå Žåã«ããã®éã«èŠéããå¯èœæ§ã®ããããŒã¿ã®ã¿ãèŠæ±ã§ããŸãã è€æ°ã®æŽ»æ§ååç©ãåæã«ä¿æããããããããããããã ã¢ããªã±ãŒã·ã§ã³å ã«ã¯æ¬æ Œçãªã¡ãã»ã³ãžã£ãŒãããããµãŒãã¹ãæäŸããããã«å¥ã®ã¯ã©ã€ã¢ã³ãã䜿çšãããŸãã
2çªç®ã®ã¯ã©ã€ã¢ã³ãã¯ãéç¥ã®åä¿¡ãæ åœããŸãã æ¢ã«è¿°ã¹ãããã«ãéåžžã®ã¿ã€ãã®ã³ã³ãã³ãã¯http-requestsãä»ããŠååŸãããŸãããå°æ¥çã«ã¯ããã®æŽæ°ã¯ãã®ã¯ã©ã€ã¢ã³ãã«ãããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ãèŠèŠåãã

ããŒã¿ãååŸããããšãšè¡šç€ºããããšã¯å¥ã§ãã ãªã¢ã«ã¿ã€ã ã®ããŒã¿æŽæ°ã«ã¯ç¬èªã®åé¡ããããŸãã å°ãªããšãããããã®æŽæ°ããŠãŒã¶ãŒã«æ瀺ããæ¹æ³ã決å®ããå¿ èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ã§ã¯ã次ã®3çš®é¡ã®éç¥ã䜿çšããŸãã
- æªèªã³ã³ãã³ãã®éç¥ã
- ç»é¢äžã®ããŒã¿ã®èªåæŽæ°ã
- ã³ã³ãã³ãæäŸã
æ°ããã³ã³ãã³ããããããšã瀺ãæãäžè¬çã§ãããµããæ¹æ³ã¯ãã»ã¯ã·ã§ã³ã¢ã€ã³ã³ã匷調衚瀺ããããšã§ãã ãããã£ãŠãã»ãšãã©ãã¹ãŠã®ã¢ã€ã³ã³ã«ã¯ãæªèªã®ã³ã³ãã³ãéç¥æ©èœãèµ€ãç¹ãšããŠè¡šç€ºããæ©èœããããŸãã ããã«èå³æ·±ãã®ã¯ãèªåæŽæ°ã§ãã
æ°ããã³ã³ãã³ããç»é¢ãåé 眮ãããã³ã³ãããŒã«ã®ãµã€ãºãå€æŽããªãå Žåã«ã®ã¿ãããŒã¿ã®èªåæŽæ°ãå¯èœã§ãã ããšãã°ã調æ»ç»é¢ïŒæ祚ã«é¢ããæ å ±ã¯ãé²è¡ç¶æ³ããŒã®å€ãšããŒã»ã³ããŒãžã®ã¿ãå€æŽããŸãã ãã®ãããªå€æŽã¯ãµã€ãºå€æŽã䌎ãããåé¡ãªãå³åº§ã«é©çšã§ããŸãã
ãªã¹ãã«æ°ããã³ã³ãã³ããè¿œå ããå¿ èŠãããå Žåãåé¡ãçºçããŸãã å®éãã¢ããªã±ãŒã·ã§ã³å ã®ãã¹ãŠã®ãªã¹ãã¯ScrollViewã§ããããŠã£ã³ããŠãµã€ãºãã³ã³ãã³ããµã€ãºãã¹ã¯ããŒã«äœçœ®ãªã©ã®ããã€ãã®ç¹æ§ããããŸãã ãããã¯ãã¹ãŠéçãªéå§ç¹ïŒåº§æš0ã®ç»é¢äžéš; 0ïŒãæã¡ãäžã«å±éã§ããŸãã ãªã¹ãã®æåŸã«æ°ããã³ã³ãã³ããè¿œå ããŠããåé¡ã¯çºçããããªã¹ãã¯ç¶ç¶ããŸãã ãã ããæ°ããã³ã³ãã³ããäžéšã«è¡šç€ºãããã¯ãã§ããããã¯æ¬¡ã®å³ã§ãã

3ã€ã®èŠçŽ ã§ã2ã«ãªããŸã-ã¹ã¯ããŒã«ãè·³ãè¿ããŸãã ãŸããæ°ããã³ã³ãã³ãã¯åžžã«å°çããå¯èœæ§ãããããããŠãŒã¶ãŒã¯éåžžã©ããã¹ã¯ããŒã«ã§ããŸããã ããªãã¯èšããããããŸããïŒæ°ããã³ã³ãã³ãã®ãµã€ãºãèšç®ãããã®å€ãŸã§ã¹ã¯ããŒã«ããŠã³ããŠã¿ãŸãããïŒ ã¯ããã§ããŸãã ãã ããã¹ã¯ããŒã«äœçœ®ãæåã§å¶åŸ¡ããå¿ èŠãããããã®ç¬éã«ãŠãŒã¶ãŒãä»»æã®æ¹åã«ã¹ã¯ããŒã«ãããšãã¢ã¯ã·ã§ã³ãäžæãããŸãã ãã®ããããã®ãããªç»é¢ã¯ããŠãŒã¶ãŒã®åæãªãã«ãªã¢ã«ã¿ã€ã ã§æŽæ°ããããšã¯ã§ããŸããã
ãã®ç¶æ³ã§ã®æè¯ã®è§£æ±ºçã¯ããŠãŒã¶ãŒããã£ãŒããã¹ã¯ããŒã«ããŠããéã«èª°ããæ°ããã³ã³ãã³ããæçš¿ããããšããŠãŒã¶ãŒã«éç¥ããããšã§ãã ãã®ãã¶ã€ã³ã§ã¯ãç»é¢ã®é ã«ããèµ€ãåã®ããã«èŠããŸãã ãããã¯ãªãã¯ããããšã«ããããŠãŒã¶ãŒã¯æ¡ä»¶ä»ãã§åæããç»é¢äžéšã«æ»ã£ãŠæ°ããã³ã³ãã³ãã衚瀺ããããšã«åæããŸãã
ãã¡ããããã®ã¢ãããŒãã§ã¯ãã³ã³ãã³ãã®ãã¹ãªãããã®åé¡ãåé¿ããŸããããããã§ã解決ããå¿ èŠããããŸããã ã€ãŸãããã£ããç»é¢ã§ã¯ãç»é¢ãšã®éä¿¡ããã³å¯Ÿè©±äžã«ãæ°ããã³ã³ãã³ããããŸããŸãªå Žæã«è¡šç€ºããå¿ èŠãããããã§ãã
ãã£ãããªã¹ããšéåžžã®ãªã¹ãã®éãã¯ãææ°ã®ã³ã³ãã³ããç»é¢ã®äžéšã«ããããšã§ãã ããã¯ãããŒã«ãã§ãããããããã»ã©å°é£ãªãã³ã³ãã³ããããã«è¿œå ã§ããŸãã ãŠãŒã¶ãŒã¯ããã§90ïŒ ã®æéãè²»ãããŸããã€ãŸããã¡ãã»ãŒãžãéåä¿¡ãããšãã«ã¯ãåžžã«ã¹ã¯ããŒã«äœçœ®ãç¶æãããããäžã«ã·ããããå¿ èŠããããŸãã ã©ã€ãäŒè©±ã§ã¯ããã®ãããªã¢ã¯ã·ã§ã³ãé »ç¹ã«å®è¡ããå¿ èŠããããŸãã
2çªç®ã®ãã€ã³ãïŒäžã«ã¹ã¯ããŒã«ãããšãã®å±¥æŽã®èªã¿èŸŒã¿ã ã¹ããŒãªãŒãããŒããããšããã¹ã¯ããŒã«ãã¹ã ãŒãºã§é£ç¶ããããã«ãã¡ãã»ãŒãžãã¬ãã¥ãŒã¬ãã«ïŒãã€ã¢ã¹ã䌎ãïŒããäžã«é 眮ããå¿ èŠãããç¶æ³ã«ãããŸãã ãããŠããã§ã«ããã£ãŠããããã«ããŠãŒã¶ãŒãéªéããªãããã«ãã¹ã¯ããŒã«äœçœ®ãæåã§å¶åŸ¡ããããšã¯äžå¯èœã§ãã
ãããŠè§£æ±ºçãèŠã€ããŸããããããè£è¿ããŸããã ã¹ã¯ãªãŒã³ããªããã¯ã2ã€ã®åé¡ãåæã«è§£æ±ºããŸããã
- ãªã¹ãã®æ«å°Ÿã¯äžéšã«ããããããŠãŒã¶ãŒã®ã¹ã¯ããŒã«ã劚ããããšãªããã·ãŒã ã¬ã¹ã«ã¹ããŒãªãŒãè¿œå ã§ããŸãã
- æåŸã®ã¡ãã»ãŒãžã¯åžžã«ãªã¹ãã®äžçªäžã«ããããã®åã«ç»é¢ãã¹ã¯ããŒã«ããå¿ èŠã¯ãããŸããã

ãŸãããã®ãœãªã¥ãŒã·ã§ã³ã¯ã¬ã³ããªã³ã°ãé«éåããã¹ã¯ããŒã«ã³ã³ãããŒã«ã«ããäžèŠãªæäœãæé€ããŸããã
ããã©ãŒãã³ã¹ãšããã°ã ç»é¢ã®æåã®ããŒãžã§ã³ã§ã¯ãã¡ãã»ãŒãžã®ã¹ã¯ããŒã«æã«é¡èãªãããŒããŠã³ãæ€åºãããŸããã ãéé¡ãã®ã³ã³ãã³ãã¯ããã¹ãããã¡ã€ã«ãåçãªã©ã®éå€ãªãã®ãªã®ã§ãã»ã«ã®ãµã€ãºãåžžã«åèšç®ãããéã®èŠçŽ ãè¿œå ããã³åé€ããå¿ èŠããããŸãã ãããã£ãŠãããã«ã®æé©åãå¿ èŠã§ããã ã¡ã€ã³ç»é¢ãšåãããã«ãçå°ãéšåçã«çµ¶å¯Ÿäœçœ®ã§ã¬ã³ããªã³ã°ããŸããã
iOSã§ãªã¹ããæäœããå Žåãã»ã«ãæç»ããåã«ããã®é«ããç¥ãå¿ èŠããããŸãã ãããã£ãŠãæ°ããã¡ãã»ãŒãžããªã¹ãã«è¿œå ããåã«ã衚瀺ã«å¿ èŠãªãã¹ãŠã®æ å ±ãåå¥ã®ã¹ããªãŒã ã§æºåããã»ã«ã®é«ããèšç®ãããŠãŒã¶ãŒããŒã¿ãåŠçããå¿ èŠãªãã®ããã¹ãŠèŠã€ããŠãã£ãã·ã¥ããŠããããªã¹ãã«ã»ã«ãè¿œå ããå¿ èŠããããŸãã
ãã®çµæãã¹ã ãŒãºãªã¹ã¯ããŒã«ãšãªãŒããŒããŒããããŠããªãUIã¹ããªãŒã ãåŸãããŸãã
èŠçŽãããšïŒ
- ã¯ãã¹ãã©ãããã©ãŒã éçºã¯æéãšãéãç¯çŽããŸãã
- è€éãªãã¶ã€ã³ã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŠãäžè¬çãªã³ãŒãã§ã¯ãªããã©ãããã©ãŒã ã§èšè¿°ããæ¹ã䟿å©ã§ãã
- ãã©ãããã©ãŒã ãããŒã¿ã¬ãã«ã§ã®ã¿å ±éã³ãŒããšéä¿¡ããåãã©ãããã©ãŒã ãç¬èªã®ã¬ã€ãã©ã€ã³ãéµå®ã§ããããã«ããããšããå§ãããŸãã
- 絶察é 眮ãšé 延åæåã«ãããè€éã§ãªãœãŒã¹éçŽçãªç»é¢ãå®è£ ã§ããŸãã
- SignalR-ãªã¢ã«ã¿ã€ã ã§ã®åæ¹åã®ã¯ã©ã€ã¢ã³ã/ãµãŒããŒçžäºäœçšã®ããã®äŸ¿å©ãªãœãªã¥ãŒã·ã§ã³ã
- ããŒã¿ããªã¢ã«ã¿ã€ã ã§æŽæ°ããå ŽåããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããã®ã劚ããŠã¯ãªããŸããã
- åé¡ãããŸããŸãªè§åºŠããèŠããšãæåãããæã«ã¯çãã解決çãèŠã€ããããšãã§ããŸãã
- 1ã€ã®ç»é¢ã§å€æ°ã®ã³ã³ãããŒã©ãŒã䜿çšããè€æ°ã®SignalRæ¥ç¶ãã»ããã¢ããããç»é¢ãåãæ¿ããã³ãŒããèšè¿°ããæé©åããå®éšããŸãã