ã³ã³ãã¹ãã«ã€ããŠ
ãŸã第äžã«ã競äºã«ã€ããŠå°ã話ã䟡å€ããããŸãã ç§ãç¥ã£ãŠããããã«ãVKontakteã¯æ¯å¹Žã¢ãã€ã«éçºè åãã®ã€ãã³ããéå¬ããŠããŸãã ç§èªèº«ã¯2012幎ãš2013幎ã«ãã§ã«åå ããŠããŸãã ã¿ã¹ã¯ã¯ããããããã£ãããšç»åãã£ã«ã¿ãŒã®éçºã§ããã 2013幎ã«ãç§ã¯ãªããšãæçµã©ãŠã³ãã«å°éãã100,000ã«ãŒãã«ã§åã¡ãŸãããããã¯ã4æ¥éã®èå³æ·±ãä»äºã§éåžžã«è¯ãéé¡ã«æããŸããã
ãããŠããœãŒã·ã£ã«ãããã¯ãŒã¯ã§åºåãèŠãŠãè©ŠããŠã¿ãããšã«ããŸããããªããªããã¯ãŒã«ãªããšã¯ãéåžžã«çæéã§é«å質ã®ã³ãŒããèšè¿°ã§ããããšãèªåèªèº«ã«èšŒæããããšã ããã§ãã
競äºã«ã¯2ã€ã®æ®µéããããŸããïŒæåã®æ®µéã§ã¯ã30ã®è³ªåã®ãã¹ãã«åæ Œãã2ã€ã®ãªãªã³ãã¢ãŒãã®åé¡ãš1ã€ã®é«å質ã®åé¡ã解決ããããšãææ¡ãããŸããïŒã€ãŸãã解決çã¯ããã¹ã圢åŒã®äžé£ã®æèã§ãïŒã 1000人以äžã®ç¬¬2ã©ãŠã³ãã§ã¯ã112ã®ã¿ãééãïŒiOSã«ã€ããŠã®ã¿è©±ããAndroidã§ã¯å°ãäœãå€ïŒãã¡ã€ã³ã¹ããŒãž-ã¢ããªã±ãŒã·ã§ã³éçºãå§ãŸããŸããã
æ瀺ã§ã¯ããã¥ãŒã¹ãã£ãŒããäœæããVK APIãšã®çµ±åãèªåã§èšè¿°ããå¿ èŠããããŸããããã£ãŒãã¯ãã¹ãŠã®ããã€ã¹ã§éåžžã«ã¹ã ãŒãºã§ããå¿ èŠããããŸãããã³ã³ãã³ãã®åºåã«ã¯ç¹å®ã®èŠä»¶ããããŸããïŒç»åãšã«ã«ãŒã»ã«ãå«ãæçš¿ããããã®ã«ãŠã³ã¿ãŒãå ±æããã¥ãŒã®æ°ãæå°åããæ©èœïŒç¹å®ã®æ¡ä»¶äžã§æçš¿ãå±éããŸãïŒã
ã¬ã€ã¢ãŠããFigmaã«ã¢ããããŒããããŸããã ããã¯ç«¶äºã«ãšã£ãŠè¯ãéžæã§ã-ã¢ã¯ãã£ããªãŠãŒã¶ãŒã®æ°ã®ããã«ã競äºã¯ããã«æããããŸãïŒãããŠãåææ¥ç¶ã®50ã®å¶éãè¶ ãããããåææ¥ã«ããã¯ã¢ãŠããããŸããïŒã
äžè¬ã«ãããã€ãã®ç¹ãé€ããŠã競äºã®çµç¹ã¯ã¹ã ãŒãºã§ããïŒã¿ã¹ã¯ã®å ¬éçŽåŸãã¬ã€ã¢ãŠããžã®ãªã³ã¯ãå£ããŠããããšãå€æããåè¿°ã®ããã«ãåææ¥ã«Figmaãžã®å ¥ãå£ããããã¯ãããŸããïŒãã®åé¡ã¯éåžžã«è¿ éã«ä¿®åŸ©ãããŸããïŒãã€ãã³ãã®åŸãããªãæéãããããŸããçµæãæåŸ ããŸãã ãããããã¹ãŠã®åŠå®ã¯åæ§ã®æçš¿ãã¹ã ãŒãºã«ããŸãïŒ
åå©ã®èšç»ãšæŠç¥
競æäŒã«åå ããããè©ŠããŠã¿ããå Žåãéåžžã«éèŠã§èå³æ·±ããããã¯ã§ãã åå ããåã«ãçãããã©ã®ãããªç®æšãè¿œæ±ããã©ã®ãããªçµæãéæãããããèããããšããå§ãããŸãã ã³ã³ãã¹ããéå§ããåã«ãèªåã§åªåãããïŒã€ãŸããè³åãç²åŸããïŒããšã決ããŸããã ãããè¡ãã«ã¯ãæŠç¥ãå¿ èŠã§ãã
åå©æŠç¥ã®å ¬åŒã¯æ¬¡ã®ãšããã§ãïŒæ®éçã§ã·ã³ãã«ãªããã§ãããã»ãšãã©ã®åå è ã¯ããã«åŸããªããšç¢ºä¿¡ããŠããŸãïŒã
- 課é¡ã泚ææ·±ãèªãã§ãã ãã ã æ°æéåŸãããäžåºŠèªãã§ãã ããïŒåããŠã¿ã¹ã¯ãç¥èŠããªãã£ããšãã«äœåºŠãç¶æ³ã«é¥ããŸããïŒã 念ã®ãããé éã®æ°æéåã«ããäžåºŠã
- 質åãäœæããŠäž»å¬è ã«å°ããŸã ïŒéåžžãå²ãåœãŠã®èŠä»¶ã¯å€ãã®ç¶æ³ãèæ ®ããŠããªãããéåžžã«è¡šé¢çã«å ¬éãããŠããŸãïŒã ç§ã¯ãããããŠããããªãã®éžæãã®ã¹ã¿ã€ã«ã§çããåŸãŸããã
- ãããžã§ã¯ãèšç»ãç«ãŠãŸãã ã¯ããã³ã³ãã¹ããããã«ãœã³ãžã®åå ã¯ãããžã§ã¯ãã§ãã ãããžã§ã¯ãã«ã¯ãç®æšãã¹ã±ãžã¥ãŒã«ããªãœãŒã¹ãäºç®ããããŸãã æéã¯å³å¯ã«å¶éãããŠãããå€æŽã®çµããã移åããããšã¯äžå¯èœã§ãã è¿œå ã®äººãæåŸ ããããšã¯ã§ããŸãã-競æã¯ããŒã 競æã§ã¯ãããŸããã ããªããæã£ãŠãããã¹ãŠã¯ããªãèªèº«ã®äººã ã§ãã /æéã ã©ãã ãã®æéãè²»ããããããã«æ±ºå®ããŸãïŒç¡ç ãé£äºãå»å¢ãäŒæ©ã«ã©ãããããããããããèããŠãã ãããããã§ãã容赊ãªãæéæ ã®åã§ã®ç¡åæããç²åŽãç¥çµã®ããã«çç£æ§ãäœäžããŸãïŒã
- èšç»ã«ã¯ãã¿ã¹ã¯ããã®åªå é äœãããã³éã¿ãå¿ èŠã§ã ïŒãã©ãŒã 1ã2ã4ã8ã®æšå®å€ã䜿çšããŸããïŒã è©äŸ¡ã«ã¯ãæéããããå®è¡ããææããªãããšãããã³æœåšçãªãªã¹ã¯ïŒè€éããç解ã§ããªãæ¡ä»¶ããã®ãããªéçºã®çµéšããªããªã©ïŒãå«ãŸããŸãã 次ã«ã詳现ãªèšç»ïŒãŸãã¯ããŒããããã¿ã¹ã¯ïŒãäœæããŸããæåã«æãéèŠã§è€éãªãã®ãäœæããŸãïŒæåŸã«ç°¡åã§ç解ãããããã®ã«ããŸãïŒã
- ããã€ãã®å€§ããªééãŸãã¯ãã€ã«ã¹ããŒã³ãéžæããŸã ïŒæ¥ã¯çŽ æŽãããã§ã-3æ¥éãããŸããïŒã ãããŠããããããæ€èšããªãããäœæ¥èšç»ã確èªããã¿ã¹ã¯ãå解ãããœãŒããããããŠæãéèŠãªããšãšããŠãããªãããã§ã«åãã§ãã£ãããšãæ¶ãå»ããŸãã
ããã§ã®ã¢ããã€ã¹ïŒç§ã¯ãŸãã«ãããè¡ããŸããïŒïŒã¿ã¹ã¯ã«ãå¿ é ããšãè¿œå ããšããåèªãå«ãŸããŠãããã©ãããæ éã«èª¿ã¹ãŸãã ãããŠããè¿œå ãããã®ã¢ã€ãã ã®è©äŸ¡åºæºã¯äœã§ããã ãå¿ é ãã»ã¯ã·ã§ã³ã®å®è£ èŠä»¶ã®æ¬ åŠãç¡å¹ã«ãããã©ããã ç§ã¯ãããçããŸãã ãããã£ãŠããå¿ é ãã»ã¯ã·ã§ã³ã«æ³šç®ããŠãã ããã ç§èªèº«ã®ããã«ãç§ã¯äžè¬ã«ãé«åºŠãªãã»ã¯ã·ã§ã³ãæå³çã«åãæ¶ããéå§ããã€ãããããããŸããã§ããã - å®è£ ãããšãã¯ã詳现ã«æ³šæããŠãã ãã ã ããšãã°ãã¿ã¹ã¯ã«å€æ°ã®ã€ã³ã¿ãŒãã§ã€ã¹ãã©ãŒã ãããå Žåã¯ãã¬ã€ã¢ãŠãã«è¡šç€ºãããæ¹æ³ã§å®è¡ããŸãã ã€ã³ãã³ãããã©ã³ãã圱ãè¡ééãªã©ã«æ³šæããŠãã ããã ããã«ãããæ£ç¢ºããšäžè²«æ§ã®ç¹ã確å®ã«è¿œå ãããŸãã ã¡ãªã¿ã«ãFigmaã§ã¯ãZeplinãšã¯ç°ãªããéåžžã«å¹ åºãèšå®ã®ãšã¯ã¹ããŒãããããŸããããšãã°ãé©åãªNSAttributedStringãååŸã§ããŸãã
ããã·ã§ã³ã¯æšææ¥ããéææ¥ã®å€ã«éãããŸããã éææ¥ã¯å°±æ¥æ¥ã§ãããè·å Žã§ç«¶äºã«åå ããæ©äŒãšåžæã¯ãããŸããã§ããã ãããã£ãŠãéææ¥ã®å€ã«ä»äºããæ»ã£ãåŸãç§ã¯æåã«ã©ãã ãã®æéãè²»ããããšãã§ããããèšç»ãè©äŸ¡ãããã³èšç®ããŸããã
æåã®èšç»ã¯æ¬¡ã®ãšããã§ãã
æ¥ | æé | ã¿ã¹ã¯ |
éææ¥ | 4æé | æ¿èªããããã¡ã€ã«ããã³ããŒãã®ããŒã¿ã®ååŸã |
åææ¥ | 9æé | ããŸããŸãªé«ãã®èµ€ãæ£æ¹åœ¢ã®ãã£ã¹ãã¬ã€ãåããããŒãã®ãããã¿ã€ãã§ããã«ããŒãªãã¬ãã·ã¥ã§äžã«ããŒãããå±¥æŽã«ç¡éã«ããŒããããã¹ãŠã®ã¢ãã«ãšãµãŒãã¹ãæºåããŸãïŒAPIã®æäœããã£ãã·ã¥ã®ãã£ãã·ã¥ãã€ã¡ãŒãžã®ãã£ãã·ã¥ïŒã
|
æ¥ææ¥ | 9æé | å®éã®ããŒã¿ïŒããã¹ããåäžã®ç»åãã«ã«ãŒã»ã«ïŒããããã®ã«ãŠã³ã¿ãŒããã¥ãŒãã¬ã€ã¢ãŠãã«ããæçµèª¿æŽã®åºåã |
ããŒãå®è£ æè¡
ãã£ãïŒ çŽ³å£«ãéçºè ãããªãã¯æ£ãããããã¯ãèŠã€ããŸããã ããã§ã¯ãã¿ã¹ã¯ã®äž»èŠéšåã§ãããã¥ãŒã¹ãã£ãŒãã®å®è£ ã«ã€ããŠèª¬æããŸãã
äžè¬çã«ããã¥ãŒã¹ãã£ãŒãã解é€ããå Žåããã¥ãŒã¹ãã£ãŒãã¯åã«é©çšãããå®è£ ã§ããäžè¬ã«ãç°çš®ãšã³ãã£ãã£ã®ãªã¹ãã®äœæã«ã€ããŠèª¬æããŸãïŒã€ãŸãããããããç¬èªã®è¡šç€ºãæã€ããšãã§ããè¿œå ã®èšç®ãšç¬èªã®é«ããå¿ èŠã§ãã ãããã«ãªã¹ãã¯ãã«ãã¥ãªãã¬ãã·ã¥ãä»ããŠæŽæ°ã§ããäžããç¡éã«ããŒã¿ãããŒãã§ããŸãã
ãããã解決ããããšæ±ºããã®ã¯äžè¬çãªåé¡ã§ããã æåã®ã¹ãããã¯ãæ¢åã®ãœãªã¥ãŒã·ã§ã³ãåæããããšã§ãã ããªãã¯æ匷ã®ãã®ã«éäžããå¿ èŠãããã®ã§ãæ¯èŒã®ããã«3ã€ã®ã¢ããªã±ãŒã·ã§ã³ãéžæããŸããïŒVkontakteãFacebookãInstagramã
ããã§ãç§ã¯6ã€ã®æãæ·±å»ã§é倧ãªåé¡ã®ç 究ãè¡ãããã£ãã®ã§ãã
- ãã«ãã¥ãªãã¬ãã·ã¥ïŒãªã¹ãã®äžçªäžã«è¿œå ïŒ
- ã¹ã ãŒãºãªå±¥æŽã®èªã¿èŸŒã¿ïŒãªã¹ãã®æåŸã«è¿œå ïŒ
- é«éã¹ã¯ããŒã«ïŒãŸãã¯æã§æ©æŠåãèš±ãéãããŒããå éããŸãïŒ
- äžçªäžãŸã§ã¹ã¯ããŒã«ããŸãïŒå€§ããªã¹ããŒãªãŒãèç©ããã¹ããŒã¿ã¹ããŒãã¯ãªãã¯ããŸãïŒ
- æçš¿ã®åçãªé瀺ïŒå¢å ïŒãšã¢ãã¡ãŒã·ã§ã³ã¯ãããŸãã
- ã»ãŒå®å šãªãã±ããæ倱ã¢ãŒãã§ã®ããŒãã®åäœïŒéçºè ->ãããã¯ãŒã¯ãªã³ã¯ã³ã³ãã£ã·ã§ããŒ->éåžžã«æªããããã¯ãŒã¯ïŒ
äžè¬ã«ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¯æ£åžžã«åäœããŸããããŸã ããã€ãã®åé¡ã«æ°ä»ããŸããã
ããšãã°ãæŽæ°äžã«æãé¢ããã«ãªãã³ããã£ãããšåŒãäžãããšãVKontakteã®ãã«ãã¥ãªãã¬ãã·ã¥ã®åäœã確èªã§ããŸãïŒå·Šã®gifãåç §ïŒã
ãã®é£èºãèŠãããŸããïŒ
InstagramãšFacebookã¯ãã®ãããªæ¯ãèããèŠããŸããã§ããã
ãããŠãæçš¿ã®é瀺ã«ã¯é¡èãªéãããããŸãã FacebookãšInstagramã®å Žåãããã¯ã¹ã ãŒãºãªã¢ãã¡ãŒã·ã§ã³ã§è¡ãããVKontakteã¯ã¯ãªãã¯ããã ãã§ãµã€ãºãæŽæ°ããŸãã
ãããã£ãŠãç§ãã¡ã®ã¿ã¹ã¯ã¯ãã¹ã ãŒãºãªã¹ã¯ããŒã«ãäœæããæçš¿ãããŠã³ããŒãããã¢ãã¡ãŒã·ã§ã³ã§å ¬éããããšã§ãã
æåã®ã¹ãããã¯ãæŠå¿µãéžæããèµ€ã®æ£æ¹åœ¢ã«ãããã¿ã€ããäœæããããšã§ãïŒãªããããã¿ã€ãã«ãã€ãçŽæçã«èµ€ãè²ãéžæããã®ãçåã«æããŸããããã¯èª°ã®å Žåã§ããïŒïŒã
çç£æ§ãåäžãããç§ã®äž»ãªã¢ã€ãã¢ã¯ãAppleãé·å¹Žå°å ¥ããŠãããã¹ãŠã®æ©èœãæŸæ£ããæåéãiOS 3ã®éçºã«ããŒã«ããã¯ããããšã§ããã
- AutoLayoutã®æåŠïŒã¯ããé ãã§ããä¿¡ããããŸãã-ã³ã¡ã³ãã§èšŒæã§ããŸãïŒ
- ããŒãã«ã»ã«ã®é«ããèªåçã«èšç®ããããšãæåŠ
ãã®çµæã次ã®ã³ã³ã»ãããéžæãããŸããã
ããå°ã詳ããèŠãŠã¿ãŸãããã
ã¡ã€ã³ã¹ã¬ããã§ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãæŽæ°ãããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ïŒã¹ã¯ããŒã«ããŠã³ãšãã«ããŒãªãã¬ãã·ã¥ãæçš¿ãã¯ãªãã¯ããŠå¢å ïŒãåŠçããããŒã¿ãåä¿¡ããã³æºåããããã®ãµãŒãã¹ã¢ãã«ãããªã¬ãŒããŸãã
APIåŒã³åºã ã ããã§ã¯ãã¹ãŠãç°¡åã§ã-NSURLCacheãèšå®ãããNSURLSessionã å±¥æŽãããŒããããšãã¯ãã£ãã·ã¥ã䜿çšãããã«ããŒãªãã¬ãã·ã¥ãããšãã¯ãã£ãã·ã¥ãç¡å¹ã«ããããšãéèŠã§ãã ãŸãã«ãã®åäœã¯ãVKãšFacebookã§èŠåŒµã£ãŠããŸããã
ã¢ãã«ã®è§£æãšäœæ ã ç¹å®ã®ãªã¯ãšã¹ããåŠçãããšã©ãŒãã¹ããŒããããŒã¿ãå«ããã©ã³ã¹ããŒãã¢ãã«ãè¿ãããã®ããžãã¯ã次ã«ç€ºããŸãã
ãã¬ãŒã³ããŒã·ã§ã³ã¢ãã«ã®èšç® ã ããã©ãŒãã³ã¹ãæé©åããããã®æãéèŠãªã¹ãããã ããã§ããã©ã³ã¹ããŒãã¢ãã«ã¯PostModelãã¹ããã£ãã¯ã¹ã䜿çšããŠãšã³ãã£ãã£ã«å€æãããŸãã ViewModelã¯ã衚瀺çšã«å®å šã«æºåãããããŒã¿ãä¿åããŸã-AttributedStringãèšç®ãããã»ã«ã®é«ãïŒæãããã¿ãšå±éã®2ã€ã®ç¶æ ïŒãæååãšããŠã®ãã«ããŒã ãæ¥ä»æååïŒDateFormatterããæ¢ã«å€ææžã¿ïŒã
ãã®åŸã®ã¿ãããŒã¿ã¯ã¡ã€ã³ã¹ããªãŒã ã«æ»ããŸãã ãã®ãããªããžãã¯ãSwiftã«å®è£ ããã®ã¯éåžžã«äŸ¿å©ã§ç°¡åã§ãã ViewModelæ§é ãäœæããŸãã æ§é ã¯ãæ°ããã¹ã¬ããã«è»¢éããããšãã«ã³ããŒãããŸãã
åªããã³ã³ã»ãããçšæã§ããã®ã§ãåºåã¡ã«ããºã èªäœã«ã€ããŠèª¬æããŸãããã
æåã«ãããŒãã®å®è£ 察象ïŒUITableViewãŸãã¯UICollectionViewïŒãéžæããå¿ èŠããããŸããïŒå®è£ ã«ååãªæéãå²ãåœãŠãããŠããŸããïŒã æããã«ãUITableViewã¯åºåã®äžèŠ§è¡šç€ºã«é©ããŠããŸããããªã¹ããäžãäžããæ¡å€§ããããã³ã³ãã³ãã»ã«ãå¢ããããããããšã«åé¡ããããã©ããã¯éåžžã«å¿é ã§ããã ãããã£ãŠãç§ã¯åçŽãªãã®ããè€éãªãã®ã«è¡ãããšã«ããŸãã-ã€ãŸã UITableViewã«åé¡ããªããã°ããã®ãŸãŸã«ããŸãã
ç§ãæåã«æ±ºããã®ã¯ããã«ãã¥ãªãã¬ãã·ã¥ã決ããããšã§ããã ãã®ãã¿ãŒã³ãå®è£ ããããã«ãUIRefreshControlããããŸãã çŽ5ã6幎åãUIActivityIndiââcatorã䜿çšããŠå®è£ ãèšè¿°ããããŒãã«ã®contentInsetãå€æŽããŸããã ã ãããä»ã¯ããªãã§ãã ããïŒ UIRefreshControlã«ã¯äŸ¿å©ãªã³ã³ãã¯ããªã€ã³ã¿ãŒãã§ã€ã¹ããããæŸèæã®é²ãå¿ èŠã§ãã 䜿ãæ¹ã¯ãšãŠãç°¡åã§ãã
ãã ããããã䜿çšãããšãVKã¯ã©ã€ã¢ã³ãã®äžèšã®åé¡ãã©ãããçºçããããæããã«ãªããŸãã ãããã¯ã³ã³ããŒãã³ãèªäœã«ååšããããã§ãã ç§ã¯ããã«ãã®çç±ãšè§£æ±ºçãæ¢ããŸããã
ã€ã³ã¿ãŒãããã®ãã³ãã¯èšãïŒ ãã®ãããªãŸãã¯ãã®ãã㪠ïŒïŒ
- endRefreshingãåŒã³åºããšãã«ãã³ã³ãããŒã«ãæŽæ°ãããŠãããã©ããã確èªããŸãïŒisRefreshingïŒ
- æ£ç¢ºã«UITableViewControllerã䜿çšããŸãïŒãã®å Žåãããžãã¯ãã©ã€ããŒãã¡ãœãããåŒã³åºãããããïŒ
ç§ã¯ãããšããã®äž¡æ¹ãè©ŠããŸãã-ç§ã¯è¯å®çãªå¹æããããŸããã§ããã ç§ã¯åæºããŠããŸããããæéãç¡é§ã«ããã«é²ãããšã«ããŸããã ãšããã§ã誰ãããã®åé¡ãå æããæ¹æ³ãç¥ã£ãŠãããªã-ã³ã¡ã³ãã«æžããŠãã ããã
次ã®ã¹ãããã¯ãäžããããŒã¿ã®ããŒããå®è£ ããããšã§ãã
æåã¯ããŸãã¯ãŒã«ã«ãªããŸããã§ãã-äžããèªã¿èŸŒããšã²ã©ãé ãããããŸããïŒæããã«ããŒãã«ããcontentSizeããžã£ã³ãããŸããïŒïŒ
ãããŠããã¯å°çã :-)ãã®çµæã§ã¯ãããªãã¯ééããªãåãŠãªãã ããããç°¡åãªæ€çŽ¢ã§ãç§ãå¿ããŠããçŽ æŽãããæããããåŸãããŸããã
ãããŠåºæ¥äžããïŒ
ã»ã«ã®é«ããã¢ãã¡ãŒã·ã§ã³åããæ¹æ³ã決å®ããããšã¯æ®ã£ãŠããŸãã
é ã«æµ®ããã æåã®ã¢ã€ãã¢ã¯ãvisibleCellsã«æ²¿ã£ãŠå®è¡ããã¢ãã¡ãŒã·ã§ã³ãããã¯ã®é«ããå¢ããããšã§ããã ããããåæã®æ®µéã§ããããã®èãã¯æšãŠãã¹ãã§ã-åé¡ã¯ãUITableViewDataSourceã§æå®ãããé«ããåæããcontentSizeã§äœããããå¿ èŠãããããšã§ãïŒããã¯Appleã«ãã£ãŠåŒ·ãæšå¥šãããŠããŸãïŒã
æãã€ãã2çªç®ã®èãã¯æ£ããããšãå€æããŸãã-UITableViewã«ã¯ãã¢ãã¡ãŒã·ã§ã³ãããã¯ã§å®è¡ã§ããinsert / reload / deleteã¡ãœããããããŸãïŒ
heightForRowAtã«æ°ããé«ããè¿œå ããå¿ èŠãããããšãå¿ããªãã§ãã ããã
ãã¹ãŠã®ããã«èŠããŸãããå®å šã§ã¯ãããŸããïŒ ãã¹ãã®å±éã®ã¢ãã¡ãŒã·ã§ã³ã«ã¯ã埮åŠãªç¹ã1ã€ãããŸããã IntagramãŸãã¯Facebookã§ããã¹ããæ¢ããŠãã ãããé«ããå¢ããšããã«ã¹ã ãŒãºã«è¡šç€ºãããŸãã ã©ããã è¡ããšã«ã¬ã³ããªã³ã°ããŸããïŒ NSTextContainerã®ã¬ãã«ã«éãããšãããããåæ§ã®æ©äŒã衚瀺ãããŸãã ããããäžåºŠã«ãã¹ãŠã®ããã¹ãã衚瀺ããããšã¯ïŒãã®ãããªå Žåã«ã¯ïŒããã»ã©æªãèãã§ã¯ãªãããã«æããŸããã clipToBoundsãsuperViewã«èšå®ãããšãUILabelãé 眮ãããããã¹ãã衚瀺ãããŸãã ãããŠãã¢ãããŒãã¯ããŸããããŸããïŒ ããããã®ã¢ãã¡ãŒã·ã§ã³ã¯ç§ã«å€ãã®ã€ã³ã¹ãã¬ãŒã·ã§ã³ãäžãã第äºã®é¢šãéããŸããã çµå±ã®ãšããããã€ãã£ãVKã¯ã©ã€ã¢ã³ãã«ã¯ãã®ãããªã¢ãã¡ãŒã·ã§ã³ã¯ãããŸããã ã ãã圌女ã¯åã€ãã£ã³ã¹ãè¿œå ããå¿ èŠããããŸã:-)
ããŒãã®å®è£ ã®æ®ãã®è©³çŽ°ã¯ããã»ã©èå³æ·±ããã®ã§ã¯ãããŸããã ããããããªãã¯ã³ã¡ã³ãã§ããããå°ããããšãã§ããŸãã ãŸããã³ãŒãã®ã¬ã€ã¢ãŠãã«åé¡ã¯ãããŸããã ããã§ã¯-github.com/katleta3000/vkmobilechallengeã§ãã ç§ã¯ã³ãŒããããŠããããããã€ãã®å Žæã«ããžãã¯ãã³ããŒããããŸãïŒããããããã¯ã¹ããŒãã³ã³ãã¹ããªã®ã§ãäœããç ç²ã«ããªããã°ãªããŸããã§ããïŒã ãšããã§ãããã§ã³ãããã«ãžã£ã³ãããããšãã§ããŸãïŒååã¯æ確ã§ãïŒã
çµæã¯ããã§èŠãããšãã§ããŸã-www.youtube.com/watch?v=Md8YiJxSW1M&feature=youtu.be ïŒãã¡ããå質ã¯ã²ã©ã倱ãããŸãããæ£ç¢ºã«æ»ãããªã¹ã¯ããŒã«ã瀺ãã«ã¯gifãããè¯ãã§ãïŒ
çµ±èšãçµæãçµè«
ã³ã³ãã¹ãã¯åžžã«ã¿ã€ããŒã§è¡ãããŸããã 20æéåã®çŽç²ãªã³ãŒãã£ã³ã°æéãçºçããŸããã 远跡æéã¯2ã€ã®ç¹ã§åœ¹ç«ã¡ãŸãããèŠããŠããããã«ãæœè±¡çãªåäœã§ã®æšå®å€ããã£ããããæçµæ¥ã®åã°ãŸã§ã«ã¯æ¢ã«è¯å¥œãªè¿œè·¡çµ±èšããããæ®ãã®æçµã¿ã¹ã¯ãããæ£ç¢ºã«èšç»ããããšãã§ããŸããã ãããŠã第äºã«ããäžåã®éäžãã®ãã¿ãŒã³ãç¹å®ãã蚌æããããšãã§ããŸããã åãã£ã¡ã³ã·ã§ã³ã¯æ°ããå埩ã§ãããããã³ãŒãã®èšè¿°ã68åç¹°ãè¿ããŠããããšãããããŸããã å¹³åãããšã18.5åã«ãªããŸãã ããããå®éã«ã¯ãå埩ã®æåã®æ¥ã«ã¯å¹³å25åãããã2æ¥ç®ã®çµããã«ã¯ãããã7åã§ãã:-)ããªãã¯å€¢äžã«ãªããéåžžã«ç·åŒµããç²ããããã©ãŒãã³ã¹ãäœäžããŸãã ãã®ãããªããŒã¿ã¯æ¬¡åã«åœ¹ç«ã¡ãŸãã
å人çã«ã¯ã Hourlyããã°ã©ã ã䜿çšããŸããïŒããŠã³ããŒãããŠè©ŠããŠã¿ãŠãã ããïŒ-ããã¯å¿ èŠãªã¿ã¹ã¯ã解決ããã ãã§ãïŒãããŠãç§ãèªåã§éçºããŠããŸãïŒïŒ
çŽ æµãªããŒãã¹-éããããºã«ããšã«ã次ã®ãããªéåžžã«çŽ æŽãããå±ãŸãç»é¢ã衚瀺ãããŸãã
ãVK Mobile Challengeãã¿ã¹ã¯ã®æåŸã«ã次ã®ç»é¢ã衚瀺ãããããšã¯é¢çœãã§ãã
ãããŠã¯ãïŒ ãããŠãããèµ·ãã£ã:-)çµæã«é²ã¿ãŸãã
ã¬ãããã¿ã®ããã«ããŒããåŒã£åŒµããªãããã«ããŸãããã ç¥ããªãã£ãããŒãã¯ç«ã®åå-VKã®äž»äººå ¬ã§ãã éåžžã«ã¯ãŒã«ãªã®ããååïŒ
4äœã«ãªãã175kã«ãŒãã«ãç²åŸããŸããã ïŒã¯ããããããããªãã¯ãã§ã«Habra-katã§åçãçŒããŸããïŒã ãããŠãã¯ããç§ã¯ç¢ºãã«æºè¶³ããŠããŸãã ç§ã¯ç®æšã«å°éããŸãã:-)ãããŠãããã¯ééããªãéåžžã«æ¥œããã§ãã
æåŸã«ã vkontakteã«æè¬ããŸã-çµå±ã競äºã¯ã¯ãŒã«ã§ããçµç¹ãããŠããŸããã ãããŠããã¹ãŠã®èªè ã«ãã£ã¬ã³ãžãšããã«ãœã³ã«åå ããããšããå§ãããŸã-ããã¯ãèªåèªèº«ã«ææŠããäžçäžã®ãããéçºè ïŒãŸãã¯å°ãªããšããã·ã¢èªã話ãã³ãã¥ããã£ïŒãšç«¶äºããããã®çŽ æŽãããæ¹æ³ã§ãã