Skip to main content
  1. Histories/

教育機関向けアプリの開発

期間 役割 規模
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を実装するときにエンジニアが意識しているポイント(指で触れるボタンのサイズ、エンプティステート、複数行やオーバーフローの処理など)を知ってもらえた
  • 社内プレゼンス向上の取り組み
    • アプリの仕様を説明する会
    • チーム月報を作成し社内に周知
  • ユーザーインタビュー、学校訪問の同席