asken テックブログ

askenエンジニアが日々どんなことに取り組み、どんな「学び」を得ているか、よもやま話も織り交ぜつつ綴っていきます。 皆さまにも一緒に学びを楽しんでいただけたら幸いです!

iOS 16 Lock Screen Widget 初日対応までの道のり

国内版あすけんのiOS app担当の @sato-shinです。

ついにiOS 16の正式版が公開されましたね!WWDC 2022のkeynoteで、ロックスクリーンのアップデートはiOS 16の目玉機能として発表されていました。

利用習慣化が課題のあすけんにとって、iOS16のLock Screen Wdigetは相性がよいと感じました。「いち早く対応して価値を届けたい!」と思い、弊社ではLock Screen Widgetの初日対応をゴールに設定しました。 そして無事にiOS 16のリリース初日から利用できるようになりました。

この記事では、あすけんのiOS 16の初日対応でどのようなことを行ったかを説明します。

初日対応について

iOS 16が公開される前日までに、AppStore ConnectへLock Screen Widget対応版のアプリを配布しておく必要があります。
ここでは私たちが実施した内容や注意点などをお話します。

Xcode betaでビルドができることを確認する

当たり前ですが、Xcode betaでビルドできることが必須となります。 Xcode betaが更新されたら、すぐにビルドができるかどうかチェックします。

Xcode beta 1などは、不安定なことも多く、知見も少ないためビルドできるようになるまでかなりの時間を要する場合があります。よくあるのが依存ライブラリ側の対応が必要であることです。
また、その後のbeta 2, 3などではすんなりビルドがうまくいく場合も多々あります。 こればっかりはbetaという特性上、仕方ありません。

機能開発にどのくらいの期間が必要か?を意識しながら、初期のbetaでは、いったん諦めるということも必要になります。

ちなみに今回のXcode 14 betaで実施した内容はこんな感じです。

  • 初期(6月)のXcode beta
    • 自分達のプロジェクトのビルドができるかどうか、エラーやワーニングはどの程度発生するかの確認。深追いしない
    • 新機能はどのように作れるか?どのようなAPIがあるか?の調査の方に力を入れる
  • 中期(7月)のXcode beta
    • 自分達のプロジェクトのビルドができるところまで持っていく
      • 依存ライブラリを書き換えたり、開発を進めるために一時的に排除する必要も出てきます
    • 依存ライブラリの動向を確認し、リスクがあるかを知る
  • 後期(8月)のXcode beta
    • 新機能開発および、既存機能のバグチェック
  • Xcode RC
    • AppStore Connectへリリースパッケージのアップロード!
    • 最終動作チェック

また、見つけた不具合などはAppleへどんどんフィードバックしていきましょう!そのためのbetaです。

機能開発の苦労

今回の機能開発における苦労の大半は、Xcode betaで開発を進行させることができるかどうかでした。

あすけんでは、すでにホーム画面のWidget機能をリリース済みで、Lock Screen Widgetでできることはとても限られています。 ですので、ホーム画面のWidgetを少し拡張するだけで、機能開発のコーディング自体はスムーズに完了しました。 すでにWidgetがある場合には簡単ですので、とりあえず対応してみるのがオススメです。

Lock Screen Widget Home Screen Widget

CI/CDサーバーで配布することは諦める

弊社ではBitriseを用いてCI/CDを実現しています。

AppStore Connnectへのリリースパッケージの生成にはRC版(以前はGM版)で実行する必要があります。 Bitriseの新しいXcodeへの対応は早いと言えど、今回の初日対応に間に合うかどうかは分かりません。 ですので、基本的にはローカルにXcode RC版をダウンロードし、AppStore Connnectへのアップロード作業をすることをオススメします。

fastlaneでAppStore Connectへアップロードができない

こちらは初日対応というよりも、Xcode 14特有の問題です。 弊社ではAppStoren Connectへのリリースパッケージの生成とアップロードにはfastlaneを利用しています。 Xcode 14からiTMSTransporterが同梱されなくなったことで、fastlaneでAppStore Connectへアップロードが失敗する現象に遭遇しました。

とにかくリリースパッケージをAppStore Connectへアップロードすることが最優先ですので、 早々にfastlaneで配布することは諦め、Xcodeでアーカイブし、AppStore Connnectに提出するという作業をすべて手動で実施しました。 手作業でのリリース作業が久しぶりすぎてちょっと怖かったのは内緒です。

参考:https://zenn.dev/freddi/articles/fd8e88fb151231

Appleへ機能を推す

初日対応をしたところで、ユーザーがその機能を知らなければ意味がありません。 AppStoreでフィーチャーされることは、その機能にとっても、プロダクトにとってもとても有用です。

AppStoreでフィーチャーされるには、Appleの中の人に知ってもらう必要があります。 あすけんでは事前にAppleへアップデート予定を共有し、運よくフィーチャーいただくことができました🎉

「AppStoreでのフィーチャー」という窓口ページが用意されていますので、ぜひ確認してみてください。
https://developer.apple.com/jp/app-store/getting-featured/

さいごに

「ウィジェット自体を知らない」という人も多く、まだまだ利用者数は多くありません。 便利な機能が活用されないのは勿体ないので、次のステップとして利用促進施策に取り組んでいこうと思います。

OSの新機能にも積極的に取り組んでいきたい!って人、募集中です!
www.wantedly.com