
開発を便利にするライブラリを効率よく探す方法
サードパーティー製ライブラリを使うために知っておくとよいこと

オープンソースライブラリ専用サイト
オープンソースを探すときは、実現したい効果(機能やエフェクト)や、既存の機能でも、より便利に使えるものはないかと目的を持って、そのキーワードで探すことがほとんだと思います。
その上で、ライセンスや最終更新日付、人気や安全面などを考慮して採用すると思います。
ライブラリのほとんどはgithubで管理されているので、Googleなどの検索サイトの検索結果から直接githubのサイトへ移動して、スクリーンショットや実際に動かしてみて判断すると思うのですが、検索結果からすぐに判断できるものではなく、一つ一つ開いてみないとならないため、検索結果の候補が多いほど大変になります。
そこで、以下のようなオープンソースを管理したサイトがあるため、ある程度お墨付きのライブラリに絞って探すことができ、安心して使用することができます。
Cocoa Controls

https://www.cocoacontrols.com/
特にUI系のコントローラーにおいて、6500件以上のiOS、iPadOS、macOS、tvOS、watchOSで使用できるオープンソースが管理されています。
このサイト内で検索すれば、検索結果の一覧にスクリーンショットが含まれるため、直感的に探すこともできます。

しかもライブラリによっては、ソースコードをダウンロード、Xcode不要で動作を確認することができるため、より効率よく探すことができます。
これはAppetize.ioでエミュレートされたものがサイトに埋め込まれているため、実際にサイト上でデモを動かすことができる仕組みになっています。

ここで公開されているライブラリは、CocoaPodでインストール可能ですので、スムーズに導入することができます。
Swift Package Registry

https://swiftpackageregistry.com/
先程のCocoaPodと同様、Swift Package Managerもサードパーティー製のライブラリを管理する仕組みとしてよく使われるようになってきました。
Appleが提供するツールであり、Xcode11以降からは、Xcodeに記述するだけで簡単に導入できるようになったため、利用者が増えそうな予感をさせます。
「Swift Package Registry」とは、そんなSwift Package Managerで使用できる4500以上ものパッケージを管理しているサイトです。
トップページから検索はもちろん、人気のライブラリと、最近追加されたライブラリが表示されるため、特に人気のライブラリは抑えておきたくなります。
Swift Package Index

https://swiftpackageindex.com/
「Swift Package Index」とは、先程の「Swift Package Registy」同様、Swift Package Managerをサポートするライブラリの検索サイトです。

このサイトの良いところは、OSやSwiftのバージョンごとにビルドに成功した環境が分かることです。
最新のバージョンとmaster(デフォルト)ブランチそれぞれで試してくれるようです。
また、Cocoa Controls同様、ライブラリによっては「Live Demo」からサイト上でデモを試すことができます。


なお、どのサイトも、自作のパッケージを登録することができます。
ライブラリを作成したら、それぞれのサイトに追加登録するのがよいでしょう。
オープンソースライブラリ紹介アプリ
上で紹介した、「Cocoa Controls」と「Swift Package Index」の新着パッケージが閲覧できるほか、以下の記事で紹介しているライブラリをはじめとしたおすすめライブラリを紹介したアプリ「OSS Sampler」を公開しました。
https://apps.apple.com/jp/app/osssampler/id1573572734
トップ画面で、おすすめのピックアップライブラリとCocoa Controls、Swift Package Indexの新着ライブラリを一覧で見ることができます。
それに加え、Instagram、Slack、Amazon Prime Videoなどの主要なアプリで使用されている(使用されていた)ライブラリも合わせて一覧で確認できます。
カテゴリ表示と、同様のライブラリがAndroidにもあるかどうかのマークもついています。






「Cocoa Controls」と「Swift Package Index」はRSSフィードから常に最新の情報を取得します。
ピックアップは今後試しながらどんどん追加できればと思っています。
