【Swift】UTTypeとは?意味や活用シーンをわかりやすく解説!

B!

iOSやmacOSアプリでファイルの種類を識別したいときに便利なのが「UTType(Uniform Type Identifier)」です。

ファイルの読み込み・書き出し・共有・フィルタリングなど、様々な場面でファイルタイプの明示が必要になる際に使われます。

この記事では UTType の基本的な意味や使い方、具体的な使用例、注意点までわかりやすく丁寧に解説します。

UTType とは?

UTType は、Appleが定義した「ファイルやデータの種類を識別する統一的な仕組み」です。

たとえば .png.txt.mp4 など、拡張子に応じた「意味のある識別子」をプログラム内で扱えるようにしたものです。

iOS 14以降では、古い UTType のAPI(kUTType〜)の代わりに UniformTypeIdentifiers フレームワークが導入され、よりSwiftらしく記述できるようになりました。

たとえば以下のように使います:

  •  let type = UTType.png で、UTType 型の .png プロパティを取得しています
  • UTType.png は、「PNG画像(.png)」を表す統一型識別子(UTI)です
  • この type 変数は、.png のファイルタイプを表すオブジェクト(型: UTType)になります
  • "public.png" は、macOSやiOSの内部でも使われている公式の識別名で、たとえばファイルピッカーやMIMEタイプのマッピングなどに使われます

このように、画像・動画・テキスト・音声などの種類を、文字列ではなく型安全な形で扱えるのが特徴です。

具体例:PhotosPickerで画像タイプを指定する

この例では .images を指定することで、ユーザーが画像ファイルのみを選べるようになります。

.images は内部的に複数のUTType(png, jpeg, heic など)を含んだグループです。

具体例:ドキュメントのインポートで特定ファイルタイプだけ許可する

この例では .plainText(テキストファイル)と .pdf のみを許可してファイル選択UIを表示しています。

UTTypeの主な種類(よく使うもの)

UTType には多数の種類がありますが、代表的なものを以下にまとめます。

タイプ 説明
.plainText プレーンテキスト(.txt)
.pdf PDFファイル
.png PNG画像
.jpeg JPEG画像
.heic HEIC画像(iPhone標準)
.image 画像全般(png, jpeg, heic 含む)
.movie 動画ファイル全般
.audio 音声ファイル
.json JSONファイル
.spreadsheet 表計算(ExcelやNumbers)
.rtf リッチテキスト形式

これらは UTType. プレフィックス付きで記述することで、コード補完も効きやすくなっています。

UTTypeの活用シーン

UTType は以下のような場面で活躍します。

  • ファイルピッカーで選択可能なファイルの種類を制限したいとき
  • ファイル保存時に拡張子とMIMEタイプを自動的に指定したいとき
  • ユーザーの選択したファイルの種類を判定したいとき
  • SwiftUIの .fileImporter().fileExporter() の引数として使いたいとき
  • Drag & Drop などで取り扱うファイルタイプを絞りたいとき

拡張子の文字列ではなく、型安全にファイルタイプを指定できるため、ミスを減らし保守性を高めることができます。

UTType を使うときの注意点

UTType は型安全かつ柔軟にファイルの種類を扱える便利な仕組みですが、いくつかの制約や落とし穴もあります。

正しく活用するために、次の点には注意しておきましょう。

  • import UniformTypeIdentifiers を忘れずに記述する必要があります
  • iOS 14 以前では使用できません(kUTType との混在に注意)
  • .filenameExtension などで拡張子ベースに変換する場合もありますが、全てのタイプに対応しているとは限りません
  • UTType(filenameExtension:) で拡張子からUTTypeを推定できますが、非標準の拡張子は判別できないこともあります

これらを踏まえて、対象OSやファイル形式のバリエーションを意識しながら実装すると、より安定した動作が期待できます。

特に互換性や拡張性を考慮した設計が重要です。

まとめ

今回は UTType を紹介しました。

  • UTType は Apple が定義したファイル種類を表す識別子
  • SwiftUIやiOSの各種APIで、ファイルの種類を型安全に指定するのに使われる
  • 画像・テキスト・動画・PDF・JSONなど、用途に応じて豊富な種類がある
  • PhotosPickerやfileImporterなど、ファイル入出力処理で重要な役割を果たす
  • 文字列や拡張子ではなく、定義済みのUTTypeを使うことで可読性と安全性が向上する

ファイルの種類を正確に管理したい場面では、UTTypeを積極的に使うことで、より堅牢で洗練されたコードを書くことができます。

ぜひ活用してみてください!

最新の記事はこちらから