アプリ開発で日付を表示する場面は多くあります。DateFormatterはDate型のデータを任意のフォーマットでString型に変換することができます。
しかし、DateFormatterはインスタンス生成コストが高く、アプリのパフォーマンスを低下させてしまうことがあります。
この問題を防ぐには、DateFormatterをキャッシュして不要な生成コストを抑えるのが効果的です。
本記事では、DateFormatterのキャッシュによるパフォーマンス改善案についてコードを元に解説します。その上で、パフォーマンスを比較し、キャッシュによる違いを整理します。併せて、iOS15から追加されたformattedを使った場合、前述の実装とどう異なるかを比較します。そして、パフォーマンスに悪影響を与えることなくアプリ内で日付を表示するには、どのような実装が最適であるかを提案します。