Swift メモ

## Swiftについて
### Swift 
- Swiftは、2014年にAppleが発表したプログラミング言語です。
- 現代的なモダンなプログラム言語であり、実行速度が早いのが特徴です。 
- UI構築:StoryBoard, SwiftUI StoryBoard 
- ドラッグアンドドロップでUI部品を載せて画面を構築していきます。
- UI部品とソースコードをドラッグすることで、UI部品を参照することができます。 
- [公式サイト](https://developer.apple.com/jp/swift/)
- [公式ドキュメント](https://developer.apple.com/documentation/Swift)
- [GitHub](https://github.com/topics/swift)
- [iOSニュース](https://developer.apple.com/jp/news/)

### Objective-c 
- iOSアプリは、Objective-cで開発されていたが扱いが難しいため、使いやすく馴染 みやすい言語としてSwiftが開発されました。 
- 現在も使用することはできるが、Swiftの発展によりほとんど使用されていないので、 Swiftを使用した方が良い。 
- Swiftだとファイル生成するときは.swift ファイルだけ生成されますが、Objective-C では.h ファイル(ヘッダーファイル)と .m ファイル(実装ファイル)の2つが生成され ます。
- Objective-C は C言語を参考に作られた言語だからです。 
- マイナス(ー)記号ではじまるものは「インスタンスメソッド」です。クラスのインス タンスがあって初めて実行できるメソッドです。 
- プラス(+)記号で始まるのは「クラスメソッド」です。クラスのインスタンスを生成 せずに、クラスの型から直接実行することが可能で、クラスのインスタンスを生成して返 すメソッドなどで使用されています。 
- NSStringクラスは、Objective-Cで文字列を扱うクラスです。Swiftでは、Stringを使用する。 

## フレームワークについて
### SwiftUI 
- 2019年にAppleが発表した新しいフレームワークで、Xcode11から使用可能になっ た。 
- Storyboardよりもコードがシンプルで、画面作りがより簡単にできる。 
- シミュレーターを立ち上げる必要がなく、プレビューだけで動作を確認できる。(シミュレーターも従来通り使用可能)
- [公式サイト](https://developer.apple.com/jp/xcode/swiftui/)
- [公式ドキュメント](https://developer.apple.com/documentation/swiftui)
- [GitHub](https://github.com/topics/swiftui)

## ライブラリ管理について
### Swift Package Manager 
- Xcode11から実装された公式のライブラリ管理マネージャである。 
### CocoaPods
- SwiftおよびObjective-C Cocoaプロジェクトの依存関係マネージャーです。
- ライブラリを取り込んだ時は「.xcodeproj」ではなく、新しく作成された 「.xcworkspace」を開かなくてはならないです。
- [公式サイト](https://cocoapods.org/)
- [参考サイト](https://qiita.com/rockname/items/bbe73a001568f0f5e801) 

## 開発ツールについて
### Xcode
- Xcodeは、Appleが2003年にリリースしたソフトウェアです。 
- MacやiPhone、iPadアプリを制作する際には必要不可欠な開発ツールです。
- 2020年9月16日にXcode12がリリースされた。
- XcodeのPlaygroundを使用してSwiftの練習をすることが可能
- Xcode12からPlaygroundの場所が変更されたのでリンクを参照 
- [公式ドキュメント](https://developer.apple.com/documentation/)

### Cocoa Touch Class 
- iOSアプリ開発で使用するアプリケーションフレームワーク。
- [参考サイト](https://code-schools.com/cocoa-touch-class-or-swift-file/)

### XIBファイル
- XIBとは、XML Interface Builderの略で、部品の構造をXMLで記述したものをいう。
- [参考サイト](https://hajihaji-lemon.com/swift/xib/)
- [参考サイト](https://qiita.com/hiromasa-fun/items/d4d115a63939246ff3cc)

### CoraData
- Core Dataはデータベースを利用できるようにするフレームワークです。 
- Core Dataを用いることによって, データの永続化が可能になり, アプリにはなくてはな らないものです。
- [参考サイト](https://questict.net/swift017/)
- [参考サイト](https://capibara1969.com/3178/)
- [参考サイト](https://tomato-develop.com/swiftui-basic-how-to-use-coredata-crud/)

### WidgetKit
- iOS14.0から追加された機能
- [公式サイト](https://developer.apple.com/jp/widgets/)
- [参考サイト](https://engineer.dena.com/posts/2020.11/ios-widgetkit-tutorial/)

### SFシンボル2 
- Xcodeで使用できるAppleのフォント機能である。
- [公式サイト](https://developer.apple.com/sf-symbols/)

### App Extension
- [公式サイト](https://developer.apple.com/jp/app-extensions/)
- [公式サイト](https://developer.apple.com/documentation/xcodekit/creating_a_source_editor_extension)

### Xcode ファイル開けない場合の解決方法
- [参考](https://rougo-fukugyo.com/archives/2892)

### ipaインストール手順
- [参考](https://tools4hack.santalab.me/howto-xcode-and-iosappsigner-ipa-signed-install-without-impactor.html)

### ARKitについて
- Apple社が開発したiOSに対応したARフレームワークです。
- [公式サイト](https://developer.apple.com/jp/augmented-reality/arkit/)
- [参考サイト](https://techpartner.jp/blog/arkit2019#:~:text=ARKit%E3%81%A7%E7%89%B9%E7%AD%86%E3%81%99%E3%81%B9%E3%81%8D,%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E7%82%B9%E3%81%A7%E3%81%99%E3%80%82&text=%E7%8F%BE%E6%99%82%E7%82%B9%E3%81%A7Apple%E3%81%AF%E4%B8%96%E7%95%8C,AR%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%BC%E3%81%A7%E3%81%99%E3%80%82 )
- [参考サイト](https://medium.com/@sakirsaiyed29/ar-apple-vs-google-61ae0fc67bb1)