Swiftは、Apple社が開発したApple製品向けアプリケーション開発に使用されるプログラミング言語です。SwiftプログラミングによってC言語やC++に匹敵する迅速なパフォーマンスを発揮します。また、C言語やObjective-Cの古典的な文法を踏襲しつつ、現代的なプログラミング技術を取り入れた言語です。そのため、プログラミング初心者にとっても入門のハードルは低いでしょう。本記事では、Swiftプログラミングができるようになるために、Swiftの特徴や環境構築から簡単なプログラムの実行、基本文法とサンプルコードを紹介します。
目次
1.Swiftプログラミングとは?
Swiftは、Apple社が開発したプログラミング言語です。主に下記のOS向けのアプリケーション開発に使用されています。
iOS
macOS
Apple WatchOS
Apple tvOS
2014年に登場し、Objective-Cに代わる新しい選択肢として急速に人気を集めています。人気の理由は、シンプルで直感的な構文なことや高いパフォーマンス、安全性に優れた設計です。これらはSwiftの特徴であり、開発者にとって非常に魅力的な言語です。
Swiftで開発されたiOSアプリケーションは世界中のiPhoneユーザーに使用されます。statcounterの調査によると国内でのiOSの市場シェアは全体の約60%を占めており、Swiftを用いたiOSアプリ開発の需要はこれからも伸びていくことが想定されます。
これらのOSの他にも、Apple製品以外のアプリケーションやサーバーサイド開発にも使用されるようになっています。
2.Swiftプログラミングの特徴
Swiftは、単にApple製品向けの開発にとどまらず現代的なプログラムミング言語として、多くの開発者にとって魅力的な選択肢となっています。その主な特徴を詳しく見ていきましょう。
モダンなプログラミング言語
迅速なパフォーマンス
安全性が高い
他言語との相互性
リアルタイムの動作確認が可能
モダンなプログラミング言語
Swiftは、C言語やObjective-Cの古典的な構文を踏襲しつつ、現代的なプログラミング技術を取り入れたモダンな言語です。プログラミング言語において現代的とは、コードが読みやすく書きやすいということです。
またオブジェクト指向プログラミングと関数型プログラミングの要素を取り入れているため、より抽象化されたコードを書くことができ、柔軟なロジックの実装が可能になります。
仕様 | 説明 |
---|---|
型推論 | 変数や定数を宣言する際に明示的に形を指定しなくても、コンパイラが自動的に型を推測する。これによってコードがシンプルで読みやすくなり、冗長なコードの記述を避けることができる |
クロージャと高階関数 | 関数型プログラミングの機能を取り入れており、クロージャや高階関数を活用可能。 |
迅速なパフォーマンス
Swiftはその名の通り、迅速なパフォーマンスを発揮するプログラミング言語です。Swiftの公式サイトではObjective-Cよりも2.6倍、Python2.7よりも8.4倍処理が高速だといわれています。従来のObjective-Cよりも2倍以上の差があるという点が、Objective-CからSwiftへの移行が進んだ理由です。
安全性が高い
Swiftは安全性が高い言語です。Swiftは、Swiftの仕様によってバグが発生しにくく、安全性が高いプログラミング言語です。
仕様 | 説明 |
---|---|
オプショナル型 | 変数がnilになる可能性がある場合、それをオプショナル型として明示的に定義する。これによってnilの参照によるエラーを回避でき、安全なコードを実現する |
型システム | 型安全性を強化した設計となっており、型の不一致を許容しない。例えば、Int型とString型を型変換せずに加算しようとするとエラーが発生する。この仕様によってバグを防ぎ、コードの品質を向上させることが可能 |
また、Swiftはクラスのメモリ管理にARC(Automatic Reference Counting)という仕組みを利用しています。ARCによってメモリを自動的に解放してくれるため、メモリリークのリスクを減らすことができます。このような仕組みも安全性が高いといわれている理由の1つです。
他言語との相互性
SwiftはObjective-CやC言語との相互性があります。そのため、Objective-Cで開発された既存アプリの修正や機能追加をSwiftで行うことが可能です。
また、SwiftとObjective-CでAPIを共有したり、SwiftにObjective-Cフレームワークをインポートしたりできます。
通常、開発に使用している言語が古くなり他言語に切り替えるとなれば、相当な工数がかかり現実的ではありません。その中で、移行のコストをおさえられるのは開発者にとって最大のメリットでしょう。
リアルタイムの動作確認が可能
Swiftの魅力の1つがリアルタイムの動作確認が可能なことです。厳密には、Swiftの機能ではなくSwiftの統合開発環境であるXcodeのPlayground機能の恩恵です。
従来のObjective-Cでは、実際にアプリやシステムを実行しなければ動作確認ができませんでした。
一方でPlaygroundの使用によって、プログラムの途中経過の動作をリアルタイムで確認可能です。その結果、開発時間を短縮できます。1行単位で実行して結果をみられるため、プログラミング初心者にとっても嬉しい機能です。
3.Swiftプログラミング入門|環境構築から実行まで
Swiftでプログラミングを始めるには、まずは開発環境を構築する必要があります。以下は、Swiftの開発環境を構築し、簡単なプログラムを実行するための手順です。
Swiftのインストールとセットアップ
Swiftを使用するには、統合開発環境(IDE)のXcodeをインストールする必要があります。Xcodeは、iOSやmacOSアプリケーションを開発するために必須なツールで、Swiftプログラムを作成するために必要な機能が全て揃っています。
Apple IDの作成
Xcodeをインストールするためには、Apple IDが必要です。Apple公式サイトで開発用のApple IDを作成しましょう。
Xcodeのインストール
Mac App StoreからXcodeをダウンロードします。ダウンロードが終われば、Apple IDとパスワードを入力してインストールに進みます。
Xcodeの初期設定
インストール完了後、Xcodeを起動すると必要な追加コンポーネントをインストールするよう求められます。指示に従いながらインストールを完了させましょう。
Swift入門のためのプログラム
次に、Swiftの基本的なプログラムを作成してみましょう。入門編として「Hello, World!」を表示するプログラムを紹介します。
import UIKit
|
このサンプルコードは、コンソールに「Hello, World!」を表示するシンプルなプログラムです。
4.Swiftの基本文法
Swiftの文法は直感的でシンプルなため、初めてプログラミングを学ぶ人でも理解しやすい構造をしています。以下では、Swiftの基本的な文法について解説します。
出力
変数と定数
データ型
配列
制御構文(if)
関数とメソッド
出力
print関数を実行すると、出力ができます。以下のサンプルコードは「テキスト」という文字列が出力されます。
print("テキスト") |
変数と定数
Swiftでは、varを使用して変数を、letを使用して定数を宣言します。変数は再代入可能ですが、定数は一度設定した値を変更できません。
var name = ”タロウ” // 変数 let age = 30 // 定数 |
データ型
Swiftは型推論の機能がある言語ですが、型を明示的に指定できます。代表的なデータ型には下記があります。
Int(整数型)
Double(浮動小数点型)
String(文字列型)
var age: Int = 25 var height: Double = 5.6 var name = "Bob" |
配列
配列は、配列名:[型名] = [配列要素]のように定義します。後から配列の要素を追加するためには、append関数を使用します。
var array:[Int] = [1,2,3,4,5]
array.append(6) |
制御構文(if)
初期値の設定をした後に、条件文を作成することで条件付きの分岐が行えます。下記のサンプルは代入された変数の値によって処理を分岐させています。
//初期値の設定 var fruit = "Apple"
if(fruit == "Apple") {
|
関数とメソッド
関数はfuncキーワードを使用して定義します。関数は引数を受け取ることができ、結果を返すこともできます。
func greet(name: String) -> String { return "Hello, \(name)!" }
|
5.Swiftのプログラミングサンプルコード一覧
ここでは、Swiftでよく使用されるプログラミングのサンプルコードをいくつか紹介します。
クラスと構造体
Swiftでは、クラスと構造体を使ってデータを定義できます。クラスは継承可能ですが、構造体は継承ができません。
class Car { var brand: String var model: String
self.brand = brand self.model = model }
return "\(brand) \(model)" } }
print(myCar.description()) |
継承とポリモーフィズム
Swiftのクラスは継承をサポートしており、サブクラスを作成して親クラスの機能拡張が可能です。また、ポリモーフィズムを使用して、異なるクラスで共通のインターフェースを実装できます。
// 親クラス class Animal { func speak() { print("Animal speaks") } }
class Dog: Animal { override func speak() { print("Dog barks") } }
myDog.speak() // 出力: Dog barks |
非同期処理
Swiftでは非同期処理が可能です。非同期処理を扱うためにasync/awaitキーワードを使用します。これによって、非同期処理を簡潔に書くことができます。
func fetchData() async -> String { return "Data fetched" }
let data = await fetchData() print(data) } |
SwiftUIでのUI開発
SwiftUIとは、Apple社が提供するUI開発フレームワークのことで、コードでUIを宣言的に作成できます。SwiftUIを使用するためには、「import SwiftUI」の記述が必要です。
import SwiftUI
var body: some View { VStack { Text("Hello, SwiftUI!") .font(.largeTitle) .padding() } } }
static var previews: some View { ContentView() } } |
関連記事
Swiftでできること8選|入門用の基礎文法(サンプルコード付)も解説
Swiftとは?プログラミングの特徴やObjective-Cとの違い、サンプルコードをわかりやすく解説
6.まとめ
今回は、iOSアプリ開発に興味があり、Swiftを学びたいと考えている初心者やObjective-CからSwiftへの移行を検討している現役のiOSエンジニアに向けてSwiftプログラミングについて解説しました。
SwiftはApple製品向けのアプリケーション開発に最適化されたObjective-Cに代わるプログラミング言語です。シンプルで直感的な構文や高いパフォーマンス、安全性の高い設計などの特徴が多くの開発者に人気の理由です。
Swiftプログラミングを習得することで、Apple製品のアプリケーション開発やサーバーサイド開発などさまざまなプロジェクトに役立つこと間違いないでしょう。
本記事が皆様にとって少しでもお役に立てますと幸いです。