自己紹介
Swift歴1年ちょっとの文系大学生です。
普段はSwiftUIで個人開発をしていて、UIKitは全くの初心者です。
インターンシップに参加することに勇気が出ないよって方にインターンシップの雰囲気を伝えれたなと思います。
インターン詳細
期間: 9月16日〜9月18日
場所: Abema Towers
内容: 「無視できない!設計が学べるiOSハンズオン」
オフラインでの開催でした。
1日目
10:30 オープニング
12:30 ランチ
13:30 開発スタート
16:30 1on1 @メンター
18:00 夕会
18:30 日報タイム
2日目
10:30 オープニング
12:00 ランチ
13:30 開発スタート
16:30 1on1 @人事
18:00 夕会
18:30 日報タイム
最終日
10:30 オープニング
12:00 ランチ
15:00 コードフリーズ
15:00 資料作成開始
16:00 成果発表会
18:30 懇親会
内容詳細
音楽再生アプリを運用できる状態にリファクタするというのが課題でした。
初期のコードはFatVCになっていて運用できない「悪いコード・悪い設計」になっていました。
ではどのようなコード・設計が「良いコード・良い設計」なのでしょうか
今回のインターンシップではこのように定義されていました。
- 責務がしっかりと分離されている (関心の分離)
- View層 と ロジック層 がしっかりと分離されている
- ディレクトリの構成もしっかりとできている
- テストしやすい (機能追加・仕様変更の際に副作用に気付きやすくなる)
- MockでDIしやすいように作れているか
- アクセス修飾子もしっかり意識できている
- internal で公開するものと private で閉じるものがしっかりと意識できている
上記の「良いコード・良い設計」になるようにアーキテクチャを決めてそれに沿って設計をしていくといった内容でした。
参加して良かったこと
モチベーション爆上がり
まずモチベ爆上がりします。
実力不足を感じることで勉強意欲が上がります。
同じ分野で頑張ってる仲間と知り合える
これはマジででかいです。
自分は文系大学で開発してる友達がいないので、
インターンで開発友達できてまじ嬉しいです。
チーム開発しようって話も出てきててめっちゃワクワクしてます笑
今後の学習方向を知れる
メンターさんからのレビューで自分に足りてないスキルが何かを知ることができます。
自分が勉強しないといけない事がわかるので最短ルートで成長できます!
今後の課題
- RxSwiftを使えるようにする
- 個人開発アプリを全てMVVMにしてみる
- DIできるよう設計を意識する
おわり
技術的に成長したことはもちろんなんですが、思考的にアップデートされた感じがします。
でも、正直UIKit初心者かつRxSwiftを触ったことのない私にとってかなりきつい内容でした笑
無理にRxSwiftを使うと設計を理解するという目的の妨げになるのではないかと思って、RxSwiftを使用するのをやめたんですけど、ちょっとチャレンジしても良かったかなとも思います笑
直近の目標はRxSwiftを使ってアプリをリリースしたいと思ってます。
実際に運用してみてどれだけ変わったかも記事にできたらと思います!
おまけ
めっちゃ驚いたことがあって共有したいんですけど、
1日目の昼食はしゃぶしゃぶ!!
2日目の昼食は焼肉!!
3日目の昼食は肉弁当、懇親会は居酒屋!!
豪華すぎない?
あとメンターさん達みんなめっちゃ面白くてすごい楽しかった!