教育機関向けアプリの開発
Table of Contents
期間 | 役割 | 規模 |
---|---|---|
2019年8月〜2021年7月 | iOSエンジニア | モバイルアプリエンジニア 5〜10名程 (組織体制は時期により異なる) |
言語 | アーキテクチャ | FW・ツール等 |
---|---|---|
Swift | MVC, MVP, MVVM (複数App) | OSS: Firebase, APIKit, PromiseKit, KeychainAccess, SwiftLint, SwiftGen, Fastlane等 |
高校・中高一貫校向けの教育プラットフォーム「Classi」のアプリ開発に従事。
アプリの安定稼働や、サービスの状態をユーザーが把握できることに注力。
スマホに関する知識を組織にも浸透させていく動きができた。
アプリの安定稼働や、サービスの状態をユーザーが把握できることに注力。
スマホに関する知識を組織にも浸透させていく動きができた。
担当した業務 #
- HTTPステータスコードに合わせたネットワークエラーの表示
- 課題
- APIから返すエラー以外(LB等)のエラーを適切にハンドリングされず、通信エラーの原因がわかりにくい状態になっていた
- ユーザーが対処しにくい、問い合わせで「エラーが出る」としか言えない、調査が困難になる
- 取り組み
- 通信経路中のエラーに対しても適切なエラーメッセージを表示
- APIから返されるエラーは、既存の仕様通りハンドリングする
- 振り返って
- 通信エラーの原因がわかりやすくなった(特にメンテナンス)
- 問い合わせの必要性が判断できるようになった
- APIのエラー設計も、HTTPのステータスコードに則るのが良い
- 通信エラーの原因がわかりやすくなった(特にメンテナンス)
- 課題
- アプリの動作安定化・クラッシュ駆逐作戦
- Crashlyticsのチェックを定例化、クラッシュ箇所を改修
- 1週間あたりのクラッシュ数を、10分の1にした
- 開発環境の継続的なアップデートとメンテナンス
- UIWebView → WKWebViewへの換装
- Firebase向けGoogle Analyticsの対応
習得スキル #
- MVP・MVVMアーキテクチャでの開発
- iPad向けアプリの開発
- XCTestの使用
- WKWebViewの知識
- Cookieの組み込み
- カスタムJSの組み込み
開発で意識していたこと #
- アプリの安定稼働とロギング
- サポートする各OSバージョンのシミュレータでの動作チェック
- クラッシュログの継続的な確認、クラッシュへの対応
- 開発の落ち着いた時期にまとめて対処したり
- クラッシュ対処の時間を設けたり
開発以外の業務 #
- デザイナー向けUIハンズオンの実施
- 目的
- デザイナーとのスムーズな連携、ネイティブらしい体験を作っていくため
- やったこと
- ネイティブのUIを知ってもらうハンズオン
- 振り返って
- デザイナーにUIコンポーネントの名称を知ってもらえた(エンジニアとの共通言語になっていく期待)
- UIを実装するときにエンジニアが意識しているポイント(指で触れるボタンのサイズ、エンプティステート、複数行やオーバーフローの処理など)を知ってもらえた
- 目的
- 社内プレゼンス向上の取り組み
- アプリの仕様を説明する会
- チーム月報を作成し社内に周知
- ユーザーインタビュー、学校訪問の同席