0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

`import Foundation` とは?Swift初心者向け記事

Last updated at Posted at 2025-03-31

Swiftで開発しているとよく見かけるについて import Foundationについて調べました。
初心者の方はぜひ参考にしてください。

意味

import Foundation「Foundationフレームワーク(ライブラリ)を使えるようにする」 という意味です。

Swiftには便利な機能がたくさん含まれている標準ライブラリがいくつかあります。その中で Foundation は、日付やファイル操作、JSON、データ形式変換など、日常的に必要になる機能を提供しています。


Foundationで使える主な機能

機能名 説明
Date / Calendar 日付・時間の取得や操作
UUID 一意なIDの生成
Codable / JSONEncoder / JSONDecoder JSONデータのエンコード・デコード
FileManager ファイルの保存・読み込み
URL URLの生成や処理
Data バイナリデータの扱い

例1:UUIDの生成

import Foundation

let id = UUID()
print(id)

UUID() を使うためには Foundation のインポートが必要です。


例2:JSONのエンコード(Codable)

import Foundation

struct User: Codable {
    var name: String
    var age: Int
}

let user = User(name: "太郎", age: 25)
let data = try JSONEncoder().encode(user)

JSONへの変換処理は Foundation の機能に含まれています。


要はこんな時に使う

次のようなことをしたいときには Foundation が必要です。

  • データの保存や読み込み(FileManager)
  • JSONとのやり取り(Codable)
  • UUIDなどの識別子生成
  • 日時の処理

import SwiftUIを書けば十分?

以下内容は、@nak435 さんに教えて頂きました。ありがとうございます。

import SwiftUI@_exported import Foundation という形で Foundation を読み込んでいます。これは「SwiftUIをインポートしたときに、その内部で使っているFoundationも一緒に見えるようにする」という意味になります。

つまり import SwiftUI をすると、間接的に Foundation もインポートされていることになり、明示的な import Foundation を書かなくても、UUIDDateFormatter などが使えるというわけです。

ちなみに、ChatGPTさんにも意見を伺ったところ、このような見解でした。

  • 明示的にFoundationの機能を使うと分かっている場合は import Foundation を書いたほうが可読性が上がる
  • 他のフレームワーク(UIKitなど)だけを使う場合は Foundation を明示的にインポートする必要がある
  • SwiftUI以外では Foundation は自動でインポートされないため、依存関係が分かりづらくなることを防ぐためにも書いておくのが安全

まとめ

  • import Foundation は便利な基本機能を使うためのおまじない
  • JSON、ファイル、日時などを扱うなら必須
  • SwiftUIと一緒に使うなら書かなくてもいい。【可読性のため、書くのはアリ】

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?