次のUIKit/Foundationには入れて欲しいもの

がちがちに決まっているiOSアプリの開発ならばオープンソースが提供するライブラリィを使う必要など殆ど無いだろう、そう思っていた時期が私にもありました。

既に使用している中から是非とも標準のライブラリィとして組み込んで欲しいなと思うものを挙げてみた。

fmdb (https://github.com/ccgus/fmdb)

SQLiteを使うならlibsqlite3.0が用意されているが、もう少し抽象度の高いライブラリィが使いたい場合に有効、というか必須。
基本的にはlibsqliteのラッパーなので、必要なことは殆ど書ける。

MBProgressHUD (https://github.com/jdg/MBProgressHUD)

処理最中であることをユーザに提示するプログレスバー、アクティブインジケーターはUIKitに用意されているが、ビュー上に乗せて使うことが前提であり、画面のオーバレイ(HUD)や、Androidで多用される(多用されるということは便利だということだ)情報を通知していくトーストが用意されていない。
MBProgressHUDはこの両方をひとつのUIクラスで使い分けることが出来る。マルチスレッドにも対応しており応用が効く。

ActionSheetPicker (https://github.com/TimCinel/ActionSheetPicker)

iOSのユーザインタフェースで一番不満なのがAndroidのようなシンプルなドロップダウンが無いことだ。モバイルSafariで使われているピッカーを使ったUIがドロップダウンに相当するのだが、それ自体はUIKitに提供されていないのだ。(あり得ないことだ)
UITableViewCellにチェックマークを付けることで選択されていることを表現することも出来るが、iPhone/iPadユーザはモバイルSafariと同じユーザインタフェースを使いたいと思うだろう。※

ActionSheetPickerは前述したモバイルSafariのピッカーと同じインタフェースを実装するものだ。

UIAlertViewを拡張したクラス

UIKit標準UIAlertViewはいわゆる「ダイアログ」を提供するUIだが、カスタマイズできる幅が非常に狭く、限られた要件の中でしか使えないと考えておいたほうが良い。これは何かのOSSでというよりも自分で比較的簡単に書けるので、自ら業務で使いやすいものを用意したほうが良いだろう。

結局iOSアプリ開発でもオープンソースを利用しないと効果の高いアプリケーションの開発は出来ないのだ。

※iOSからかなりの影響を受けていると言われている(似ているために訴訟にまでなっている)SAMSUNGの端末がこれとそっくりなUIをわざわざAndroidで提供している。