Swiftの知っておくべき基本文法や書き方を徹底解説!おすすめの勉強法も紹介!
iOSアプリとSwiftという言語
日本国内のスマホにおいて、およそ6割という圧倒的なシェアを誇る「iPhone」。
今や大多数の人がiPhoneを所有し、毎日共に生活を送るパートナーにしています。
iPhoneを語るうえで欠かせないのが「アプリ」でしょう。
魅力的なアプリはSNSなどで話題を集め、一躍トップアプリへと「化ける」可能性を秘めています。
そんなiPhoneアプリ、つまり「iOSアプリ」を開発するためには「Swift」という言語が鍵になってきます。
iOSアプリを開発するために
iOS用のアプリケーションを開発するための言語・環境の主な選択肢は5つあります。
- Swift
- Xamarine(C#)
- Unity(C#)
- React Native(JavaScript)
- Objective-C
この中で何か特別な理由がない限りは「Swift」を選択するべきです。
直感的でモダンな言語であり、様々なライブラリを活用しながらiOSアプリ開発・プログラミングしていくことができます。
今回の記事ではiOSアプリを開発するのにおすすめされるSwiftの基本的な文法や書き方について解説していきます。
また、独学・勉強方法・応用の仕方まで注目。
Swiftでアプリ開発できれば、フリーランスエンジニアの案件を獲得できるかもしれませんし、個人で開発・リリースしたアプリがバズるという可能性も考えられます。
夢の広がるプログラミング言語です。
Swiftの特徴
まず、プログラミング言語としてSwiftがどのような特徴を持っているのかという点に注目します。
Swiftの特徴は「モダンである」、「セミコロン(;)がいらない」、「Playground」という点が挙げられます。
1つずつチェックしてみましょう。
モダン
プログラミング言語における「モダンさ」とは「可読性」や「書きやすさ」のことを表しています。
Swiftはそれが顕著で、すっきりとシンプルなコードが特徴的な言語です。
様々な言語の特徴や良い所を取り込んでいるということもあり、非常に便利で学習しやすい言語だといえます。
「;(セミコロン)」不要
プログラミングといえば、コードの最後に「;(セミコロン)」をつけるのが当たり前。
しかし、Swiftで;は必要ありません。
それこそ先ほど紹介した「モダン」といわれる言語、PythonやRuby、Scalaなどでは「;」が不要です。
「;」がない言語からプログラミングを始めた方からすればむしろ違和感を覚えるかもしれません。
しかし、プログラミング初心者の方は「;」を忘れがちということを考えてみても「;」が不要というのは学びやすさに繋がっているといえるでしょう。
Playground
Swiftを開発できるIDE「Xcode」にはPlaygroundという環境が用意されています。
C言語やJavaなどでは、書いたコードの挙動をチェックするためにいちいちアプリケーションを実行するなどしなければなりません。
しかしPlaygroundを利用すれば、自分が書いたコードの挙動をリアルタイムで確認できるのです。
開発効率が高くなる環境が用意されているといえます。
Xcodeの使い方や特徴については、以下の記事で詳しく解説しています。Xcodeについて知りたい方は、こちらも併せてご参照ください。
関連記事:
Xcode(エックスコード)とは?使い方、特徴を初心者向けにわかりやすく解説!ダウンロード、インストール方法も紹介
Swiftの基本
それでは早速、Swiftの基本に注目していきます。
他のプログラミングと比較した際に特徴的・珍しい部分をチェックしてみましょう。
変数の宣言・代入
プログラミングにおいて欠かせず、嫌でもせざるを得ない「変数の宣言と代入」。
Swiftの変数の宣言は「var 変数名: 型名」で行います。
つまり、宣言して代入する場合は以下のように記述しましょう。
- var test: Int = 7
Int型変数の宣言をしているわけですが、Swiftは型推論をしてくれるため、以下のように略すことが可能です。
- var test = 7
Int型であることを宣言する「Int」を省略できます。
人間からすれば「test」は整数型(Int型)ということが一目で分かり、可読性も高いといえるでしょう。
もちろん、略さなければならないというわけでも、略してはいけないというわけでもありません。
自分に合う記述(宣言)方法を行いましょう。
定数も同様
もちろん定数もSwiftには存在しています。
定数は「let 変数名: 型名」で宣言できます。
つまり、定数を宣言して代入する際も先ほど同様に以下の形式で記述します。
- let test: String = “Hello, Goodbye”
そして、定数の場合も型推論が可能なため、以下の通り省略可能です。
- let test = “Hello, Goodbye”
型の異なる変数同士を演算する場合
Swiftで型の異なる変数同士を演算する場合は、自分でパースを行わなければなりません。
「自分で行う」という字面は難しそうに見えるかもしれませんが、実際に行う手順はシンプルです。
Int型をFloat型にパースする
仮にInt型のtestと、Float型のresという2つの変数同士を計算する場合は以下のようにパースします。
- var star = Float(test) + res
このように記述することで、新たに宣言した「star」という変数に「test + res」の演算結果が代入されます。
この場合、Float型同士の計算結果を「star」に代入しているため、starもFloat型となります。
Float型をInt型にパースする
もちろん先ほどとは逆のパターン、つまりInt型にパースして演算することも可能です。
- var star = test + Int(res)
演算結果の小数点以下は切り捨てられた整数がstarに代入され、starはInt型になります。
パースは慣れてしまえば自分の想定通りの代入ができるので、さほど難しく感じる必要はありません。
あくまで「型が違ったら揃えてあげる」と意識しましょう。
数値を文字列にパースできる
また、数値を文字列、String型へパースすることもできます。
Int型の変数「test」があったと仮定して、以下のコードを記述することで可能です。
- var str = String(test)
数値同士でパースした際と文法は特に変わらないことが確認できますね。
Swiftにおける配列の定義
プログラミングをするうえで変数同様欠かせない存在「変数」も、もちろんSwiftに存在しています。
配列の定義は「var 配列名: [型名] = [配列の要素]」で可能です。
配列の要素はカンマ(,)区切りで入れるのですが、例によって型名は型推論によって省略可能なので以下のように記述できます。
- var testArray = [1,2,3,4,5,6,7]
これでtestArray[0]に1が、testArray[6]に7が入りました。
添え字は他のプログラミング言語同様0〜となっています。
また、配列をletで定義(varの部分をletに変える)することでイミュータブルな配列を定義可能です。
イミュータブルな配列の方が早く動作するので、中身を変更する必要がない際は積極的に活用しましょう。
関数の作り方
続いてはSwiftで関数を作りたいときの記述方法を紹介いたします。
基本的にはこのように記述することで関数を作れます。
- func 関数名(引数名:データ型,…) {
- 処理内容
- }
引数がない場合
まずは引数がない超シンプルな形です。
例えば、以下の通り関数を作ってみましょう。
- func testCase(){
- let a = 1
- print(a)
- }
print(a)という結果が得られる関数です。
「testCase()」と書いて実行すれば、print(a)つまり「1」が出力される関数になります。
引数がある場合
Swiftの関数にも引数を設定することができます。
例えば、以下のように記述してみましょう。
- func testCase(a: Int){
- print(a)
- }
- var test = 100
- testCase(a: test)
この場合は100が代入されたtestを引数として与えているため、100が出力されます。
引数・戻り値ともにある場合
戻り値も同様に使用可能です。
戻り値を指定する場合は「func 関数名(引数: 型) -> 戻り値の方{」と記述する必要があります。
以下のようなコードを記述してみましょう。
- var res = 0
- func testCase(a: Int) -> Int{
- res = test + a
- return res
- }
- var test = 99
- testCase(a: 1)
- print(res)
関数内でtestとaを加算している結果をresに代入して戻り値として返しているため、100という結果が出力されます。
Swiftは独学でも大丈夫
プログラミング言語を学ぶ際にどうしても気になってしまうのが「独学でも大丈夫?」というポイント。
今回紹介しているSwiftですが、十分に独学でも勉強可能です。
Swiftは一般的に学習コストは低い、つまり習得までに要する時間は少ないといわれています。
Swift(iOSアプリ)について取り扱った参考書も書店で非常に多く販売されているほか、インターネット上にも初心者向けの数々のSwift解説ブログやサイトが存在しています。
独学でも勉強しやすい環境が整えられている言語といえるでしょう。
Swiftでアプリ開発をするならほぼ間違いなくMacが必要
しかし、Swiftを利用してiOSアプリ開発をするために重要となるIDE、XcodeはMacでしか使用できません。
Swift自体はオープンソース化されLinux上でも扱えるため、実質的にはWindows PCでも動かせますが、アプリ開発に関してはMacに到底敵うレベルではありません。
また、iPad上でSwiftプログラムを組めるアプリも提供されています。
もし本格的にアプリ開発をするとなると、Windows PCでは非常に厳しいといえるため、Mac PCが必要となってくるでしょう。
おすすめの勉強法
いざSwiftを勉強するとなっても、何からスタートすればいいのか分からないという方も多いかもしれません。
ここからは、Swiftを勉強する上でおすすめの方法を紹介します。
既にプログラミングができる場合
既にプログラミングができる(他言語の経験がある)方におすすめのSwift勉強法は、とにかくアプリを作ってみるという方法です。
ある程度Swiftの基本的な文法や構文だけチェックしたら、簡単なアプリからどんどん作ってみましょう。
実際にiPhone端末にインストールしなくとも、Xcode上の仮想環境で実機のように自分の作ったアプリに触れることができます。
自分が作ったアプリを触ることで改善点やコードのミスなどにも気付けますから、少しずつ習得できるでしょう。
そのため、参考書をもし買うのであれば、単純にSwiftを解説しているだけの本ではなく、アプリを作る想定・前提のもとに書かれている本を選ぶのがおすすめです。
プログラミング経験がない場合
中にはプログラミングの経験がないという方もいらっしゃるかもしれません。
しかし、Swiftはこの記事でも少し触れた通り「学習コストが低い」プログラミング言語といわれています。
そのため、臆する必要はありません。
むしろ、他の言語の知識に囚われることがないため、Swift独特の文法や構文に取っ付きやすい可能性すらあります。
まずは参考書などで基本的な部分を理解して、Xcodeの「Playground」でコードを打ってみましょう。
今回の記事で紹介した変数の宣言やInt型とFloat型をパースして演算する方法などを試してみてください。
間違いなく動いたら、自分なりに色々アレンジを加えて応用してみてもいいでしょう。
自分の書いたコードがリアルタイムに実行される光景を目にすれば、プログラミングの虜になるかもしれません。
将来性溢れるSwiftという言語
今回解説してきたSwiftは、積極的にアップデートされている言語です。
iOSもすっかり世の人々へと浸透している現代、将来性の溢れている今後が楽しみなプログラミング言語だといえます。
フリーランスでスマホアプリ開発をしたいという方はもちろん、1人でアプリ開発・リリースしたいという方もぜひとも勉強・習得したい言語です。
IT業界においてアプリを作る楽しさはもちろん、実際にお金を稼ぐということに直結する分野ともいえるiOSアプリ開発。
iOSアプリを作れるエンジニアになれば、今後さらに拡大していく可能性を秘めているスマートフォン分野において、より魅力のあるフリーランスエンジニアになれるでしょう。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。