SwiftUIの使えそうなライブラリ一覧
アーキテクチャ
swift-composable-architecture(TCA)
- 最近流行りのRedux系のアーキテクチャ用のライブラリ
- SwiftUIで規模の大きいアプリを開発するのであれば、第一候補になるのでは?
上タブ
Parchment
グリッド(コレクションビュー)
QGrid
- UIKitのUICollectionViewのようなライブラリ
- グリッド形式で画面を作成することができる
- SwiftPM対応
ASCollectionView
- SwiftUIでUITableViewとUICollectionViewを拡張したようなライブラリ
- 今のところグリッド形式のライブラリで一番使いやすそう
- かなり頻繁にアップデートがされている印象
WaterfallGrid
- グリッド形式で表示できるライブラリ
- QGridと比べて簡単に覚えやすいイメージ
- SwiftPM、CocoaPods対応
チャート
ChartView
- SwiftUIで作成されたChartを作成することができる
- SwiftPM対応
Swift Sunburst Diagram
- 円グラフなどのリッチなUIを作成できるSwiftUIライブラリ
タブ
SSCustomTabbar
- SwiftUIで使えるUITabBarの拡張ライブラリ
- UIKitで実装してSwiftUIで使えるようにしたみたいです。
カレンダー
RKCalendar
- SwiftUI製のカレンダーライブラリです。
- UIKitのFSCalendarなどに比べるとカスタマイズ性は劣りますが、現状SwiftUIでは一番良さそう。
拡張(Extension)
SwiftUIX
- SwiftUIを使いやすく様々な拡張をしたライブラリ
- SwiftUIでサポートされてないUIKitのパーツを気軽に使いやすくしてくれる
- とりあえずSwiftUIでアプリ作ってみたい方は必須のライブラリ
- SwiftPM対応
DynamicColor
- SwiftUI版Colorの拡張ライブラリ
- とりあえず入れておけば色の設定は問題なし
- SwiftPM、CocoaPods、Carthage対応
KingfisherSwiftUI
- UIKitの有名画像キャッシュライブラリがSwiftUIにも対応しています。
import KingfisherSwiftUI
var body: some View {
KFImage(URL(string: "https://example.com/image.png")!)
}
PartialSheet
- サイズをカスタマイズできるモーダルシートをモディファイアとして提供
YourView
.partialSheet(
presented: Binding<Bool>,
backgroundColor: Color = Color.white,
handlerBarColor: Color = Color.gray,
enableCover: Bool = true,
coverColor: Color = Color.black.opacity(0.4),
view: @escaping () -> SheetContent) -> some View where SheetContent : View
ウォークスルー
ConcentricOnboarding
- ボタンタップ形式のウォークスルー画面を作成することができる
- SwiftUIでは数少ないウォークスルーライブラリ
- CocoaPodsとCarthageのみ対応
UIKit関連(SwiftUIにないものをUIKitでサポート)
Keyboard Observing
- キーボードを監視してくれる軽量ライブラリ
SwiftUIRefresh
- SwiftUIでPull To Refreshを実現してくれる軽量ライブラリ
- SwiftPM対応
テスト
ViewInspector
- SwiftUIビューを単体テストするためのライブラリ
func testVStackOfTexts() throws {
let view = VStack {
Text("1")
Text("2")
Text("3")
}
let values = try view.inspect().map { try $0.text().string() }
XCTAssertEqual(values, ["1", "2", "3"])
}
サンプルコード・サンプルアプリ
SwiftUI-Cheat-Sheet
- 最新のSwiftUIのコードの書き方をREADME.mdに書いてくれている
- SwiftUIだとどうやって書けばいいんだっけ?ってなった時に便利
まとめ
-
2019年に発表されたSwiftUIだが、まだまだ発展途上でバグなども多い。
-
まだまだ、公開されている数が少ないためこまめに探し出しおすすめライブラリを更新する予定。
-
みなさんもおすすめライブラリが有ればどんどんコメントお願いします!!!
-
WWDC2020が開催された直後にSwiftUIの記事を新たに書こうと思います。
追記
記事を書いてから2年ほど経ちましたが、現在のSwiftUIは昔と比べてかなり進化しています。
ここで紹介したライブラリを使わなくてもpureで実装出来てしまいます(Pull to refreshなど)
少しずつ更新して行く予定です...
10/24
追加
- swift-composable-architecture(TCA)
- Parchment
- SwiftUI-Cheat-Sheet