実務経験
学生アルバイト(iOSエンジニア) - 株式会社L is B
iOSエンジニアとしてアルバイトで実務経験を積んでいます。
- 技術スタック: Swift, UIKit
- 概要: 自社プロダクトのiOSアプリの機能実装及び保守
- 担当領域:
- 大きなコードベースを読み解き新機能の実装やバグ修正
- 既存のObjective-CのコードをSwiftのコードに置き換え
- ユニットテストやテスト仕様書の作成
- Git及びGitHubを使ったチーム開発フローの実践
詳細な学び
大規模なプロジェクトへの向き合い方: 10年以上続くプロダクトの膨大なコードベースを読み解き、既存の設計を活かしながら実装する力を身につけました。
レガシーコードの扱い方: Objective-CからSwiftへの置き換えという実務ならではの作業を担当しました。品質を担保しながら移行する設計判断や、型情報のない変数をstructへ移行する際の影響範囲調査・タスク分割も経験しました。
複雑な機能設計の経験: 複数のAPIと内部DBキャッシュを組み合わせた機能実装を通じて、既存の挙動を壊さないよう変更箇所を把握しながら設計・実装を進めるプロセスを学びました。
チーム開発フローの実践: コードレビュワーを意識したコミット粒度・PR構成の工夫や、git rebase / fixup を活用したコミット管理を習得しました。
タスク見積もりと自己管理: 未調査の複雑なタスクで工数管理が甘く、最終的に社員に引き取ってもらった経験から、不確実性を含むタスクの見積もり精度と早期エスカレーションの重要性を痛感しました。
プロダクト開発の手伝い — 株式会社FeaSion
株式会社FeaSionで社内向けプロダクトの開発の手伝いをおこなっています。 主にバックエンド開発をしており、使用しているフレームワークはSwiftのVaporです。 あまり浸透していないフレームワークであるため、調査も含めて作業をしています。
- 技術スタック: Swift, Vapor, Docker, AWS
- 概要: 社内プロダクトのバックエンドの実装及び保守
- 担当領域:
Vapor全般の調査- OpenAPIなどバックエンド開発のためのライブラリなどの調査
- 機能の実装
- ユニットテストの作成
- デプロイするためのDockerfile
- CI実行やデプロイのためのワークフローの実装
詳細な学び
浸透していないフレームワークの調査: Swiftの
Vaporはほとんど企業でプロダクトとして扱っている例がなく、情報もほとんど出回っていません。ドキュメントも用意されていますが情報が不足しているため、Vaporのソースコードを読んで自ら調査しています。 この経験から、情報が少ない技術でも自力で調査しプロダクトに導入する力がつきました。技術選定: Swiftは基本的にApple製品のプロダクト開発に使われているため、それ以外の専用OSSは少ないです。 Apple公式のOpenAPI Generatorの採用を検討しましたが、実験プロジェクトで検証した結果、機能が不足しておりプロダクト開発では使えないという結論に至りました。 この経験を通じて、ライブラリの導入可否をメリット・デメリットで判断する技術選定の力がつきました。
記事の執筆: Vaporに関する記事がほとんど存在せず、あっても導入程度の記事しかなかったため、プロダクトに導入するために必要な情報をZennで執筆しています。 自分の知識整理にもなりますし、同じ課題にぶつかる人の助けにもなればと思い執筆しています。
プロダクトの運用経験: デプロイ用のDockerfileを作成・チューニングし、自動デプロイワークフローを実装しました。 私が関わっているプロダクトではこれを使っていますが、今後はFeaSionのプロダクト全体で使えるようなものにする計画も立てています。 それまで運用を体系的に意識する機会がなかったため、Dockerfileのチューニングや自動化の設計を通じてプロダクト運用の知識を実践的に習得しました。
学生団体としてのプロダクト開発 — トクメモ
徳島大学生のための「トクメモ」というアプリがあり、これを引き継いで開発をしています。 元々は「トクメモグループ」という学内団体が開発していましたが、前年度に活動停止となりFeaSionへ開発を移管しました。 委譲するといっても、技術支援や費用の負担をFeaSionがしていただき学生が主体となって開発及び広告などの運営をするという形になっており、その中でも私はiOS版の開発をメインにしています。
LPページ: https://feasion.co.jp/tokumemo
- 技術スタック: Swift, SwiftUI, UIKit
- 概要: 「トクメモ」の改修及び新機能の実装
- 担当領域:
- アプリの新機能の実装
- 既存処理の改善
- リソースの管理方法の改善
- 保守運用
- UIの修正
- 広告
- ビラ配り
詳細な学び
大学の過半数が使っているアプリの改修の経験: このアプリは、徳島大学生の65%以上が使っており、それだけ大切なアプリとなっています。よって既存の操作感を保ちつつ新機能の実装をしたり品質を上げるという意識をしながら開発をしています。 また、できるだけユーザーの意見も取り入れて開発を進めています。
自分の足でユーザー数を獲得する経験: 入学式の日に新入生のユーザー数を獲得するため、ビラを1000部作成して配布しました。 大学非公認の団体であることによる制限があり500部ほどしか配れませんでしたが、それでも800人ほどユーザーが増えたことを確認しました。
