年末に「iOS 7をサポート対象外にしよう!」ということを勧めていたのですが、
この度無事に自分の関わるプロジェクトでiOS 7をサポート対象外にすることに成功しました。
無事にiOS 7を切れたのでめでたい 😄 https://t.co/KdLGDXnW6o
— shoby (@shobyshoby) 2016, 1月 25
せっかくなので、開発において何が変わったかを書いておきます。
概要
- UIAlertViewをUIAlertControllerに移行できた
- Assets Library FrameworkをPhotos Frameworkに移行できた
- UIDeviceをNSProcessInfoに移行できた
- iOS 7が未対応になったライブラリを最新版に更新できた
- 新規コードをSwiftで書くというルールができた
UIAlertViewをUIAlertControllerに移行できた
iOS 8からはdeprecatedになっていたUIAlertViewを使わなくても済むようになりました。 また、UIAlertViewとUIAlertControllerをOSによって使い分けるためのwrapperクラスを使わなくなりました。
Assets Library FrameworkをPhotos Frameworkに移行できた
iOS 9からはdeprecatedになっていたAssets Library Frameworkを使わなくても済むようになりました。 Assets Library Frameworkでは、サイムネイルとして取得できる画像のサイズがかなり小さく、写真一覧画面での表示が荒くなっていましたが、解決しました。
UIDeviceをNSProcessInfoに移行できた
[[UIDevice currentDevice] systemVersion]
を [[NSProcessInfo processInfo] operatingSystemVersion]
に移行したことで、文字列で比較したり、floatに変換してメジャーバージョンを判定する必要がなくなりました。
iOS 7が未対応になったライブラリを最新版に更新できた
具体的には、QBImagePickerとAdobeCreativeSDKです。
新規コードをSwiftで書くというルールができた
直接は関係ないですが、開発が気分的にかなり楽になったためか、新規コードはSwiftで書くというルールができました。 iOS 7を対象外にできたことで、互換性を考えたコードを書くというプレッシャーが減り、気分が晴れ晴れしています。
まとめ
iOS 7を切ることで、deprecatedになったframeworkを移行したり、OSの関係上で更新することができなかったライブラリを最新版に上げることができました。 また、直接関係はないですが、開発が気分的に楽になり、新規コードをSwiftで書くというルールもできました。
これからObjective-C製のライブラリをSwift製のライブラリに乗り換えていく予定です。