2022年4月からiOSアプリ開発の業務を始め、1年経ちました。
経験したこと、分かったこと、感想をまとめます。
行った業務
様々な業務がありましたが、主にAPIを叩いてサーバーから受け取ったデータを加工してUIに反映するという基本的な流れを、色んなパターンで実装してきました。
初めてのことだらけで苦戦だらけでしたが特に
- Actionを用いた非同期処理
- Viewの制約の付け方
に苦戦しました。
Actionを用いた非同期処理
ActionというRxSwiftとともに利用するライブラリがあります。
これはInputを受け取ってworkFactoryというクロージャを実行し、OutputをObservableとして返します。
このライブラリに慣れるまで時間がかかりました。
Viewの制約の付け方
親子関係のView同士や、兄弟関係のView同士の制約をつける際に、AndroidだとConstraintLayoutを使って制約をつけますが、iOSだと全てのViewに制約をつけられます。
その制約をつける方法にはStoryboardでつける方法と、コードでつける方法があり、AndroidのConstraintLayoutに慣れてしまっているせいか難しく感じます。
SwiftUIへの移行
UIKitの世界からSwiftUIの世界へ少しずつ移行していく作業をしています。
VCとVMの修正
レイアウトファイルで作成済みのViewをSwiftUIViewで同様のViewとなるように作成し、既存のVCでそのSwiftUIViewを表示します。
よってVCがVMからデータを受け取ってSwiftUIViewに渡す必要があるため、VCとVMを修正する必要があります。
デグレしないように気を使って修正しています。
描画回数の確認
複雑なViewでは、SwiftUIViewの描画回数が多くなりスクロール時のかくつきなどのパフォーマンスの低下が起こりました。
その場合はSwiftUIViewに渡すパラメータを調整し描画回数を少なくするように調整しました。
その他の業務
PRのレビュー
同じチームのメンバーがだしたPRのレビューをしています。
PRを確認することでSwiftのコードの書き方やiOSの書き方を知ることができるので、じっくり確認しています。
ただし、指摘するために知識が必要になるので、調査と勉強にも時間を費やしています。
動作確認
iPadのユーザの割合が低くはなく、iPadのみで起こる不具合や表示崩れがそこそこあるため、UIに関する動作確認ではiPad(実機)でも確認しています。
iOS、Android両方するメリット
iOS、Androidの仕様の把握
例えばAndroidに存在する仕様書がない機能をiOSで実装する必要があるとします。
この場合、Androidの仕様を知っている人を探して聞くか、コードを読んで仕様を把握する必要があります。
Androidのコードを読んで理解する時間が短いと、知っている人を探して聞く必要がなくなり、自分で仕様を把握できるので楽です。
iOS、Android両方担当する
小さい機能を作る時は、一人で一気にiOS、Android両方作る方がコミュニケーションが発生しないので効率が良いと感じました。
最後に
同人誌の執筆
技術書典14に当選したのでサークル参加します!
既刊のエンジニアのための英単語辞書の続編となる新刊を出す予定です。
iOSアプリ開発をする上で知った英単語を記載しています。
今は中身を書き終え、校正と表紙の作成をしています。
具体的な内容は次の記事に記載します。
挑戦のバランス
いきなり複数のことに挑戦したり、挑戦する幅が大きすぎるとしんどくなり業務を楽しめなくなります。
しかし全く挑戦がないと成長しなくなります。なので少ししんどいぐらいが良いと感じています。
iOSアプリ開発へのチャレンジは少ししんどいぐらいだったので、ちょうど良かったです。
これからも少ししんどい状況を継続していきたいです!