ã¯ããã«ïŒSwiftãšã¯
åããŸããŠãä»æ¥ã¯äžç·ã«ããã°ã©ãã³ã°èšèªã®äžã€ãSwiftã«ã€ããŠåŠãã§ãããŸããããSwiftãšã¯ãçŸä»£ã®å®å šæ§ãããã©ãŒãã³ã¹ããœãããŠã§ã¢ãã¶ã€ã³ã®ãã¿ãŒã³ãçµã¿èŸŒãããšã§ãã¢ããªã±ãŒã·ã§ã³éçºãå©ããããã«äœãããããã°ã©ãã³ã°èšèªã§ãã
ãã ããSwiftã ããåŠã¶ã ãã§ã¯ãªãããã®åºæ¬çãªææ³ãæŠå¿µãç解ããããã«ã·ã³ãã«ã§å¹ççãªã³ãŒããæžãããã®ãã¹ããã©ã¯ãã£ã¹ãèŠããããšãå§ããããŠããŸãããã®ããã®ã¬ã€ãããã®èšäºã§ãã
Swiftã®æŠèŠ
Swiftã¯ãApple Inc.ãéçºããæ±çšããã«ããã©ãã€ã ãã³ã³ãã€ã«åã®ããã°ã©ãã³ã°èšèªã§ãæåã«ç»å Žããã®ã¯2014幎ã§ããiOSãmacOSãwatchOSãtvOSãªã©ã®Appleã®ãã©ãããã©ãŒã ã®ã¢ããªã±ãŒã·ã§ã³ãäž»ã«éçºããããã«äœ¿çšãããŠããŸãããŸããLinuxãWindowsãªã©ä»ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ã察å¿ããŠããããµãŒããŒãµã€ãã¢ããªã±ãŒã·ã§ã³ã®éçºãå¯èœã§ãã
Swiftã®èšèšã¯ãéçºè ãèªã¿ãããããã®åŸãã¡ã³ããã³ã¹ããããã³ãŒããæžããããã«æå³çã«ãªãã¡ã¯ã¿ãªã³ã°ãããŠããŸãããŸããSwiftã¯ã¹ã¯ãªããèšèªã®ããã«çŽ æ©ãã€ãã¬ãŒã·ã§ã³ãè¡ãããšãã§ããäžæ¹ã§ãCãObjective-Cã®ãããªã·ã¹ãã ããã°ã©ãã³ã°èšèªãšåçã®ããã©ãŒãã³ã¹ãšå¹çãæäŸããŠããŸãã
Swiftãéžã°ããçç±
ã§ã¯ã詳现ãç¥ãåã«ãªãSwiftãéžã°ããã®ãå ·äœçãªçç±ãèŠãŠã¿ãŸãããã第äžã«ãCèšèªãObjective-Cãšæ¯èŒããŠææ³ãçŽæçã§äœ¿ãããããããåå¿è ãåŠç¿è ã«ãšã£ãŠåãçµã¿ãããããã°ã©ãã³ã°èšèªãšãªã£ãŠããŸãããŸããæååæäœãã¡ã¢ãªç®¡çã®ç ©éãã軜æžãããããšã©ãŒãã³ããªã³ã°ãæ¹åããããããªã©ã®å©äŸ¿æ§ãé«ã人æ°ã®èŠå ãšãªã£ãŠããŸãã
ããã«ãAppleãããã¯ã¢ãããããŠããããšã倧ããªå©ç¹ã®äžã€ã§ããiOSãMacã¢ããªã®éçºãç®æãéçºè éã«ãšã£ãŠãSwiftã¯å¿ ç¶çã«ããŒãšãªãèœåãšãªã£ãŠããŸãããããŠãAppleãSwiftã䜿ã£ãæ°ããªãã¬ãŒã ã¯ãŒã¯ã®éçºãé²ããŠããããšã§ãã¢ããªéçºã«ãããSwiftã®éèŠã¯ãããããå¢ããŠããã§ãããã
æåŸã«ãSwiftã®éçºã¯ãªãŒãã³ãœãŒã¹ãšããŠè¡ãããŠããã誰ã§ããœãŒã¹ã³ãŒãã«ã¢ã¯ã»ã¹ããããæ¹åã®ææ¡ããããããã°ä¿®æ£ãªã©ã®è²¢ç®ãããããšãã§ããŸããããã«ãããSwiftã¯æ¥ã é²åããŠããããŸããã®é²åãå ±æã§ãã匷åãªã³ãã¥ããã£ã圢æãããŠããŸãã
Swiftã®åºæ¬çãªã³ã³ããŒãã³ã
Swiftã§ã®ããã°ã©ãã³ã°ãå§ããããã«ã¯ããã®åºæ¬çãªã³ã³ããŒãã³ããç解ããããšãéåžžã«éèŠã§ãããã®äžã§ããå€æ°ãšå®æ°ãåããããŠã³ã¬ã¯ã·ã§ã³ã«ã€ããŠåŠã³ãŸãããã
å€æ°ãšå®æ°
Swiftã§ã¯ãæ å ±ãä¿åããããã«å€æ°ãšå®æ°ãå©çšããŸããå€æ°ã¯`var`ããŒã¯ãŒãã䜿ãããã®åŸã«ååãšå€ãå®çŸ©ããŸããããšãã°ã`var name = “Yoko”` ãšããã³ãŒãã¯ã”Yoko”ãšããæååãnameãšããå€æ°ã«ä¿åããŸããäžæ¹ãå®æ°ã¯å€æŽäžå¯èœãªå€ãä¿åããããã«äœ¿çšããã`let`ããŒã¯ãŒãã䜿ããŸããããšãã°ã`let pi = 3.1415`ãšããã³ãŒãã¯ãæ°åŠçãªå®æ°Ïã®è¿äŒŒå€ãpiãšããå®æ°ã«ä¿åããŸãã
åïŒTypeïŒ
åãšã¯ãSwiftã§æ±ãããŒã¿ã®çš®é¡ãæããŸããSwiftã«ã¯ããã€ãã®åºæ¬çãªåããããããããç°ãªãçš®é¡ã®ããŒã¿ãä¿æã§ããŸããããšãã°ã`Int`åã¯æŽæ°ãã`Double`åã¯æµ®åå°æ°ç¹æ°ãã`String`åã¯æååãä¿æããŸããããããã®åã«ã¯ç¹æã®æ§è³ªãæäœããããŸããäŸãã°ã`Int`åã®å€æ°å士ã足ãåãããããšã§æ°ããªæŽæ°ãäœããŸãã
ã³ã¬ã¯ã·ã§ã³
Swiftã«ã¯è€æ°ã®ããŒã¿ãäžã€ã«ãŸãšããããã®ã³ã¬ã¯ã·ã§ã³ããããŸãããã®äžã§ã代衚çãªãã®ã¯é åãã»ãããããã³èŸæžã§ããé åã¯é åºãæã€ããŒã¿ã®éãŸãã§ãã»ããã¯é åºãæããéè€ãèš±ããªãããŒã¿ã®éãŸããèŸæžã¯ããŒãšå€ã®ãã¢ãä¿åããããŒã¿ã®éãŸãã§ããããããã«çšéã«å¿ããŠäœ¿ãåããããããšãæ±ããããŸãã
Swiftã®åºæ¬çãªæäœ
ä»åã¯Swiftã®åºæ¬çãªæäœã«ã€ããŠè§£èª¬ããŸããSwiftã¯éåžžã«çŽæçãªããã°ã©ãã³ã°èšèªã§ããããã®æ ¹å¹¹ãšãªãæŠå¿µãç解ããŠããŸãã°ãããšã¯å®éã«æãåãããŠã³ãŒãã£ã³ã°ããããšã§èªç¶ãšæ £ããŠãããŸãã
å¶åŸ¡ãããŒ
å¶åŸ¡ãããŒãšã¯ããã°ã©ã ã®æµãã®å¶åŸ¡ã®ããšãæããŸããif, else, for, whileãªã©ã®ããŒã¯ãŒãã§æ¡ä»¶åå²ãã«ãŒããäœãããšãã§ããŸããäŸãã°
var testScore = 80 if testScore >= 60 { print("åæ Œã§ãã") } else { print("äžåæ Œã§ãã") }
ãã®ã³ãŒãã¯ãtestScoreã®å€ã60以äžãªããåæ Œã§ããããããã以å€ãªããäžåæ Œã§ããããåºåããŸãã
é¢æ°ãšã¯ããŒãžã£
é¢æ°ãšã¯ãç¹å®ã®åŠçããŸãšãããã®ã§ããSwiftã§ã¯é¢æ°ã¯funcããŒã¯ãŒãã䜿ã£ãŠå®çŸ©ããŸãããŸããé¢æ°ã¯åŒæ°ãšæ»ãå€ãæã€ããšãã§ããŸããããšãã°
func greet(name: String) -> String { return "Hello, (name)!" } print(greet(name: "Swift"))
ãã®ã³ãŒãã¯ãgreetãšããé¢æ°ãå®çŸ©ãããã®é¢æ°ã䜿ã£ãŠ”Swift”ãåŒæ°ã«ã㊠“Hello, Swift!”ãšããæååãè¿ããŸãã
äžæ¹ãã¯ããŒãžã£ã¯ç¡åé¢æ°ãšãåŒã°ããååãæããªãæ©èœçãªæ§æèŠçŽ ã§ããå€æ°ã«æ ŒçŽããããåŒæ°ãšããŠæž¡ãããšãã§ããŸãã
ãªãã·ã§ãã«ãšãšã©ãŒãã³ããªã³ã°
Swiftã®Optionalã¯ãå€æ°ãå€ãæã€ãæããªãããã€ãŸããããnullãã©ãããè¡šçŸããŸããå€ãããå Žåã¯ãã®å€ãããªãå Žåã¯nilãè¿ããŸããäŸãã°
var name: String? = "Swift" print(name) // Optional("Swift")
ãã®ã³ãŒãã¯ãnameãšããOptional Stringåã®å€æ°ãå®çŸ©ãããã®å€ãåºåããŸããåºåãããå€ã¯Optional(“Swift”)ãšãªããŸãã
ãšã©ãŒãã³ããªã³ã°ã¯ããã°ã©ã ã§çºçãããšã©ãŒããã£ããããŠãããã«å¯Ÿå¿ããåŠçãè¡ãããšãæããŸããSwiftã§ã¯do-catchæã䜿ã£ãŠãšã©ãŒãã³ããªã³ã°ãè¡ããŸãã
ãããã®èŠçŽ ãç解ããç¹°ãè¿ã䜿ãããšã§ãSwiftã®åºæ¬çãªæäœã身ã«ã€ããŸãã
Swiftã«ãããªããžã§ã¯ãæåããã°ã©ãã³ã°
次ã«æ±ãã®ã¯ãSwiftã«ããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®åºæ¬çãªèŠçŽ ã§ããã¯ã©ã¹ãšæ§é äœãããããã£ãšã¡ãœããããããŠç¶æ¿ãšããªã¢ãŒãã£ãºã ã«ã€ããŠèª¬æããŸãã
ã¯ã©ã¹ãšæ§é äœ
ãŸãã¯Swiftã®ã¯ã©ã¹ãšæ§é äœã«ã€ããŠç解ãæ·±ããŸããããã¯ã©ã¹ãšã¯ãé¢é£ããããŒã¿ãšãã®ããŒã¿ãæäœããããã®ã¡ãœããããŸãšãããã®ãã€ãŸãããªããžã§ã¯ãããäœãããã®èšèšå³ã®ãããªãã®ã§ããSwiftã§ã¯ãããããclassããšããããŒã¯ãŒãã§è¡šçŸããŸãã
äžæ¹ãæ§é äœã¯ãstructãããŒã¯ãŒãã䜿ã£ãŠè¡šçŸãããŸããæ§é äœã¯éåžžã®ã¯ã©ã¹ãšéåžžã«ãã䌌ãŠããŸãããããã€ãã®éèŠãªéãããããŸããç¹ã«ãæ§é äœã¯ãå€åãã§ãã察ããŠãã¯ã©ã¹ã¯ãåç §åãã§ãããšããéããæãéèŠãªãã€ã³ããšãªããŸãã
ããããã£ãšã¡ãœãã
次ã«ãã¯ã©ã¹ãæ§é äœã®äžã«ã¯ããããã£ãšã¡ãœãããååšããŸããããããã£ã¯ãªããžã§ã¯ãã®ç¶æ ãããªãã¡ãããŒã¿ããä¿æããŸããäŸãšããŠã¯ãã¶ã®ãããã³ã°ãè»ã®ã¹ããŒããªã©ãèããããŸãã
äžæ¹ãã¡ãœããã¯ãããã£ãããŒã¿ã®æäœãè¡ãããã®ãé¢æ°ãã§ãããã¯ã©ã¹ãæ§é äœã®ã€ã³ã¹ã¿ã³ã¹ã«å¯ŸããŠç¹å®ã®æ¯ãèããæå®ããŸãããããããã°ã©ã ã®ãããžãã¯ããæ ã£ãŠããŸãã
ç¶æ¿ãšããªã¢ãŒãã£ãºã
æåŸã«ãç¶æ¿ãšããªã¢ãŒãã£ãºã ã«ã€ããŠèª¬æããŸããç¶æ¿ãšã¯ãããã¯ã©ã¹ãå¥ã®ã¯ã©ã¹ããå±æ§ãæ¯ãèãããåŒãç¶ããããšãæããŸããããã«ãããæ¢åã®ã¯ã©ã¹ã®æ¯ãèããåå©çšãããæ¡åŒµãããããããšã容æã«ãªããŸãã
ãŸããããªã¢ãŒãã£ãºã ãšã¯æåéããå€åœ¢æ§ããæå³ãããªããžã§ã¯ããæ§ã ãªåœ¢ã«ãå€åœ¢ãããèœåãæããŸããããã«ãããäžã€ã®åã®åç §ã§æ§ã ãªãªããžã§ã¯ããæ±ãããšãã§ããŸããç¹ã«ãç¶æ¿ãšçµã¿åãããããšã§é«åºŠãªããã°ã©ã èšèšãå¯èœã«ãªããŸãã
Swiftã§ã¢ããªãäœãããã®åºæ¬èŠçŽ
ããã§ã¯ãSwiftãçšããŠã¢ããªãéçºããéã®åºæ¬çãªèŠçŽ ã«ã€ããŠèª¬æããŸãããããã®èŠçŽ ãç解ããããšã§ãèªåã®èããã¢ã€ãã£ã¢ã圢ã«ããããã®åºç€ã身ã«ã€ããããšãã§ããŸãã
UIãšã¬ã€ã¢ãŠã
ãŸãåãã«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒãšã¬ã€ã¢ãŠãã«ã€ããŠè§ŠããŠãããŸããããUIã¯ã¢ããªã±ãŒã·ã§ã³ã®é¡ãšãèšããéšåã§ããŠãŒã¶ãŒãçŽæ¥è§Šããéšåã§ãããã®ãããçŽæçã«æäœãå¯èœã§ãŠãŒã¶ãŒãã¬ã³ããªãŒãªUIã¯ãè¯è³ªãªã¢ããªã±ãŒã·ã§ã³ãäœãããã«å¿ èŠäžå¯æ¬ ãªèŠçŽ ãšãªããŸãã
Swiftã§ã¯ãStoryboardãå©çšããŠèŠèŠçã«UIãèšèšããããšãå¯èœã§ãããŸããUIèŠçŽ ã®é 眮ãå¶çŽã®èšå®ãªã©ã现ããªã¬ã€ã¢ãŠã調æŽãå¯èœã§ãã
ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³
次ã«ããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«ã€ããŠåŠã³ãŸããããã¢ããªã±ãŒã·ã§ã³ã¯åã«æ å ±ã衚瀺ããã ãã§ãªãããŠãŒã¶ãŒããã®å ¥åã«å¿ããŠåçã«åå¿ããããšãæ±ããããŸãã
Swiftã§ã¯ããã¿ã³ã®æŒäžãããã¹ãã®å ¥åãªã©ãæ§ã ãªãŠãŒã¶ãŒã®å ¥åãã€ãã³ããšããŠæããããã«å¿ããåŠçãããã°ã©ã ã§ããŸããããã«ããããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããããšãå¯èœãšãªããŸãã
ããŒã¿æ°žç¶æ§
æåŸã«ãããŒã¿æ°žç¶æ§ã«ã€ããŠè¿°ã¹ãŸããã¢ããªã±ãŒã·ã§ã³ã¯ãŠãŒã¶ãŒã®æ å ±ãä¿åãããããå床å©çšããããšãå€ã ãããŸããäŸãã°ããã°ã€ã³æ å ±ã®ä¿åãããŠãŒã¶ãŒãå ¥åããããŒã¿ã®ä¿åãªã©ãããã«ããããŸãã
Swiftã§ã¯ãUserDefaultãçšããããšã§ç°¡åã«ããŒã¿ãä¿åããããåãåºãããããããšãã§ããŸãããŸããè€éãªããŒã¿æ§é ãæã€ããŒã¿ãæ±ãéã«ã¯ãããŒã¿ããŒã¹ã·ã¹ãã ã§ããCoreDataãå©çšã§ããŸãã
å®éã®Swiftããã°ã©ãã³ã°
ããŠããããŸã§ã«åŠãã åºæ¬çãªç¥èãçãããŠãå®éã®ããã°ã©ãã³ã°ã«ææŠããŠã¿ãŸããããããã«æ¥ããŸã§ã®éã®ãã¯é·ãã£ããããããŸãããããããããããã°ã©ãã³ã°ã®ééå³ã§ããèªåã®æã§èããã³ãŒããæžãããšã§ãåŠãã ããšãäœã§æããããŸãã
ç·Žç¿åé¡ïŒåºæ¬ã®ã³ãŒãäœæ
ãŸããSwiftã®åºæ¬çãªã³ãŒãäœæãç·Žç¿ããŠã¿ãŸãããã以äžã®åé¡ã解ããŠã¿ãŠãã ããã
åé¡1ïŒ1ãã100ãŸã§ã®æ°åãé ã«åºåããããã°ã©ã ãæžããŠã¿ãŠãã ããããã ãã3ã®åæ°ã®æã¯æ°åã®ä»£ããã«"Fizz"ã5ã®åæ°ã®æã¯"Buzz"ã15ã®åæ°ã®æã¯"FizzBuzz"ãšåºåããŠãã ããã åé¡2ïŒæ¬¡ã®é å["apple", "banana", "cherry", "date", "elderberry"]ãããæ¯é³ïŒa, e, i, o, uïŒã§å§ãŸãèŠçŽ ã ããæ°ããªé åã«æ ŒçŽãããã®é åãåºåããããã°ã©ã ãäœæããŠã¿ãŠãã ããã
ãããã解ãããšã§ãå¶åŸ¡ãããŒãã³ã¬ã¯ã·ã§ã³ã®æäœãç解ããããšãã§ããŸãã
ãããžã§ã¯ãïŒç°¡åãªã¢ããªã®äœæ
次ã«ãå®éã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŠã¿ãŸããããããã§ã¯ãç°¡åãªã«ãŠã³ã¿ãŒã¢ããªãäœæããããšãç®æããŸãã
ã¹ããã1ïŒæ°ãããããžã§ã¯ããäœæããŸãã ã¹ããã2ïŒå¿ èŠãªUIèŠçŽ ïŒç»é¢ã«è¡šç€ºããã©ãã«ããã¿ã³ïŒãé 眮ããŸãã ã¹ããã3ïŒãã¿ã³ãæŒãããšãã«æ°å€ã1ãã€å¢å ããåŠçãæžããŸãã ã¹ããã4ïŒæ°å€ãç»é¢ã«è¡šç€ºããåŠçãæžããŸãã ã¹ããã5ïŒã¢ããªãå®è¡ããŠããã¿ã³ãæŒããšæ°å€ã1ãã€å¢ããŠããããšã確èªããŸãã
ãã®ãããžã§ã¯ããéããŠãSwiftã§ã®UIäœæãã€ãã³ããã³ããªã³ã°ããããŠæãéèŠãªãã¢ããªã®æ§ç¯ã®åºæ¬ã¹ããããäœæããŸãããã
ãŸãšãïŒSwiftåŠç¿ã®æ¬¡ã®ã¹ããã
ãããŸã§ã«åŠãã åºæ¬çãªç¥èã¯ãããã°ã©ãã³ã°èšèªSwiftã§åºæ¬çãªã¢ããªã±ãŒã·ã§ã³ãäœæããããã®äžã§å¿ èŠäžå¯æ¬ ãªãã®ã§ããããããããŸã ãŸã åŠã¶ã¹ãããšã¯æ²¢å±±ãããŸãã次ã«ææŠãããé«åºŠãªæè¡ãç¹å®ã®ãããžã§ã¯ãã«åãçµãã«ããã£ãŠãæŽãªãæ·±ãåŠã³ãå¿ èŠãšãªãã§ããããããã§ã¯ããããªãã¹ãã«ã¢ãããç®æãããªãœãŒã¹ãSwiftã®ã³ãã¥ããã£ãšãã®ãªãã¡ã¬ã³ã¹ã«ã€ããŠèª¬æããŸãã
ããã«æ·±ãåŠã¶ãªãœãŒã¹
åå¿è åãã®ç¥èãäžéãåŠãã åŸããããã«åŠã³æ·±ããŠè¡ãããã®ãªãœãŒã¹ã¯ããããååšããŸããç¹ã«ãªã³ã©ã€ã³äžã§åç §å¯èœãªããã¥ã¡ã³ãããã¥ãŒããªã¢ã«ã¯éåžžã«å å®ããŠããŸããäŸãã°Apple Developer Documentationã§ã¯ãSwiftã®åºæ¬ããé«åºŠãªå 容ãŸã§è©³çŽ°ã«èª¬æããªãããŠãããåå¿è ããäžçŽè ãŸã§ãåŠã³æ·±ããããšãå¯èœã§ãããŸãGitHubã«ãå€ãã®Swiftãããžã§ã¯ããå ¬éãããŠãããä»ã®éçºè ãã©ã®ããã«Swiftã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãäœã£ãŠããã®ãåŠãã ããã§ãã¯ãããããã®ã«æé©ã§ãã
Swiftã®ã³ãã¥ããã£ãšãªãã¡ã¬ã³ã¹
äœãåé¡ã«ééãããšããåŠç¿ãæ·±ããããã«ããå€ãã®éçºè ãåå ããŠããSwiftã®ã³ãã¥ããã£ã掻çšããã®ãããããã§ããSwift.orgã¯ãSwiftããã°ã©ãã³ã°ã«èšããããå ¬åŒã®ã³ãã¥ããã£ã§ãéçºè ãã¡ãäºãã«æ å ±ãå ±æããããçåã解æ¶ãããããŠããŸãããŸãStack Overflowãéåžžã«åœ¹ç«ã€ãªãœãŒã¹ã§ãä»ã®éçºè ãééããåé¡ãšãã®è§£æ±ºçãå ±æããŠããŸãããããã®å Žãæå¹ã«æŽ»çšãã€ã€ãæŽã«åŠç¿ãæ·±ããŠãããããšã§ãã¹ãã«ãšç¥èã確ç«ããããè€éã§åµé çãªããšãã§ããéçºè ã«ãªãããšãã§ããŸãã