カテゴリ: Swift 更新日: 2025/12/28

Swiftでカメラと写真ライブラリを使う方法!UIImagePickerController入門

Swift カメラ・写真ライブラリの使い方|UIImagePickerController入門
Swift カメラ・写真ライブラリの使い方|UIImagePickerController入門

先生と生徒の会話形式で理解しよう

生徒

「先生、iPhoneアプリでカメラを使ったり、アルバムから写真を選んだりする機能を作れますか?」

先生

「はい、SwiftではUIImagePickerControllerという仕組みを使えば簡単に実装できます。これはカメラや写真ライブラリを扱うための便利なクラスです。」

生徒

「難しい設定とかが必要なんですか?」

先生

「基本的な使い方を覚えれば大丈夫です。順番に解説していきましょう!」

1. UIImagePickerControllerとは?

1. UIImagePickerControllerとは?
1. UIImagePickerControllerとは?

UIImagePickerControllerは、iOSに標準で用意されている写真や動画を扱うための仕組みです。これを使うと、アプリの中でカメラを起動したり、ユーザーの写真ライブラリから画像を選んでもらうことができます。

例えば、プロフィール画像を登録するアプリや、写真編集アプリ、日記アプリなど、さまざまな場面で利用されています。

2. カメラと写真ライブラリの違い

2. カメラと写真ライブラリの違い
2. カメラと写真ライブラリの違い

カメラと写真ライブラリは役割が違います。カメラは「今から撮影する」ために使う機能で、写真ライブラリは「すでに保存されている写真や動画」を取り出すために使います。

  • カメラ:ユーザーがその場で写真や動画を撮影してアプリに取り込む。
  • 写真ライブラリ:iPhoneに保存されている既存の写真や動画を選ぶ。

この二つを選択肢として出せるので、アプリの用途に合わせて柔軟に使い分けられます。

3. 基本的なコード例

3. 基本的なコード例
3. 基本的なコード例

ここでは、ボタンを押したときに写真ライブラリを開いて、選んだ写真を表示する簡単な例を見てみましょう。


import UIKit

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var imageView: UIImageView!

    // 写真ライブラリを開く処理
    @IBAction func selectPhoto(_ sender: Any) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = .photoLibrary
        present(picker, animated: true, completion: nil)
    }

    // 写真を選んだときの処理
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let image = info[.originalImage] as? UIImage {
            imageView.image = image
        }
        dismiss(animated: true, completion: nil)
    }
}

このコードを使うと、ボタンを押すと写真ライブラリが開き、選んだ写真がUIImageViewに表示されます。

4. カメラを使う場合のコード

4. カメラを使う場合のコード
4. カメラを使う場合のコード

写真ライブラリではなくカメラを使うときは、sourceType.cameraに変更します。ただし、シミュレーター(Mac上で動かすテスト環境)ではカメラは使えないので、実機(iPhoneやiPad)で試してください。


@IBAction func takePhoto(_ sender: Any) {
    if UIImagePickerController.isSourceTypeAvailable(.camera) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = .camera
        present(picker, animated: true, completion: nil)
    }
}

このコードで、ボタンを押すとカメラが起動し、その場で撮った写真をアプリに取り込めます。

5. 権限設定が必要

5. 権限設定が必要
5. 権限設定が必要

カメラや写真ライブラリを使うには、ユーザーからの権限(パーミッション)が必要です。権限とは「このアプリがカメラを使っていいですか?」と確認することです。これをしないとアプリはクラッシュしてしまいます。

権限を設定するには、XcodeのInfo.plistに以下を追加します。


<key>NSCameraUsageDescription</key>
<string>カメラを使います</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>写真ライブラリにアクセスします</string>

この設定をしておくと、アプリを起動したときに「このアプリがカメラを使おうとしています」といった確認ダイアログが表示されます。

6. 写真編集や動画の扱い

6. 写真編集や動画の扱い
6. 写真編集や動画の扱い

UIImagePickerControllerは写真だけでなく動画の撮影や選択にも対応しています。また、編集を有効にすると写真を切り抜いたりトリミングしたりすることも可能です。

  • 動画の撮影:mediaTypeskUTTypeMovieを指定。
  • 編集機能:allowsEditing = trueを設定。

これにより、アプリの目的に合わせて柔軟に機能を追加できます。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

7. UIImagePickerControllerの使いどころ

7. UIImagePickerControllerの使いどころ
7. UIImagePickerControllerの使いどころ

この仕組みはさまざまなアプリで利用されています。例えば:

  • プロフィール画像を登録するSNSアプリ。
  • 日常を記録する日記アプリ。
  • 撮影した写真を加工するカメラアプリ。

初心者の方でも基本を押さえれば、自分のアプリに「写真を扱う機能」を簡単に追加できるようになります。

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Swift
Swiftのnilとは?Optionalとの関係や初期化について初心者向けにやさしく解説!
New2
Go言語
Go言語のinit関数の役割と使い方!プログラム起動時の初期化処理
New3
Go言語
Go言語のマップの順序保証がない理由と扱い方の工夫をやさしく解説!初心者でもわかる基本知識
New4
Kotlin
Kotlinのforループの基本!範囲・配列・コレクションの繰り返し処理
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Kotlinのsettings.gradleファイルを完全解説!初心者でもわかるプロジェクト設定の基本
No.2
Java&Spring記事人気No2
Go言語
Swiftの配列(Array)の使い方を完全ガイド!初心者でもわかるデータのまとめ方
No.3
Java&Spring記事人気No3
Swift
Swiftの高階関数map・filter・reduceを完全解説!初心者でもわかる配列操作の基本
No.4
Java&Spring記事人気No4
Go言語
Swiftの文字列操作を完全ガイド!初心者でもわかるStringの基本
No.5
Java&Spring記事人気No5
Go言語
Go言語のSQLインジェクション対策を完全解説!初心者でも安全なデータベース操作がわかる
No.6
Java&Spring記事人気No6
Go言語
Go言語のgo installコマンドの役割とインストール先の仕組みを徹底解説!
No.7
Java&Spring記事人気No7
Kotlin
KotlinのRoomで複雑なクエリを使いこなす!初心者でもわかる応用テクニック
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方