Swiftは、iOSアプリ開発に必要な知識を勉強しようと思った時、どうしたらいいのか悩むことでしょう。Swiftの基礎知識を身につけて、iOSアプリ開発に挑戦しましょう。
今回は、Swiftについての解説と合わせて、学習するロードマップを紹介します。
Swiftとは

Swiftは、2014年にApple社がリリースしたプログラミング言語です。iPhoneアプリの基幹言語として使用されています。Swiftが登場する以前は、「Objective-C」を用いられていました。C言語のように学習コストがかかるため、プログラミング初心者には難しい傾向がありました。Objective-C のもつ「バグ」「セキュリティ」「開発」に関する問題を解決するために考えられたのがSwiftです。
Swiftの基礎は、40~60時間の学習時間が必要と考えられています。基本文法からオブジェクト指向の継承までの勉強を40時間、1日2時間勉強すると考えた結果、20日でSwiftの基礎を学べます。
Swiftが開発できるもの、言語についての特徴は次のものがあります。
Swiftの特徴
- iOSアプリなどが開発できる
- 学習コストが低い
- Objective-Cと互換性がある
- 処理速度が早い
それぞれについて解説します。
Swiftの特徴①:iOSアプリなどが開発できる
Swiftは、Apple社製品で動くアプリ(iOSアプリ)を開発できます。
主なアプリ
- iOS
- Mac
- watchOS など
iOSアプリ開発で使われる言語は、他にObjective-Cなどがあります。先述した通り、現在は、Objective-Cのネガティブなポイントを解消するべく、将来性が高くなるのがSwiftであると推測されています。
Swiftの特徴②:学習コストが低い
Swiftは学習コストが低い魅力があります。プログラミングは、高難易度から低難易度のものがあります。Swiftは言語全体でも初心者に優しい作りで、覚えることが少ないです。ソースコードはシンプルで読みやすく、バグが出にくい仕様となっています。
Swiftの特徴③:Objective-Cと互換性がある
Swiftは、Objective-Cとの互換性があるため、Objective-Cのソースコドの一部をSwiftに変更しても問題なく動作ができます。Objective-Cで動いている既存アプリをSwiftで書き直す作業がスムーズに行える特徴もあります。
Objective-CのフレームワークをSwiftでも使用でき、その他、C++やC言語との互換性もある点が特徴的です。
Swiftの特徴④:処理速度が早い
Swiftは処理速度の早さも評価されています。Objective-Cよりも2.6倍もの早さで処理をしてくれると考えられ、アプリが表示する早さなども改善されています。結果、ユーザーにとって使いやすいプログラミング言語です。
Swiftを習得するための学習ロードマップ
Swiftを習得するためのロードマップを紹介します。Swiftをどのような手順で学習すれば良いのか、効率的にiOSでアプリ開発をできるようになるのかを解説します。
ロードマップ
- WindowsではなくMacのパソコンを用意
- Xcodeをインストールする
- 書籍など基礎文法を習得する
- Appleの公式ドキュメントを読む
- 簡単なアプリを開発する
- ポートフォリオ作成する
STEP1:WindowsではなくMacのパソコンを用意

まず最初に、Macのパソコンの購入をしましょう。iOSアプリの動作チェックなどを行うためには、Mac PCが必要です。Windowsでもシュミレーターなどがありますが、シュミレーターではアプリ処理の一部がテストできません。
Macのパソコンは少し高額で、快適な開発環境を整えるためにも必要な端末です。
STEP2:Xcodeをインストールする

MacのパソコンにXcodeをインストールしましょう。XcodeはApple社が開発した統合開発環境で、iOSアプリ開発で必ず使用されます。Xcodeを使うと、より簡単にiOSアプリの開発が行えます。
Xcodeの機能
- ファイル管理機能
- コンパイル
- デバッグ機能
Xcodeをインストール後、各機能を覚える必要があります。
SwiftUI対応 たった2日でマスターできるiPhoneアプリ開発集中講座 Xcode 12/iOS 14対応
初心者も一緒にサンプルアプリを作成し、動く体験・基本の知識を身につけます。他の入門書やプログラミング文法書を読む力もつきます。「体験」すること、あとから「理解」することに重点を置いており、プログラミングの文法説明は最小限に、iPhoneアプリの作成方法や目的を構成しています。
作って楽しむプログラミング iPhoneアプリ超入門 Xcode 11 & Swift 5で学ぶはじめてのスマホアプリ作成
本書は、プログラミングが初めての人でも、簡単なゲームアプリのサンプルを作成し、iPhoneアプリの作成を楽しく体験できる入門書です。iPhoneアプリの基礎知識、アプリ作成に必要な準備、画面のデザイン、コードの書き方など、手順の解説をしてくれ理解できます。自分のペースで学習でき、最終的にはクイズアプリを作成できます。
STEP3:書籍など基礎文法を習得する
PCを揃えるなど開発環境を整えたら、Swiftの書籍を購入し文法を覚える学習をしましょう。
主な学習内容
- 入出力
- 条件分岐
- ループ
- クラス など
参考書は理解するまで何度でも読み返しましょう。理解しない限り、分からないところが増えてしまいSwiftの勉強を挫折する恐れがあります。書籍には、サンプルコードが記載されているので、実際に自分の環境で実行してみることがおススメです。また、記憶に定着されます。
コードの細部を変更し、実行結果がどう変わるのか確認をすることも大切です。最終的に自分でソースコードを書けるようになります。
本気ではじめるiPhoneアプリ作り Xcode 10.x対応 (Informatics&IDEA)
アプリ開発をしているYahooの黒帯エンジニアがアプリ開発に必要な基本を解説しています。実用なアプリ作成に必要の知識、開発現場で身につけていく手法を紹介しています。本気でアプリ作成をしたい人、アプリ開発の現場に入りたい人に必要な基本知識と手法を学べます。
親切すぎるiPhoneアプリ開発の本
オリジナルアプリを作れるほどの力がつかなかった人におすすめの書籍です。本格的なiPhoneアプリ開発に、入門書を卒業した人向けの書籍となっています。本格的なiOSアプリの開発ができるレベルの知識を丁寧に解説しています。一歩ずつ着実に力がつきます。
Swift逆引きハンドブック
主にiOSアプリの作成に利用するプログラミング言語に「Swift」の逆引きリファレンスの決定版となっています。目的からSwiftの機能を探せます。開発者に必要な一冊です。
STEP4:Appleの公式ドキュメントを読む

iOSアプリ開発に挑む前にApple社の公式ドキュメントを必ず読みましょう。アプリを開発する時、Appleの審査に合格する必要があります。そのためにも、公式ドキュメントの規約を読んで、規約違反にならないよう注意が必要です。
STEP5:簡単なアプリを開発する
簡単なiOSアプリを開発しましょう。
作成できるアプリ
- iPhoneアプリ
- OSXアプリ
- Apple Watchアプリ
- tvOSアプリ
ハード用のアプリを作成するのに適した言語となっています。大分類で考えれば上記のデバイスが考えられ、細分化すると「iPhoneゲームアプリ・SNSアプリ・ARアプリ」などがあります。
Swiftを活用しているアプリは次のようなものがあります。
活用した企業アプリ
- グノシー
- 日経電子版
- ストアカ
- アオイゼミ
- クックパッド
利用したことのあるアプリが多くあるのではないでしょうか。iPhoneアプリはSwift以外でも開発されています。Swift以外でも開発できることを覚えておいた上でSwiftでアプリ制作をしてみましょう。
開発したアプリはポートフォリオとして提出できます。iOSエンジニアとして活用できるようになるので、ぜひトライしましょう。
【iOS】SwiftUI 超入門 – Swift を基礎から学んで iOS (iPhone) アプリを開発しよう

学習内容:CoreML(機械学習)、iOSアプリの作り方、SwiftUIの基礎、Swiftの基礎、Xcodeの基礎 など
おすすめの人
- iOSアプリを作りたい方
- 初めてプログラミングを学ぶ方
- Swift / SwiftUIを学んでみたい方
- 機械学習アプリを作りたい方
プログラミング初心者向けの講座です。初歩から説明したコースになっているので、直感的に学習を進められます。実際に作ったアプリを改造し、オリジナルアプリの作成ができるようになるのでおすすめです。
みんなのiOS講座 ゼロからSwiftで学ぶiPhoneアプリ開発の基礎

学習内容:iOSアプリ開発の基礎、プログラミング言語Swiftの基礎、iOSの様々な機能の実装方法 など
おすすめの人
- iOSアプリ開発に興味があるけれど、最初のとっかかりが無い方
- オリジナルのiOSアプリを開発してみたい方
- 仕事でiOSアプリ開発に携わる必要が生じた方
- プログラミング学習の糸口が欲しい方
- アプリ開発に挫折した経験のある方
- 文系の方、非エンジニアの方にもおすすめです
誰にでも開かれたiOSアプリ開発初心者向けの講座です。Swiftを用いたiOSアプリ開発を基礎から解説するので、ベースを固めながら少しずつ学習できます。丁寧な解説があり、レクチャーの難易度がやんわりと高くなっていますが、モチベーションがあると問題なく受講できます。
STEP6:ポートフォリオ作成する
Swiftエンジニアを目指す人にとってもポートフォリオを作成することがおすすめです。今までに学習した成果(アプリ・サービス)をまとめたサイトやGithubのアカウントにソースコードをアップしたものとなります。
どれだけのものを作成できたか、どれだけのスキルを持っているかアピールする必要があるため、ポートフォリオがあると将来的にも優位になります。
ポートフォリオ①:Hello Worldアプリ
作成手順
- Xcodeを起動
- Create a new Xcode project を選択
- Single View Application を選択して Next ボタンをクリック
- プロジェクトの設定を行い Next ボタンをクリック
- とりあえずXcodeの画面左上の Build ボタンをクリック
- ViewController.swift に print(“Hello World!”) を入力
- Xcodeの画面左上の Build ボタンをクリック
- ViewController.swift に以下を入力
<!-- wp:paragraph -->
<p>let label = UILabel(frame: CGRectMake(100, 100, 200, 50))</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>label.text = "Hello Swift"</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>self.view.addSubview(label)</p>
<!-- /wp:paragraph -->
Xcodeの画面左上の Build ボタンをクリック
出力結果
<!-- wp:paragraph -->
<p>log</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>...,generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>Hello World!</p>
<!-- /wp:paragraph -->
ログ上に「Hello World!」が表示され、シュミレーターにも表示されます。(参考:Swift:初めてのHello Worldアプリ)
ポートフォリオ②:ARアプリ作成
準備:Xcodeのインストール、プロジェクトの作成、ARアプリの画面準備
準備が整ってから、早速「太陽オブジェクト」を作成するところから挑戦です。
<!-- wp:paragraph -->
<p>sample1.swift</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 球体を作成</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>let sun = SCNNode(geometry: SCNSphere(radius: 0.20)) </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 表示位置を指定</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>sun.position = SCNVector3(0, 0, -1) </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 表面を指定(写真を貼るイメージ)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>sun.geometry?.firstMaterial?.diffuse.contents = image </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// ARSCNViewに作成物を追加</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>sceneView.scene.rootNode.addChildNode(sun)</p>
<!-- /wp:paragraph -->
太陽オブジェクトを回転(自転)させます。
<!-- wp:paragraph -->
<p>sample2.swift</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 動きはSCNActionで定義</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>func doRotation(time: TimeInterval) -> SCNAction {</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p> let rotation = SCNAction.rotateBy(x: 0, y: CGFloat(Double(360) * .pi/180), z: 0, duration: time)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p> let foreverRotation = SCNAction.repeatForever(rotation)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p> return foreverRotation</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>}</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// sample1.swiftで作成したNode</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>sun.runAction(doRotation)</p>
<!-- /wp:paragraph -->
作成した太陽オブジェクトの周りを公転する水星オブジェクトを作成します。この時、自転する点も考慮して作成する必要があります。
<!-- wp:paragraph -->
<p>sample3.swift</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 公転軸</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>let revolutionAxis = SCNNode()</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 公転軸の位置を指定(太陽の中心位置と同じ)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>revolutionAxis.position = SCNVector3(0, 0, -1)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 公転動作(sample2.swiftのdoRotationと同じ)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>let revolution = doRevolution(time: rotationSpeed)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>revolutionAxis.runAction(revolution)</p>
<!-- /wp:paragraph -->
水星オブジェクト作成し、公転軸に水星オブジェクトを重ねます。
<!-- wp:paragraph -->
<p>sample4.swift</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 水星オブジェクトを作成</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>let mercury = SCNNode(geometry: SCNSphere(radius: 0.03)) </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 水星の位置を定義(太陽からの距離がx:0.3)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>mercury.position = SCNVector3(0.3, 0, 0) </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 表面を指定(写真を貼るイメージ)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>mercury.geometry?.firstMaterial?.diffuse.contents = image </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>// 公転軸に水星オブジェクトを追加</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>revolutionAxis.addChildNode(mercury)</p>
<!-- /wp:paragraph -->
結果、太陽とその周りを公転する水星オブジェクトが完成します。(参考:【入門】SwiftでARアプリ)
Swiftを勉強する上での注意点
Swiftを勉強する上で気を付けるべきポイントは以下の通りです。
注意点
- Androidアプリは開発できない
- 日本語情報は現状少なめ
注意点①:Androidアプリは開発できない
SwiftはiOSアプリを作成できますが、Androidアプリは作成できません。もし、Androidアプリを作成したい場合は、JavaかKotlinの習得が必要です。中でも、Kotlinの方が文法が簡単なので自分が何を開発したいのかを決めてから学習する言語を決めましょう。
注意点②:日本語情報は現状少なめ
Swiftは、日本企業で最近導入され始めた言語のため、日本語での情報が少ないのが現状です。アプリ開発時に、何か不明な点があった場合は、英語の情報がほとんどのため辞書を片手に調べる必要があるかもしれません。
まとめ:iOSアプリを作りたいならSwiftを習得しよう
Swiftは、iOSアプリを開発するために必要な知識です。順を追って学習することで、しっかりと身につくスキルなので興味がある人は、開発環境を整えてからトライしてみましょう。
Swiftの学習を進めて、Swiftエンジニアを目指すのもおすすめです。