ãã®ããŒãã§ã¯ãMac OS X Leopardã®ã¢ããªã±ãŒã·ã§ã³éçºããŒã«ã«ã€ããŠèª¬æããŸãã ç§ã¯ããã«ã
ã¢ããã«èªèº«ãæäŸãããã®ã ããæ€èšãããšèšããŸãã ä»ã®IDEãååšããŸãããéåžžã¯ã¯ãã¹ãã©ãããã©ãŒã ïŒããšãã°ãã³ãŒã::ãããã¯ïŒã§ããããããã®èšäºã§ã¯ãããã«ã€ããŠè©±ããªãæ¹ãè¯ãã§ãããã
ãã®ãããLeoã®ãã£ã¹ã¯ã«ã¯ãMac OS Xéçºè
ã®ããŒã«ãããããããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ãäœæããããã«å¿
èŠãªããã°ã©ã ãšãã¬ãŒã ã¯ãŒã¯ã®ã»ããã§ãã ãã®ãã¹ãŠã/ Developerãã©ã«ããŒã«ã€ã³ã¹ããŒã«ãããŸãïŒã¢ããªã±ãŒã·ã§ã³ãããã¥ã¡ã³ããå€æ°ã®ãµã³ãã«ãããŸããŸãªäŸ¿å©ãªãŠãŒãã£ãªãã£ãªã©ïŒã
ã€ã³ã¹ããŒã«åŸã4ã€ã®äž»èŠãªéçºã¢ããªã±ãŒã·ã§ã³ããããŸãã
1. Xcode-ã¡ã€ã³IDE
2.ã€ã³ã¿ãŒãã§ãŒã¹ãã«ããŒ-ããã°ã©ã ã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããã®ããã°ã©ã ããã ããã®æ©èœã¯ã¯ããã«åºã
3.èšåš-ããã°ã©ã ã远跡ããããã®ããŒã«
4. Dashcode-ããã·ã¥ããŒãã®ãŠã£ãžã§ãããäœæããããã®ããã°ã©ã
次ã«ããããã®ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠããã«è©³ãã説æããŸãã
/ *å€ãã®åçãã¯ãªãã¯å¯èœ* /
Xcode

Xcodeã¯äž»èŠãªéçºç°å¢ã§ãããIDEã«å¿
èŠãªãã¹ãŠã®ãã®ããããŸãã ãã¹ãŠã®é¢æ°ããã€ã³ãããã®ã¯ããŸãæå³ããããŸããã Visual StudioãKDevelopãšå€§å·®ãããŸããã ããããããŒãžã§ã³3.0ã®é©æ°ã«ã€ããŠã¯ãèšåãã䟡å€ããããŸãã
1.ã³ãŒããããã¯ã®ç
§æïŒ

2.ã³ãŒããããã¯ã®æãããã¿ïŒæãããã¿ïŒïŒæçµïŒ
3.æ¹åãããïŒé床ã«åãã£ãŠïŒã³ãŒããšãã£ã¿ãŒ
4.ã³ãŒãã®å±æ

5. Objective-C 2.0ã®ãµããŒã
6.ãªãµãŒãã¢ã·ã¹ã¿ã³ã-éžæããããã¹ãã«åºã¥ããŠããã«ãã§é©åãªèšäºãèŠã€ããããšãããŠã£ã³ããŠã«è¡šç€ºããã¢ã·ã¹ã¿ã³ã

7.ã³ãŒãã«ãšã©ãŒãèŠåãªã©ãçŽæ¥è¡šç€ºããŸãã

8.ãããžã§ã¯ãã®ã¹ãããã·ã§ããã éåžžã«äŸ¿å©ãªã®ã¯ãCtrl + Command + SãæŒããšãçŸåšã®ãããžã§ã¯ããå¥ã®å Žæã«ä¿åãããäœãã¹ããŒããªå Žåã¯ããã«æ»ãããšãã§ãããã¡ã€ã«ããšã«äœãèµ·ãã£ãã®ããäœãèµ·ãã£ãã®ãã衚瀺ãããããšã§ãïŒ

9.ãªãŒã¬ãã€ã¶ãŒã ç§ãç解ããŠããããã«ãå€ãã®ãããžã§ã¯ãã管çãããã®ããŒã«ã䜿çšãããšãXcodeã䜿çšããŠæªç¥ã®èšèªã§ããã°ã©ã ãäœæããããšãã§ããŸãã ç§èªèº«ã¯ãããäœã§ãããããŸã ç解ããŠããŸããã§ããããäž»å¬è
ã«ã€ããŠããå€ããäŒãã
èšäºãèŠã€ããŸã
ã ã
ã€ã³ã¿ãŒãã§ãŒã¹ãã«ããŒ

ç§ã¯ãããé ãããããã«IBãç§ããã¹ããããã®ããã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããã®æè¯ã®ããŒã«ã§ãããšèšããŸãã ãŸããã·ã³ãã«ã§çŽæçãªã€ã³ã¿ãŒãã§ã€ã¹ãç°¡åã«äœæã§ããããã ãã§ãªããIBã¯ã€ã³ã¿ãŒãã§ã€ã¹ãšãã£ã¿ãŒä»¥äžã®ãã®ã§ãããããã€ã³ã¿ãŒãã§ã€ã¹éšåã«é¢é£ããã³ãŒãã®å€ãã®éšåãèšè¿°ããå¿
èŠããªããªããŸãã 確ãã«ç解ã§ããªãããã«èãããŸãããäŸã¯ãã£ãšæ確ã«ãªããŸãïŒäŸã¯æåŸã«ãããŸãïŒã
ããã°ã©ã ã®äœæããã»ã¹ã§IBã䜿çšãããã®ã¯ãªãã§ããïŒ åœ¢ç¶ã®æ£ä¹±ãã¿ã³ã®ã¿-ãããã IBã®äž»ãªã¿ã¹ã¯ã®1ã€ã¯ããªããžã§ã¯ããçžäºã«ãã€ã³ãããããšãã¯ã©ã¹å
ã®å€æ°ãããŸããŸãªã€ãã³ããªã©ãšãã€ã³ãããããšã§ãã
楜åš

Instrumentsã¯ãã¢ããªã±ãŒã·ã§ã³ã远跡ããããã®ããŒã«ã§ãã OpenSolarisã®Mac OS XããŒããDTraceãã¬ãŒã¹ãã¬ãŒã ã¯ãŒã¯ãäžã«æ§ç¯ãããŠããŸãã ãã©ããã³ã°èªäœã¯ãã©ã€ãã©ãªã«ä¿åãããŠããåå¥ã®ããŒã«ã䜿çšããŠè¡ãããå¿
èŠã«å¿ããŠã¡ã€ã³ãŠã£ã³ããŠã«ãã©ãã°ãããŸãã æåã¯ãããšãã°ããããã¯ãŒã¯ã¢ã¯ãã£ããã£ãããã»ããµã®è² è·ããã£ã¹ã¯ãžã®èªã¿åã/æžã蟌ã¿ãç£èŠããããã®ããŒã«ãªã©ãæ¢ã«å€ãã®ããŒã«ããããŸãã å¿
èŠãªããŒã«ãååã§ãªãå Žåã¯ãèªåã§äœæã§ããŸãã

ããã·ã¥ã³ãŒã
ååããããã®ããã°ã©ã ã®ç®çãã€ãŸãããã·ã¥ããŒãçšã®ãŠã£ãžã§ããã®äœæãæ確ã§ãããšæããŸãã ç§ã¯é·ãéãã®ããã°ã©ã ã«æãåºããŠããŸããã§ããããŠã£ãžã§ãããäœæããããã»ã¹ã¯ãMacromedia Flashã§äœæ¥ããŠããããšãæãåºããŸããã rssããã10ç§ã§èªã¿åãããã®ãŠã£ãžã§ãããäœæããŸããã

XcodeãšInterface Builderã䜿çšããŠç°¡åãªã¢ããªã±ãŒã·ã§ã³ãäœæãã
çŽæãããšãããä»åºŠã¯ç°¡åãªã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã ããã¯äœãããŸããïŒ ç·šéãã£ãŒã«ãã«ããã¹ããå
¥åããŠEnterãæŒããåŸãå
¥åããããã¹ããã©ãã«ãã£ãŒã«ãã«è¡šç€ºããŸãã ãã®æ¹æ³ã§äœããè¡ãå¿
èŠãããçç±ã«ã€ããŠã¯è©³ãã説æããŸããããmat.partã¯åŸã§ç§»åããŸããããã§ãåé¡ãªãç°¡åã«ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«ãªããŸãã
ããã§ã¯å§ããŸãããïŒ
Xcodeãéããã¡ãã¥ãŒãã[ãã¡ã€ã«] => [æ°ãããããžã§ã¯ã]ãéžæãã衚瀺ããããŠã£ã³ããŠã§[Cocoa Application]ãéžæããŠã[次ãž]ãã¯ãªãã¯ããŸãã

次ã«ããããžã§ã¯ãå-habr_1ãšãã®ä¿åå Žæãèšå®ããŸãïŒã/ xcode / habr_1 /ããããŸãïŒïŒ

ãã®åŸããå®äºããã¯ãªãã¯ããŠãããžã§ã¯ããååŸããŸãã 次ã«ãå¿
èŠãªãã®ãå®è£
ããã¯ã©ã¹ãè¿œå ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã[ãã¡ã€ã«] => [æ°ãããã¡ã€ã«...]ã«ç§»åããObjective-Cã¯ã©ã¹ãéžæããŠ[次ãž]ãã¯ãªãã¯ããŸãã 次ã®ãŠã£ã³ããŠã§ããã¡ã€ã«åãæå®ããããã«æ±ããããã®ã§ããcontrollerããšæžããŸãã

Classesãã©ã«ããŒã®å·ŠåŽã®ãããžã§ã¯ããŠã£ã³ããŠã«controller.hãšcontroller.mã®2ã€ã®ãã¡ã€ã«ã衚瀺ãããŸãã controller.hãéããå³ãšåãããã«èšè¿°ããŸãã

MainMenu.nibãã¡ã€ã«ãããã«ã¯ãªãã¯ãããšãInterface Builderãéããã¢ã¯ãã£ãã«ãªããŸãã 衚瀺ããããã®ïŒãŠã£ã³ããŠã®ç©ºçœãã¡ã€ã³ã¡ãã¥ãŒãããã³MainMenu.nibãéããããšã瀺ããŠã£ã³ããŠã [ããŒã«]ã¡ãã¥ãŒã®[ã©ã€ãã©ãª]ãã¯ãªãã¯ããŠãªããžã§ã¯ããå«ãã©ã€ãã©ãªãéãã[ããŒã«]ã¡ãã¥ãŒã®[ã€ã³ã¹ãã¯ã¿]ãã¯ãªãã¯ããŠããããã®ãªããžã§ã¯ãã®ããããã£ã衚瀺ããŸãã 次ã«ãäœæãããã³ã³ãããŒã©ãŒãã¯ã©ã¹ãè¡šããªããžã§ã¯ããMainMenu.nibã«è¿œå ããå¿
èŠããããŸãããã®ãããã©ã€ãã©ãªã§NSObjectãªããžã§ã¯ãïŒéãåéæã®ãã¥ãŒãïŒãèŠã€ããMainMenu.nibãšããã©ãã«ã®ãŠã£ã³ããŠã«ãã©ãã°ããŸãã

æ確ã«ããããã«ãããªããžã§ã¯ããã®ååããã³ã³ãããŒã©ãŒãã«å€æŽããŸãã 次ã«ãå¿
èŠãªã¯ã©ã¹ãè¡šãããšããã®ãã¥ãŒãã«èª¬æããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãã¢ã¯ãã£ãã®ãŸãŸã«ããŠãã€ã³ã¹ãã¯ã¿ãŒã®ãIdentityãã¿ãïŒå³ãã2çªç®ïŒã«ç§»åãããClassãç¢æã®å察åŽã®ããããããŠã³ãªã¹ãã§ãcontrollerããéžæããŸãã

次ã«ãã©ã€ãã©ãªãããã©ãŒã ã«ç·šéãã£ãŒã«ããšã©ãã«ãè¿œå ããŸãã ç¢æãã¢ã¯ã·ã§ã³ãã®å察åŽã®ããããããŠã³ãªã¹ãã®ãå±æ§ãã¿ãïŒå·ŠããæåïŒã®ç·šéãã£ãŒã«ãã§ããå
¥åæã®ã¿éä¿¡ããéžæããŸãã 次ã®ããã«ãªããŸãã

ãããŠä»ã楜ããéšåãå§ãŸããŸããã¯ã©ã¹ã®ãlabelãå€æ°ãã©ãã«ã«ãã€ã³ãããç·šéãçµäºãããšãã«ããã¹ããã£ãŒã«ããéä¿¡ããã¡ãã»ãŒãžãšããŠãsetTextïŒããèšå®ããå¿
èŠããããŸãã ã©ãã«ãå€æ°ã©ãã«ã«ãã€ã³ãããŸãããããã³ã³ãããŒã©ãŒããªããžã§ã¯ããã¢ã¯ãã£ãã«ããCtrlããŒãšå·ŠããŠã¹ãã¿ã³ãéãç«æ¹äœã®äžã«æŒããã«ãŒãœã«ãã©ãã«ã«ç§»åããŸãã次ã®å³ãåç
§ããŠãã ããã

LMBã解æŸãããšããã®ãããªãŠã£ã³ããŠã衚瀺ãããŸãïŒãã€ã³ãããããšããŠãããã®ãšåãã¿ã€ãã®ãã¹ãŠã®ã¯ã©ã¹å€æ°ãå«ãŸããŸãïŒã

ãã®äžã§å¯äžã®ã©ãã«ãšã³ããªãéžæããŸãã ããã§ãã¯ã©ã¹å€æ°ã©ãã«ãšãã©ãŒã äžã®ã©ãã«ãæ¥ç¶ã§ããŸããã éä¿¡ãããã¡ãã»ãŒãžãžã®ç·šéããã¯ã¹ã®ãªã³ã¯ãè¡ãããŸãããã¥ãŒãããããã¯ã¹ãžã§ã¯ãªããç·šéããã¯ã¹ããã³ã³ãããŒã©ãŒãªããžã§ã¯ããžãã©ãã°ããã ãã§ãã
MainMenu.nibãä¿åããŠïŒãã¡ã€ã«=>ä¿åïŒãXcodeã«æ»ããŸãã
Xcodeã§ãcontroller.mãã¡ã€ã«ãéããã¡ãã»ãŒãžã®å®è£
ã説æããŸãã

ãããžã§ã¯ããä¿åããããã«ãããŠå®è¡ããã¯ãªãã¯ããŠãå®æããã¢ããªã±ãŒã·ã§ã³ãååŸããŸãã

ç·šéããã¯ã¹ã«äœããå
¥åããEnterãæŒããŸããçµæã¯æ¬¡ã®ãšããã§ãã

Interface Builderã®å
次ã«ãIBãã³ãŒãã®å¯¿åœãšéãåçŽåããæ¹æ³ã瀺ããŸãã ã»ãšãã©ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãïŒã»ãŒå®å
šãªã¢ããªã±ãŒã·ã§ã³ã«ã³ã³ãã€ã«ããããïŒã ããã¯äœãããŸããïŒ ç·šéãã£ãŒã«ãã«ã¹ã©ã€ããŒã®ã¹ããŒã¿ã¹ã衚瀺ããéãããã¿ã³ããããŸãã
ããã§ã¯å§ããŸãããã Interface BuilderãéããFile => NewããWindowããéžæããŠãChooseããã¯ãªãã¯ãããUntitledããŠã£ã³ããŠãååŸããŸãããŠã£ã³ããŠãšãŠã£ã³ããŠã®æºåã瀺ããæ°Žå¹³ã¹ã©ã€ããŒãã¹ããŒãããã£ãŒã«ããšãã¿ã³ãç·šéããããããã£ã§ãéããã ãïŒ

ããã§ãã¹ã©ã€ããŒããedit_field_ã«éä¿¡ããããããããŠã³ãªã¹ãã§LMBã解æŸããåŸããtakeDoubleValueFromïŒããéžæããŸãã

åæ§ã«ããã¿ã³ããUntitledããŠã£ã³ããŠããã®ãFirst Responderããªããžã§ã¯ãã®çµäºã€ãã³ãã«é¢é£ä»ããŸãïŒèµ€ã1ãŠããããã¥ãŒãïŒã
次ã«ãFile => Simulate Interfaceã§å®è¡å¯èœãªã¢ããªã±ãŒã·ã§ã³ã®ãããã¿ã€ããååŸããŸããã¹ã©ã€ããŒã®äœçœ®ãå€ãããšãç·šéãã£ãŒã«ãã®æ°å€ãå€ããã[éãã]ãã¯ãªãã¯ãããšãã¢ããªã±ãŒã·ã§ã³ãéããŸãã
ããã«ãããå€ãã®ã³ãŒãè¡ãæžãæéãçãããšãã§ããŸãã
ãããŠã誰ãããŸã ããã確信ããŠããªããªãããã®ãããªãèŠãŠãã ããã ãã®äžã§ãHEïŒRMSã§ã¯ãªãïŒèªäœãInterface Builderã®å
šæ©èœã瀺ãã瀺ããŠããŸãïŒãããŸã§ã¯NextSTEP PRã«30åããããŸããïŒã
PSïŒãæž
èŽããããšãããããŸãã