2023年10月15日日曜日

flutterについて、学んだことなど

Swiftについて学んできたため、つい比較してしまいがちです。
SwiftUIと比較して、書いてみました。

  • 似ているようで似ていない
  • flutterには、SwiftUIにおける「View」という概念が、「Widget」と呼ばれるものになる
  • SwiftUIのようにWidgetの中にWidgetを入れ子にしていく、これを「ラップ」と呼ぶようだ
  • SwiftUIにおけるモディファイアで各プロパティを指定するのではなく、Widgetの引数に含まれてゆく。そのため、SwiftUIに比べると読みづらく感じる
  • 状態を持たないStatelessWidgetと、状態を持つStatefulWidgetがある
  • このStatefulWidgetが厄介者で、扱うために状態用のクラスを作成したりと、更に読み辛く、書き辛くしている
  • そこで便利なライブラリがRiverpodとHooksである。初学者がこれを学ぶには、YoutubeでルビーDogさんの動画を見ると、すごく分かりやすいと思う。
  • flutterは主に外部のライブラリを導入して扱うことが主であり、いろいろなライブラリに関する知識が重要に感じる
  • このライブラリ導入が手間に感じるが、実は素晴らしく実装を簡単にしてくれるものがあり、使ってみると案外悪くない
  • しかしやはりネイティブの機能をフルに扱えないため、別途ネイティブでの実装が必要になる

入社から現在まで!

 さて、2023年7月にモバイルアプリエンジニアに転職いたしましたが、はや3ヶ月・・・あっという間ですね

入社から現在までの経過をざっくり記しておきたいと思います!

7月

  • 入社日は、手続きやPCセッティング
  • 翌日より、週3日出社、週2リモートでアプリ開発研修開始
  • 研修では、仕様書に基づき天気予報を表示するアプリを作成し、テストケース作成、結合テストまで実施(Swift及びSwiftUIの2パターン作成)
  • 入社前から研修させて頂いていたので、7月はほぼSwiftUIのみ
  • 先輩にレビューしてもらいつつ作成
  • 月末、案件がSwiftからflutterになりそうで、この案件にするか、別にするか確認された!しかしこれはflutterも学べると良いチャンスだ!と思い、承諾!
    頑張ります!
8月
  • 半人月(10日程度/月)で初めての案件に参画
  • SwiftUIが使用されていた
  • アプリは大部分は既にできており、不具合修正や簡単な機能追加に携わることができた
  • このアプリをflutterにするとのことで、残り半人月でflutterの学習を行った
    なお、この時点でflutterは全くの未経験でした
  • flutterでよく使われるRiverpodなどの状態管理を扱えるようになるべく、まるばつゲームアプリを作成!完成したのは9月半ばで、学び初めから約1ヶ月で作りました!
9月
  • 今月から1人月に!
  • そして出社が週1日に!
  • 初めてApple Watchアプリにも携わり、iPhone側との通信の仕組みや、ワークアウト周りについて少し学ぶことができた
  • 中旬までSwiftUIの方の機能追加や不具合修正、携わった部分のテストケース作成
  • その後、flutter版のコンポーネント作成から開始
  • 2週間ごとのスプリント(?)で1機能実装していくことに!
10月
  • 今月からフルリモートに!!
  • 1回目のスプリント終了!デザインやバックエンド側も未完成、アプリ側は仮デザインでUIのみ完了・・・?割と急がないと大変だ!
  • 2回目のスプリント開始!またも仮デザインでの実装、1回目のスプリントも継続で、デザイン変更点が多く、修正に時間が・・・。
  • API設計(大まかな叩き台?)作成を依頼され、APIについて少し学んだ!
  • バックエンドの人が副業のため、リーダーがバックエンドも兼ねる・・・かも?
と、ざっくりとした現在までの経過です!

もっと書くことあったと思うけど・・・こまめに書かないと、書ききれませんね・・・

こんな感じで、iOSエンジニアも目指す!からの、flutterを学ぶ機会を頂けたので、なんでもできるモバイルアプリエンジニア目指したいですね!

かなり間が空いてしまいましたが・・・実は・・・?

かなり間が空いてしまいましたが、みなさま、お久しぶりです。

実はなんと・・・

都内のSES(及び受託開発も行う)企業様より内定をいただきまして、2023年7月よりモバイルアプリエンジニアとして転職いたしました!

ようやく、エンジニアデビューできました!!
2022年9月の転職活動開始から、2023年3月の内定獲得まで、実に半年かかりました・・・

エンジニアデビューまでをまとめると、こんな感じです!
  1. 2015年4月、プラント設備メンテナンスの会社(建設業)に新卒入社。
    発電所設備のメンテナンスを行う部署で、作業責任者として工事を担当。
    体育会系な雰囲気や古い組織体質が合わないと感じつつも、頑張る。
  2. 2021年12月、iOSアプリを作ってみたいと思い、M1 Macbook Airを購入し、書籍とUdemyで学習開始するも、情報の古さで苦戦。
    福利厚生や給与、人間関係は特に悪く感じておらず、転職するか趣味とするか悩みつつ、ぼちぼちと学習する。
  3. 2022年5月、未経験からのエンジニア転職は30歳超えると厳しいとの現実を知り、また短期間でのスキルアップ及び転職を目指し、iOSアカデミアという、iOSアプリに特化したオンライン制プログラミングスクールに入校。
  4. 2022年9月、初めての個人アプリ(コロナ禍における行動履歴をメモするアプリ)をリリース。
    スクール卒業と共に、スクールが提携している転職エージェント頼りでの転職活動を開始。しかし、iOSアプリエンジニアとしての未経験可能な求人が限りなく少なく、エージェントからはJavaやWebなどの求人を勧められる。平日しかやり取りできないなど、やり取りに時間を要したり、希望ではない求人が多く、次第に懸念を感じ始める。
  5. 2022年12月、これではいつまで経っても転職できないと感じ、WantedryやGreenなどのIT系転職サイトを活用して、自身で仕事探しを始める。
    また現職が忙しさのピーク期を迎え、転職活動が難航する。(残業、休日出勤で、企業様の希望時間に添えず・・・)
  6. 2023年2〜3月、絶賛ピーク機の中、対応して頂いたSES企業様2社から内定を頂く。
    1社目はモバイル以外も全般的に行う企業様でエージェント経由で応募したところ。
    2社目はモバイルアプリがメインの企業様で、自身で応募したところ。
    悩んだ結果、iOSモバイルアプリに携われる可能性が高そうで、かつ面接時の雰囲気が良かった2社目の内定を承諾。
  7. 2023年4月、退職の意向を伝える。現職がピーク期であったため、引継ぎや、転職に伴う引越し等も考慮し、6月退職を希望。
  8. 2023年5月〜6月、引越し先探しや内見、片付け、引越しでバタバタした日々を過ごす。
  9. 2023年7月、転職先に入社!!!
    (長らく入社をお待たせしてしまい申し訳無かったです・・・)
    そして、実は同期入社がいるとのこと!(嬉しい!)でもコロナで初日からお休みのようでした・・・。会える日を楽しみにしてました😆
といった感じです!(長々とすみません・・・🙇)

長くなってしまったので、一旦この記事はここまでとし、また転職から今までの業務で携わったこと、学んだことなどを書いていきたいと思います!

みなさまからのコメント、お待ちしています!