プログラミングを勉強しだしてある程度色々なものが作れるようになりました。
自分のアウトプットの意味も込めて、これからSwiftでiOSアプリを開発したいと思っている方に向けて最初に理解すべきこと(最初に勉強しておくと後から楽に成長できること)を解説していって、シリーズ化しようと思う。

Swiftという言語の特徴
Swiftはデータ型(後日解説)に厳しい言語である。
勉強したての頃はこの文言をたくさん目にしていたものの、具体的にどういうことかはわからなかった。
今となってはこの言葉の意味を身に染みて感じる。
端的に例えていうなら、「礼儀や作法にうるさい言語」と表現できるのかも。
まずはこのデータ型を理解すべきで、これを理解すれば初心者のうちに起こるエラーのほとんどが解決できるようになると思うし、ネットに載っている解決方法を理解して応用し、自分のエラーの解決に広く役立てることができると思う。
ではデータ型を学ぼうといいたいところだが、データ型を教えるためには基礎の基礎であるクラスやインスタンス、プロパティやメソッドについて理解する必要がある。
なので、データ型は後日改めてブログにする。
クラスとインスタンスの関係
クラスとは、例えるなら設計図のことである。
設計図がなければ何も作れないし、設計図があれば少し機能の違うといったレベルのものなら簡単に作り上げることができる。
Swiftでは特に、Xcodeを起動させると最初の行にクラスが定義されていて、ここに好きなコードを打ち込んで、自分の設計図を作っていく。そんなところだろうか。
import UIKit class ViewController: UIViewController { // ここにコードを打ってViewControllerという名の設計図を作る }
ViewControllerというiPhoneの画面を模したものを名前にとり、iPhoneに映し出される予定の設計図を書いていく。そんなイメージでいいと思う。
次にインスタンスとは何かを説明する。
インスタンスとは、クラス(設計図)を使って作られるものである。
例えば、家を作りたいときは、HouseViewController(クラス・設計図)とでも設計図に適当な名前を付けてそのクラスの中(上述のコードを書く場所)にどんな家(インスタンス)にするのかを希望する通りに書いていく。そんなイメージ。
注意してほしいのは、あくまでインスタンス(家)は「作られるもの。そのもの。創造物。」であって、屋根の色が黄色だとかジャグジーやプールがついてるなどの具体的な機能についてはインスタンスとは呼ばないこと。
なので、Xcode上でどのコードがインスタンスにあたるの?と聞かれれば答えづらい。
インスタンスとは結果(家)であるため、それがどの過程(コードでモノを作る過程)にあたるの?って聞かれたら、まあ全部なのかもしれない。クラス内で定義された結果がインスタンスとなります。

と思いますよね。
というわけで、次にプロパティとメソッドについて説明します。
プロパティとメソッド
家というインスタンスを作ろうと思った場合には、まずは壁を作ったり屋根を作ったり、風呂を作ったりするわけです。
豪邸にしようと思ったら、庭にかわいいシェパードなんかも買っちゃったりするかもしれません。(犬は基本インスタンスなんですけどね)。
それらをクラスという設計図の中に書き込もう(定義しよう)と思ったら、varやらletやら(変数やら定数やら)を使って定義していくわけです。
これを、プロパティといいます。いうなればインスタンス(家)の特徴ですね。
みなさんパソコンで見てくださってるなら、自分のパソコンにある適当なファイルの上にカーソルを合わせて右クリックしてみてください。
プロパティという項目があると思いますが、これがまさにプロパティのことで(当たり前)、そのPDFやらWordやらExcelファイルの特徴を示しています。
晴れて設計図(クラス)に家(インスタンス)の特徴である、風呂(プロパティ)があるという情報を書き込むことができました。
もはや風呂パティですよコレ。ガハハハ!

ただここで問題なのは、風呂はあるけど水が出ないのです。
Xcodeからしてみれば、風呂って何?状態なので、懇切丁寧に、水が出たりお湯が出たり湯舟があったりといったことを教えてあげなければいけません。
ここで、funcという関数を使うことによって、色々なインスタンスのプロパティに機能を与えることができます。
この機能を与える関数(func)のことをメソッドといいます。
これにてやっと風呂を作ることができました。
この風呂をもしたくさん作らなければいけないときは、もうこれをインスタンスにしちゃえばいいんです。
別の新しいシートをXcode上で用意して(New Fileのとこ)、そのクラスにインスタンスを作っちゃえばその設計図を呼び出して家の設計図の中に風呂の設計図を貼り付けるみたいなこともできます。
そうすることによって家の設計図は短く見やすくなるわけですね。
家の設計図の中で風呂の設計図にアクセスする方法もまた紹介していきたいと思います。
独学での勉強に限界を感じたら、プログラミングスクールに通うという手もあります。
<Udemy>
管理人が勤務している大手会計事務所でも導入されており、その他ソフトバンクなど超大手企業でも導入されているオンライン学習サービスです。
<Tech Academy>
最短4週間で未経験からプロを育てるオンライン学習サービス。
分からないことは現役プロの講師に直接質問ができます。
<Tech Camp>
将来的にエンジニアとして自由に働きたいという方にオススメ。
就職活動の支援までしてくれるオンライン学習サービスです。
<Aidemy>
3か月集中講座でAIを使ったアプリ(VR/ARなど)が作れるように一気通貫してサポートする学習サービス。
画像認識を使ったアプリ開発に興味がある方はオススメです。
次回もお楽しみに。
コメント