1. Swiftèšèªã®æŠèŠ
Swiftã¯ãçŸä»£ã®ããã°ã©ãã³ã°èšèªã®äžã§ãç¹ã«æ³šç®ãããŠããèšèªã®äžã€ã§ããç¬ç¹ã®ç¹æ§ãšãå€ãã®ããã€ã¹ããã©ãããã©ãŒã ã§ã®å©çšãå¯èœãªãããå€ãã®éçºè ãSwiftã®åŠç¿ãå§ããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®èæ¯ãç¹æ§ããããŠçŸåšã®äººæ°ãæ¡çšç¶æ³ã«ã€ããŠè©³ãã解説ããŸãã
1.1. Swiftã®èµ·æºãšæŽå²
Swiftã¯ã2014幎ã«Appleã«ãã£ãŠåããŠçºè¡šãããŸãããObjective-Cãšããèšèªã®åŸç¶ãšããŠèšèšãããããå®å šã§ãé床ãæ©ãããŸãæžããããèšèªãšããŠéçºãããŸãããSwiftã®åæã®ããŒãžã§ã³ãããAppleã¯ã³ãã¥ããã£ã®ãã£ãŒãããã¯ãåãå ¥ããå€ãã®æ¹è¯ãéããŠããŸããããã®çµæãSwiftã¯é«éæ§ãšå®å šæ§ãäž¡ç«ãããçŸä»£çãªããã°ã©ãã³ã°èšèªãšããŠæé·ããŠããŸããã
1.2. Swiftãšä»ã®ããã°ã©ãã³ã°èšèªãšã®éã
Swiftã¯ãä»ã®å€ãã®èšèªãšæ¯èŒããŠã以äžã®ãããªç¹åŸŽãæã£ãŠããŸãã
- å®å šæ§: Swiftã¯ãå®å šæ§ãéèŠããŠèšèšãããŠããããšã©ãŒãæ©æã«ãã£ããããããšãå¯èœã§ãã
- é«éæ§: æé©åãããã³ã³ãã€ã©ã®ãããã§ãSwiftã¯éåžžã«é«éã«åäœããŸãã
- çŽæçãªææ³: Swiftã®ææ³ã¯ãèªã¿ããããæžããããããšãéèŠããŠèšèšãããŠããŸãã
ãããã®ç¹åŸŽã«ãããSwiftã¯åå¿è ããããã®éçºè ãŸã§å¹ åºãå©çšãããŠããŸãã
1.3. Swiftã®äººæ°ãšæ¡çšç¶æ³
Swiftã®æ¡çšç¶æ³ã¯ãè¿å¹Žæ¥éã«æ¡å€§ããŠããŸããç¹ã«iOSãmacOSã®ã¢ããªéçºã«ãããŠã¯ãããã¡ã¯ãã¹ã¿ã³ããŒããšããŠäœçœ®ã¥ããããŠããŸãããŸãããµãŒããŒãµã€ããä»ã®ãã©ãããã©ãŒã ã§ã®å©çšãå¢ããŠããŠããããã®å¯èœæ§ã¯ç¡é倧ã§ããããã«ãSwiftã¯ãªãŒãã³ãœãŒã¹ãšããŠå ¬éãããŠãããããã³ãã¥ããã£ã®åã§æ¥ã é²åãç¶ããŠããŸãããããã®ç¹ãããSwiftã¯ä»åŸãå€ãã®éçºè ã«æ¯æãããããšã§ãããã
2. Swiftã®åºæ¬æ§é
Swiftã¯ããã®çŽæçãªææ³ã匷åãªæ©èœã«ãããå€ãã®éçºè ããæ¯æãåããŠããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®åºæ¬çãªæ§é ãææ³ãå€æ°ãå®æ°ã®æ±ããããã«ã¯åºæ¬çãªæŒç®åã®äœ¿ãæ¹ãªã©ãæ確ã«è§£èª¬ããŸãã
2.1. ææ³ã®åºç€
Swiftã®ææ³ã¯ãä»ã®ããã°ã©ãã³ã°èšèªãšæ¯èŒããŠãéåžžã«ã·ã³ãã«ã§çŽæçã§ããäŸãã°ãé¢æ°ãå®çŸ©ããéã¯func
ããŒã¯ãŒãã䜿çšããæ¡ä»¶åå²ã«ã¯if
ãswitch
ãçšããŸããããã«ãSwiftã¯print()
é¢æ°ã䜿ã£ãŠç°¡åã«ã³ã³ãœãŒã«ã«åºåããããšãã§ããŸãã
2.2. å€æ°ãå®æ°ãããã³ããŒã¿å
Swiftã§ã¯ãå€æ°ã宣èšããéã«ã¯var
ããŒã¯ãŒãããå®æ°ã宣èšããéã«ã¯let
ããŒã¯ãŒãã䜿çšããŸããSwiftã¯åæšè«æ©èœãæã£ãŠãããå€ãã®å Žåãæ瀺çã«ããŒã¿åãæå®ããå¿
èŠã¯ãããŸãããããããæ瀺çã«åãæå®ããããšãå¯èœã§ãäŸãã°æŽæ°ãæ±ãInt
ãæååãæ±ãString
ãªã©ãå€æ§ãªããŒã¿åãå©çšã§ããŸãã
2.3. åºæ¬çãªæŒç®åãšãã®äœ¿çšäŸ
Swiftã«ã¯ãç®è¡æŒç®åãæ¯èŒæŒç®åãè«çæŒç®åãªã©ãå€ãã®åºæ¬çãªæŒç®åãåãã£ãŠããŸããäŸãã°ã+
ã-
ã¯å ç®ãæžç®ãè¡ãã==
ã!=
ã¯å€ã®çãããéçãããæ¯èŒããŸãããããã®æŒç®åãçµã¿åãããããšã§ãæ§ã
ãªæ¡ä»¶ãèšç®ãããã°ã©ã å
ã§å®çŸããããšãã§ããŸãã
3. Swiftã§ã®ããã°ã©ãã³ã°ã®åºæ¬
SwiftãåŠã¶äžã§ãåºæ¬çãªããã°ã©ãã³ã°ã®æŠå¿µãææ¡ããããšã¯äžå¯æ¬ ã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãå¶åŸ¡æ§é ããé¢æ°ãã¯ããŒãžã£ããšã©ãŒåŠçããããŠãªãã·ã§ãã«ãŸã§ã®åºç€ã解説ããŸãã
3.1. å¶åŸ¡æ§é ïŒæ¡ä»¶åå²ãšã«ãŒã
ããã°ã©ãã³ã°ã«ãããŠãæ¡ä»¶ã«å¿ããŠç°ãªãåäœããããæ¡ä»¶åå²ããç¹å®ã®åäœãç¹°ãè¿ãè¡ãã«ãŒãã¯åºæ¬äžã®åºæ¬ã§ããSwiftã§ã¯ãif
, else
, switch
ã䜿çšããŠæ¡ä»¶åå²ãè¡šçŸããfor-in
ãwhile
ã䜿çšããŠã«ãŒããå®çŸããŸããããã«ãããããŸããŸãªã·ãã¥ãšãŒã·ã§ã³ã§ã®åäœãæè»ã«ã³ã³ãããŒã«ããããšãã§ããŸãã
3.2. é¢æ°ãšã¯ããŒãžã£
é¢æ°ã¯ç¹å®ã®åäœãèšç®ãäžãŸãšãŸãã«ãããã®ã§ãSwiftã§ã¯func
ããŒã¯ãŒãã䜿çšããŠå®çŸ©ããŸãããŸããã¯ããŒãžã£ã¯ç¡åã®é¢æ°ã®ãããªãã®ã§ãå€æ°ãšããŠä¿æããããé¢æ°ã®åŒæ°ãšããŠæž¡ãããšãã§ãã匷åãªæ©èœã§ããã¯ããŒãžã£ã®æ倧ã®ç¹åŸŽã¯ããã®å®çŸ©ãããç°å¢ã®å€æ°ãå®æ°ããã£ããã£ããåŸãã䜿çšããããšãã§ããç¹ã§ãã
3.3. ãšã©ãŒåŠçãšãªãã·ã§ãã«
Swiftã«ããããšã©ãŒåŠçã¯ãæ³å®å€ã®åé¡ãçºçããå Žåã«é©åã«å¯Ÿå¿ããããã®ä»çµã¿ã§ããå
·äœçã«ã¯ãthrow
ã䜿çšããŠãšã©ãŒãæããdo-catch
ã§ãããææããŸããäžæ¹ããªãã·ã§ãã«ã¯ãå€ãååšãããããããªãããŸãã¯ååšããªããããããªãç¶æ
ãè¡šçŸããããã®ç¹å¥ãªããŒã¿åã§ãããªãã·ã§ãã«ã®äžèº«ãå®å
šã«åãåºãããã®æ¹æ³ãšããŠãif let
ãguard let
ããããŠ?
ã!
ãšãã£ããªãã·ã§ãã«ãã§ã€ãã³ã°ã匷å¶ã¢ã³ã©ãããå©çšãããŸãã
4. Swiftã®å®çšäŸ
Swiftã¯å€æ§ãªçšéã§äœ¿çšãããçŸä»£çãªããã°ã©ãã³ã°èšèªã§ããããã§ã¯ãSwiftãã©ã®ããã«å®éã®éçºã§æŽ»çšãããŠããã®ããäž»èŠãª3ã€ã®å®çšäŸã«çŠç¹ãåœãŠãŠè§£èª¬ããŸãã
4.1. iOSã¢ããªã±ãŒã·ã§ã³éçº
Swiftã®ãã£ãšãäžè¬çãªå©çšã·ãŒã³ã¯iOSã¢ããªã±ãŒã·ã§ã³ã®éçºã§ããiPhoneãiPadã§äœ¿çšãããã¢ããªã¯ãSwiftãäžå¿ã«éçºãããããšãå€ããAppleã®å ¬åŒéçºç°å¢ã§ããXcodeãšçµã¿åãããããšã§ãå¹ççã«é«å質ãªã¢ããªãçã¿åºãããšãã§ããŸãããŸããSwiftã®é«ãããã©ãŒãã³ã¹ãšå®å šæ§ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžã«å€§ããè²¢ç®ããŠããŸãã
4.2. macOSã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³
Swiftã¯iOSã ãã§ãªããmacOSã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã䜿ãããŸããMacã®ã¢ããªã±ãŒã·ã§ã³ã¹ãã¢ã«ã¯ãSwiftã§éçºãããæ°å€ãã®ã¢ããªãç»å ŽããŠããŸããããã«ãããMacãŠãŒã¶ãŒãSwiftã®ãã¯ãã«ãªç¹æ§ãååã«äº«åã§ããã¢ããªã䜿çšããããšãã§ããŸãã
4.3. ãµãŒããŒãµã€ãSwift
è¿å¹Žã®ãã¬ã³ããšããŠããµãŒããŒãµã€ãSwiftã®æ¡çšãå¢ããŠããŸãããããã¯ãWebãµãŒããŒãAPIã®ããã¯ãšã³ããšããŠSwiftã䜿çšããããšãæããŸããSwiftã®é«éæ§ãå®å šæ§ã掻ãããå¹ççãªãµãŒããŒåŠçãå®çŸããããã«å€ãã®äŒæ¥ãæ¡çšãæ€èšããŠããŸããç¹ã«ãiOSã¢ããªãšã®é£æºãèããå Žåãåãèšèªã§ããSwiftããµãŒããŒãµã€ãã«ãæ¡çšããããšã§ãéçºã®äžè²«æ§ãå¹çãåäžããŸãã
5. Swiftã®å¿çš
Swiftã¯ãã®åºæ¬çãªç¹æ§ã ãã§ãªããé«åºŠãªããã°ã©ãã³ã°ææ³ãææ°ã®æè¡ãšãçµã¿åãããŠäœ¿çšããããšãã§ããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®å¿çšçãªåŽé¢ã«çŠç¹ãåœãŠããã®å¯èœæ§ãããã«æ¢ãããšã«ããŸãã
5.1. ãããã³ã«æåããã°ã©ãã³ã°
ãããã³ã«æåããã°ã©ãã³ã°ã¯ãSwiftã®ç¹æã®ã¢ãããŒãã®äžã€ã§ãããªããžã§ã¯ãæåããã°ã©ãã³ã°ãé¢æ°åããã°ã©ãã³ã°ãšã¯ç°ãªããã®ã¢ãããŒãã¯ãåå©çšãæ¡åŒµæ§ãé«ããããã«ãããã³ã«ãäžå¿ã«èšèšãè¡ããŸããããã«ãããããæè»ã§ä¿å®æ§ã®é«ãã³ãŒããå®çŸããããšãã§ããŸãã
5.2. å€éšã©ã€ãã©ãªãšã®é£æº
Swiftã§éçºãè¡ãéãå€éšã©ã€ãã©ãªã掻çšããããšã§ãå¹ççã«é«æ©èœãªã¢ããªã±ãŒã·ã§ã³ãäœæããããšãå¯èœã§ããSwiftã®ããã±ãŒãžç®¡çããŒã«ã§ããSwift Package Managerãçšããã°ãããŸããŸãªã©ã€ãã©ãªãç°¡åã«ãããžã§ã¯ãã«çµã¿èŸŒãããšãã§ããŸããããã«ãããç¹å®ã®æ©èœãè¿ éã«å®è£ ããããã®ãµããŒããåããããšãã§ããŸãã
5.3. SwiftUIãšã®çµã¿åãã
SwiftUIã¯ãAppleãæäŸããæ°ããUIãã¬ãŒã ã¯ãŒã¯ã§ãSwiftãšã®çµã¿åããã§äœ¿çšãããŸãããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšãããšãã·ã³ãã«ãªã³ãŒãã§çŸããUIãæã£ãã¢ããªãéçºããããšãå¯èœã«ãªããŸãããŸããmacOSãiOSãwatchOSãªã©ãè€æ°ã®ãã©ãããã©ãŒã ã«å¯Ÿå¿ããã¢ããªã±ãŒã·ã§ã³ãäžã€ã®ã³ãŒãããŒã¹ã§éçºããããšãã§ããã®ã§ãéçºã®å¹çåãå³ãããŸãã
6. Swiftã®åŠç¿ãªãœãŒã¹
ããã°ã©ãã³ã°ã®åŠç¿ã¯ã質ã®è¯ããªãœãŒã¹ãšå®è·µã®ç¹°ãè¿ãã§ããSwiftãäŸå€ã§ã¯ãããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãSwiftã®åŠç¿ããµããŒãããããã®æ§ã ãªãªãœãŒã¹ã玹ä»ããŸãã
6.1. ããããã®æžç±ãšãŠã§ããµã€ã
æžç±ã¯æ·±ãç¥èãåŸãã®ã«éåžžã«åœ¹ç«ã¡ãŸããç¹ã«ããSwiftå ¬åŒããã¥ã¡ã³ããããSwiftããã°ã©ãã³ã°å®è·µå ¥éãã¯åå¿è ããäžçŽè åãã®å 容ãè©°ãŸã£ãŠãããåºæ¬ããå¿çšãŸã§ãã£ããåŠã¶ããšãã§ããŸãããŸãããŠã§ããµã€ããšããŠã¯ãAppleå ¬åŒã®SwiftããŒãžããStack Overflowã®Swiftã¿ã°ã®ããŒãžãªã©ãæçã§ãããããã®ãµã€ãã¯æ¥ã ã®çåã課é¡ã解決ããã®ã«åœ¹ç«ã¡ãŸãã
6.2. å®è·µçãªãããžã§ã¯ãã®ã¢ã€ãã£ã¢
åŠç¿ãå éãããããã®æè¯ã®æ¹æ³ã¯ãå®éã®ãããžã§ã¯ããæãããããšã§ããäŸãã°ãç°¡åãªToDoãªã¹ãã¢ããªã倩æ°äºå ±ã¢ããªãèšç®æ©ã¢ããªãªã©ãSwiftã§éçºããããšã§ãå®éã®éçºã®æµãã課é¡ãäœéšããããšãã§ããŸãããããã®å°ããªãããžã§ã¯ããéããŠãSwiftã®æ©èœãã©ã€ãã©ãªã®äœ¿ãæ¹ãåŠã¶ããšãã§ããŸãã
6.3. Swiftã³ãã¥ããã£ãšãµããŒã
Swiftã¯äžçäžã§åºã䜿çšãããŠããèšèªã§ãããè±å¯ãªã³ãã¥ããã£ãååšããŸããå ¬åŒãã©ãŒã©ã ããã£ã¹ã«ãã·ã§ã³ã°ã«ãŒãã¯ãåŠç¿äžã®çåã解決ããããæ°ããã¢ã€ãã£ã¢ãåŸãã®ã«éåžžã«åœ¹ç«ã¡ãŸãããŸããå€ãã®éœåžã«ã¯SwiftãiOSéçºã®ããŒãã¢ãããååšããå®éã«ä»ã®éçºè ãšäº€æµããããšãã§ããŸãã
7. ãŸãšã
ãã®èšäºãéããŠãSwiftã®åºç€ããå¿çšãããã«ã¯åŠç¿ãªãœãŒã¹ã«è³ããŸã§å¹ åºã玹ä»ããŸãããæåŸã«ãSwiftã®åŒ·ã¿ã課é¡ããããŠä»åŸã®å±æããããªãåŠã³ãžã®ã¢ããã€ã¹ã«ã€ããŠè§ŠããŠãããŸãããã
7.1. Swiftã®åŒ·ã¿ãšèª²é¡
Swiftã®åŒ·ã¿ãšããŠã¯ã以äžã®ç¹ãæããããŸãã
- é«éãªå®è¡é床ãšå¹ççãªæ§èœ
- èªã¿ããããæžããããã·ã³ã¿ãã¯ã¹
- Appleã®ãšã³ã·ã¹ãã ã§ã®å¹ åºããµããŒã
- å®å šæ§ãžã®åŒ·ãåãçµã¿
äžæ¹ã課é¡ãšããŠã¯ã以äžã®ç¹ãèããããŸãã
- ä»ã®ãã©ãããã©ãŒã ãšã®äºææ§
- äžéšã®å€éšã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãšã®çµ±åã®é£ãã
7.2. Swiftã®ä»åŸã®å±æ
Swiftã¯ä»åŸãé²åãç¶ããã§ããããç¹ã«ããµãŒããŒãµã€ãSwiftããSwiftUIã®ãããªæ°ããæè¡ã®æ¡çšãé²ãããšã§ããããªãçºå±ãæåŸ ãããŸãããŸãããªãŒãã³ãœãŒã¹ãšããŠã®åŽé¢ã匷åãããäžçäžã®éçºè ããã®ãã£ãŒãããã¯ãã³ã³ããªãã¥ãŒã·ã§ã³ãåãå ¥ããããšã§ãããæŽç·ŽãããèšèªãšããŠæé·ããŠããã§ãããã
7.3. ç¶ç¶çãªåŠç¿ã®ã¢ããã€ã¹
æè¡ã®äžçã¯æ¥ã é²åããŠããŸãããã®ãããç¶ç¶çãªåŠç¿ãäžå¯æ¬ ã§ããæ°ããã¢ããããŒããå€æŽãè¿œããããããã«ã¯ãå ¬åŒããã¥ã¡ã³ãã®ãã§ãã¯ãã³ãã¥ããã£ãžã®åå ãæå¹ã§ãããŸããå®éã«ãããžã§ã¯ããææããããšã§ãæ°ããç¥èãæè¡ã®ç¿åŸãå éãããããšãã§ããŸãã