こんにちはカレイドです。
前回の記事から実に8ヶ月ぶりです笑。仕事やその他もろもろに力を入れてブログの更新を疎かにしていましたが活動を頑張った分、ブログにかける内容がまたボチボチと溜まってきました。
そんなわけで今回はモバイルアプリ開発で使うSwiftの講座を紹介していこうと思います。
筆者は開発に関する知識がほぼ0の地点から
Udemyを使った独学4ヶ月でベンチャー企業のwebアプリとモバイルアプリを作成するレベルまで到達することができました。
Swiftはモバイルアプリの中でもiOSアプリを開発する際に必要な言語です。
なのでAndroidアプリを作りたいよって方はkotlinなど、別の言語を学ぶ必要があります。
実は筆者が最初に学んだ言語はswiftではなくJavaScriptでした。また、モバイルアプリを開発する際には上で説明したように、本来別々で開発する必要があるのですが、それらを同時に作れるフレームワークのReactNativeを最初に学びました。
ではなぜ今更Swiftを学ぶのかというと一つは、会社で使っている言語がSwiftだからです。大企業故に、規模が大きくハイブリッドであるReactNativeではバグが起きた際の特定などが複雑だったりするために、元になっているネイティブ言語のSwiftやkotlinを使って別々にアプリを開発しています。また、どちらかというと、ReactNativeが出るよりも前に当然Swiftがあるわけですから、企業の実績としてはSwiftの方が多いから当然ともいえますね。
そして、実はもう一つ目的があって、それは筆者がネイティブアプリに関する知識がないため、今後の応用を考えてハイブリッド言語の元になっているネイティブ言語を学ぶことに大きな価値があると考えたからです。そして、学びのプラットフォームUdemyを使うことで効率を加速化することができます。
では前置きが長くなりましたが本題に入りましょう。
筆者の簡単な自己紹介です。
簡単な自己紹介
はじめに
筆者がご紹介する講座は英語がメインになっています。
英語とは言っても字幕を日本語にして勉強することが可能なので心配しなくて大丈夫です。
心配するどころかいくつかメリットが存在します。
その方法とメリットはこちらからどうぞ。
-
【永久保存版】英語字幕しかない講座を日本語字幕にして勉強する方法を解説する【Udemyセールとおすすめ講座】
続きを見る
No1. 初めてのSwift、まずは広く浅くでいいので動くアプリを作ってみよう
この記事を閲覧している方々のほとんどがプログラミング未経験、もしくは他のプログラミング言語を触ったことはあるけど広く浅くです。
というパターンが大半なのではないかなと思います。
筆者も新しい言語を学ぶ時には必ず基礎から簡単なアプリを作ってから中級者向けに用意されたクローンアプリなどを作って全体の感覚を掴むような手順を踏んでいます。そこでまずお勧めしたいのがこの講座。
5万件以上のレビューがついて 4.8/5.0という異例の講座。これひとつで完結しているのでは?というレベルで完成度が高いです。
また、本当の基礎から始まって、各セクションでアプリを作りながら新しい知識を取り入れていきます。特に初心者の方はずっと基礎を学ぶのではなく、アプリを動かしながら、出来るを実感しながら進められるのは大きなメリットだと思います。どうしても座学でインプットばかりだと勉強は続かないのが当たり前です。それをこの講座は毎回違うアプリを開発しながらモチベーション管理も同時にやってくれるのがいいところですね。
ちなみにコマンドラインやGithub使い方など、アプリ開発を行う上で欠かせないその他環境の使い方も学べるのもお勧めです。
そのほかにも、みなさんがアプリを使う中で必ず目にする課金の機能だったり、機械学習のコンテンツや、AR,VRの機能まで学ぶことができるので、自分が応用したい技術について手がかりを見つけるきっかけになると思います。
No2. ストーリーボードを使わない開発。Twitterをクローンしてみよう
さて、No1をこなすだけでも多分時間がかかると思いますが、基礎を学んだら次は実際に世に出ているアプリのクローンを作成して規模感と複雑さを学んでみましょう。
こちらの講座です。
Twitter iOS Clone | Swift 5/Firebase | No Storyboards | MVVM
そして、今までストーリーボードメインで講座を勉強していたと思いますが、この講座ではなんとStoryBoardを使いません。
ストーリーボードを使わないメリットデメリットはなんでしょう。
おそらく個人開発ではストーリーボードを使うメリットを感じることの方がおそらく多いと思います。
しかし、みなさんが転職などで実際に企業で働き、複数人数での開発になると話は変わってきます。
No1の講座でGitを学んだ人は次の説明が理解出来ると思いますが、Git使ったことがないよって方は少し、理解しづらいと思いますのでNo1の講座のGit,githubを学ぶか、こちらの講座を使ってGitとはなんたるかを理解してから読むことをお勧めします。
さて、個人で開発する上ではさほど気になりませんが、複数人で開発する場合には、修正した際の差分がとても大事になります。
ストーリーボードを使わずコードでUIを生成している場合、変更があった場合にはSwiftのコードを見れば、どう変えたかは一目瞭然です。例えばAutorayoutの左から10固定を15にしたなんかはすぐにでもわかると思います。しかし、ストーリーボードでUIを構築している場合、その差分というのはXML上に出てくるため、理解、把握するのが非常に難しいです。
特にストーリーボードをいじったつもりがないが、少しずれてしまった場合でも差分が出るのでよくわからないが差分を取り消して最初からやり直しなんてことにもつながります。
しかし、ストーリーボードの方がUIの見た目をそのまま理解出来るのでそこはいいところですね。
つまりどっちがいいとかではなく、両方きちんと経験をして自分なりの視点を持つことが大事です。ちなみに筆者はReactを使ってきてコードベースでUIを作成してきたので、最初はストーリーボードを使って見た目を直接構成できることに非常に感動しました。
しかし、複雑なレイアウトを構築する場合、ストーリーボード上で設定をして、さらにSwiftファイル上でも変更をする必要があるなど、情報の散らばりが難しいなと感じるようになりました。
それでもUIが気軽に見れるので大半の個人勉強ではストーリーボードを使う方が慣れていれば特に問題はありません。が、実際の案件ではストーリーボードは画面遷移だけだったり、本当に一切つかわないといった形を取っています。
自分の置かれる環境にもよりますが、個人的には両方慣れて、使えるに越したことはないかなといった感想です。
恐らく、本当に初心者の方がこの講座に手を出すと挫折するかもしれません。
No1ではUIそのまま見ながら編集できましたがこの講座では頭の中にUIをイメージしながらどんどんアプリを構築していくため、慣れていないと非常に難易度が高いです。
写経するだけならそこまで苦労しないと思いますが、自分でボタンを中心に配置して、その下16の位置にラベルをフォントサイズ16で色が赤でみたいなのを実際のアプリ開発ではやっていくことになります。
ただし、この講座を乗り越えた後ではUIに関する理解度が段違いだと思います。また、こういう頭の中で思い描く力というのはある程度慣れというのもお伝えしておきます。今でこそアプリ開発2年目に差し掛かっている私ですが、最初は中心に配置や、マージンの取り方、パディングの取り方にとても苦労していました。
お勧めは自分の中でパターンをいくつか持っておいて、それに該当するUIを構築したいなと思ったら過去のコードを見て、そこから段階的に目的の形まで持っていくことです。
プログラミングのいいところの一つに、過去の実績や、コードが未来の自分を助けてくれるところにあると思っています。
リアルアプリTwitterのクローンで本格的なアプリ作成をする
No3.アニメーションをつけて、リッチなアプリを作ろう。Uberクローン
さて、実質No1,2が終われば、基本的に学ぶべき知識としては一旦学んだ形になります。ただ、まだここまでで学んでいないものとしてはアニメーションによるリッチなアプリケーションです。
Programmatic Uber Clone App |Swift /Firebase| No Storyboards
必須ではないけど当然知っていて、最適な場所で使いこなせるエンジニアでありたいですよね。
そこで次はクローンアプリを作りながらアニメーションも学んでいきましょう。アニメーションを作ればその分コードも肥大化し、適切なコード管理も必要になるため、アーキテクチャについてもしっかり学びましょう。
No4.Lineのようなメッセージングアプリ作ろう
みなさんが使うアプリの中で、ほぼ毎日使うアプリ、Lineがあると思います。最後の締め括りにこちらを紹介して終わろうと思います。
また、最後にこのアプリを紹介した意図として、StoryBoardを使った本格的なアプリについても学んでおいた方が良いと考えて紹介をしました。
iOS 14 & Swift Chat Application Like Whatsapp Viber Telegram
このアプリではFirebaseともうひとつ、ローカルにデータを保存するためにRealmという物について学べます。No1でも出てきますが、より本格的な使い方について学ぶことができます。全てがデータベースが必要かと言われたらそんなことはないんですよね。最悪アプリの中のローカルデータベースだけで十分なことは多々ありますし、通信量削減のために両刀のアプリの方が多いのではないでしょうか。
おまけ、その他クローンアプリ講座(Instagram, Tinder)
最後に私が紹介している講師の方が出している講座を後二つ紹介します。メインパートではNo2でクローンアプリでステップする講座を紹介しました。
しかし、中にはTwitterよりInstagram,Tinderの方が動きよく知ってるからやりやすそう。というかたもいることかと思います。
どれもクオリティの高い講座なのでNo2では個人が興味湧いたものを実践してみるとよいでしょう。
というわけで以下に二つ講座を貼っておきましたのでどうぞ!
Instagram Firestore App Clone | Swift 5 + iOS 14 | MVVM
まずはInstagram。筆者はInstagramよりもTwitterの人だったので選びませんでしたが、好みで選ぶと良いでしょう。
Tinder
Tinder Firestore Clone | Swift 5 & iOS 13 | MVVM
それよりもマッチングアプリだ!という方もいるでしょう。そんな方のためにTinderもはっておきます。
まとめ 技術を習得したら次は本格的なアウトプットへ進もう
いかがでしたでしょうか。
今回はiOSアプリ開発に欠かせないSwift講座について紹介をしました。
アプリ開発に必ずSwiftでなくてはならない。というわけではありませんが、少なくともアプリ開発の案件としてSwiftがしっかりかけるコーダーは引っ張りだこなのは間違いなしです。
今回の記事では基本的に講座メインで学んでいきましたが、大事なのは学んだ技術から自分が何をアウトプットするかです。転職活動などを見据えている方はこの記事で実践したあとに、しっかりと何かひとつポートフォリオとしてアプリを作ることをお勧めします。
企業へのアピールになることはもちろん、講座でサクサク進む感覚とは裏腹にある実装をするために途方もなく時間を使う経験も得られることでしょう。
それではまた次の講座でお会いしましょう。