あなたのアプリ、正確な時刻を表示していますか? Kronosを用いた正確な時刻管理 by kyappamu

iOSDC Japan 2025
ルーキーズLT(5分)

あなたのアプリ、正確な時刻を表示していますか? Kronosを用いた正確な時刻管理

kyappamu kyappamu kyappamu
3

iOSアプリケーションで時刻を扱う際、Swift標準のDateオブジェクトは便利ですが、端末の時刻設定に依存するという認識されにくい特性があります。
これにより、ユーザーが意図的に、あるいは誤って端末時刻を変更した場合、アプリケーション内で取得される時刻も影響を受けてしまいます。特にサブスクリプション機能や時間制限のあるコンテンツなど、正確な時刻管理が求められる場面では、この挙動が深刻なバグや不正利用を引き起こすリスクがあります。

本セッションでは、このDateオブジェクトが抱える問題点を掘り下げ、影響を受ける具体的なユースケースを解説します。
そして、端末の時刻設定に左右されない正確な時刻を取得するための強力なライブラリ「Kronos」をご紹介します。
Kronosの基本的な使い方から、実際のアプリケーションでの実装サンプルを解説し、
Kronosを活用することで不正な時刻操作に起因するバグからアプリケーションを解き放つことを目指します。

アジェンダ

  • Swiftにおける時刻扱いの基本: Dateオブジェクトの基本的な使い方と一般的な実装パターン
  • Dateオブジェクトの落とし穴: 端末時刻設定の影響を受けるユースケース
  • Kronosの紹介: Kronosが提供する機能、NTPを利用した時刻同期の利点(NTPを利用することで、世界中の標準時間を基にした正確な時刻をアプリケーションにもたらす)
  • Kronosによる正確な時刻表示サンプル: Kronosライブラリを組み込んだ具体的なサンプルコードを用いて、正確な時刻取得と表示の実装を解説