はじめに
こんにちは!弊社@cosmeのAndroidアプリ開発をしている永井です。
早いもので新卒でアイスタイルに入社して3年目になりました。
Googleさんから2018年11月までにtarget API Level(以下、APIとする)27以上にしないと、Google Playにて新規リリースができなくなります
と発表されたのがつい先日のように感じます。
昨年に引き続き今年も2019年11月までにAPI28以上にしてくださいという旨が2019年2月21日のブログで発表されました。
今後も毎年同じような発表がされるでしょう。
本項ではAPIのバージョンアップが毎年必須になった結果、弊社のアプリ開発チームとしての良かった・悪かったについてご紹介したいと思います。
良かったこと
古いバージョンでは使えない機能が使えるようになった
あたり前ですがバージョンアップをすることで、今まで使えなかったAPIの機能を使えることができるようになりました。
直近ではAPI28への対応を進めていますが、これによりノッチディスプレイ端末への対応ができるようになりました。
実装工数やテスト工数をしっかり取れるようになった
個人的には、これが一番良かったことだと思っています。
これまで弊社では、公開している推奨環境に記載されるまでは積極的に最近のバージョンへ対応させることをしていませんでした。
バージョンアップの際にはGradleやgoogle play serviceなど、アプリ内で使用しているライブラリのバージョンも同時にアップデートが必要なことがあります。
これにより、今まで何もなかった箇所でバグが発生する可能性があったからです。
また、数年前は新規開発に力を入れている最中でしたので、十分なテストをする時間を確保することも難しかったため、積極的にバージョンアップをしていませんでした。
現在でも新規開発には力を入れていますが、リリースできなくなる
という理由から、ディレクターに相談する際に実装工数やテスト工数を確保しやすくなりました。
影響範囲が大きいリファクタリングをリリースするタイミングができた
@cosmeアプリは開発方針としてサービスプラットフォームを目指しています。
そのため、他社のキューレションサービスやコスメのクチコミサイトと比べるとアプリ規模は比較的大きいです。
アプリ規模が大きいと使用箇所が多い画像系や通信系のライブラリはアップデート時の影響範囲が広いため、テスト工数が膨らみアップデートしづらいです。
同様の理由からpngをwebpにするといったリソース系のリファクタリングも普段はやめてしまいます。
しかし、APIをバージョンアップする時はアプリ全体を通してテストするため、影響範囲が大きいリファクタリングも同時にテスト項目に含められるため、リリースするチャンスができました。
API Levelでどんな機能が増えたり変化したか認識できるようになった
これはそのままですが、API Levelを上げる際に動きが大きく変わっていることがあります。
また、「最近の端末って○○できるよね!」見たいな話があった時にも、いつ導入されたのか認識できるようになりました。
どこどこに改修を入れたから不具合があった時に怪しいとか、あの機能ってOSバージョンいくつから使えるんだっけ?といった質問にチーム全員が答えられるようになりました!
悪かったこと
仕様変更や新しい機能への対応で新規機能開発の時間を割くことに
APIの仕様変更への対応やライブラリのアップデートによって、思わぬバグが発生することがあります。
そのためAPIのバージョンアップは、多少なりと工数が発生します。
しかし、バージョンアップによる修正工数は、必ずしも新規機能の有用性と釣り合うとは限りません。
それでもサービスとして提供したい新規機能開発に割く時間を削らないといけないため辛いところでもあります。
さいごに
APIのバージョンアップをしていくことは、セキュリティ向上や新機能の提供といったユーザーへのメリットだけでなく、エンジニアにとってもメリットが多々あるはずで良いことだと思っています!
弊社では幅広い分野で仲間を募集しています!
興味のある方は是非ご連絡ください!
詳細はこちら