Quantumleap
1360 words
7 minutes
iOSアプリ開発で導入すべきライブラリまとめ

ライブラリまとめ#

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

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

Web 系#

BetterSafariView#

ライセンスSwift Package Manager
MIT対応

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

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

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

Alamofire#

ライセンスSwift Package Manager
MIT対応

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

SwiftyJSON#

ライセンスSwift Package Manager
MIT対応

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

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

CombinExpectations#

ライセンスSwift Package Manager
MIT対応

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

UI 系#

SwiftUIX#

ライセンスSwift Package Manager
MIT対応

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

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

FontAwesomeSwiftUI#

ライセンスSwift Package Manager
MIT対応

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

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

PopupView#

ライセンスSwift Package Manager
MIT対応

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

SwiftUICharts#

ライセンスSwift Package Manager
MIT対応

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

SlideOverCard#

ライセンスSwift Package Manager
MIT対応

PartialSheet#

ライセンスSwift Package Manager
MIT対応

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

SwiftUIRefresh#

ライセンスSwift Package Manager
MIT対応

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

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

画像系#

URLImage#

ライセンスSwift Package Manager
MIT対応

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

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

Kingfisher#

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

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

その他#

RealmSwift#

ライセンスSwift Package Manager
MIT対応

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

KeychainAccess#

ライセンスSwift Package Manager
MIT対応

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

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

SwiftyStoreKit#

ライセンスSwift Package Manager
MIT対応

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

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

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

SwiftUI-Introspect#

ライセンスSwift Package Manager
MIT対応

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

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

PermissionsSwiftUI#

ライセンスSwift Package Manager
MIT対応

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

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

記事は以上。

iOSアプリ開発で導入すべきライブラリまとめ
https://fuwari.vercel.app/posts/2021/08/swiftlibraries/
Author
tkgling
Published at
2021-08-23