ã¿ãªããããã«ã¡ã¯ã å°ãåãŸã§ãã¬ããªãšã«ã¯ã²ãŒã
2048ããããŸããã ããã¯ãã²ãŒã ã®ã¯ããŒã³ãå
ã®ã¯ããŒã³ããã人æ°ãåºãæãé©ãã¹ãã±ãŒã¹ã§ãã Gabrielã®æåã®å€§éšåã¯ããªãŒãã³ãœãŒã¹ã§ãããåºæ¥ãã°MITã©ã€ã»ã³ã¹ã§ãã 2äžãã€ã³ã以äžãç²åŸãããããçµæãåéãšå
±æãããã£ãã®ã§ãããã¹ã¯ãªãŒã³ã·ã§ãããååŸã§ããŸããã§ããã ã¢ããªã¹ãã¢ã¯ãã²ãŒã ã»ã³ã¿ãŒãŸãã¯ãã®ãããªäœããæã€ã¯ããŒã³ã®ååšã調ã¹ãŸãã-空ã§ãã ãããŠããªãã ãšæããŸãããïŒ
ä»åŸãã¢ããªã±ãŒã·ã§ã³ãšãã¹ãŠã®ãnishtyakããäœæããã®ã«4æ¥ããããŸããã åºåã¯ãæã
Webäžã§æ©èœãããŠãããŒãµã«ã³ãŒãã§ãããios / androidã«ç°¡åã«ç§»æ€ã§ããŸãã ãã ããé çªã«èŠãŠã¿ãŸãããã

æ¢ã«ç解ããŠããããã«ãç§ãã¡ã¯Webãã¯ãããžãŒã§ã®ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã®éçºã«çŠç¹ãåœãŠãŸãã æŠè»ã«ãã人ã«ãšã£ãŠã¯ããã¹ãŠãéåžžã«ç°¡åã«æ©èœããŸãã ãããžã§ã¯ãã¯ããã€ãã£ãSDKã䜿çšããŠäœæãããŸãããã®ç®çã¯ãWebViewãç»é¢å
šäœã«é
眮ããŠãç¹å®ã®htmlãéãããšã§ãã ã€ãŸã ã¢ããªã±ãŒã·ã§ã³å
šäœãæç·ã®ã¢ãã¬ã¹ããŒãåãããã©ãŠã¶ã«ãªã£ãŠããããšãããããŸãã ãããè¯ããæªããã¯ãé·ãéè°è«ã§ããŸãã ãããäžã§ã¯ããã«ã€ããŠå€ãã®ããªããŒããããäžéšã¯html5ã奜ã¿ãäžéšã¯ãã€ãã£ãã³ãŒãã§ãã ç§ã¯ãã®ããã«æžããŠããŸãããããã§ã¯2048ã®ãœãŒã¹ãWebã«æã£ãŠããã®ã§ããã¹ãŠããã€ãã£ãobjcã«æžãæããã®ã¯æããªããšã§ãã ãããŠãããã³ããšã³ã+ãµãŒããŒã§ã®äœæ¥ãäž»ãªã¿ã¹ã¯ã§ããå°ããªã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠè©±ããŠããå Žåãåã³html5ãå®è¡ã§ããå Žåãobjcã«ãšã£ãŠã¯éŠ¬é¹¿ããŠããŸãã
wunderlistãWebãã¯ãããžãŒã§
ããŸãæ©èœããŠãããšããŸãããã å
¬åŒã®
Gmailã¯ã©ã€ã¢ã³ãã®ããã«ã
ã¡ã€ã³è·å Žã®ç§ãã¡ã®ããŒã ã¯ãb2bãããžã§ã¯ããè¡ã£ãŠããŸãã ãããã¯ãæå°éã®åºåžã§è¯ãé»æªãè¡ããããããžã§ã¯ãã§ãã ã ãããç§ãã¡ãšäžç·ã«ã1æ¥ãããã®ãŠããã®æå°å€ã ãããã£ãŠããã¯ãããžãŒã§ãéã¶ãããšãã§ããŸãã IE8ã®äžã§äžéšã®ã¿ã€ãã»ãããããŠããéãç§ãã¡ã¯é¡§å®¢ã«firefoxãŸãã¯chromeã®ã¿ã§ãããåŸæ¥å¡ã®ããã«ãããã®ãã©ãŠã¶ãç¡æ¡ä»¶ã«ã€ã³ã¹ããŒã«ããããšãäŒããŸããã ãããã£ãŠãç§ãã¡ã¯é·ãéããããçš®é¡ã®html5ããŒã¹ã䜿çšããŠãããæºè¶³ããŠããŸãã ãããããã®ãããªãããžã§ã¯ããäœæãããšããã¢ã€ãã¢ãæãæµ®ããã ãšããç§ã¯äžè¬çã«ä»¥äžã«èª¬æããã»ãšãã©ãã¹ãŠã®æè¡ãç¥ã£ãŠããŠéšåçã«é©çšãããšããäºå®ã«ããããããããããã©ãã»ã©é¢çœããŠæ°ããããæ³åããããšããããŸããã§ããã
ç°å¢ããå§ããŠããã¯ãããžãŒã調ã¹ãŠãšã©ãŒã«ã€ããŠè°è«ããçµè«ãå°ããŸãããã

1.ç°å¢ã
WebView for
mobileã®ç¶ã¯ééããªã
phoneGapã§ãã ããã¯äžååã«ææžåãããŠããŸããïŒææžåãããã®ã¯äœã§ããïŒïŒãããŠéåžžã«ç°¡åã§ãã 圌ã¯äœãããŠããŸããïŒ Webãã¯ãããžãŒã«åºã¥ããŠãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããä»ã®ãã¬ãŒã ã¯ãŒã¯ãšåæ§ã«ãphonegapã¯ãã€ãã£ãæ©èœãJSã³ãŒãã«ããã·ã¥ãããã®éãåæ§ã§ãã ã€ãŸã åã«æžããããã«æžããã¢ãã€ã«ããã€ã¹ã«ãã¶ã€ã³ãé©åãããã«ã¡ã©ãéç¥ãé£çµ¡å
ãSMSãªã©ãæäœã§ããJSã³ãŒã«ãçšæããŸãã æ©èœãšãã©ãããã©ãŒã ã®ãªã¹ãã¯ã
ç¹å¥ããŒãžã«ãããŸã ã
Cordovaã«åºã¥ããŠæ§ç¯ãããŠããŸãã
ãŸãã
Senchaã«ç®ãåããããšããå§ãããŸãã圌ãã¯ããå°ãé²ãã§ãJSçµç±ã§æºåž¯é»è©±/ã¿ãã¬ããã®ãã€ãã£ããããã«ã¢ã¯ã»ã¹ããã ãã§ãªãããã€ãã£ãUIãæäŸããæ©äŒãäžããŸãã ã€ãŸã 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãäœæãããšãAndroidãšiOSã®äž¡æ¹ã§ãã€ãã£ãã®ããã«ãªããŸãã ãã ããsenchaã¯extjsã§ãã ã³ãªã¢ã³ããŒãšåãããã«ãããã«å€¢äžã«ãªã£ãŠãã人ãšãããã«èããããªã人ãããŸãïŒããããäžè¬çãªç解ã®ããã«ããããèŠãããšããå§ãããŸãã
ãŸãã
ã³ã«ããã«ã€ããŠè©³ãã説æããããšæããŸãã Fongapãããã¯ç°å¢ã§ãã ææãµããŒããã¢ããªã±ãŒã·ã§ã³ãçæããããã®ã¯ã©ãŠããµãŒãã¹ãªã©ããããŸãã Cordovaã¯ãã©ãããã©ãŒã ã§ãã çŽæ¥ãã€ãã£ãã¢ãžã¥ãŒã«ãšJSãã€ã³ãã£ã³ã°ã
ãã®å Žåãäžèšã®ãããã䜿çšããŸããã ãŸãããã¹ãŠããŒãããããçŽããããšæããŸããã ç§ã«ãšã£ãŠã¯ãæè»æ§ãšé床ã®çæ³çãªæ¯çã§ããCordovaã®ã¿ãããã«é©çšããããšã«ããŸããã 第äºã«ãfongapãŸãã¯cordovaã®ç°å¢ããã°ããææ¡ããããšãã§ããŸããã§ããã ç
è¶ã¯èšããŸã§ããããŸããã ãããã®ãã¹ãŠã¯ãåã蟌ãŸããhtmlã§ã¢ããªã±ãŒã·ã§ã³ãäœæããããšãææ¡ããŸããã次ã«ãã³ãŒããå€éšãµãŒããŒäžã«ãããšãã®ç¶æ³ãæ€èšããŸãã
ãªãå€éšãµãŒããŒãªã®ãïŒ ã¢ããªã¹ãã¢ã§ã¢ãã¬ãŒãããããšãïŒéåžžã¯1é±éããããŸãïŒã§ã¯ãªãããã°ãèŠã€ãã£ããšãã«æŽæ°ã§ããã¢ããªã±ãŒã·ã§ã³ãäœæãããã£ãã®ã§ãã é çªã«è¡ããŸãããã
ãããã¯ãŒã¯ã«ã¯ããã€ãã£ãUIãå«ãã¢ãã€ã«UIãäœæããããã®å€ãã®ãã¬ãŒã ã¯ãŒã¯ããããŸãã Senchaã«ã€ããŠã¯ãã§ã«èª¬æã
ãŸããã ã
PhoneJS ã
JQ Mobile ã
Intel AFãªã©ã«ã泚ç®ãã䟡å€ããããŸãã GoogleãæããŠãããŸãïŒ
ãã®å Žåãç§ã¯ãããã³ãŒããéžã³ãŸããã ç§ã¯ãã§ã«å¥ã®ãããžã§ã¯ãã§åœŒã«äŒã£ãŠããŠã圌ãæ¬åœã«å¥œãã§ããã ãŸãããããã¯AndroidãšiOSã®äž¡æ¹ã§èŠæ ãã®è¯ãã«ã¹ã¿ã UIã§ã¯ãããŸããã 第äºã«ããããã³ãŒãã¯éåžžã«ã·ã³ãã«ã§ãããããæè»æ§ããããŸãã Bootstrapã®åŸãã°ãªããã®æ¬ åŠãªã©ãèæ
®ãããšãããã¯å°ãçããããšã§ããã ããããããªãã¯ããã«ããã«æ
£ããŸãïŒ
ãããã³ãŒãã«ã¯ãã¢ã€ã³ã³ã®ã¢ã€ã³ã³ãæã€ãã©ã³ãããããŸããããå§ãããŸããã
Font Awesomeãæé«ã§ãã
UPDïŒãŠãŒã¶ãŒ
radist2s 㯠ããã€ãã£ãã«è¿ãã¹ã¯ããŒã«ãå®è£
ããå¿
èŠãããå ŽåãiScrollå
šäœã¯äžèŠã§ãããš
ææ¡ããŸããã ã¡ããã©zayuzatã§ããããšãããããŸã
-webkit-overflow-scrolling: touch;
確ãã«ãã¹ã¯ã€ããšã¹ã¯ããŒã«ã¯ã¢ãã€ã«ãœãªã¥ãŒã·ã§ã³ã®ç¹åŸŽã§ãã iScrollã¯ããã€ãã£ãã¹ã¯ããŒã«ã«éåžžã«è¿ããã®ãæäŸããŸãã IScroll4ã¯ãææ°ã®iScroll5ã»ã©ãããã¯ãŒã¯äžã§äžè¬çã§ã¯ãããŸããã ãããã£ãŠãæ°ããããé«åºŠã§äžæ³šæã ãªããµã€ãã«ã¯å€ãã®äŸããããäžè¬ã«ããã¹ãŠãæ確ã§ãã
jQueryã®çœ®ãæããããé«éãªã»ã¬ã¯ã¿ãŒãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³åãã§ãã 倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãèšå€§ãªæ°ã®ãã©ã°ã€ã³ã®ããjQueryã䜿çšããŸãããããã«å¿
èŠãªã®ã¯ã»ã¬ã¯ã¿ãŒã ãã§ãïŒ
JSäžã®åãªããã«ããŒã¢ããªã³ã ç§ãã¡ã¯ãã°ãã°ãããžã§ã¯ãã§backbonejsã䜿çšããŸãããlodashã¯äºå®äžå¿
é ã§ãã ãŸããå®éã«ã¯ãããã¯ãã€ãã£ãã³ãŒãããé
ããããŸããã æã
éããªããŸãã
JSã§æ¥ä»/æå»ãæäœããŸãã ã³ã¡ã³ãããªããã°ããã®é çã®ã©ã€ãã©ãªããªããã°ãäœåã«ããªããŸãã
ãããžã§ã¯ãã§ã¯Backboneã䜿çšããŸããã§ããããããã§ã¯éåžžã«èŠæ±ãããŠããŸãã ç¹°ãè¿ããŸãããããããä¿åããŸãã Backboneã¯ãå€ããå°ãªããè€éãªã¢ããªã±ãŒã·ã§ã³ã§äŸ¿å©ã§äžå¯æ¬ ã§ãããããã§ã¯åœ¹ã«ç«ã¡ãŸããã å°ãªããšãããæã£ãïŒ
rad-jsã«æ³šæãããããããŸããããããã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®éçºã®ããã«åŒ·åãããã«ã¹ã¿ã ããã¯ããŒã³ãªããžã§ã¯ãã§ãã è¯ãããšã§ãããéåžžã«æŽç·ŽãããŠããŸãã ãŸããRADãå€ãã®å€ãã³ãŒãã䜿çšããŠããããšãæ®å¿µã§ãã ããšãã°ãlodashã§ã¯ãªããå€ãiScrollãšã¢ã³ããŒã³ã¢ã«ããã¿ã€ããŠããŸãã ç¹°ãè¿ããŸããããã®ãããžã§ã¯ãã§ã¯ããã®äœ¿çšã¯äžèŠã§ããããã«æãããŸããã
ç°å¢ãæŽçããŸããã MVCãŸãã¯åæ§ã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããŸãããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®æ©èœã¯åçŽãªjsãªããžã§ã¯ãã«é
眮ãããŸãã æ¢è£œã®cssãã¬ãŒã ã¯ãŒã¯ãšãè¿
éãªéçºã«å¿
èŠãªJSã©ã€ãã©ãªã®ã»ããããããŸãã

2.ãã¯ãããžãŒ
éå»2幎éã§ãã¯ãããžãŒãšãã©ãŠã¶ãŒãã©ã®ããã«æé·ãããã¯é©ãã¹ãããšã§ãã 2幎åãç§ã¯ãŠã§ãæè¡ãšãã€ãã£ãã³ãŒãã®ã©ã¡ãããéžã³ãŸããã 倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ããã€ãã£ãã³ãŒããéžæããŸããã ãããŠãã®ç¬éãããã¯æ£ãã決æã§ããã ããŠããŠã§ãäžã®ãã¹ãŠãæžãçŽããŠããŠã§ããããã«çºå±ãããŸãããã ããããããã¯ãã§ã«æ®å¿µã§ããæ°åè¡ã®ãã€ãã£ãobj-cã¯å€§äžå€«ã§ã¯ãããŸããã ç§ã¯çŸå®ã«ã€ããŠæ²é»ããŠããŸãã
2.1 LocalStorage
ãŸãããã¹ãŠãã¯ãªã¢ãã¹ãã¬ãŒãžã§ãã ç¹ã«ããã¹ã/ jsãªããžã§ã¯ãã«å¿
èŠãªã®ã§ã5ã¡ãŒãã«ä»¥äžã ããŒã /å€§æ ¹ã§å°ãªããšãäžåºŠåããããšã®ãã人ã¯å¹žãã«ãªããŸãã 5ã¡ãŒãã«ã§ã¯äžååãªå Žåãããšãã°ããã€ãã£ãUserDataãä»ããŠã¹ãã©ãããäœæã§ããŸãã ãªã³ã©ã€ã³ã§å€ãã®ãœãªã¥ãŒã·ã§ã³ããããŸãã 誰ãããã£ãã·ã¥ããã¡ã€ã«ã«ãã©ãŒã«ãããããšãææ¡ãã誰ããUserDataãä»ããŠã誰ããWebSQLããå§ãããŸãã LocalStorageã§ååã§ãã
2.2 AppCache
ãããããå€éšã³ãŒãã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãäœæããŠããã®ã¯ããã®ãã¯ãããžãŒã®ãããã ãã§ãã ç¹°ãè¿ããŸãããã¢ããªã±ãŒã·ã§ã³ã¯ããŒã«ã«ã®htmlãã¡ã€ã«ã§ã¯ãªãããªã¢ãŒããµãŒããŒã§ãã¹ããããŸãã çŸæç¹ã§æºåž¯é»è©±ã«ã€ã³ã¿ãŒãããããªãå Žåãå€éšãµã€ãã¯éããªãã®ã¯è«ççã§ãã ãããappCacheãç§ãã¡ãæãå Žæã§ãã ãã®æè¡ã«åºäŒããªãã£ã
ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã«ã€ããŠã®èšäºã¯ãããããããŸãããã²èªãã§ãã ããã æå³ã¯éåžžã«ç°¡åã§ãã ç¹å¥ãªãããã§ã¹ããã¡ã€ã«ã䜿çšããŠããã£ãã·ã¥ã«é
眮ããå¿
èŠããããã¹ãŠã®ãã¡ã€ã«ããã©ãŠã¶ãŒã«éç¥ããŸãã çŸããã¯ãããã€ã¹ã«ã€ã³ã¿ãŒãããããªããŠãããã£ãã·ã¥ã«ãããã¡ã€ã«ãæ©èœããããšã§ãã ã¢ããªã±ãŒã·ã§ã³å
ã®ã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã¯åçŽã§ãã
ã¯ã©ã€ã¢ã³ãã¯ã¢ããªã±ãŒã·ã§ã³ãåããŠèµ·åããwebviewã®ã³ã³ãã³ããåžã蟌ã¿ãwebviewã¯ã¢ããªã±ãŒã·ã§ã³ããã£ãã·ã¥ããŸãã ããã«ãã¢ããªã±ãŒã·ã§ã³ãèµ·åããããã³ã«ããããã§ã¹ããã¡ã€ã«ã®å€æŽããã§ãã¯ãããŸãã å€æŽãããŠããå Žåããã£ãã·ã¥ã¯å®å
šã«äžæžããããŸãã å€æŽããªãã£ãå Žåãäœæ¥ã¯ç¶è¡ãããŸãã ãããã£ãŠããŠãŒã¶ãŒãã€ã³ã¿ãŒããããæã£ãŠããªãå Žåããã£ãã·ã¥ã¯æŽæ°ããã«åºå·ããŸãã
ãããã£ãŠãWebãã¯ãããžãŒã«åºã¥ãããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã ãã§ãªãããµãŒããŒã«ã³ãŒããçŽæ¥é
眮ããããšãã§ããŸãã å¿
èŠãªãã®ã«ã€ããŠã¯ãäžã«æžãã-å³åº§ã®ãã°ä¿®æ£ãšæ°ãããããã®è¿
éãªå
¬éã
2.3 CSS3
ãããŠããã¡ããããŠã§ããããã®ãã¹ãŠã®æ©èœãç¡èŠããã®ã¯æããªããšã§ãã äžè¬ã«ããŠã§ãäžã§ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåãè¶
è¿ä»£çã§ãã°ãã°æ°ãããã¯ãããžãŒããµããŒããã1ââã€ãŸãã¯2ã€ã®ãã©ãŠã¶ãŒçšã«äœæããããšãå¿ããªãã§ãã ããã ã€ãŸã flexboxã䜿çšããã¢ãã¡ãŒã·ã§ã³ãèªç±ã«äœ¿çšããpngfixãå¿ããããšããå§ãããŸãïŒ
ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã»ãšãã©ãã¹ãŠã®ã¢ãã¡ãŒã·ã§ã³ã¯css3ã«åºã¥ããŠããŸãã ãŸããæ°ããã¡ãŒãã«ã®JSã³ãŒããæžããããç°¡åã§é«éã§ãã 第äºã«ãã¢ãã¡ãŒã·ã§ã³çšã®Webkitã«å«ããããšãã§ããããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã®ãããã§ãéåžžã«é«éã«åäœããŸãã
ããããããã§ååã§ãïŒæ¬¡ã«ãXcodeã§ãããžã§ã¯ããæºåããå¿
èŠããããŸãã
ãã§ã«è¿°ã¹ãããã«ããã¹ãŠãéåžžã«ã·ã³ãã«ã§ãUIWebViewã®ãã«ã¹ã¯ãªãŒã³ã ããå¿
èŠã§ããã以äžã¯å¿
èŠãããŸããã
JSONKitã
ãããžã§ã¯ãã«æ¥ç¶ã
ãŸããããªããªã ãœãŒã·ã£ã«ãããã¯ãŒã¯ãšã®çµ±åã®ããã®ãã€ãã£ãããŒãµãŒ+ VK-SDKãFacebook-SDKãããé«éã§ãã ãã¡ããããŠã§ãäžã§çµ±åãè¡ãããšã¯å¯èœã§ããããé
åã®ããã«vk + facebookã®ãã€ãã£ããµããŒããäœæãããã£ãã®ã§ãã iOS SDKã®æ©èœãå¿ããªãã§ãã ããã ã€ãŸã Webãã¯ãããžãŒã¯ã¯ãŒã«ã§åŒ·åã§ããããã€ãã£ãã«å®è£
ããã®ãæé©ãªã¿ã¹ã¯ããããŸãã ãœãŒã·ã£ã«ãããã¯ãŒã¯ãšã®çµ±åã¯ããã®ãããªã¿ã¹ã¯ã®1ã€ã§ãã
æ®ã£ãŠããã®ã¯ãhtmlã³ãŒããšã¢ããªã±ãŒã·ã§ã³ãšã®æ¥ç¶ã確ç«ããããšã ãã§ãã ããã§ãããã¹ãŠãéåžžã«ç°¡åã§ãã æçš¿ããWebViewã¯ãã³ã³ãããŒã©ãŒã«å§ä»»ããå¿
èŠããããŸãã
ã¢ããªã±ãŒã·ã§ã³ããWebãžã®ã¡ãã»ãŒãžã¯éåžžã«åçŽã§ãã©ãããã§ãååŸã§ããŸãã
[webView stringByEvaluatingJavaScriptFromString:@"alert(123);"]
Webããã¢ããªã±ãŒã·ã§ã³ãžã®ã¡ãã»ãŒãžã¯æ¬¡ã®ããã«æ©èœããŸãã é©åã«èšèšãããWebViewã¯ãã¹ãŠã®é·ç§»ãæ¢ç¥ããå¿
èŠãªãªã³ã¯ãäœæããshouldStartLoadWithRequestã¡ãœããã§ããããã€ã³ã¿ãŒã»ããã§ããŸãã
<button ontouchend="window.location='vk:auth';"></button>
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSMutableURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *requestString = [[request URL] absoluteString]; if ([requestString isEqualToString:@"vk:auth"]) { [VKSdk authorize:@[VK_PER_FRIENDS, VK_PER_WALL] revokeAccess:YES forceOAuth:YES inApp:YES display:VK_DISPLAY_IOS]; return NO; } }
ãããã£ãŠãå¿
èŠãªã¢ãã¬ã¹ãååããå Žåã¯ãNOãè¿ãããšãå¿ããªãã§ãã ãããããããªããšãWebããŒãžã§ã³ã¯ãŸã ã¢ãã¬ã¹vkïŒauthã«ã¢ã¯ã»ã¹ããããšããŸãã
ããããã¹ãŠã§ãããããŒããã£ãã·ã¥ããŠãªãã©ã€ã³ã§äœæ¥ãããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãšéä¿¡ã§ããWebãã§ã€ã¹ããããŸãã 幞ãã«ã¯ä»ã«äœãå¿
èŠã§ããïŒ ïŒ
å°æ¥ã®ãšã©ãŒãšæ³šæäºé
次ã®èšäºã§ã¯ãå€éšã³ãŒãã§Cordovaã䜿çšããæ¹æ³ã«ã€ããŠèª¬æããŸãã ééããªããééãïŒ1ã¯ã·ã§ã«ãXcodeã§äœæãã決å®ã§ããã ããããç¹°ãè¿ãã«ãªããŸãããã¿ã¹ã¯ã¯ãããã»ã¹ã®è©³çŽ°ãç解ããããã«ããã»ã¹ãç 究ããããšã§ããã ãããã£ãŠãããã¯ãŸã£ããééãã§ã¯ãããŸããã åç
§ãé€ããã·ã§ã«ã®äœ¿çšã¯ãå§ãããŸããã ä»ã®ãããžã§ã¯ãã§ã¯ãã³ã«ããã»ã©åªãããã®ã¯ãããŸããã ãããŠã圌女ããã©ã°ã€ã³ã®åœ¢ã§ã©ã®ããã«å®è£
ã§ãããã圌女ãç¥ããªãããšãã¹ãŠã
ãŸããããã¯ããŒã³ãç¡èŠããã®ã¯ééãã§ããã ã¢ããªã±ãŒã·ã§ã³ã¯ãã§ã«æé·ãå§ããŠããŸããããã¯ããŒã³ã®ãããªmvcãã¬ãŒã ã¯ãŒã¯ãããã«äœ¿çšããã°ããããªãéçºã¯ã¯ããã«ç°¡åã§ç解ãããããªããŸãã
ç¹ã«ãç§ã¯NSURLRequestã®ã»ããã¢ããã«èŠåŽããŸããã ããã¯ãå®éã«å¿
èŠãªURLãéãWebViewã®èŠæ±ãªããžã§ã¯ãã§ãã cachePolicyã®ãã©ã¡ãŒã¿ãŒã®1ã€ã¯ããã£ãã·ã¥ããªã·ãŒãæž¡ãå Žæã§ãã æšæºã®ããªã·ãŒïŒãã©ãŠã¶ãŒã®ããªã·ãŒãšã»ãŒåçïŒã䜿çšã§ãããšããŸããããããšãã°ãããããŒã«é¢ä¿ãªãããã£ãã·ã¥ããã®ã¿ååŸããŠãèŠæ±ããŸã£ãããã£ãã·ã¥ããªãããã«æ瀺ããããšãã§ããŸãã NSURLRequestReloadIgnoringLocalAndRemoteCacheDataãã©ã°ã«ã€ããŠèªãã åŸã䜿çšããããšã«ããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯æããã«åäœããã®ã§ããã®ãŸãŸã«ããŸããã ãããŠããã®ãã©ã°ã¯ios sdkïŒïŒïŒïŒã§ã¯å®è£
ãããŠããªãã£ãããšãå€æããŸãã
ã²ãŒã èªäœã«ã€ããŠã¯ãã¢ãã¬ãŒãã®ããã«ãã€ããªãéä¿¡ããæç¹ã§ãã¢ããªã¹ãã¢ã«ã¯2048ã®ã²ãŒã ã¯ãããŸããã§ããããå
¬éæã«ã¯60ãè¶
ããã²ãŒã ããããŸãããæåã¯HTMLã³ãŒãã«ã¢ãã€ã«ã¢ãã»ã³ã¹ãçµã¿èŸŒã¿ãŸããã ãã ããåºçç©èªäœã®åã«ãç§ã¯ãããåé€ããã¢ããªã±ãŒã·ã§ã³ã«æ¯æããããŸããã ãããã®60以äžã®ã²ãŒã ã¯ãã¹ãŠç¡æã§ãå
éšã«åºåããããŸããã å€æ°ã眮ãæããã«ã¹ã¿ã ã®æ¹æ³ã®ãããªãã®ã®ããã§ãã ç§ã¯ãã®ã²ãŒã ã§ãéã皌ãä»äºãããŠããŸããããç¡æã§ãµããŒãããæå³ããããŸããã 競åä»ç€Ÿãšã®äž»ãªéãã¯ãGameCenterãšã®çµ±åã§ã¯ãªãããœãŒã·ã£ã«ãããã¯ãŒã¯ãšã®çµ±åã§ãã å人çã«ã¯ã空çœã®GameCenterãããã£ãŒã«ãããVKontakteã§åéã®äžã§èª°ãè¿œãè¶ããããèŠãã®ããããããã§ãã ããŠããããã«ãŒãããã©ããŒããæ¹ãç°¡åã§ãããªããªãã ãµãŒããŒãããŒã¹ã«ããŸãã ãŠãŒã¶ãŒã®ã°ã«ãŒãã«ãšã£ãŠãã®ãããªããšãããé¢çœãããŠãŒã¶ãŒãã²ãŒã ããã33ã«ãŒãã«ã䜿ãããšãæ°ã«ããªãå Žåã¯ãããã«çºå±ãããããšãã§ããŸãã ã°ããŒãã«ã¬ãŒãã£ã³ã°ãæ§ç¯ããããã®ã¢ã€ãã¢ããããŸããã ããšãã°ãç·æ§ãŸãã¯å¥³æ§ãæ人ãŸãã¯é幎ã ã¢ã¹ã¯ã¯å·ç«å€§åŠãŸãã¯MGIMOãªã© ãã®ããŒã¿ã¯ãã¹ãŠãœãŒã·ã£ã«ãããã¯ãŒã¯ããåéãããŸãã
ãããã«ãããããã¯åãªãããã³ã®ãã¹ããã§ãã ããŸããŸãªãµã€ãºã®ã¢ã€ã³ã³ãæç»ããããšã§ç²åŸããrrã®ã»ãšãã©ã ç°ãªããµã€ãºã®åèš18ã®ã¢ã€ã³ã³+ 13ã®éå§ç»é¢ã
UPDïŒ AppStoreã§ã®ãã®ãããªã¢ããªã±ãŒã·ã§ã³ã®åæ³æ§ã«é¢ããŠã@ mifkiã®
ã³ã¡ã³ããèªãããšããå§ãããŸãããã¹ãŠã圌ã®èšããšããã§ããã°ãã¢ããªã±ãŒã·ã§ã³ã¯ã¬ãã¥ãŒãè¡ãã ãã§ããããµã€ãã®ã³ãŒãã䜿çšããããã«åé€ãããŸããã ãããã
ã¢ã©ãã³ã㩠㯠ãå€éšã®ã«ã¢ã®ããã«åœŒã®ã¢ããªã±ãŒã·ã§ã³ãåé€ããããš
䞻匵ããŠããŸãã
ãŸãã以åã¯ã¢ããªã±ãŒã·ã§ã³ãå€éšã¹ã¯ãªããã«å¯ŸããŠèš±å¯ãããŠããªãã£ãããšã
StackOverlowã§ç¢ºèªãããŸããããã»ãã¥ãªãã£ããªã·ãŒãå€æŽããããã¹ãŠãæ£åžžã«ãªããŸããã