SI出身エンジニアのメモ書き

SI出身のレガシーエンジニアのメモ書きです。主にポエム用。プログラミング関連はQiitaに投稿してます。

私がApple(というかiOSアプリの開発)を嫌いになった理由

私はどちらかというと、生まれも育ちもWindowsなのでMacともiOSともほぼ無縁の生活を送っています。
しかしながら、仕事でほんの少しだけiOSアプリの開発に携わる機会がありました。そしてそのほんのわずかな関わりだけでiOSの開発がとても嫌いになってしまったので、その理由を記載します。

ただし、私はどちらかというとWindows信者寄りなのでその分は差し引いて読んでもらったほうがいいかもしれません。

一言で言うと「開発者泣かせ」です。

XCodeで編集したら勝手に保存されている

これは慣れの問題かもしれませんが、一般的なWindowsソフトであればちょっと設定を変更したり、コードを少し変えたりしたけどやっぱりやめたいという場合、保存せずに終了したら保存されません。しかし、XCodeの場合、編集した時点でデフォルトで保存されており、キャンセルしたい場合は明示的に変更を取り消す必要があります。

これで一番困るのが、XCodeが何らかの事情でフリーズした場合に、とても中途半端な状態で勝手に保存されていることです。もはや最初の設定がどうだったかもわからないし、一度XCodeを終了してしまったので、元に戻すこともできないという状態に陥ります。

え?バージョン管理ソフトを使っていれば問題ない?

・・・はい、それは完全にその通りです。文句言ってすみませんでした。

XCodeをバージョンアップしたらビルドが通らなくなる

これはどちらかというとSwiftの問題です。 Swiftは基本的に後方互換のないアップデートを行います。さらに、新しいXCodeでは古いSwiftがビルドできなくなります。

そのため、何らかの事情でほんの少しだけ手直ししたい場合でも、XCodeおよびSwiftのバージョンがあがっていると大幅な修正が要求されます。 頻繁に継続アップデートしているアプリならまだしも、一度リリースしたら滅多なことでは触らないようなアプリの場合、メンテナンス負荷が異常にあがります。

これが本当に殿様商売すぎて嫌です。開発者の労力を何だと思っているのか。こっちは趣味じゃなくて仕事でやっているので、できるだけ本質的でない部分にはコストをかけたくないんです。それなのに後方互換を切り捨てるせいで、本来やりたい変更とは別のところでコストが発生します。

アプリの審査

人力でアプリを審査することが必要な理由がわかりません。 システムで自動的に一定の基準をもって審査するというのであればよいと思います。

しかし、人が審査するので以下のような問題点が発生します。

  • 1回目に指摘されなかった内容が修正して再提出したときに指摘された
  • 割り当たった担当者によって指摘してくる内容が違う
    (バージョンアップして再審査に出したときに前バージョンでは指摘されなかった内容が指摘される)
  • 審査にかかる時間が不明確
  • 人とのやり取りが発生するので、差し戻されると返事を1往復するだけでもそれなりの時間がかかり、リリース計画が立てづらい

しかも、人手で審査している割には世の中に出回っているアプリには結構課金詐欺アプリみたいなのもたくさんあります。
本当にその審査必要ですか?

ベンダーロックインしまくっている

  • iOSアプリの開発はMacがないとできません。
  • 審査に出すのもMacがないと出せません。
  • アプリの配布がストア経由でしかできません。
    (※組織内限定なら別の方法もありますが)

どのメーカーも多かれ少なかれベンダーロックインはあるんで構わないんですが、iOSだと比較対象がAndroidになってしまうのでどうしてもこういう感想になっちゃうんですよね…。

頻繁にディスプレイサイズを変えてくる

OS側で吸収して調整してくれればいいんですが、アプリの実装側で調整が必要というあたりがどうにも気に入りません。
しかし実装方法次第ではOS側で吸収してくれる(?)ようなので、実装側の問題もあるのかもしれません。
iPhoneX対応してなくても審査通してくれるなら問題ないんですけどね!

以上、完全にただの愚痴でした。