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アプリケーションの開発が可能です。サーバーサイドの処理を記述する際は、VaporやKituraといったフレームワークを使用します。
機械学習
Swiftで機械学習モデルをiOSアプリに統合が可能です。統合するためには、Core MLというフレームワークを利用します。機械学習モデルとiOSアプリを統合することによって、画像認識や自然言語処理などの機能をアプリに実装できます。
ARアプリケーション開発
ARアプリケーションの開発もできます。ARアプリケーションとは、拡張現実と呼ばれるAR技術を用いて現実世界にデジタル情報を融合させ、その映像を表示するアプリのことです。SwiftでARアプリケーションを開発するためには、ARKitというフレームワークを使用します。
IoTデバイス開発
IoTデバイス開発は、モノとクラウドサービスを組み合わせたシステムやサービスを開発することです。SwiftでもHomeKitやMatterのフレームワークを使用することにより、家庭内のスマートデバイスを管理・操作するアプリケーションを開発できます。
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
let str:String = "Hello World!" |
なお、Swiftでは型推論が効くため、以下のように略して定義することもできます。
// Int型 var num = 1
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") {
|
クラス
「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に触れてみてください。
本記事が皆様にとって少しでもお役に立てますと幸いです。