engineers_blogこんにちは、エンジニアの杉本です。3月最終週、ついにiOS10.3が登場しました!マイナーアップデートながら、レビューの返信ができるようになったりアイコン切り替えができるようになったりとかなり大きなアップデートとなりました。今日は今回のアップデートで使えるようになったアイコン変更機能について書いてみたいと思います。アイコン変更機能についてアイコン変更はiOS10.3から使えるようになった機能です。下画像のようにアプリアイコンを変更する事ができます。実装手順この機能の実装手順は下の通りです。事前にアイコン名をInfo.plistに登録しておき、setAlternateIconNameメソッドでそのアイコン名を指定する事でアイコンを変更できます。アイコンをプロジェクトに追加Info.plistにアイコン名を登録アイコン変更メソッドを呼び出す事前のアイコン名の登録が必要なため、アプリ内で動的生成したUIImageなどは利用する事ができません。アイコン数については、上限を調べようと思って200個ほど登録したところ無事に動かす事ができました。かなりの数のアイコンを登録する事ができるようです。アイコンの追加まずはアイコンの登録をします。デフォルトアイコンはAssets.xcassetsに登録します。次に、代替アイコン(AlternateIcon1@2x.pngとAlternateIcon2@2x.png)をプロジェクトに追加します。代替アイコンはAssets.xcassetsではうまく動かなかった為、プロジェクトに直接追加しました。次にInfo.plistにアイコン名を追加します。アイコン名は下のような形式で追加します。</dict></dict>アイコン変更メソッドを呼び出す最後にアイコン変更処理を追加します。UISegmentedControlを切り替える事でアイコン切り替えができる仕様にします。StoryboardにUIViewControllerとUISegmentedControlを設置します。対応するViewControllerにアイコン変更処理を追加して、UISegmentedControlと接続します。セグメント切り替えをすれば無事にアイコン切り替えができます。切替時に出るアラートはOS側で出しているものなので非表示にする事はできません。デフォルトアイコンに戻したい時はsetAlternateIconNameの第一引数にnilをセットします。})登録していないアイコン名をセットした場合もデフォルトアイコンに戻ります。})切替時に出るアラートですが、ViewControllerをモーダル表示している時には表示されません。モーダルの中でアイコン切り替えをする時は注意する必要がありそうです。}}バックグラウンドでのアイコン変更も試したのですが、こちらはうまくいきませんでした。実行すると下のようなエラーになります。}}最後にマネーフォワードではiOSの最新機能が大好きなエンジニアを募集しています。ご応募お待ちしています。