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
開発

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

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

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

Swift開発の入門から実践まで!フレームワーク選定で迷ったら必見。メリット・デメリット、トレンド、おすすめ8選も解説。初心者からプロまで役立つ情報満載。

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

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

Swiftでできること8選|入門用の基礎文法(サンプルコード付)も解説のカバー画像

Swiftでできることを解説。iOSアプリ開発だけじゃない!Webアプリ、AR、機械学習まで。初心者向けに開発環境や文法も紹介。

Next.jsとは?特徴やできること、開発の流れ、Server actionsなど応用機能を解説のカバー画像

Next.jsで高品質なWebアプリを開発!基礎から応用まで徹底解説。Reactベースのフレームワークで、SEO対策も万全。

JavaScriptのalert完全ガイド|自動で閉じる方法や非推奨理由、alert以外の方法を紹介のカバー画像

JavaScriptのalert()はなぜ非推奨?より良い通知方法を解説。モダンなWeb開発で役立つ知識を習得しよう。

PHPとPythonの違いを徹底比較|特徴・将来性・Web開発/AI開発など得意な開発領域を解説のカバー画像

PHPとPython、どちらを学ぶべき?特徴、使い分け、将来性を徹底比較。Web開発、AIなど、あなたの目的に合った言語を選ぼう!

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

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

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

【Swift/TypeScript】恋活・婚活マッチングアプリ運用保守開発案件

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

【Kotlin】美容案件サービスAndroid版開発案件

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

【Swift】建築業界向けモバイルプラットフォーム開発案件

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

【Swift】スマートフォン向けメディアアプリ開発案件

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

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

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

【Databricks/Snowflake】顧客全社のデータプラットフォーム構築に向けたPOC支援

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

【PL】小売向けSCMシステム移行展開推進案件

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

【React.js/TypeScript/Next.js/週5日/リモートメイン】 日本最大級のキャッシュレス決済プラットフォーム/フロントエンド開発メンバー募集!!(jd01990)

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

【PL/テックリード/英語】自動車会社向けBEVプラットフォーム開発支援案件

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

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

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

【Java/TypeScript】車両ソフトウェア開発者向けWebサイト構築におけるバックエンド開発支援(基本リモート)

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

【TypeScript/React/Next.js】車両ソフトウェア開発者向けWebサイト構築におけるフロントエンド開発支援(基本リモート)

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

官公庁の基幹システムの発注者側情報システム部門支援(基本リモート)

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

官公庁向け開発支援(基本リモート)

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

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

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

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

人気の職種の案件をみる

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