sugiken のメモ帳

知ったことを書いていく

iOS エンジニアになろうと思って半年でやったこと

前提

kentear.hatenablog.com

この記事を書いたのが8月。ただ実際には2021年7月には freee 内で web エンジニアから iOS エンジニアになるべくチームを異動していた。それから半年ほど経ったので自分がやったことを備忘録がてら書いていく。

どんな環境

freee のモバイルチームは1つ。プロダクトは複数あるが、1つのチームで横断的に各プロダクトの開発をおこなっている。自分は一番大きなサービスである freee 会計をメインで担当することになった。freee 会計は一番歴史のあるプロダクトなだけあって、コードも古めのコードがあったり、アーキテクチャが定まっていない時に生まれたと思われるコードもある。
ここ最近 iOS12 のサポートを切ったばかりなので、SwiftUI も使っておらず(部分的に使ってたっけな)UIKit を使って Storyboard で UI を組み立てている。

やったこと

文法

ど定番だと思う。Kindle版と紙媒体の両方で買った。もっとも辞書的に使っていて、異動直後は常に手の届くところにおいていた。

AutoLayout

AutoLayout って最初の関門だよね。freee の図書館にあったので借りて読んだが、若干内容は古い気はした。結局そんなに読んではいない。

AutoLayout は登場人物が多い(UIKit, Constraints, その他設定項目)!!これらを業務の中で色んな開発をすることで少しずつ学んでいて、まだ全体像を完璧に理解した気はしない。 あまりに複雑なレイアウトを自分一人で実装できるかは自身がないが、freee が業務で扱うくらいのレイアウトならほぼ大丈夫になったのでok。

ReactiveSwift

freee 会計で採用している。最初は「概念はわかるんだけどコードが読めん」という感覚だったので苦戦した。

qiita.com

このシリーズ化された記事はほんと何度も読むことになった。
あとは MyTestApp を作って ReactiveSwift のいろいろなメソッドを使ってみたがまだ和解していない。

アーキテクチャ

プロダクトのアーキテクチャを見直す必要があり、自分がそのサブメンバーに選ばれた。iOSを0から作ったことないし経験の浅い自分でも「勉強がてらやりたいっす」って言ったらやらせてくれる会社ありがてー

peaks.cc

この本ほんとすごい。iOSアプリのアーキテクチャがメインなのは当然なのだが、そもそもアーキテクチャってのはあらゆるシステムの共通項をまとめて生まれるよねっていう考えから、web が生まれる少し前の GUI アーキテクチャの歴史とかも学べて純粋に読んでいて面白い。 若干同人誌らしいが、全然そんな気はしない。

SwiftUI

freee で今触ることはないがこれからの iOSGUI の主流になることはほぼ確定だ(よね?)。
2冊読んだ。ただどちらも無駄だなと思ったことはないが、サラッと読んだ時点で「これはさっさと手を動かしたほうがいいな」と気づかせてくれた。それだけ SwiftUI の敷居は低いと思う。

実践

会社で

細かくは書けないが、新機能の開発プロジェクトやバグ対応をした。他人のコードレビューもしているので、単なるコーディングはある程度できるようになった感覚。設計はまだ一人ではやったことはない。

プライベート

web.rep-rikkyo.com

これのアプリを作ろうと土日に開発している。Rep はいつだって僕の練習場所を提供してくれる。 SwiftUI や PromiseKit など、本業では触ることない技術に触れる機会でもある。PromiseKit を使用したことで非同期通信のコードの見通しは良い気がしている。少なくともリアクティブプログラミングよりかは自分は好きだ。

ファーストリリースは Read 系中心だが、最終的にアプリを強化していってユーザーの定着率を上げたい。

なお私用スマホAndroid

未だわからないこと

実装とはちょっと離れる設定とか

xcconfig とか未だに何なのかわからないし、Schema ファイル(?)とかも何なのかちゃんとはわかっていない。freee の業務ではここをがっつり触るということがないので仕方がない。

アプリのリリースの仕方

freee のアプリのリリースは社内のドキュメントとかを見たらわかる。
自分がわからないのは、0からリリースする方法。これは Rep のアプリをさっさとリリースして勉強していくが、きっと審査に落ちるんだろうなー。

最後に

備忘録がてらっていうけど、将来見返す気はしない。