SwiftでiOSアプリを作ってみた

SwiftでiOSアプリを作ってみた
コーダーズ　インターン生のNです。
本記事では、私自身がSwiftの学習を行った経緯や、実際にアプリを作成した感想までを記載しています。

プログラミング学習を始めたきっかけ
ここでは、私が独学でプログラミング学習を始めた経緯について書いていきます。

私は大学で情報系の学科に所属しています。大学では、基本的なプログラミングや情報技術について学んできました。
ここで、情報系の学部にいて気づいたことがあります。それは、プログラミング力が身につくかどうかは人による、という事です。
大学の教える先生にもよると思いますが、私の受けた授業では、プログラミング言語の基本的なルールや、一般的なコードの書き方を教えてもらえるだけでした。このことから私は、文系出身と情報系出身とではエンジニアとしての能力に大きな差は無いと考えています。

実際にIT企業の会社説明会などに行くと、人事の方が「入社して数ヶ月で文系出身と理系出身のエンジニアの差はなくなる。」と言っているのをよく聞きます。

そこで私は、社会に出た時に自信を持って「情報系の学部出身です。」と言えるようになりたいと思い、独学によるプログラミング学習を始めました。

学習するプログラミング言語の決め方
私が独学で学習を行った言語は、Swiftです。聞き馴染みがない方も多いかもしれませんが、SwiftとはiPhoneやiPadなどの端末で使えるアプリ、もしくはMac向けのアプリを開発することができる言語です。私がSwiftを学ぼうと思った理由は、アプリという成果物を目に見える形で得られるからです。
私自身、あまり我慢強いタイプではないため、これまでもプログラミング学習が続かなかったという経験があります。しかし、このように勉強を頑張った証を形で残せるというのは、モチベーションの維持に大きく役立つと考えました。さらに、Swiftで作成したアプリは、Xcodeという開発環境を利用することで自分のiPhoneで動かすことができるのです。自分で作成した自分だけのアプリを使う状況を想像して、ワクワクしました。

これは後から知った情報ですが、2022年から高校で必修科目になる「情報I」は、JavaScript、Python、VBA、Swiftが含まれており、全員が必ず学ぶ言語になるとのことです。このことから、Swiftは今後も利用されることが多くなると言え、今学んでおくべき言語の一つであると言えます。

学習方法
ここでは、私がどのような計画で学習を進めたのかについて書いていきます。

私は、勉強開始当初だけはモチベーションが高いのですが、ある時を境にやる気がなくなり、だんだんと勉強から遠のいてしまったという経験が多々あります。私はこの怠惰な自分を矯正するためにある工夫を行いました。
それは、毎週○曜日の×時〜×時と決めた時間だけを勉強に充てるということです。ここでのポイントは“だけ”というところです。
勉強開始当初はモチベーションが高く、１日に何時間でも学習できることもあるかと思います。しかしこれでは、短距離走のように少し走っただけで疲れてしまいます。長期的に計画を立て、自分にあったペースで習慣的に学習を行うことがモチベーションの維持に有効だと私は考えました。さらにこの方法は、学習した内容をしっかりと身に着けるという面でも有効だと思います。数日かけて一気に勉強するという方法では、脳に学習内容が定着しません。長期的かつ習慣的に学習を進めることで、勉強した内容を確実に自分のものにすることができるのです。

具体的に私が設定したルールは、火曜日と木曜日の11:00-12:00は必ず勉強するというものです。勉強開始当初は、こんな短い時間でも集中力が維持できず、PCに向き合うことに辛さを感じました。しかし、ルールを守れたという達成感を積み重ねていくと、だんだんと学習が辛いという気が無くなって来て、習慣的に学習を進めることができるようになりました。設定した勉強時間に慣れてきたら、徐々に一日の学習時間を伸ばしたり、日数を増やすことで学習を計画的に進めていきました。

学習準備
学習を始めるにあたり、まずは参考書を選ぶところから始めました。私は文字ばかりの本だとすぐに疲れてしまうので、できるだけ図や表の多いものを探しました。そして見つけたのが、「絶対に挫折しないiPhoneアプリ開発「超」入門」という本です。タイトル通り、初心者に寄り添った、かなり易しい内容になっています。内容としては、開発環境の準備の仕方から基本的なコードの書き方、そして実際にアプリを世に出す方法までが丁寧に分かりやすく書かれています。
この内容なら続けられるだろうと感じ、購入を決めました。そして実際に学習を進めた結果、特に行き詰まってしまう箇所はなかったように思います。初心者の方もiOSアプリを作成してみたい方にはオススメの本です。

Swiftを勉強してみた感想
さて、ここからは実際にSwiftを勉強してみた感想について書いていきます。
まず初めにお伝えしたいのが、Swiftは他の言語と基本的な構造は同じだということです。私はこれまでC言語やJavaなどの言語を学習してきましたが、Swiftにはこれらと共通した作りが多く登場しました。細かい記述方法などはもちろん異なる部分がありますが、変数の扱い方や配列の考え方、forループ文の書き方など似ている部分が多くプログラミング経験者はアドバンテージが活かせると思います。

また、学習を進めていけばいくほど面白く感じられるという特徴があると思います。
初めに学ぶ基本的なコード記述方法などは、他のプログラミング言語と同じように、若干我慢が必要な内容と言えます。しかしこれを乗り越えると、アプリに出てくる部品の扱い方を学ぶことになります。この内容が私にはとても面白く感じました。具体的には、普段iPhoneを使っていて目にしているボタンの扱い方を学べることなどです。これらをUI部品と呼びますが、アプリ制作に近づいているという感覚が得られてワクワクするような内容でした。

実際にアプリ制作を行ってみた感想
ここでは、私が実際に作成したアプリについてご紹介します。
私が作成したアプリは「じゃんけんアプリ」です。紹介するのも恥ずかしいくらいのチープな設計ですが、初心者ながら頑張って制作しました。制作期間は約二週間から三週間くらいでした。
機能としてはまずアプリを開き、ジャンケンをするかしないかを選択します。そして“はい”を選択すると、ランダムで表示される相手の手に対してじゃんけんの勝負を行います。そして、最終的に勝負の結果を出力するというというものです。以下がその開発画面になります。

アプリ制作を実際に行ってみた感想として、想像していたよりも大変だったと感じました。先ほど紹介した簡単なじゃんけんアプリにおいても、一見しただけでは見えてこない機能が多く含まれています。例えば、ボタンを押して何秒後に画面遷移を行うかの設定だったり、相手の手を決定するための乱数の発生機能、そしてじゃんけんの勝ち負けを判定する機能、じゃんけんの結果をもとに画面の遷移先を決定するための機能などです。一つの動作ごとに実装しなければいけないことがたくさんあるので、かなりの時間を要しました。

また、エラーへの対処が大変だったと感じました。Xcodeにおいて実行を行う際、エラーの位置やその原因を特定するのが慣れていないと少し分かりにくいように思えました。そのような時は、エラー文を元に検索を行いteratailやqiitaなどに書かれた解決策をもとに対処しました。ネット上にアプリ開発のブログ等がとても多く、アプリ制作を行う上でとても参考になりました。

また、楽しかった点として、やはり形になっていく過程は面白いと思いました。Xcodeでは、実際にiPhoneやMacなどでのアプリの挙動を確認できる「Simulator」という機能があります。以下にSimulatorの画面の一例を載せています。

実際にアプリを動かしながら作成できるというこの機能は、かなりモチベーションの維持に役立ちました。

	
学習をしてよかったこと
ここでは、Swiftを学習してよかったことについて書いていきます。
まず一つ目は、アプリの構造を学べたということです。先ほども述べましたが、普段アプリを利用しているだけでは気づけないような仕組みについて知ることができました。

次に、就活などで話せる話題になるということです。ただプログラミング学習を行った、だとか、どれくらいの期間勉強した、という言葉では上手く実力をアピールすることは出来ません。しかし、アプリを開発したということになると、それだけで興味を持ってもらえます。実際に私も、面接官の方にアプリ制作の経験を伝えたことで興味を持っていただき、「どんなアプリを作ったの？」だったり、「作った上で大変だったことは？」などと多くのことを質問してもらうことができました。これは、かなりのアピールに繋がったのではないかと思っています。このように、他人に伝わりやすい成果を持っているというのは、就活などにおいて一つの強みになると感じました。

今後について
今後は、さらに複雑なアプリ開発を進めていきたいと考えています。そして複雑なアプリを作れるようになったら、いずれはアプリを世に出したいと思っています。人気のアプリを作るにはまだまだ多くのことを学ぶ必要があると思いますが、これからも楽しんで学習を進めていきたいと思っています。
読んでいただきありがとうございました。