ライブラリまとめ

何らかのアプリをつくろうとしたとき、自分で全部の仕組みを作るのは大変ですし車輪の再発明になりがちです。

なので、既に公開されている便利なライブラリ・フレームワークがあるならそれを利用するべきです。

価格

Web 系

BetterSafariView (opens new window)

ライセンス Swift Package Manager
MIT 対応

アプリ内ブラウザを実装しようと考えているならまずこれを利用しましょう。

アプリ内ブラウザだけでなく WebAuthenticationSession を利用した認証にも対応しているので URLScheme を利用した OAuth もこれだけで対応できます。

Info.plistに URLScheme とか設定する手間も省けるので、是非導入を検討してみてください。

Alamofire (opens new window)

ライセンス Swift Package Manager
MIT 対応

HTTP/HTTPS 通信の大御所ライブラリです。非同期通信に対応しており、ネットワークから何かをダウンロードしたい・アップロードしたいという場合にはこれを使えばほとんどすべてが解決します。

SwiftyJSON (opens new window)

ライセンス Swift Package Manager
MIT 対応

Alamofire で取得した JSON データはそのままでは Data 型なのですがそれを JSON 型に一発で変換することができる便利なライブラリです。

ただし、キー名指定などが面倒であれば Codable 準拠の構造体を定義して SwiftyJSON を使わずに変換してしまったほうが確実と言えます。

CombinExpectations (opens new window)

ライセンス Swift Package Manager
MIT 対応

Combine を利用したコードはそのままではテストをパスしてしまうので、これを使って取得したデータが正しいかどうかをチェックできます。

UI 系

SwiftUIX (opens new window)

ライセンス Swift Package Manager
MIT 対応

UIKit では実装されているが、SwiftUI ではまだ足りていない部分などを補うためのライブラリです。

死ぬほど便利なので絶対入れること。

FontAwesomeSwiftUI (opens new window)

ライセンス Swift Package Manager
MIT 対応

FontAwesome5 のアイコンを SwiftUI から手軽に利用できるようにするためのライブラリです。

Apple 謹製のSF Symbols (opens new window)を使うことが多いので、こちらのライブラリは使ったことがないのですが FontAwesome にしかないようなフォントを使いたい場合には良いかと思います。

PopupView (opens new window)

ライセンス Swift Package Manager
MIT 対応

toast, float, defaultの三種類のポップアップを表示させることができるライブラリです。

SwiftUICharts (opens new window)

ライセンス Swift Package Manager
MIT 対応

Charts (opens new window)の SwiftUI 版みたいなライブラリです。Charts は SwiftUI に対応していないので SwiftUICharts は便利といえば便利なのですが、見た目がちょっと微妙な気がします。

SlideOverCard (opens new window)

ライセンス Swift Package Manager
MIT 対応

PartialSheet (opens new window)

ライセンス Swift Package Manager
MIT 対応

SwiftUI はデフォルトでは ModalWindow のサイズを変更できないのですが、自由なサイズの ModalWindow を表示するためのライブラリです。

SwiftUIRefresh (opens new window)

ライセンス Swift Package Manager
MIT 対応

pullToRefreshの機能を SwiftUI の View に対して実装してくれるがバグも多い。

最後にアップデートされたのが一年以上前なのでどうしても今すぐpullToRefreshが使いたい場合以外は利用しないほうが良い。後述するSwiftUI-Introspectを使って実装するか、Fork して自力でアップデートするのが良いかと。

画像系

URLImage (opens new window)

ライセンス Swift Package Manager
MIT 対応

SwiftUI の View は URL を指定するイニシャライザがないので URL 上の画像を利用するためのライブラリです。

バージョンアップされてやや使い方がわかりにくくなりましたが、今でもこれを利用しています。

Kingfisher (opens new window)

調べていたらこちらも見つかったのでご紹介。

使ったことはないのですが、こちらの方がより直感的に使えそうな気はします。

その他

RealmSwift (opens new window)

ライセンス Swift Package Manager
MIT 対応

iOS でアプリ開発をしてデータベースを利用するならこれを使うのが一番です。他に選択肢はないです。

KeychainAccess (opens new window)

ライセンス Swift Package Manager
MIT 対応

Keychain にアクセスするのはめんどくさいのですが、これを利用すればものすごく簡単に Keychain が扱えます。

セキュアなデータは UserDefaults やデータベースではなく Keychain に保存するようにしましょう。

SwiftyStoreKit (opens new window)

ライセンス Swift Package Manager
MIT 対応

In-app Purchase を実装するならまずこれを利用するのを検討しましょう。

SwiftUI でアクセスするとバグかなんかなのかやたらと反応が悪い時があるのですが、よくわかりません。

SwiftUI で課金処理をする際に StoreKit へのアクセス部分を書くのがとてつもなくめんどくさいのでこれを導入しておくと楽だと思います。

SwiftUI-Introspect (opens new window)

ライセンス Swift Package Manager
MIT 対応

一部の SwiftUI コンポーネントが UIKit との互換性があることを利用して、クロージャからそれらのプロパティにアクセスすることができるようにするライブラリです。

これを使えば大体なんでもできます。

PermissionsSwiftUI (opens new window)

ライセンス Swift Package Manager
MIT 対応

iOS では現在アプリに対して 12 の権限が与えられているのですが、それらを許可するか拒否するかのダイアログをパッと出してくれるライブラリです。

まだ使ったことはないのですが、カメラやマイクの権限を必要とするアプリを開発した際には使ってみたいなと考えています。

記事は以上。

価格