Swiftプログラミング入門|開発に必要な基本文法とサンプルコード一覧を紹介のカバー画像

Swiftプログラミング入門|開発に必要な基本文法とサンプルコード一覧を紹介

公開日:2024/11/20最終更新日:2024/11/21

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


print("Hello, World!")

このサンプルコードは、コンソールに「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") {


print("りんごです")


} else if(fruit == "Orange") {


print("オレンジです")


} else {


print("その他の果物です")


}

関数とメソッド

関数はfuncキーワードを使用して定義します。関数は引数を受け取ることができ、結果を返すこともできます。

func greet(name: String) -> String {

    return "Hello, \(name)!"

}


let greeting = greet(name: "タロウ")

5.Swiftのプログラミングサンプルコード一覧

ここでは、Swiftでよく使用されるプログラミングのサンプルコードをいくつか紹介します。

クラスと構造体

Swiftでは、クラスと構造体を使ってデータを定義できます。クラスは継承可能ですが、構造体は継承ができません。

class Car {

    var brand: String

    var model: String


    init(brand: String, model: String) {

        self.brand = brand

        self.model = model

    }


    func description() -> String {

        return "\(brand) \(model)"

    }

}


let myCar = Car(brand: "Tesla", model: "Model S")

print(myCar.description())

継承とポリモーフィズム

Swiftのクラスは継承をサポートしており、サブクラスを作成して親クラスの機能拡張が可能です。また、ポリモーフィズムを使用して、異なるクラスで共通のインターフェースを実装できます。

// 親クラス

class Animal {

    func speak() {

        print("Animal speaks")

    }

}


// サブクラス

class Dog: Animal {

    override func speak() {

        print("Dog barks")

    }

}


let myDog = Dog()

myDog.speak()  // 出力: Dog barks

非同期処理

Swiftでは非同期処理が可能です。非同期処理を扱うためにasync/awaitキーワードを使用します。これによって、非同期処理を簡潔に書くことができます。

func fetchData() async -> String {

    return "Data fetched"

}


Task {

    let data = await fetchData()

    print(data)

}

SwiftUIでのUI開発

SwiftUIとは、Apple社が提供するUI開発フレームワークのことで、コードでUIを宣言的に作成できます。SwiftUIを使用するためには、「import SwiftUI」の記述が必要です。

import SwiftUI


struct ContentView: View {

    var body: some View {

        VStack {

            Text("Hello, SwiftUI!")

                .font(.largeTitle)

                .padding()

        }

    }

}


struct ContentView_Previews: PreviewProvider {

    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製品のアプリケーション開発やサーバーサイド開発などさまざまなプロジェクトに役立つこと間違いないでしょう。

本記事が皆様にとって少しでもお役に立てますと幸いです。

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

関連記事をあわせて読みませんか?

Swiftとは?プログラミングの特徴やObjective-Cとの違い、サンプルコードをわかりやすく解説のカバー画像

Swiftとは?プログラミングの特徴やObjective-Cとの違い、サンプルコードをわかりやすく解説

Swiftとは?iOSアプリ開発に最適なプログラミング言語。Swiftでできること、特徴、Objective-Cとの違いを解説。

Reactでできることは?できないことや難しすぎるReact入門をわかりやすく解説!のカバー画像

Reactでできることは?できないことや難しすぎるReact入門をわかりやすく解説!

React入門!初心者でもできるWebアプリ開発。Reactでできること、できないこと、学習の始め方を解説。

Rubyプログラミング入門|将来性やサンプルコード付きで基本文法を紹介!のカバー画像

Rubyプログラミング入門|将来性やサンプルコード付きで基本文法を紹介!

Rubyプログラミング入門。基礎からRailsまで解説。Web開発を効率的に始めたい方必見!サンプルコード付きで分かりやすく解説します。

Rubyフレームワーク徹底解説【2024年版】のカバー画像

Rubyフレームワーク徹底解説【2024年版】

Rubyフレームワークを徹底解説! 特徴、メリット・デメリット、選び方、おすすめまで。初心者からプロまで役立つ情報満載です。

TypeScriptとは?特徴やJavaScriptとの違い入門方法、将来性をわかりやすく解説のカバー画像

TypeScriptとは?特徴やJavaScriptとの違い入門方法、将来性をわかりやすく解説

TypeScriptとは?JavaScriptの進化系!大規模開発に強い静的型付け言語。特徴や始め方を解説。

Javaプログラミングで何ができる?始め方や基本文法、練習サイト5つを紹介のカバー画像

Javaプログラミングで何ができる?始め方や基本文法、練習サイト5つを紹介

Javaプログラミングでできること、始め方、練習サイトまで解説。Webアプリ開発やAndroidアプリ開発など、幅広い分野で活躍できるJavaプログラマーへの第一歩を踏み出そう!

スキルの記事をすべて見る>

フルリモート案件を 無料登録した方限定で配信中

Swift のフリーランス案件・求人

Swift/BtoC向けスマホアプリの開発案件・求人

70-90万円/月額
業務委託(フリーランス)

【Swift】新規プロジェクトにおけるiOSエンジニア

87-92万円/月額
業務委託(フリーランス)

Flutter/スマホアプリ追加開発案件・求人

75-95万円/月額
業務委託(フリーランス)

Swift/名刺管理アプリの開発案件・求人

70-90万円/月額
業務委託(フリーランス)

Swiftのフリーランス案件をすべて見る >

おすすめフリーランス案件・求人

共済システム刷新PJのPM補佐支援

100-120万円/月額
業務委託(フリーランス)

共済システム刷新PJのPM補佐支援

100-120万円/月額
業務委託(フリーランス)

【oracle】クラウド基盤へのツール導入支援

90-110万円/月額
業務委託(フリーランス)

【oracle】クラウド基盤へのツール導入支援

90-110万円/月額
業務委託(フリーランス)

おすすめフリーランス案件をすべて見る >

新着のフリーランス案件・求人

DBマイグレの性能最適化支援|基本リモート

80-90万円/月額
業務委託(フリーランス)

【PostgreSQL】システムマイグレーションの性能最適化支援|基本リモート

80-90万円/月額
業務委託(フリーランス)

【SAP】電気機械器具業向けSAP導入支援

120-150万円/月額
業務委託(フリーランス)

【SAP】電気機械器具業向けSAP導入支援

120-150万円/月額
業務委託(フリーランス)

新着のフリーランス案件をすべて見る >

人気の検索条件でフリーランス案件を探す

JavaScript
Java
TypeScript
PHP
AWS
Python
Go言語
Ruby on Rails
Flutter
Kotlin
Swift
React
フルリモート

人気の職種の案件をみる

エンジニア
PM・ディレクター
クリエイター
コンサルタント
デザイナー
マーケター
フロントエンドエンジニア
バックエンドエンジニア
アプリエンジニア
インフラエンジニア
ネットワークエンジニア
データベースエンジニア
セキュリティエンジニア
情報システム
システムエンジニア(SE)
プログラマー(PG)