1. Swiftとは
まずは、Swiftの概要とSwiftで何ができるのかについて紹介します。
Swiftとは何か
Swiftは、Apple社が2014年に発表したプログラミング言語です。
これまで、Apple製品のアプリケーション開発には「Objective-C」という言語が使われていましたが、Swiftが登場したことによって、よりモダンでスクリプト言語のように簡単にアプリ開発ができるようになりました。
また、Objective-Cは独特な構文や特徴を持っていたことから、プログラミング初心者には手が付けにくい言語でしたが、Swiftはシンプルな構文で動作するように設計されているため、初心者でも学びやすいのが魅力です。
Swiftでできること
Mac・iPhone・iPad・Apple Watch といった、Apple製品のアプリケーション開発ができます。また最近では、WebアプリケーションやWebサーバーも作れるようになり、使える幅が大きく広がりました。
一般的に、WebアプリケーションはRubyやPHP、Javaで作られることが多いですが、Webサーバーも作ることができるSwiftは、通信が発生するアプリを開発する場合に非常に有用な言語です。
2. Swiftの開発環境について
Swiftでアプリを開発する際に必要となる開発環境の準備から、実際にプログラムを実行するまでの手順を解説します。
アプリ開発をするために必要なもの
アプリ開発から動作確認までの流れは、以下の通りです。
統合開発環境である「Xcode」をインストール(MacOSが必要)
↓
Xcodeを使用してプログラムを書く
↓
シミュレータで動作を確認する
MacOSのPC
比較的最近発売されたMacOSのパソコンを用意しましょう。
Swiftはソースコードが公開されているため、WindowsやLinux環境でも実行させることはできます。しかし、動作が安定しないことやインストール自体が複雑なためおすすめしません。
AppleID
iPhoneを所有している方は、すでにAppleIDがあるかと思いますが、開発用としてもう一つ作成しておきましょう。
Appleの公式サイトから作成することができます。(※)
※参考:Appleサポート「新しいApple IDの作成方法」
Xcode
XcodeはApple社が開発しているソフトウェアで、Apple製品向けのアプリを開発するには必須です。
ファイルの管理・コンパイル・ビルド・実機検証・デバッグなど、アプリ開発に必要な一連の流れをサポートしているIDE(統合開発環境)です。
インストールは以下のリンクからできます。(※)
※参考:Apple Store「Xcode」
初めてのプログラム実行
開発に必要な準備ができたところで、プロジェクトを作成するところからストーリーボードを使用してプログラム実行までを試してみましょう。
Xcodeを開き新規プロジェクトを作成する
Xcodeを起動できたら、上記ウィンドウが表示されます。
「Create a new Xcode project」を選択しましょう。
プロジェクト作成画面から「iOS > App」を選択する
「iOS」>「App」を選択し、「Next」をクリックします。
「Project Name」と「Organaization Identifier」を入力する
Product Name
これから作成するプロジェクトの名前です。アプリの場合はアプリ名の初期値にもなります。
Organaization Identifier
開発したアプリをApp Storeにリリースする場合に重要な設定項目です。今回は練習用のプロジェクトのため任意の値でOKです。
例)com.自分の名前
以上2つを入力したら、他はデフォルトのまま「Next」をクリックします。
保存先ディレクトリを選択する
このプロジェクトを保存するフォルダ選択画面が表示されるため、任意の保存先のディレクトリを選択します。
好きなiPhoneの「エミュレータ」を選択する
Xcodeは、アプリの動作確認時に実機がなくても動作を確認することができる「シミュレータ」が用意されています。
プロジェクトが作成できたら、一番初めに動作確認を行いたいiPhoneの種類を選びましょう。
1. 左側から「Main.storyboard」を開きます。
2. 上記画像の赤枠の箇所をクリックし、動作確認を行いたいiPhoneの種類を選択します。(2箇所)
2箇所ありますが、この時にそれぞれで違うiPhoneを選択していると、シミュレータがうまく動作しないので、必ず同じiPhoneを選択するようにしましょう。
ラベルとボタンを配置する
アプリを実装する準備が整ったところで、まずはUI(ユーザーインターフェース)の実装を行っていきましょう。
「Main.storyboard」を開いた状態で、右上にある「+」ボタンをクリックすると、UIの実装に必要なパーツが選択できるようになります。
今回は、ボタンをタップするとLabelに「HelloWorld」を表示するアプリを実装しますので、必要なパーツは「Label」と「Button」です。
Labelを選択した状態で、ドラックアンドドロップでUI画面にパーツを設置します。
同じようにButtonも設置します。
プログラムを記述する準備をする
UIパーツの設置が完了したところで、各パーツの初期設定をプログラムで実装していきましょう。まずは、プログラムを書く場所を用意します。
1. キーボードの「option」キーを押しながら、画面右上のアイコンを選択します。
2. メニューが表示されたら、「Assistant」を選択します。
すると、「Main.storyboard」と連携する「View.Controller」が表示されます。うまく表示されない場合は、左のサイドバーから「ViewController.swift」を選択してください。
ここに、UI画面に設置したパーツの初期設定を記述することでUIに反映されます。
ViewControllerとUIパーツを繋げる
プログラムでUIパーツの文字を編集したり、処理を書いたりするには、ViewControllerにUIパーツを認識させる必要があります。
1. Main.storyboardのLabelパーツを選択状態にし、キーボードの「control」キーを押しながら、右のViewControllerへドラッグ&ドロップする。
2. 吹き出しが表示されたら、上記のような設定で「Connect」をクリックする。
すると、以下のコードが自動で挿入されます。
@IBOutlet weak var helloWorldLabel: UILabel!
次に、「Buttonをタップした時」というアクションをViewControllerに認識させます。
1. Main.storyboardのButtonパーツを選択状態にし、キーボードの「control」キーを押しながら、右のViewControllerへドラッグ&ドロップする。
2. 吹き出しが表示されたら、上記のような設定で「Connect」をクリックする。
すると、以下のコードが自動で挿入されます。
@IBAction func tapButton(_ sender: UIButton) {
}
これで、ViewControllerはUI画面にある「helloWorldLabel」パーツを認識し、Buttonを押した時の処理を実装することができるようになりました。
Hello Worldを表示するプログラムを書く
全てのパーツとアクションの準備ができたところで、「Buttonを押した時に、helloWorldLabelの文字をHello,Worldにする」処理を書いていきましょう。
以下のコードを追加してください。
@IBAction func tapButton(_ sender: UIButton) {
helloWorldLabel.text = "Hello,World"
}
実行し、シミュレータで動作確認を行う
画面左上の「▷」アイコンをクリックすると、シミュレータが起動し、iPhoneの画面に「Label」と「Button」が表示されます。
そして「Button」をタップすると、Labelが「Hello,World」の文言で表示されました。
表示されない場合は、一旦Xcode自体を再起動してみましょう。
3. 覚えておきたい用語
Swiftを学習する上で特に重要な用語について紹介します。
標準ライブラリ
標準ライブラリとは、最初から用意されているライブラリのことで、プログラムを記述する上で必要な基本機能を提供しています。
数値や文字列などの基本的なデータ型、辞書や配列などのデータ構造体、printやabsなどのグローバル関数などが標準ライブラリに含まれます。
コアライブラリ
コアライブラリは、ファイル操作や非同期処理などの、標準ライブラリと比較してより高度な機能を提供するライブラリです。
主なコアライブラリには、ほぼ全てのアプリケーションで必要とされる機能を提供する「Foundation」、マルチコアハードウェアでの同時コード実行をサポートする「Libdispatch」、ユニットテストのために一般的なフレームワークを提供する「XCTest」があります。
ライブラリ管理システム
ライブラリの管理システムとは、アプリケーションを開発する際に利用したいライブラリを自動的にプロジェクトに追加してくれるシステムのことです。
Swiftのライブラリ管理システムには、「CocoaPods」や「Carhage」などがあります。
CocoaPodsはとても人気が高く、設定が簡単で使いやすいライブラリ管理システムです。
Carthageは、CocoaPodsよりもシンプルな構成になっており、柔軟性にすぐれているのが特徴です。
ViewDidLoadメソッド
ViewDidLoadメソッドは、プロジェクトを作成した際に最初から作成されているメソッドです。アプリ起動時に自動的に呼び出され、アプリの初期表示設定の処理を記述することができます。
SwiftUI
SwiftUIは、Apple社が2019年に発表した新しい開発フレームワークです。SwiftUIが発表されるまではStoryboardを使用して開発するのが一般的でしたが、Storyboardよりも記述がシンプルでより簡単にUIを作成することができるのがSwiftUIです。
また、従来のソースコード開発の場合、動作や画面の確認をするために毎度ビルドし、シミュレータを起動する必要がありました。SwiftUIでは、ソースコードを変更するとリアルタイムでプレビューが確認できるため、開発にかかる時間を大幅に削減することができます。
BuildとRun
作成したアプリを動かすためには、BuildとRunという動作が必要です。
Buildとは、作成したソースコードから実際に動くプログラムを作り出す作業です。ソースコードにバグがないかを解析・検証し、バグがなければ実行できる形式のファイルに変換して作り出します。
Runとは、実際にプログラムをコンピューター上で実行することです。Runには走るという意味があり、プログラムが動くことを業界では走ると表現します。
4. Swiftの基本的な構文と文法
ここでは、Swiftを学習する上で必須となるSwiftの基本構文について解説します。
変数の定義と代入
Swiftでは変数の宣言時に、varを使用します。
//var 変数名:型
//String型の変数nameに値「Tanaka」を代入する
var name: String
name = “Tanaka”
//一行で定義と代入を行う
var name: String = “Tanaka”
型変換
Swiftは型に厳格な言語で、Int型の値をDouble型の変数に入れたい場合は型変換を行う必要があります。
//IntからDouble
//11→11.0
var intNum: Int = 11
var doubleNum: Double = Double(intNum)
Intから文字列型(String)に変換する場合も同様です。
//IntからString
//11→”11”
var intNum: Int = 11
var str: String = String(intNum)
//StringからInt
//”11”→11
var str: String = “11”
var intNum: Int = str.toInt()!
クラスの定義
クラスは設計図となるもので、メソッドや変数などの要素を含みます。
クラスの定義は以下です。
class クラス名{
変数の宣言や処理…
}
クラス名は「CarClass」のように、一般的に最初の1文字と単語間の区切りの文字を大文字にして記述します。(アッパーキャメル)
条件分岐
条件分岐処理は、他のプログラミング言語と同様にif文で表現することができます。
if文は「もし〜ならば〜」という処理を記述する構文です。
条件式の値が真(true)である場合に処理を行い、条件式の値が偽(false)である場合はelse内の処理を行います。
var age: Int = 20
//もし20未満ならば”未成年”と出力
//それ以外ならば”大人”と出力
if age < 20 {
print(“未成年”)
} else {
print(“成人”)
}
繰り返し処理
同じことを何度も繰り返し行う処理を記述する場合は、while文、repeat-while文、for文を使用します。
Swiftに限らず、繰り返し処理を用いたい場合は必ず出てきますので、覚えておきましょう。
for文は「開始値」「終了値」「繰り返し時の処理」を記述し、継続条件が偽になるまで処理を繰り返します。ループする回数が決まっている時は、for文を使用することが多いです。
for i in 1..<10 {
print(“i: \(i)回目です”)
}
//結果
//i: 1回目です
//i: 2回目です
//i: 3回目です
//i: 4回目です
//i: 5回目です
//i: 6回目です
//i: 7回目です
//i: 8回目です
//i: 9回目です
//i: 10回目です
while文は、指定したループ条件を満たしている間は繰り返します。
ループする回数が未定の時は、while文を使用することが多いです。条件が適切でない場合は、無限にループ処理を繰り返してしまうため注意しましょう。
var i: Int = 0
while i < 5 {
print(i)
i += 1
}
//結果
//0
//1
//2
//3
//4
//5
repeat-while文は、while文とは違い、必ず一回は処理を行い、その後に条件判定をします。
repeat {
print(“処理を実行しました”)
} while false
//結果
//処理を実行しました
5. 学生・初学者におすすめのSwift学習方法
学生や初心者におすすめの、Swift学習方法について紹介します。
【公式】チュートリアル
Appleの公式サイトでは、Swift入門向けのチュートリアル(※)が公開されています。Swiftを使用していく上で必ず必要となる実践内容ですので、まずは利用してみることをおすすめします。このレッスンでは、食事追跡アプリの開発を行う構成になっており、チュートリアルながら実践的な開発を体験することができます。
なお、公式サイトは全て英語で書かれているので、GoogleChromeのブラウザを利用し日本語に翻訳しながら進めることをおすすめします。
※参考:Apple「Start Developing iOS Apps (Swift)」
【公式】開発ガイド
Swiftの開発ガイド(※)もAppleが公式に公開しています。
今後、Apple製品向けのアプリを開発しリリースする場合は、Apple社の審査に通過する必要があります。そのため、公式のドキュメントを熟読しておくことは非常に有用です。
この開発ガイドでは、Swiftの最新バージョンに対応した基礎構文の書き方などが開設されています。バージョンが変わった時には必ずチェックしておきましょう。
※参考:Apple「the swift programming language swift 5.4」
逆引きが便利!「Swift Docs」
アプリ開発をする上で欲しいと思った機能について、逆引きで学習することができるSwiftの入門サイト(※)です。
※参考:「Swift Docs」
スクールに通う
初めてプログラミング言語を学習する場合、独学ではハードルが高く、疑問点を解決できないまま挫折してしまう可能性もあります。独学での学習に少しでも不安を感じる方は、プログラミングスクールを検討してみましょう。分からないところはすぐに質問でき、プロの講師によるサポートで学習を進められるため、早く確実にスキルが身に付きます。
6. まとめ
Swiftは、Apple社が2014年に開発したプログラミング言語です。比較的新しい言語であるため先駆者が少ないことと、Apple製品の普及率とともに需要も向上すると言われているため、学生時代から学習しておくと役に立つといえるでしょう。初学者は、まずは開発環境についてやSwiftで開発を始める前に知っておきたい文言や文法などの基礎知識を学習するところからスタートしましょう。
ITエンジニアを目指す新卒学生向け就活エージェントならレバテックルーキー
レバテックルーキーは、レバテックが運営するITエンジニア専門の就活エージェントです。多数のITエンジニアのキャリア支援経験のあるアドバイザーが、あなたのスキルと希望に合わせた企業の紹介から、人事目線での面接対策など、就職までを一貫してサポートします。ES添削、面接対策、ポートフォリオ作成サポートなども実施していますので、まずは一度カウンセリングにお越しください。
就活アドバイザーに相談してみる