見出し画像

iOSエンジニアを5年やって鍛えられた能力

私が仕事でiOSアプリを開発/運用保守するようになってから今月でちょうど5年になります。

私は元々Webアプリの開発者だったのですが、担当者不在になったiOSアプリの開発担当のお話を頂いて、「世界で一番時価総額の高い企業のプラットフォームのアプリケーション開発、チャレンジしてみる価値はあるのではないか」という俗な思惑で引き受けたところからiOSエンジニアとしてのキャリアが始まりました。

この5年間で価値観や開発スタイルに大きく影響を受けたり、鍛えられたなーと思うことを書き出します。

---

本質を突き詰める

スマートフォンとPCの最も大きな違いは「画面が小さい」ということです。

その小さな画面サイズに対して『とりあえず1画面で全部表示しておけばいいや』という判断をすると、途端にユーザの利便性を損なったアプリになってしまいます。

なので画面に表示する情報は本当に必要なもの以外はできる限り削ぎ落とすことになります。

情報を削ぎ落としていく中で、

・アプリで扱うデータの構造や関連性
・ユーザが必要とする情報に最小のコストで辿り着ける導線

など、答えを見つけるためにはユースケースや解決すべきことの本質について突き詰めて考える必要があります。

先を見越す

AppStoreの審査期間
最近では1~2日程度でAppStoreの審査が通るようになりましたが、数年前までは提出してから審査が完了するまで2週間ぐらいかかっていました。

なので、Androidと同時に開発を始めると、2週間先に開発を完了している必要がありました。
また通信を必要とするアプリの場合、Appleのレビューの際にはサーバサイドもリリースが完了している必要があったり、リジェクトを受けるとまた2週間かかるということで、とにかくゴールから逆算して確実にアウトプットを揃えることが求められる開発でした。

動作環境がユーザの手元、開発者の管理外にある
配布されたアプリは当然ユーザの手元の端末で動作します。

スマートフォンは画面が回転したり、通信環境が悪いところやオフラインで動作するものだったり、とにかくいろいろな状態があります。またエラーやクラッシュが起こった場合など即座に補足することや再現が難しいのです。

事前にいろんな状態での運用を想定することが求められ、それでもカバーしきれない部分はクラッシュレポートを定期的に監視して、謎のクラッシュが起きているところはエラーログ送信をするようにしたりと事前に様々な工夫を凝らす配慮が求められます。

変化に対応する

新しいプログラミング言語、毎年現れる新機能、新しい画面サイズ、Xcodeをバージョンアップしてビルドしないと審査に提出できなくなる…

iOSアプリ開発の仕事はとにかくこういった地殻変動の影響を受け続けます。

なのでこの界隈にいるのは成長意欲が高くて新しい物好きな人、もしくは変化に疲弊しつつもやっぱり心を躍らせてしまう人々です。

どちらにしても、変化に対応しないとエンジニアとして即座に取り残されていってしまう過酷な環境に適応し続けられる強い生物がたくさん生息している感じです。

---

iOSとかAndroidエンジニアの同僚は変わった人が多いので、一緒に働いていても退屈することがありません。

たまに宗教戦争が起こってたりもしますけどね!

この記事が気に入ったらサポートをしてみませんか?