Misoca iOSでiOS10のサポートを終了したら実装がすこし楽になったはなし

こんにちは Misoca 開発チームの うえの です。

最近いっきに冷え込んできましたね、みなさまいかがお過ごしでしょうか?
ぼくは毎年この時期になるとすぐに風邪をひいてしまうので、加湿+足元ホットマットでなんとか乗りきっています。

さて、Misoca iOSでは、先日のアップデートで iOS10のサポートを終了 させていただきました。

今回はサポートを終了するまでの流れと、それによって実装がすこしだけ楽になったはなしを書いていきたいと思います。

iOS10のサポートを終了するきっかけ(レイアウト崩れがつらい😢)

iOSのバージョン、どこまでサポートするのか悩ましいですよね。
ぼくは新しいiOSが発表されるたびに悩んでいる気がします。

できればすべてのバージョンで使えるようにしたいけど、実装やメンテナンスのコストを考えると、なかなか厳しいのが現状です。

Misoca iOS では、iOS10には悩まされることが多く、とくに "iOS10でのみ発生するレイアウトの崩れ" に手を焼いていました。最新のiOSを使って実装 → ビジュアルリグレッションテストを流す → iOS10でレイアウトが崩れている というのがよくあるパターンで、その度にワークアラウンドのコードを書いて対応していました。

でもだんだんとつらくなってきて、ちょうど去年の今頃(2019年1月)「iOS10がリリースされてから3年ほど経過してるし、そろそろサポートの終了を検討しても良いのでは?」と考えるようになりました。

iOS10をお使いの方はどのくらいいるだろう?

サポート終了を検討する上で一番気になったことでしたが、割合としてはかなり少なく、全体の1%未満でした(Misoca iOSでは Firebase を導入していたので、簡単に調べることができました)

さらに日を追うごとに少なくなっていったため、他チームにも相談したのち、iOS10のサポートを終了することに決まりました。

サポートを終了してもしばらくは使い続けられるようにしたい

サポート終了した後、すぐにアプリが使えなくなってしまっては困りますよね。
Misocaはビジネス寄りのアプリなので、特に気をつけたい大事なポイントでした。

このときのロードッマップでは、半年後に軽減税率への対応に向けた大きめのアップデートが予定されていて、同じタイミングで古いアプリには利用制限をかける方針にもなっていました。

いまiOS10のサポートを終了してしまうと半年後に使えなくなってしまう....

これはよくないなぁということで、軽減税率対応向けのアップデートを済ませてから、iOS10のサポートを終了させていただくことにしました。

iOS10のサポートを終了したら実装がすこしだけ楽になった

iOS10のサポートを終了したことで、iOS10時代には扱えなかった機能が使えるようになりました。

せっかくなのでその中から "アセットカタログで独自の色を定義する" というのをやってみました。

使い方はとっても簡単です。

  1. Xocdeメニュー → File → New → AssetsCatalog でxcassetsファイルを追加する
  2. 追加したxcassetsファイルを開いて +ボタン → New Color Set で色を定義していくだけです

こんな感じで色を定義できます。色が実際に見れて良い感じですね!
f:id:yueno12:20200121153302p:plain

定義した色はIB(インターフェースビルダー)から使うこともできます!
f:id:yueno12:20200121144232p:plain:w240

いままでは↓のようにコードで独自の色を定義していて、@IBOutlet や @Inspectableを使ってIBと繋いでいたんですが、アセットカタログに色を定義することですべて不要になりました!

extension UIColor {
    public static let main700 = UIColor(......
}

おわりに

今回は "iOS10のサポートを終了したら実装がすこし楽になったはなし" をご紹介しました。

サポートの終了ってネガティブな印象がありますが、一方では、開発効率が上がったり、新たな価値を生み出すきっかけになったり良いこともあります。
旧バージョンをお使いの方へは、できる限り不便のないよう配慮しつつ、適切に判断していきたいですね。

以上になります!ひきつづき Misoca iOSをよろしくお願いいたします!

MisocaではiOSエンジニアを募集しています!

リモートワークもあって働きやすいですよ〜、お気軽にご応募おまちしてます!

recruit.misoca.jp