1. Swiftã®æŠèŠ
Swiftã¯ãè¿å¹Žã®ããã°ã©ãã³ã°èšèªã®äžã§æ¥éã«äººæ°ãéããŠããèšèªã®äžã€ã§ããç¹ã«Appleã®ãšã³ã·ã¹ãã å ã§ã®ã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠãäžå¿çãªåœ¹å²ãæãããŠããŸãã
1.1. Swiftã®èµ·æºãšèæ¯
Swiftã¯ãAppleãéçºããããã°ã©ãã³ã°èšèªã§ã2014幎ã®WWDCïŒWorldwide Developers ConferenceïŒã§åããŠå ¬éãããŸããããã以åã«Appleã䜿çšããŠããObjective-Cã«ä»£ããèšèªãšããŠèšèšãããããç°¡æœã§å®å šæ§ãé«ãããŸãé«éãªå®è¡ãå¯èœãªèšèªãšããŠæ³šç®ã济ã³ãŸãããSwiftã®éçºã¯2010幎ã«å§ãŸãããã®èåŸã«ã¯ãéçºè ãããå¹ççã«ããããŠæ¥œããããã°ã©ãã³ã°ã§ããããã«ãããšããããžã§ã³ããããŸããã
1.2. Swiftã®äž»ãªçšéãšé¢é£æè¡
Swiftã¯ãiOSãmacOSãwatchOSãtvOSãšãã£ãAppleã®åãã©ãããã©ãŒã åãã®ã¢ããªã±ãŒã·ã§ã³éçºã«äœ¿çšãããŸãããŸããSwiftã¯ãªãŒãã³ãœãŒã¹ãšããŠå ¬éãããŠãããããLinuxãªã©ã®ä»ã®ãã©ãããã©ãŒã ã§ã®äœ¿çšãå¢ããŠããŠããŸããSwiftãšå¯æ¥ã«é¢é£ããŠããæè¡ãšããŠãCocoaããã³Cocoa Touchãã¬ãŒã ã¯ãŒã¯ããããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããããmacOSããã³iOSåãã®ãœãããŠã§ã¢éçºã«äœ¿çšãããå ¬åŒã®Appleãã¬ãŒã ã¯ãŒã¯ã§ãã
1.3. Swiftã®ç¹åŸŽãšèœå
Swiftã®æãé¡èãªç¹åŸŽã®äžã€ã¯ããã®ã·ã³ã¿ãã¯ã¹ã®ç°¡æœããšå¯èªæ§ã§ãããã®ç¹åŸŽã«ãããåå¿è ã§ãæ¯èŒççãæéã§Swiftã®åºæ¬ãç解ããããšãã§ããŸãããŸããSwiftã¯åå®å šãéèŠããŠãããã³ã³ãã€ã«æã«å€ãã®ãšã©ãŒãæ€åºããããšãã§ããããããã°ã®å°ãªãã³ãŒããæžãããšãã§ããŸããããã«ãSwiftã¯ã¡ã¢ãªç®¡çã®é¢ã§ãåªããŠãããèªååç §ã«ãŠã³ãïŒARCïŒã«ãã£ãŠãéçºè ãã¡ã¢ãªãªãŒã¯ãæ°ã«ããããšãªãã³ãŒãã£ã³ã°ã«éäžã§ããç°å¢ãæäŸããŠããŸãã
2. Swiftã®åºæ¬æ§é
Swiftã¯ããã®ç¬èªã®æ§é ãšç¹åŸŽãæã€ããã°ã©ãã³ã°èšèªã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®åºæ¬çãªæ§é ã«ã€ããŠãç¹ã«Objective-Cãšã®éããææ³ã®ç¹åŸŽããããŠããã°ã©ãã³ã°ã®åºæ¬ã«çŠç¹ãåœãŠãŠè§£èª¬ããŸãã
2.1. SwiftãšObjective-Cã®éã
SwiftãšObjective-Cã¯ãã©ã¡ããAppleã®ãšã³ã·ã¹ãã ã§äœ¿çšãããäž»èŠãªããã°ã©ãã³ã°èšèªã§ãããå€ãã®éãããããŸããObjective-Cã¯1980幎代ã«ç»å Žããå€ãèšèªã§ãCèšèªãããŒã¹ã«ãªããžã§ã¯ãæåã®ç¹åŸŽãè¿œå ãããã®ã§ããäžæ¹ãSwiftã¯2014幎ã«ç»å Žããææ°ã®ããã°ã©ãã³ã°èšèªã®èšèšææ³ãåãå ¥ããŠããŸããSwiftã¯ãç°¡æœãªææ³ãé«ãå®å šæ§ããããŠé«éãªå®è¡é床ãæã€äžæ¹ãObjective-Cã¯ãæ¢åã®Cèšèªã®ã³ãŒããšã®äºææ§ãè±å¯ãªã©ã€ãã©ãªã匷ã¿ã§ãã
2.2. Swiftã®ææ³ã®ç¹åŸŽ
Swiftã®ææ³ã¯ãä»ã®å€ãã®çŸä»£çãªããã°ã©ãã³ã°èšèªãšæ¯èŒããŠãéåžžã«ç°¡æœã§çŽæçã§ããäŸãã°ãå€æ°ã®å®£èšã¯ãvarãããŒã¯ãŒãã䜿çšããå®æ°ã®å®£èšã¯ãletãããŒã¯ãŒãã䜿çšããŸãããŸããSwiftã¯åæšè«ããµããŒãããŠãããããå€æ°ãå®æ°ã®åãæ瀺çã«å®£èšããå¿ èŠã¯ãããŸãããããã«ãããã³ãŒããçããªããèªã¿ããããªããŸãã
2.3. Swiftã§ã®ããã°ã©ãã³ã°ã®åºæ¬
Swiftã§ã®ããã°ã©ãã³ã°ã¯ãæ¡ä»¶åå²ãã«ãŒããé¢æ°ãªã©ãä»ã®å€ãã®ããã°ã©ãã³ã°èšèªãšå ±éã®åºæ¬çãªæŠå¿µã«åºã¥ããŠããŸããããããSwiftã«ã¯ãã¯ããŒãžã£ããªãã·ã§ãã«ããžã§ããªã¯ã¹ãªã©ãç¬èªã®ç¹åŸŽçãªæŠå¿µãå€ãå«ãŸããŠããŸãããããã®æŠå¿µã¯ãSwiftã®åŒ·åãªæ©èœãæ倧éã«æŽ»çšããããã®éµãšãªããŸãã
3. Swiftã®å©ç¹ãšæ¬ ç¹
Swiftã¯ããã®ç»å Žä»¥æ¥ãå€ãã®éçºè ããé«ãè©äŸ¡ãåããŠããŸããããããã©ããªæè¡ã«ãå©ç¹ãšæ¬ ç¹ããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®äž»ãªå©ç¹ãšæ¬ ç¹ã«ã€ããŠè©³ãã解説ããŸãã
3.1. é«ãããã©ãŒãã³ã¹
Swiftã¯ããã®æé©åãããã³ã³ãã€ã©ã®ãããã§ãéåžžã«é«ãå®è¡é床ãæã£ãŠããŸããå®éãå€ãã®ãã³ãããŒã¯ãã¹ãã§ã¯ãSwiftã¯Objective-Cãä»ã®å€ãã®èšèªãããé«éã«åäœããããšã瀺ãããŠããŸãããã®é«éæ§ã¯ããªã¢ã«ã¿ã€ã ã®ã¢ããªã±ãŒã·ã§ã³ãã²ãŒã ã®éçºã«ãããŠãç¹ã«éèŠãªèŠçŽ ãšãªããŸãã
3.2. ã·ã³ãã«ãªæ§æ
Swiftã®æ§æã¯ãä»ã®å€ãã®ããã°ã©ãã³ã°èšèªãšæ¯èŒããŠãéåžžã«ã·ã³ãã«ã§çŽæçã§ãããã®ã·ã³ãã«ãã¯ãæ°ããããã°ã©ããŒãSwiftãåŠã¶éã®éå£ãäœãããã ãã§ãªããçµéšè±å¯ãªããã°ã©ããŒãããå¹ççã«ã³ãŒããæžãã®ãå©ããŸãã
3.3. ã»ãã¥ãªãã£æ©èœ
Swiftã¯ãã»ãã¥ãªãã£ãéèŠããèšèšããããŠããŸããäŸãã°ããªãã·ã§ãã«åãåå®å šãªã©ã®æ©èœã¯ãã©ã³ã¿ã€ã ãšã©ãŒãäžæ£ãªã¡ã¢ãªã¢ã¯ã»ã¹ãé²ãããã®ãã®ã§ããããã«ãããSwiftã§æžãããã¢ããªã±ãŒã·ã§ã³ã¯ãã»ãã¥ãªãã£ã®åé¡ã«å¯ŸããŠåŒ·åºã§ãã
3.4. ã©ã€ã»ã³ã¹ãšã³ãã¥ããã£
Swiftã¯ãªãŒãã³ãœãŒã¹ãšããŠå ¬éãããŠãããApache 2.0ã©ã€ã»ã³ã¹ã®äžã§å©çšããããšãã§ããŸãããã®ãªãŒãã³ãªæ§æ Œã«ãããSwiftã®ã³ãã¥ããã£ã¯æ¥éã«æé·ããŠãããå€ãã®éçºè ãSwiftã®éçºãæ¹åã«è²¢ç®ããŠããŸãããŸãããªãŒãã³ãœãŒã¹ã§ãããããSwiftã䜿çšãããããžã§ã¯ããã©ã€ãã©ãªãå€æ°å ¬éãããŠããããããã®ãªãœãŒã¹ãå©çšããããšã§ãéçºã®å¹çãå€§å¹ ã«åäžãããããšãã§ããŸãã
4. Swiftã®å®çšäŸ
Swiftã¯å€å²ã«ãããçšéã§æŽ»çšãããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®äž»ãªå®çšäŸã«ã€ããŠè©³ãã解説ããŸãã
4.1. iOS/MacOSã§ã®ã¢ããªã±ãŒã·ã§ã³éçº
Swiftã¯ãiOSãMacOSåãã®ã¢ããªã±ãŒã·ã§ã³éçºã«åºã䜿çšãããŠããŸããç¹ã«iOSã¢ããªã®éçºã§ã¯ãSwiftã®ã·ã³ãã«ãªææ³ãé«ãããã©ãŒãã³ã¹ã倧ããªå©ç¹ãšãªã£ãŠããŸãããŸããAppleãæäŸããXcodeãšããçµ±åéçºç°å¢ã䜿çšããããšã§ãSwiftãçšããã¢ããªã±ãŒã·ã§ã³ã®éçºãéåžžã«ã¹ã ãŒãºã«è¡ããŸãããã®çµæãå€ãã®ã¢ãã€ã«ã¢ããªããã¹ã¯ãããã¢ããªãSwiftãæ¡çšããŠããŸãã
4.2. SwiftãšObjective-Cã®é£æº
Swiftã¯æ°ããèšèªã§ãããããå€ãã®æ¢åã®ãããžã§ã¯ããã©ã€ãã©ãªã¯Objective-Cã§æžãããŠããŸããããããSwiftã¯Objective-Cãšã®é£æºãéåžžã«ã¹ã ãŒãºã«è¡ããããã«èšèšãããŠããŸããããã«ãããæ¢åã®Objective-Cã®ã³ãŒãããŒã¹ã«Swiftã®ã³ãŒããè¿œå ããããšã容æã«ãªãããŸããSwiftããObjective-Cã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãå©çšããããšãå¯èœã§ãã
4.3. Swiftã®ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯
Swiftã®ã³ãã¥ããã£ã¯éåžžã«æŽ»çºã§ãå€ãã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãå ¬éãããŠããŸãããããã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®éçºé床ãå€§å¹ ã«åäžãããããšãã§ããŸããäŸãã°ãAlamofireãSwiftyJSONãªã©ã®ã©ã€ãã©ãªã¯ããããã¯ãŒã¯éä¿¡ãJSONã®ããŒã¹ãç°¡åã«è¡ãããã®ãã®ã§ãå€ãã®Swiftãããžã§ã¯ãã§å©çšãããŠããŸãã
5. Swift 5.5ã®æ°æ©èœ
Swiftã¯ããã®çºè¡šä»¥æ¥ãæ¥éã«é²åãç¶ããŠããŸããç¹ã«ãSwift 5.5ã§ã¯ãå€ãã®æ³šç®ãã¹ãæ°æ©èœãè¿œå ãããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwift 5.5ã®äž»ãªæ°æ©èœã«ã€ããŠè©³ãã解説ããŸãã
5.1. éåæããã°ã©ãã³ã°ã®ãµããŒã
Swift 5.5ã§ã¯ãéåæããã°ã©ãã³ã°ã®ãµããŒãã倧å¹
ã«åŒ·åãããŸãããæ°ããasync/await
æ§æã䜿çšããããšã§ãéåæã®ã¿ã¹ã¯ãçŽæçã«èšè¿°ããããšãã§ããããã«ãªããŸãããããã«ããããããã¯ãŒã¯éä¿¡ãããŒã¿ããŒã¹ã®æäœãªã©ãæéããããåŠçãå¹ççã«æ±ãããšãã§ããããã«ãªããŸããã
5.2. 䞊è¡ããã°ã©ãã³ã°ã®ãµããŒã
Swift 5.5ã§ã¯ã䞊è¡ããã°ã©ãã³ã°ã®ãµããŒãã匷åãããŸãããæ°ããTask
ãActor
ãšãã£ãæŠå¿µãå°å
¥ãããè€æ°ã®ã¿ã¹ã¯ãåæã«å®è¡ããéã®ããŒã¿ã®å®å
šæ§ãå¹çæ§ãåäžããŠããŸããããã«ããããã«ãã³ã¢ã®CPUãæ倧éã«æŽ»çšããé«æ§èœãªã¢ããªã±ãŒã·ã§ã³ã®éçºã容æã«ãªããŸããã
5.3. SwiftãšAppleã®APIã®é£æº
Swift 5.5ã§ã¯ãAppleã®æäŸããAPIãšã®é£æºã匷åãããŸãããç¹ã«ãéåæããã°ã©ãã³ã°ã®ãµããŒãã掻çšããŠãAppleã®ãã¬ãŒã ã¯ãŒã¯ãšã®çµ±åãã¹ã ãŒãºã«è¡ããããã«ãªããŸãããããã«ãããiOSãMacOSåãã®ã¢ããªã±ãŒã·ã§ã³éçºãããã«å¹ççã«è¡ããããã«ãªããŸããã
6. SwiftãåŠã¶ããã®ãªãœãŒã¹
SwiftãåŠã¶ããã®ãªãœãŒã¹ã¯å€å²ã«ããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®åŠç¿ã«åœ¹ç«ã€ãªãœãŒã¹ãæ å ±ã玹ä»ããŸãã
6.1. ããããã®æžç±ãšãŠã§ããµã€ã
Swiftã®åŠç¿ã«ã¯å€ãã®æžç±ããŠã§ããµã€ããå©çšã§ããŸããç¹ã«ã“Swiftå ¬åŒããã¥ã¡ã³ã”ã“Swift Playgrounds”ã¯ãåå¿è ããäžçŽè ãŸã§å¹ åºã察å¿ããŠãããéåžžã«åèã«ãªããŸãããŸãã“Hacking with Swift”ã“Ray Wenderlich”ã®ãµã€ãããå®è·µçãªãã¥ãŒããªã¢ã«ãèšäºãè±å¯ã«æã£ãŠããŸãã
6.2. å®è·µçãªãããžã§ã¯ãã®ã¢ã€ãã£ã¢
Swiftã®åŠç¿ãé²ããäžã§ãå®è·µçãªãããžã§ã¯ããæãããããšã¯éåžžã«æå¹ã§ããäŸãã°ãã·ã³ãã«ãªToDoãªã¹ãã¢ããªã倩æ°äºå ±ã¢ããªã®éçºããå§ããããšã§ãSwiftã®åºæ¬çãªææ³ããã¬ãŒã ã¯ãŒã¯ã®äœ¿ãæ¹ãåŠã¶ããšãã§ããŸãããŸããã²ãŒã éçºãARã¢ããªã®å¶äœããSwiftã®é«åºŠãªæ©èœã掻çšããè¯ãæ©äŒãšãªããŸãã
6.3. Swiftã®ã³ãã¥ããã£ãšãµããŒã
Swiftã®ã³ãã¥ããã£ã¯éåžžã«æŽ»çºã§ãå€ãã®ãµããŒããåããããŸãã“Swift.org”ã®ãã©ãŒã©ã ãStack Overflowã®Swiftã¿ã°ã§ã¯ãçåãåé¡ã«å¯ŸããåçãåŸãããšãã§ããŸãããŸããåå°ã§éå¬ãããSwiftã®ããŒãã¢ãããã«ã³ãã¡ã¬ã³ã¹ããåŠã³ã®å ŽãšããŠããããã§ãã
7. ãŸãšã
ãã®èšäºãéããŠãSwiftã®åºæ¬ããææ°ã®æ©èœãåŠç¿ãªãœãŒã¹ãŸã§å¹ åºã玹ä»ããŸãããæåŸã«ãSwiftã®å šäœåãšãã®å°æ¥ã«ã€ããŠãŸãšããŠã¿ãŸãããã
7.1. Swiftã®å°æ¥ã®å±æ
Swiftã¯ãAppleã«ãã£ãŠéçºãããæ¯èŒçæ°ããããã°ã©ãã³ã°èšèªã§ãããªãããæ¥éã«æ®åããŠããŸãããã®ã·ã³ãã«ã§çŽæçãªææ³ããé«ãããã©ãŒãã³ã¹ãã»ãã¥ãªãã£ã®åŒ·åãªã©ãå€ãã®ç¹åŸŽãéçºè ããè©äŸ¡ãããŠããŸããä»åŸããiOSãmacOSã ãã§ãªãããµãŒããŒãµã€ããã¯ãã¹ãã©ãããã©ãŒã ã®éçºãªã©ãããŸããŸãªé åã§ã®å©çšãæåŸ ãããŠããŸãã
7.2. Swiftã®åŒ·ã¿ãšåŒ±ã¿
Swiftã®æ倧ã®åŒ·ã¿ã¯ããã®å¹çæ§ãšå®å šæ§ã«ãããŸãããŸããAppleã®ãµããŒããåããŠãããããiOSãmacOSã®ææ°æ©èœããã¡æ©ãåãå ¥ããããšãã§ããã®ã倧ããªã¡ãªããã§ããäžæ¹ã匱ã¿ãšããŠã¯ãå€ãiOSããã€ã¹ãäžéšã®ãã©ãããã©ãŒã ã§ã®ãµããŒããéå®çã§ããç¹ããåŠç¿ãªãœãŒã¹ãè±èªäžå¿ã§ããç¹ãæããããŸãã
7.3. ç¶ç¶çãªåŠç¿ã®éèŠæ§
æè¡ã®äžçã¯æ¥ã é²åããŠããŸããSwiftãäŸå€ã§ã¯ãããŸãããæ°ããããŒãžã§ã³ããªãªãŒã¹ããããã³ã«ãæ°æ©èœãè¿œå ãããããæ¢åã®æ©èœãæ¹åããããããŸãããã®ãããç¶ç¶çãªåŠç¿ãéåžžã«éèŠã§ããå ¬åŒããã¥ã¡ã³ããã³ãã¥ããã£ã®æ å ±ãå®æçã«ãã§ãã¯ããããšã§ãææ°ã®æ å ±ããã£ããã¢ããããã¹ãã«ã磚ãç¶ããããšãã§ããŸãã