1. Swiftãšã¯ïŒ
è¿å¹Žãã¢ããªéçºã®äžçã§ã¯å€ãã®ããã°ã©ãã³ã°èšèªãååšããŸããããã®äžã§ãSwiftã¯ç¹ã«æ³šç®ã济ã³ãŠããŸããã§ã¯ãSwiftãšã¯äžäœäœãªã®ã§ããããã
1.1. Swiftã®èµ·æºãšèæ¯
Swiftã¯Apple Inc.ã«ãã£ãŠ2014幎ã«çºè¡šãããŸããããã以åã®Appleã®ãã©ãããã©ãŒã ãç¹ã«iOSãmacOSã®ã¢ããªéçºã«ã¯Objective-Cãšããèšèªãäž»ã«äœ¿çšãããŠããŸãããããããObjective-Cã¯1980幎代ã®æè¡ãåºã«ããŠãããããçŸä»£ã®éçºããŒãºã«å¿ããããã«ã¯æ°ããèšèªãæ±ããããŠããŸãããããã§ãAppleã¯Swiftãéçºããããéããå®å šã§ãçŽæçãªããã°ã©ãã³ã°ãå¯èœãªèšèªãšããŠäžã«éãåºããŸããã
1.2. Swiftã®ç¹åŸŽãšå©ç¹
Swiftã®æ倧ã®ç¹åŸŽã¯ãå®å šæ§ãšé«éæ§ã«ãããŸããSwiftã¯ãã³ãŒãã®ãã¹ãäžå ·åãæ©æã«çºèŠããä¿®æ£ããããšãã§ããããã«èšèšãããŠããŸããäŸãã°ãæªåæåã®å€æ°ã䜿çšããããšã¯èš±ãããŠããããããã«ããã©ã³ã¿ã€ã ãšã©ãŒãå€§å¹ ã«æžå°ãããããšãã§ããŸãããŸããSwiftã¯æé©åãããã³ã³ãã€ã©ãæã£ãŠãããçæãããã¢ããªã¯éåžžã«é«éã«åäœããŸãã
ããã«ãSwiftã¯çŽæçãªææ³ãæã£ãŠãããåå¿è ã§ãåŠã³ããããšããå©ç¹ããããŸããäŸãã°ãæååã®çµå㯔+”èšå·ã䜿ã£ãŠç°¡åã«è¡ãããšãã§ããããã«ããã³ãŒããèªã¿ããããæžãããããªã£ãŠããŸãã
1.3. Swiftã®äž»ãªçšé
Swiftã¯ãiOSãmacOSãwatchOSããããŠtvOSãšãã£ãAppleã®ãã©ãããã©ãŒã åãã®ã¢ããªéçºã«äœ¿çšãããŸããç¹ã«iOSã¢ããªã®éçºã«ãããŠã¯ãSwiftãäž»æµãšãªã£ãŠããŠããŸãããŸããSwiftã¯ãªãŒãã³ãœãŒã¹ãšããŠå ¬éãããŠãããããLinuxãªã©ã®ä»ã®ãã©ãããã©ãŒã ã§ã®äœ¿çšãå¢ããŠããŠããŸãã
Swiftã®é«éæ§ãšå®å šæ§ããããŠçŽæçãªææ³ã®ãããã§ãå€ãã®éçºè ãSwiftãéžæããŠããŸããããã«ãããä»åŸãSwiftã®æ®åã¯å éããŠããããšã§ãããã
2. Swiftã®åºæ¬æ§é
ããã°ã©ãã³ã°èšèªãåŠã¶éããã®èšèªã®åºæ¬æ§é ãç解ããããšã¯éåžžã«éèŠã§ããSwiftãäŸå€ã§ã¯ãããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®åºæ¬çãªææ³ãå€æ°ãããŒã¿åãæŒç®åã«ã€ããŠè©³ãã説æããŸãã
2.1. ææ³ã®åºç€
Swiftã®ææ³ã¯ãä»ã®å€ãã®ããã°ã©ãã³ã°èšèªãšäŒŒãŠããéšåããããŸãããç¬èªã®ç¹åŸŽãæã£ãŠããŸããäŸãã°ãSwiftã§ã¯ã»ãã³ãã³ïŒ;ïŒã䜿ã£ãŠæãçµäºããå¿
èŠã¯ãããŸããããŸããå€æ°ãå®æ°ã宣èšããéã«ã¯ãvar
ãlet
ããŒã¯ãŒãã䜿çšããŸãã
2.2. å€æ°ãšããŒã¿å
Swiftã«ã¯æ§ã ãªããŒã¿åãååšããŸããåºæ¬çãªããŒã¿åãšããŠã¯ãæŽæ°åãæµ®åå°æ°ç¹åãæåååãããŒã«åãªã©ããããŸããSwiftã¯åæšè«ããµããŒãããŠãããããå€æ°ã宣èšããéã«æ瀺çã«ããŒã¿åãæå®ããªããŠããã³ã³ãã€ã©ãèªåçã«é©åãªããŒã¿åãæšè«ããŠãããŸãã
äŸïŒvar name = "John"
ãã®å Žåãname
ã¯èªåçã«æåååãšããŠèªèãããŸãã
2.3. åºæ¬çãªæŒç®åãšãã®äœ¿çšäŸ
Swiftã«ã¯ãç®è¡æŒç®åãæ¯èŒæŒç®åãè«çæŒç®åãªã©ãå€ãã®åºæ¬çãªæŒç®åãçšæãããŠããŸãããããã®æŒç®åã䜿çšããããšã§ãæ°å€ã®èšç®ãæ¡ä»¶ã®æ¯èŒãªã©ãæ§ã ãªæäœãè¡ãããšãã§ããŸãã
äŸïŒvar sum = 5 + 3
ãã®å Žåãsum
ã®å€ã¯8ãšãªããŸãã
ãŸããSwiftã«ã¯è€åä»£å ¥æŒç®åãçšæãããŠãããå€æ°ã®å€ãæŽæ°ããéã«äŸ¿å©ã§ãã
äŸïŒsum += 2
ãã®å Žåãsum
ã®å€ã¯10ãšãªããŸãã
3. Swiftã§ã®ããã°ã©ãã³ã°ã®åºæ¬
ããã°ã©ãã³ã°ã®äžçã«ã¯ãå€ãã®åºæ¬çãªæŠå¿µãæè¡ãååšããŸããSwiftããã®äŸå€ã§ã¯ãããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã§ã®ããã°ã©ãã³ã°ã®åºæ¬ã«ã€ããŠè©³ãã説æããŸãã
3.1. å¶åŸ¡æ§é ïŒæ¡ä»¶åå²ãšã«ãŒã
ããã°ã©ã ã¯ãç¹å®ã®æ¡ä»¶ã«åºã¥ããŠç°ãªãåäœãããããšããããããŸããSwiftã§ã¯ãifãswitchãšãã£ãæ¡ä»¶åå²ã®æ§æã䜿çšããŠããã®ãããªåäœãå¶åŸ¡ããããšãã§ããŸãã
ãŸããç¹å®ã®åäœãç¹°ãè¿ãè¡ãå Žåãforãwhileãšãã£ãã«ãŒãã®æ§æã䜿çšããŸããããã«ãããã³ãŒãã®éè€ãé¿ããå¹ççãªããã°ã©ã ãäœæããããšãã§ããŸãã
3.2. é¢æ°ãšæç¶ã
é¢æ°ã¯ãç¹å®ã®åäœããŸãšãããã®ã§ãäœåºŠãåãåäœãè¡ãå Žåã«éåžžã«äŸ¿å©ã§ããSwiftã§ã¯ãfunc
ããŒã¯ãŒãã䜿çšããŠé¢æ°ãå®çŸ©ããŸããé¢æ°ã¯ãå¿
èŠã«å¿ããŠåŒæ°ãåãããšãã§ãããŸãæ»ãå€ãè¿ãããšãã§ããŸãã
äŸïŒfunc add(a: Int, b: Int) -> Int { return a + b }
ãã®é¢æ°ã¯ã2ã€ã®æŽæ°ãåãåãããã®åãè¿ããŸãã
3.3. ãšã©ãŒåŠçã®åºæ¬
ããã°ã©ã ã¯ãããŸããŸãªçç±ã§ãšã©ãŒãçºçããããšããããŸããSwiftã§ã¯ãtryãcatchãthrowãšãã£ãããŒã¯ãŒãã䜿çšããŠããšã©ãŒãå¹æçã«åŠçããããšãã§ããŸããããã«ããããšã©ãŒãçºçããå Žåã§ããããã°ã©ã ãé©åã«åäœããããã«ããããšãã§ããŸãã
4. Swiftã®å®çšäŸ
Swiftã¯ãã®é«éæ§ãšå®å šæ§ãããå€ãã®éçºè ã«æ¯æãããŠããŸããã§ã¯ãSwiftãçšããŠã©ã®ãããªãããžã§ã¯ããå®çŸãããŠããã®ã§ããããããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®å®çšäŸã«ã€ããŠè©³ãã説æããŸãã
4.1. iOSã¢ããªã®éçº
Swiftã®æãäžè¬çãªäœ¿çšäŸã¯ãiOSã¢ããªã®éçºã§ããiPhoneãiPadãªã©ã®iOSããã€ã¹åãã®ã¢ããªã¯ãApp StoreãéããŠæ°çŸäžäººã®ãŠãŒã¶ãŒã«æäŸãããŠããŸããSwiftã¯ããã®çŽæçãªææ³ãšé«éæ§ãããiOSã¢ããªéçºã®äž»èŠãªèšèªãšããŠåºãæ¡çšãããŠããŸãã
äŸãã°ããœãŒã·ã£ã«ã¡ãã£ã¢ã¢ããªãã²ãŒã ããŠãŒãã£ãªãã£ã¢ããªãªã©ãããŸããŸãªãžã£ã³ã«ã®ã¢ããªãSwiftã䜿çšããŠéçºãããŠããŸãã
4.2. macOSã¢ããªã®éçº
Swiftã¯ãmacOSåãã®ã¢ããªéçºã«ã䜿çšãããŠããŸããmacOSã¯Appleã®ãã¹ã¯ãããããã³ã©ãããããåãã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãããSwiftã䜿çšããããšã§ãé«å質ãªmacOSã¢ããªãå¹ççã«éçºããããšãã§ããŸãã
macOSã¢ããªã¯ãã°ã©ãã£ãã¯ãã¶ã€ã³ãé³æ¥œå¶äœããããªç·šéãªã©ã®å°éçãªçšéãããæ¥åžžã®ã¿ã¹ã¯ç®¡çãã¡ã¢ã¢ããªãŸã§ãå¹ åºããžã£ã³ã«ã§å©çšãããŠããŸãã
4.3. Swiftã䜿çšãããã®ä»ã®ãããžã§ã¯ã
Swiftã®çšéã¯ãiOSãmacOSã¢ããªã®éçºã ãã«ãšã©ãŸããŸãããSwiftã¯ãªãŒãã³ãœãŒã¹ãšããŠå ¬éãããŠãããããLinuxãªã©ã®ä»ã®ãã©ãããã©ãŒã ã§ã®éçºã«ã䜿çšãããŠããŸãããŸãããµãŒããŒãµã€ãã®éçºããIoTïŒInternet of ThingsïŒããã€ã¹ã®ããã°ã©ãã³ã°ãªã©ãããŸããŸãªåéã§Swiftã®å©çšãæ¡å€§ããŠããŸãã
ãããã®å®çšäŸããããSwiftã®æè»æ§ãšæ±çšæ§ã䌺ããŸããä»åŸãSwiftã®æ®åã¯å éããŠããããšã§ãããã
5. Swiftã®å¿çš
Swiftã®åºæ¬çãªæ©èœãææ³ãç解ãããã次ã«èããã¹ãã¯ãã®å¿çšã§ããSwiftã¯éåžžã«æè»ãªèšèªã§ãããå€ãã®å€éšã©ã€ãã©ãªãããŒã¿ããŒã¹ããŠã§ãAPIãšã®é£æºãå¯èœã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®å¿çšçãªäœ¿çšæ¹æ³ã«ã€ããŠè©³ãã説æããŸãã
5.1. å€éšã©ã€ãã©ãªãšã®é£æº
Swiftã®ãšã³ã·ã¹ãã ã«ã¯ãå€ãã®å€éšã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãååšããŸããããããå©çšããããšã§ãã¢ããªã®éçºãå¹ççã«é²ããããšãã§ããŸããäŸãã°ãç»ååŠçããããã¯ãŒã¯éä¿¡ãUIã®ã«ã¹ã¿ãã€ãºãªã©ãç¹å®ã®æ©èœãå®è£ ããããã®ã©ã€ãã©ãªãæäŸãããŠããŸãã
Swiftã§ã¯ãSwift Package Manager
ãCocoaPods
ãšãã£ãããŒã«ã䜿çšããŠãå€éšã©ã€ãã©ãªãç°¡åã«ãããžã§ã¯ãã«çµã¿èŸŒãããšãã§ããŸãã
5.2. ããŒã¿ããŒã¹æäœã®åºæ¬
å€ãã®ã¢ããªã§ã¯ããŠãŒã¶ãŒã®ããŒã¿ãä¿åããããååŸãããããããã«ããŒã¿ããŒã¹ã䜿çšããŸããSwiftã§ã¯ãCore DataãRealmãªã©ã®ããŒã¿ããŒã¹ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãå¹ççã«ããŒã¿ããŒã¹æäœãè¡ãããšãã§ããŸãã
ãããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãããŒã¿ã®ä¿åãååŸãæŽæ°ãåé€ãªã©ã®åºæ¬çãªæäœãç°¡åã«å®è£ ããããšãã§ããŸãã
5.3. ãŠã§ãAPIãšã®é£æº
çŸä»£ã®ã¢ããªéçºã«ãããŠããŠã§ãAPIãšã®é£æºã¯æ¬ ãããŸãããSwiftã§ã¯ãURLSession
ãå€éšã©ã€ãã©ãªã®Alamofire
ã䜿çšããŠããŠã§ãAPIãšã®éä¿¡ãè¡ãããšãã§ããŸãã
ããã«ããã倩æ°æ å ±ããã¥ãŒã¹ããœãŒã·ã£ã«ã¡ãã£ã¢ã®ããŒã¿ãªã©ãããŸããŸãªæ å ±ãã¢ããªå ã§ååŸãã衚瀺ããããšãã§ããŸãã
6. Swiftã®åŠç¿ãªãœãŒã¹
SwiftãåŠã¶ããã®ãªãœãŒã¹ã¯æ°å€ãååšããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftãåŠã¶ããã®ããããã®ãªãœãŒã¹ããå®è·µçãªãããžã§ã¯ãã®ã¢ã€ãã£ã¢ããããŠSwiftã®ã³ãã¥ããã£ããµããŒãã«ã€ããŠè©³ãã説æããŸãã
6.1. ããããã®æžç±ãšãŠã§ããµã€ã
Swiftã®åŠç¿ã«ã¯ãå€ãã®æžç±ããŠã§ããµã€ãã圹ç«ã¡ãŸããåå¿è åãã®å ¥éæžãããäžçŽè åãã®è©³çŽ°ãªã¬ã€ãããã¯ãŸã§ãããŸããŸãªæžç±ãåºçãããŠããŸãããŸãããªã³ã©ã€ã³ã§ã¯ãå ¬åŒããã¥ã¡ã³ãããã¥ãŒããªã¢ã«ãããã°èšäºãªã©ãå€ãã®æ å ±ãç¡æã§æäŸãããŠããŸãã
ç¹ã«ãAppleã®å ¬åŒãµã€ãã«ã¯ãSwiftã®åºæ¬ããå¿çšãŸã§ãåŠã¶ããã®è©³çŽ°ãªããã¥ã¡ã³ãããµã³ãã«ã³ãŒããæäŸãããŠãããéåžžã«åèã«ãªããŸãã
6.2. å®è·µçãªãããžã§ã¯ãã®ã¢ã€ãã£ã¢
ããã°ã©ãã³ã°ã®åŠç¿ã«ã¯ãå®è·µãæ¬ ãããŸãããSwiftãåŠã¶éã«ã¯ãç°¡åãªã¢ããªãã²ãŒã ãèªåã§äœæããŠã¿ãããšã§ãå®éã®éçºã®æµãããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®æ¹æ³ãäœéšããããšãã§ããŸãã
äŸãã°ãç°¡åãªèšç®æ©ã¢ããªã倩æ°äºå ±ã¢ããªãã¡ã¢ã¢ããªãªã©ãäœæããããšã§ãSwiftã®åºæ¬çãªææ³ãã©ã€ãã©ãªã®äœ¿çšæ¹æ³ãå®éã«äœéšããããšãã§ããŸãã
6.3. ã³ãã¥ããã£ãšãµããŒã
Swiftã®åŠç¿ã«ã¯ãã³ãã¥ããã£ã®ãµããŒããéåžžã«åœ¹ç«ã¡ãŸããäžçäžã«ã¯ãSwiftãåŠã¶ããã®ã³ãã¥ããã£ãå匷äŒãæ°å€ãååšããŠããŸãããããã®ã³ãã¥ããã£ã«åå ããããšã§ãä»ã®åŠç¿è ãããã®éçºè ãšã®äº€æµãæ·±ããããšãã§ããŸãã
ãŸãããªã³ã©ã€ã³äžã«ã¯ãSwiftã«é¢ãã質åããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®æ å ±ãå ±æããããã®ãã©ãŒã©ã ãQAãµã€ããå€æ°ååšããŠããŸãããããã®ãµã€ããå©çšããããšã§ãåŠç¿äžã«ééããåé¡ãçåã解決ããæå©ããåããããšãã§ããŸãã
7. ãŸãšã
ãã®èšäºãéããŠãSwiftã®åºæ¬ããå¿çšãåŠç¿ãªãœãŒã¹ãŸã§å¹ åºãåŠã¶ããšãã§ããŸãããæåŸã«ãSwiftã®å šäœåãææ¡ããããã®ãŸãšããè¡ããŸãã
7.1. Swiftã®åŒ·ã¿ãšåŒ±ã¿
Swiftã®åŒ·ã¿ãšããŠã¯ã以äžã®ç¹ãæããããŸãã
1. èªã¿ããããæžããããïŒSwiftã®ææ³ã¯çŽæçã§ãåå¿è ã§ãåŠã³ãããã§ãã
2. é«éïŒæé©åãããã³ã³ãã€ã©ã®ãããã§ãSwiftã¯éåžžã«é«éã«åäœããŸãã
3. å®å šæ§ïŒSwiftã¯ãå®å šãªããã°ã©ãã³ã°ããµããŒãããããã®å€ãã®æ©èœãæã£ãŠããŸãã
äžæ¹ã匱ã¿ãšããŠã¯ãä»ã®å€ãèšèªãšã®äºææ§ã®åé¡ããåŠç¿ãªãœãŒã¹ãè±èªäžå¿ã§ããããšãªã©ãèããããŸãã
7.2. ä»åŸã®Swiftã®å±æ
Swiftã¯ãAppleã®ãµããŒããåããŠãããiOSãmacOSã®ã¢ããªéçºã«ãããŠäžå¿çãªåœ¹å²ãæãããŠããŸãããã®ãããä»åŸããã®å°äœã¯æºãããªããšèããããŸãããŸããSwiftã®ã³ãã¥ããã£ã掻çºã§ãæ°ããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãæ¥ã éçºãããŠããŸãã
ãããããSwiftã¯ãã¢ããªéçºã®åéã§ã®éèŠæ§ãå¢ããŠããããšã§ãããã
7.3. ç¶ç¶çãªåŠç¿ã®éèŠæ§
æè¡ã®äžçã¯æ¥ã é²åããŠããŸããSwiftãäŸå€ã§ã¯ãããŸãããæ°ããããŒãžã§ã³ã®ãªãªãŒã¹ãæ°æ©èœã®è¿œå ãè¡ããããããç¶ç¶çãªåŠç¿ãå¿ èŠã§ãã
ãŸããå®éã®ãããžã§ã¯ããéããŠåŠã¶ããšã§ãçè«ã ãã§ãªãå®è·µçãªç¥èã身ã«ã€ããããšãã§ããŸããå®æçã«æ å ±ãæŽæ°ããæ°ããæè¡ããã¬ã³ãã«ææã«ãªãããšããããã°ã©ããŒãšããŠã®æé·ã«ç¹ãããŸãã