SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ミニアプリを作って楽しく学ぶSwift

【作って学ぶSwiftアプリ開発入門】SF Symbolsを活用して「福笑いゲーム」を作ろう!

ミニアプリを作って楽しく学ぶSwift入門 第7回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Swiftは、Appleが開発したプログラミング言語でiPhoneやiPad、MacやApple Watch、最近ではApple Vision ProなどさまざまなApple製品向けのアプリ開発に使われています。この連載では、面白いミニアプリを作りながらSwiftでのアプリ開発を学んでいきます。今回は、 SF Symbolsを活用して「福笑いゲーム」を作ります。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 前回は、「カップラーメンタイマー」アプリを作りました。使い心地はいかがでしょうか?「こんな機能があればもっと便利!」という声があれば、それを追加してみるのもいいかもしれません。自分好みにカスタマイズできるのは、アプリ開発の大きな楽しみのひとつです。ぜひ新しいアイデアにも挑戦してみてください。

 アプリ作成の第4弾は「福笑いゲーム」を作ります。福笑いとは、主にお正月に遊ばれる日本の伝統的なゲームで、目隠しをした状態で顔のパーツを台紙に配置し、完成したユーモラスな顔を見て笑い合いながら楽しむ遊びです。

 今回はこの福笑いゲームをアプリ上で楽しめるように作っていきましょう。

開発環境

 この連載では、次の環境を使用しています。

  • macOS Sequoia 15.1
  • Xcode 16.1

プロジェクトを立ち上げる

 今回も前回と同じように作ったプロジェクトの中に新規ファイルを作成して進めていきます。それでは、Xcodeからプロジェクトを開いて、アプリ作りを進めていきましょう。

アプリ 「福笑いゲーム」ファイルを新規作成する

 福笑いゲーム用にコードを記述するためのファイルを新規作成します。前回と同様に新規ファイル作成手順でLuckyLaughView.swiftファイルを追加します。

 今回は特に最初のコードの書き換えは不要です。最終的にナビゲーションエリアも含め、次のようになっていれば問題ありません。

SF Symbolsを理解する

 SF Symbolsとは、Appleが無料で提供するアイコンセットで、アプリで使用できる標準的なデザイン要素です。

 開発者は、Appleの標準アプリが使用しているシンボルを同じように使用することができ、シンボルの種類はSF Symbols 6時点では6000以上のシンボルがあり、さまざまなケースに合わせてシンボルを選び、使い分けることが可能です。

シンボルを探す

 SF Symbolsの各シンボルは、SF Symbolsアプリからも探すことはできますが、今回は第1回で紹介したXcodeのツールバーにあるライブラリパネルから探していきます。

  1. Xcodeの上部ツールバーの①ライブラリボタンを押す
  2. 表示された②ライブラリパネルの③マークを押す
  3. 使用できるSF Symbolsのシンボルが表示されます

 よくダウンロードする際に使用されている見覚えのあるシンボルが確認できます。

 シンボルを探すには、④検索欄にテキストを入力すると結果を絞り込むことができます。このシンボルを使用する時は、⑥Availabilityに対応OSが記載されており、その記載OS未満のバージョンでは対象のシンボルは使用できないため、注意が必要です。

 今回はこのgamecontrollerのシンボルを使用するため、gamecontrollerをドラッグ してLuckyLaughView.swiftの変数body内にドロップします。

 以下のようなコードになれば問題ありません。

struct LuckyLaughView: View {
    var body: some View {
        Text("Hello, World!")
        Image(systemName: "gamecontroller")
    }
}

 また、Text("Hello, World!")は不要なので削除します。最終的に以下のようなコードになり、プレビューにもgamecontrollerが表示されていれば問題ありません。

struct LuckyLaughView: View {
    var body: some View {
        Image(systemName: "gamecontroller")
    }
}

 今回はライブラリパネル上からドラッグ&ドロップしてシンボルを追加しましたが、もし使用したいSF Symbolsのシンボル名が分かっている場合は、systemNameに使用したいシンボル名を記述するだけで使用することができます。

Image(systemName: 使用したいシンボル名)

TabViewを理解する

 今回は福笑いのルール画面と、実際にゲームをプレイするゲーム画面の二つの画面を作成します。そのため、アプリ内で画面を切り替える機能が必要になります。この切り替えには、SwiftUIが提供するTabViewというUIコンポーネントを使用します。

 まずは以下のようにコードを書き換えます。

struct LuckyLaughView: View {
    var body: some View {
        TabView {
            // タブのラベル
            Tab("ゲーム", systemImage: "gamecontroller") {
                // タブ切り替え時に表示するView
                Text("ゲーム画面")
            }
        }
    }
}

 タブで複数のViewを切り替えるためには、TabViewの中に表示したいViewのコンテンツを持ったTabを記述する必要があります。

 まず、Tab"ゲーム", systemImage: "gamecontroller"の部分が、タブに表示されるラベルになります。そして、{}内にタブ切り替え時に表示したいViewを設定します。今回は、プレビューにゲーム画面と表示されています。

タブを切り替える

 まだ、タブで切り替える動作ができないのはTabView内にTabが1つしかないからです。Tabを追加するためには、以下のコードのようにTabView内に追加します。

struct LuckyLaughView: View {
    var body: some View {
        TabView {
            Tab("ゲーム", systemImage: "gamecontroller") {
                Text("ゲーム画面")
            }
            
            // ここを追加↓
            Tab("ルール", systemImage: "questionmark.circle") {
                Text("ルール説明画面")
            }
        }
    }
}

 これでタブのラベルを押すことで、それぞれの画面を表示することができます。

 あとはそれぞれの画面を作成するだけです。

次のページ
フォルダーを作成する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ミニアプリを作って楽しく学ぶSwift連載記事一覧

もっと読む

この記事の著者

リルオッサ(リルオッサ)

 ブレイクダンサー、時々iOSエンジニア。元ブレイクダンス世界2位。 現在は、楽しいことを追い求め、iOSアプリを作ったり、ビールを飲んだり、絵を書いたり、技術記事を書いたり、海外登壇チャレンジしたり、ブレイクダンスの大会を企画したりしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/20804 2025/05/08 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング