# 医療系メディアのアプリ開発プロジェクト
## プロジェクトの概要
業務内容: 既存のiOSアプリとAndroidの追加開発・運用
## 使用言語:
iOSはSwift(4.0 ~ 4.2)とObjective-C、
AndroidはJava8とKotlin、
サーバーサイドはSeasar2によるJava8
### 開発環境周り
Xcode10.1, Android Studio, GitLabCI, Slack + チャットワーク
### チケット管理
Confluence, Jira, GitLab
# 主な業務内容
iOSの追加機能開発とSwift化対応をメインに担当しました。
既存のソースコードはUITestを導入していましたがUnitTestは導入していませんでした。
そのため、Model部分のメンテナンスが非常に難しいと判断し私のアサイン後にModel周りからUnitTestを導入しました。
具体的にはまだAPIのデコード時にCodableを導入しておらず直にデコードされていました。その部分にCodableを導入するのですがそのリファクタリング時にUnitTestを書くようにしました。JSONをUnitTest用のフォルダにMockファイルとして配置させそこのテストが通るように施しました。
テストを書いてからCodableに書き直すことでJSONのデコード部分でデグレが起きないことを確認できるようにしました。
このようにすることで安全に過不足なく新技術を導入することができたためこのタスクを通して開発メンバーから信頼されるようになりその後の重要な課題も任されるようになりました。
その後にAPIの通信ライブラリがObjective-C時代のライブラリのAFNetworkingがまだ残っていたためこちらをAlamofireに置き換えるタスクもこなしました。
このように既存にある技術的負債を返済することがメインの業務となりました。
Androidの方は追加機能開発をJava8をメインにして開発しています。
新規画面の開発はKotlinを使うように推奨のプロジェクトなのでKotlinの方がメインとなります。
またリファクタリングを通してJava8→Kotlinの書き換え業務も経験しました。