Swiftプログラミングの基礎【現役エンジニアがわかりやすく解説】

PROGRAM

Swiftプログラミングの基礎を知りたい方に。

この記事を読まれている方は、

  • Swiftのプログラミングがどんなものか知りたい
  • Swift言語の簡単な書き方が知りたい
  • Swiftが使われる場面を知りたい

おそらくこのように考えている方が多いと思います。

この記事を書いている私は、
プログラミング未経験から転職を果たした現役のWeb系エンジニアです。
エンジニア歴は3年ですが、本業とは別にフリーランスの副業で月10万円ほど、多いときで20万円ほどの収入があります。

この記事では、現役のエンジニアが、Swiftプログラミングの基礎を解説しています。

プログラミング言語のSwiftの特徴

プログラミング言語のSwiftの特徴

Swiftはプログラミング言語のひとつで、静的型付けのコンパイル言語で、オブジェクト指向型の言語です。

静的型付けの言語とは、簡単に言うと、データを文字列型や数値型、論理型などに分ける必要がある言語のことです。
ただし、Swiftでは型の記述を省略することもできるため、動的型付け言語と同じように書くことも可能です。

コンパイル言語とは、プログラムの実行前に、開発者の方でコンパイラーを使って構文チェックなどをしたうえで中間言語に変換しないと動作しない言語のことです。

一方、コンパイル言語と対をなすスクリプト言語とは、プログラム実行前にコンパイルをする必要のない言語のことで、書いた後はすぐにプログラムを実行することができる言語のことです。

一般に、コンパイル言語は、処理速度がスクリプト言語に比べて速くなります。速度が求められる処理では、コンパイル言語が使用されることが多いです。

オブジェクト指向型言語とは、オブジェクトという概念を持つ言語のことで、簡単に言うと、データ構造として、配列や構造体に加えて、オブジェクト(クラス)があるということです。
オブジェクトのおかげで、ソースコードのメンテナンスがしやすかったり、機能の流用ができます。

Swiftは、静的型付けのコンパイル言語ですが、動的型付けの側面も併せ持っているため、きちんと型定義を行うこともできますし、省略することもできる両刀使いの言語です。

Swiftを使う最大のメリットとしては、後ろ盾にAppleがいるということです。そのため、Apple製品向けに最適な開発が行える点、Appleが開発した統合開発環境(IDE)であるXcodeが使える点などが他の言語よりも優れています。

ただ、実際には、エンジニアの間ではSwiftよりも従来のObjective-Cを好んで使うケースも少なからずあります。
理由としては、Apple自身がOSの重要なフレームワークなどでSwiftを使っていないということなどが挙げられます。

Swiftは、Objective-Cと同様に、MacOS系アプリとiOSアプリの開発ができます。つまり、Appleに特化したアプリを開発するのであれば、必要不可欠なプログラミング言語ということになります。

Swiftの用途

Swiftの用途

SwiftはApple製品に特化したアプリの開発で使われます。
最近ではSwiftを使ったiOSで動作するスマホアプリの開発がトレンドです。

しかし、Apple製品向けでは、もともとはObjective-Cで開発が行われていたことから、今でもSwiftよりObjective-Cが採用されるといったケースがあります。
このあたりは好みの問題ではありますが、決してSwiftがマイナーな言語ということではないため、Apple向けの開発を行いたい場合は、どちらを選んでも問題がないでしょう。

IDEはほぼXcode一択になります。MicrosoftのVBやC#で言うところのVisual Studioと同じように、SwiftではIDEはXcodeになります。このIDEでMacOSとiOS向けの開発が可能です。

Swiftの書き方

Swiftの書き方

ここでは簡単に書き方を少しだけ紹介します。実際に始める気になったら、ぜひ参考書などの教材を参考にして、試してみて下さい。

Hello World!を画面に出力する

まずはお決まりのHello World!という文字列を画面に出力する方法から。

print("Hello World!")

これで出力することができます。

コンパイル言語のため、プログラム実行前には必ずコンパイラーを使って中間言語に変換する必要がありますが、IDEを使えば自動で行ってくれます。

変数宣言と分岐処理

次は少し踏み込んで、変数宣言と分岐処理をしてみます。

var age = 19
if age < 20 {
    print("未成年")
} else {
    print("成人")
}

上記の例では、まずageという数値型の変数を作り、その中に19という数値を入れています。
次にageが20未満であれば”未成年”という文字列を、それ以外であれば”成人”という文字列を出力するような分岐処理をしています。

配列と繰返処理

続いて、配列の使い方と繰返処理について、解説します。

ここでは配列を作って、以下のようにデータを出力することにしましょう。

佐藤,田中,小林

これを出力するコードは以下です。

var students = ["佐藤","田中","小林"]

for index in 0...students.count-1 {
    print(students[index], terminator: "")
    if index < students.count-1 {
        print(",", terminator: "")
    }
}

上記の例では、まず文字列型の配列studentsに「佐藤」「田中」「小林」の3つの文字列を格納しています。
その後、数値型の変数index(カウンタ用途)を0に初期セットし、配列studentsの要素の数に到達するまでループでindexを1ずつ増やしてまわしていきます。その際に、print関数を使い、配列studentsのindex番目の要素の値を出力し、最後の要素以外、その後に「,(カンマ)」を出力しています。

構造体の取り扱い

最後に構造体の取り扱い方法について解説します。

ここではエクセルのようなデータを作って、以下のようにデータを出力することにしましょう。

名前:佐藤,性別:男性
名前:田中,性別:女性
名前:小林,性別:女性

これを出力するコードは以下です。

var first_row = ["A":"佐藤","B":"男性"]
var second_row = ["A":"田中","B":"女性"]
var third_row = ["A":"小林","B":"女性"]
var excel_data = [first_row,second_row,third_row]

for index in 0...excel_data.count-1 {
    if let name = excel_data[index]["A"]{
        print("名前:"+name, terminator: "")
    }
    print(",", terminator: "")
    if let sex = excel_data[index]["B"]{
        print("性別:"+sex)
    }
}

上記の例では、まずfirst_row, second_row, third_rowという、キー・値がともに文字列型の連想配列を3つ作り、Aというキー(列)に名前を、Bのキーに性別の値を入れていきます。
そして、それら全てをexcel_dataという連想配列型の配列に入れます。
その後、数値型の変数index(カウンタ用途)を0に初期セットし、配列excel_dataの要素の数に到達するまでループでindexを1ずつ増やしてまわしていきます。その際に、print関数を使い、配列excel_dataのindex番目の要素の中のA列とB列の値を出力しています。

まとめ:Swiftは強力な後ろ盾がいてApple向けの開発ができる言語

まとめ:Swiftは強力な後ろ盾がいてApple向けの開発ができる言語

Swiftの良さを簡単にまとめると、以下のとおりです。

  • コードが書きやすい ← フレキシブルな型付け
  • Apple向けの開発ができる ← MacOSやiOSアプリの開発が可能
  • 強力な後ろ盾とIDE ← Appleの言語でXcodeが使える

つまりSwiftは、Appleという強力な後ろ盾がいて、XcodeというIDEにも恵まれ、かつフレキシブルな型付けの言語のため、学習のしやすい言語ということになります。

そして、Apple製品向けのアプリ開発を行いたい場合は、Objective-CかSwiftのいずれかを学ぶ必要があります。

エンジニアの間ではObjective-Cを使い続ける人も多いのですが、これから、ゼロから学習するのであれば、Swiftをオススメしたいと思います。
理由は、AppleがSwiftの教育に力を入れており、移行させたいと考えているように見受けられるからです。

そのため、今後はObjective-CよりはSwiftで書く機会の方が増えていくのではないかと思います。

Apple製品向けのアプリに特化している言語なので、もし全く触れる機会がないのであれば、Windows向けアプリやWeb系の開発ができる他の言語を学習されると良いと思います。

Swiftは独学で習得が可能な言語だとは思いますが、IDEの使い方も含めると少し難しいと思われる方もいるかもしれません。もし独学でできなさそうな方は、プログラミングスクールも手段の一つに入れると良いと思います。