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

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

公開日:2024/10/20最終更新日:2024/10/20

Swiftは、Apple製品向けアプリ開発のために2014年に登場したプログラミング言語です。主にiOSアプリ開発に利用されるSwiftですが、SwiftでできることはiOSアプリ開発に限りません。フレームワークを活用すればWebアプリケーションやARアプリケーションの開発が可能です。本記事ではサンプルコード付きでSwiftでできることをはじめ、Swift入門のために必要な開発環境の紹介や文法を解説します。

1.Swiftとは?

Swiftは2014年にApple社が発表したApple製品向けアプリ開発ができるプログラミング言語です。iOSアプリを筆頭にMacアプリやApple watchアプリなどが開発されています。英文に近い表記で可読性が高く、開発者に人気の言語の1つです。


プログラミング言語の人気度を発表しているTIOBEIndexの2024年10月時点のデータをみてみると、Swiftは数多くのプログラミング言語の中で20位にランクインしており、その人気度がわかります。


ここではSwiftとは何かを詳しく紹介します。

iOSやMac向けアプリ開発に採用される言語

Swiftは、iOSやMacをはじめとしたApple製品向けのアプリ開発に用いられるプログラミング言語です。Swiftが登場するまでのApple製品向けのアプリ開発では、主にObjective-Cという言語が使用されていました。

しかし、Objective-CはC言語とオブジェクト指向を融合させた言語で他の言語と比べて複雑で習得が難しい言語でした。そのため、Apple製品の開発をより簡単に、習得のハードルを下げられるように作られたのがSwiftです。

2014年に登場した比較的新しい言語

Swiftは2014年のWWDC(Apple Worldwide Developers Conference)で初めて公開されました。WWDCは、Apple社が毎年6月頃に開催する開発者向けイベントです。新しい端末の発表だけでなくOSやサービス、テクノロジーに関する話題も取り扱っており、WWDCで発表された事項は各メディアに大きく取り上げられ人々の関心を集めるイベントです。

Swiftが発表されて以来、頻繁にアップデートが行われ、現在ではオープンソースとして提供されています。直感的な文法とモダンな設計が特徴のSwiftは、使用しやすい言語として開発者から定評があります。

他言語との互換性がある

Swiftは、他の言語と互換性があります。具体的にはObjective-CやC言語などです。互換性があることによって、これまでObjective-Cで作られた既存アプリに対してSwiftで機能を追加するというようなことがスムーズに行えます。またSwiftとObjective-Cとの間でAPIを共有したり、Objective-CのフレームワークをSwiftにインポートしたりなど、シームレスな開発が可能です。

Playgroundで開発時間の短縮ができる

Swiftは、基本的にXcodeという統合開発環境で開発を行います。XcodeにはPlaygroundという機能があります。Playgroundはコーディング中にプログラムの動作やロジックをリアルタイムで確認できる機能です。コードの一部だけをためしたいという場合に使用します。1行単位で結果を確認できるため、修正箇所がわかりやすく開発時間の短縮にもつながります。

2.SwiftとObjective-Cとの違い

前章でも解説した通り、Swiftが登場するまではObjective-CがApple製品向けアプリの開発に使用されていました。基本的にSwiftはObjective-Cの上位互換といっても差し支えない状況です。

下記は、処理速度・インタラクティブモード・可読性・学習コストの観点でSwiftとObjective-Cを比較した表です。それぞれ具体的にSwiftとObjective-Cのどのような点が違うのかについて解説します。

比較項目

Swift

Objective-C

処理速度

Objective-Cの2.6倍速い

遅い

インタラクティブモード

デフォルトであり

デフォルトではなし

可読性

高い

低い

処理速度

SwiftはObjective-Cよりも高速で軽快に動作します。Apple社の公式サイトにて、Objective-Cよりも最大2.6倍高速であることが発表されています。またSwiftは、Apple社が採用している高速コンパイラの「LLVM」を標準で使用しているため、コンパイル時間も短縮可能です。


結果として、重くなりがちな画像や動画などの取り扱いもスムーズに進み、Swiftの方が高速で安定性のある動作を実現できます。ただし、Swiftと比較して処理速度が遅いだけで、Objective-Cも決して処理速度が遅い言語ではありません。

インタラクティブモード

SwiftにはデフォルトでREPL(Read-Eval-Print-Loop)が用意されているため、RubyやPythonのように簡単に動作確認ができます。REPLは、プログラミング言語の実行環境の1つで、プログラムを1行ずつ実行しながら結果を確認できる対話型実行環境のことです。REPLによって素早いテストやデバッグが可能になります。

可読性

Swiftは可読性が高い言語です。Swiftは、Objective-Cの習得を困難にしていた型宣言やメソッド定義などの文法を緩和して、より開発者が扱いやすい言語になるよう設計されています。以下はSwiftの文法の一部です。

  • main()関数が不要

  • ステートメントの終わりは改行

  • 型名の「NS」が不要


C言語由来であるObjective-Cでは、最初に呼び出されるmain()関数に処理を記述する必要がありました。しかし、Swiftにはmain()関数は不要です。スクリプト言語と同じように、メインとなるソースファイルの先頭から処理を記述します。


また、Objective-Cではステートメントの終わりを示すセミコロンが必要でしたが、Swiftのステートメントの終わりは改行です。

このように、SwiftはObjective-CやRuby、JavaScriptなどの特徴を少しずつ取り入れたようなモダンな言語です。

3.Swiftでできること8選

Swiftは、Apple製品向けアプリの開発ができるプログラミング言語です。Swiftの高速な処理速度と安全性に注目が集まっており、Apple製品だけではなくさまざまな開発シーンで活用されています。ここでは、Swiftでできること8選を紹介します。

iOSアプリ開発

iOSアプリ開発は、Swiftが最も利用される開発です。iOSとはApple社が提供する端末のiPhoneやiPadに搭載されているOSのことで、これらの端末で動作するアプリ開発をするためにSwiftが利用されています。

基本的に、種類を問わず全てのアプリが開発できます。例えば、下記のようなアプリです。

  • ゲームアプリ

  • 地図アプリ

  • 決済アプリ

  • ポイントカードアプリ

  • 天気アプリ

  • 電子書籍アプリ


現時点でリリースされているほとんどのアプリがSwiftで開発されたものと考えて差し支えありません。ただし、Swiftは端末の内部で動作する部分を実装します。細やかな処理を実行する際はAPIを利用してサーバーで処理することも多々あります。

MacOSアプリ開発

iOSに限らず、MacOSアプリの開発もできます。MacOSはMacbookやMacbook Air、Macbook Proなどに搭載されているOSです。一般的に、スマートフォンとパソコンのアプリはそれぞれ別の言語を使用して開発されます。しかし、Apple社の製品についてはどちらもSwiftでの実装が可能です。

Apple Watchアプリ開発

Apple WatchというApple社が提供するウェアラブルデバイスで動作するアプリ開発も可能です。Apple WatchはiPhoneと連携するシーンが多く、連携時の処理にApple Watchアプリが利用されています。

また、Apple Watch単体でデータを収集するようなことにもアプリが活用されています。

Apple TVアプリ開発

Apple TVは、テレビに接続することでネットワーク経由で映画や音楽、ゲームが楽しめるセットトップボックスと呼ばれる商品のことです。このApple TVで動作する動画再生アプリやゲームアプリなどを含めてApple TVアプリと呼びます。

Swiftを使って開発できますが、Apple TVの需要が限られているため、Swiftのできることとして認識はあまりされていません。とはいえ、Swiftで開発できることには違いありません。

Webアプリケーション開発

一般的にJavaやRubyなどで開発されるWebアプリケーションですが、SwiftでもWebアプリケーションの開発が可能です。サーバーサイドの処理を記述する際は、VaporKituraといったフレームワークを使用します。

機械学習

Swiftで機械学習モデルをiOSアプリに統合が可能です。統合するためには、Core MLというフレームワークを利用します。機械学習モデルとiOSアプリを統合することによって、画像認識や自然言語処理などの機能をアプリに実装できます。

ARアプリケーション開発

ARアプリケーションの開発もできます。ARアプリケーションとは、拡張現実と呼ばれるAR技術を用いて現実世界にデジタル情報を融合させ、その映像を表示するアプリのことです。SwiftでARアプリケーションを開発するためには、ARKitというフレームワークを使用します。

IoTデバイス開発

IoTデバイス開発は、モノとクラウドサービスを組み合わせたシステムやサービスを開発することです。SwiftでもHomeKitMatterのフレームワークを使用することにより、家庭内のスマートデバイスを管理・操作するアプリケーションを開発できます。

4.Swiftでの開発に必要な開発環境

ここまで、Swiftの特徴やできることについて解説しました。

では実際に、Swift入門のためまずは開発に必要な開発環境について解説します。

開発する端末

基本的にiOSアプリ開発のためにはMacOSの用意が必要です。WindowsOSでも開発は可能ではありますがWindowsOSでは仮想環境にMacOSの環境を作り、そこで開発する方法となるため、推奨されていません。


そのため、Swiftを扱うためにはMacOSを用意しましょう。また、開発後に統合開発環境上だけでなく、端末での動作確認ができるようにiOS端末があるのが理想的です。

統合開発環境の準備

次に、統合開発環境を準備しましょう。iOSアプリ開発ではXcodeを使用することが一般的です。XcodeはApple社が提供する開発環境で、直感的かつ品質を保つiOSアプリの開発ができる下記のような機能が揃っています。

機能

特徴

ストーリーボード

ドラッグ&ドリップでデザイン変更や画面遷移などの操作を直感的に実装できる。

コード編集のアシスト機能

コード記述をサポートするためのアシスト機能を搭載。コードを自動で補完する。

Gitとの連携

Gitの使用が可能であるため、ソース管理における利便性が向上。

公式ドキュメントの内部統合

Xcode内で公式ドキュメントの検索が可能。全てがXcode内で完結できる。

リアルタイムの実行環境

コーディングとテスト作業が常に同期される。

5.Swift入門のための基礎的な文法

開発環境の準備ができたら、Xcodeを起動して実際にコードを書いてみましょう。ここではSwift入門のための基礎的な文法を紹介します。

出力

print関数を実行すると、出力ができます。以下のサンプルコードは「テキスト」という文字列が出力されます。

print("テキスト")

変数

varを置くことで変数定義をします。「:Int」はInt型を、「:String」はString型を明示的に定義しています。letは定数です。

// Int型

var num:Int = 1


// String型

let str:String = "Hello World!"

なお、Swiftでは型推論が効くため、以下のように略して定義することもできます。

// Int型

var num = 1


// String型

let str = "Hello World!"

配列

配列は、配列名:[型名] = [配列要素]のように定義します。後から配列の要素を追加するためには、append関数を使用します。

var array:[Int] = [1,2,3,4,5]


// 要素追加

array.append(6)

関数

特定の処理をまとめるためには関数を使用します。下記のサンプルは、3つの引数の値の合計を算出して返す関数です。

func sum(first_int:Int, second_int:Int, third_int:Int) -> Int {

return(first_int + second_int + third_int)

}

条件文

初期値の設定をした後に、条件文を作成することで条件付きの分岐が行えます。下記のサンプルは代入された変数の値によって処理を分岐させています。

//初期値の設定

var fruit = "Apple"


//条件文

if(fruit == "Apple") {


print("りんごです")


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


print("オレンジです")


} else {


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


}

クラス

「class クラス名{}」でクラスを定義し、メソッドやプロパティはここまでで紹介した変数や関数の定義と同じです。下記のサンプルはstrClassというクラスを定義し、strFuncというString型のメソッド、strPropというString型のプロパティを設定しています。

// クラス定義

class strClass {

  var strProp:String = "Hello World"

  func strFunc()->String{

    return strProp + "!"

  }

}


// クラス宣言・実行

var test = strClass()

print(test.strFunc())

6.Swiftの学習にはSwift Playgroundsを活用

基礎的な文法を覚えたら、本格的にSwiftを習得するための学習をしましょう。Swiftを学習するためには、Swift Playgroundsの活用がおすすめです。Swift Playgroundsとは、App Storeで配信されているSwift学習のためのアプリです。課題を解き進め、楽しみながら本格的にSwiftを学習できます。


関連記事

フリーランスの年収とは?エンジニアの平均年収や会社員との比較、税金なども解説!

7.まとめ

今回はiOSアプリ開発をはじめたいエンジニアやSwiftを学習したいプログラミング初心者、モバイルアプリ開発における言語選定を検討している企業担当者に向けて、Swiftのできることや学習方法について解説しました。


SwiftはObjective-Cに代わるモダンなプログラミング言語で、その処理能力は高速でパワフルです。多くの開発者から注目を集めており、iOSアプリ開発をはじめとしたさまざまな開発シーンで活用されています。

ぜひ、サンプルコードを参考にしてSwiftに触れてみてください。


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

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

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

Pythonとは?コードの具体例など人気プログラミング言語を初心者にわかりやすく解説のカバー画像

Pythonとは?コードの具体例など人気プログラミング言語を初心者にわかりやすく解説

Pythonプログラミング入門。初心者でも簡単!基礎から応用までわかりやすく解説。データ分析、Web開発など、Pythonでできることを学ぼう。

Javaとは?Web開発で利用されるJavaの特徴や実行方法、おすすめ資格を解説のカバー画像

Javaとは?Web開発で利用されるJavaの特徴や実行方法、おすすめ資格を解説

Javaプログラミング入門。オブジェクト指向、セキュリティ、実行環境など基礎知識を解説。Javaエンジニアを目指す方必見!

Kotlinでできることは?言語の特徴やコード例、メリットなどわかりやすく解説のカバー画像

Kotlinでできることは?言語の特徴やコード例、メリットなどわかりやすく解説

KotlinでAndroidアプリ開発をもっと効率的に!Javaとの違いやメリットを徹底解説。初心者から経験者まで役立つ情報満載。

スクラム開発とは?基本の手法やメリット、開発チームの役割などわかりやすく解説のカバー画像

スクラム開発とは?基本の手法やメリット、開発チームの役割などわかりやすく解説

スクラム開発を成功させるための5つのポイント!初心者向けに、スクラム導入の基礎知識を解説。

Pythonとは?何ができるかや入門用の基本的な書き方などわかりやすく解説のカバー画像

Pythonとは?何ができるかや入門用の基本的な書き方などわかりやすく解説

Pythonとは、AI開発やデータ分析に強い人気のプログラミング言語。初心者でも学びやすく、幅広い分野で活躍できます。文法や特徴、そして将来性まで詳しく解説。

JavaScriptとは?初心者にもわかりやすく何ができるかや歴史、基本的な文法を解説のカバー画像

JavaScriptとは?初心者にもわかりやすく何ができるかや歴史、基本的な文法を解説

JavaScriptとは、Webサイトに動きやインタラクティブな機能を追加するためのプログラミング言語です。本記事では、JavaScriptの基本から応用、そして最新のトレンドまでを網羅し、初心者にもわかりやすく解説します。

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

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

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

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

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

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

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

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

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

【C#】バックエンド開発

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

【SQL】DX推進

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

【C#】バックエンド開発

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

【SQL】DX推進

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

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

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

【Go】EC開発

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

【React】個人向け金融系アプリ開発

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

【Python】社内システムAPI連携

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

【Python】調剤薬局向けサービス管理ツール開発

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

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

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

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

人気の職種の案件をみる

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