Android チームの宮下です。
昨年の12月に Android アプリをリニューアルしたことはこのブログでも報告済みですが、今日はその後と今後の Android アプリの動きについてのお話です。
今やっていること
バグ修正
リリースしてから約 4 ヶ月が経とうとしていますが、その間に行っていたことは主に NPE との戦いでした。 Java を使ってプログラムを書くという特徴がある Android アプリ開発なので、気をつけていたつもりでも NPE の発生でクラッシュが発生していました。ご迷惑をおかけしておりますが、今も発生が確認されたものから 1 つずつ潰していっています。
機能改善
バグ修正だけでなく、機能改善も進めています。例えば、タイムライン上に表示される Floating Action Button の視認性の向上や、コードのリファクタリングによる性能の改善などがあります。
最近公開したバージョン 3.1.2 ではファイルアップロード機能の改善を行いました。 Google Drive, Dropbox, Box, OneDrive アプリがインストールされている場合、これらのアプリにあるファイルを ChatWork アプリのファイルアップロード機能から、ChatWork 上にアップロードすることができるようになりました。
また、Android の共有メニューから ChatWork アプリを選択して、ChatWork に対してコンテンツの共有を行えるようにする機能は今後実装予定です。
UI 改善
より Material Design らしい形になるよう、 UI の改善を進めています。
様々なアプリが Material Design を取り入れ、色やアイコンなどで自社製品のブランディングをしつつ、全体的な操作感がアプリが異なっても統一されてきています。 ChatWork アプリでも可能な限り Material Design らしい UI をベースにして、他アプリとの操作感を統一しています。少しずつですが、より違和感のない形に改善を進めています。
これからやろうとしていること
これまで ChatWork では iOS / Android アプリ開発を Titanium Mobile を使って行っていました。しかし、サービスの成長に伴って、機能開発や採用戦略などを加味し、昨年からフルネイティブ開発にシフトしました。
iOS / Android で人員を分割したため、 Android 開発のメインはほぼ 1 名体制だったのですが、 3 月から Android SDK ポケットリファレンスの著者である「重村 浩二 (しげむら こうじ)」さんがジョインし、本格的な開発体制構築などを行っています。
上記バグ修正や機能改善も、重村さんの手によって多くの作業が行われており、開発スピードが増してきているのを実感しています。
そんな体制が作られつつある Android チームですが、今後 ChatWork として Android アプリでやろうとしていることを紹介します。
テスト環境の構築
CircleCI を使った自動テスト → DeployGate を用いた検証用アプリの配布環境の構築と運用を行っていきたいと思っています。既にAndroidJUnit4
を CircleCI の環境の上で動かしたり、成果物としてレポートを出力し、ChatWork に通知する……というようなところまでの整備を行っていて、導入を始めています。
本格的な導入はまだこれからですが、その他ツールと連携を強化し、テストを取り巻く環境そのものを整備していきます。
次期バージョンへのシームレスな移行
現在リリースしている ChatWork アプリは PHP で書かれた Web API と連携します。しかし、弊社は糖質制限と DDD でおなじみの「かとじゅん」さん主導で Scala への移行を進めており、次の Android アプリではこの Scala 製 API を使用します。
これまで、ChatWork の Android アプリはメジャーバージョンアップごとに UI が大幅に変わっていましたが、次期バージョンでは UI 変更のインパクトをできるだけ小さくしようと思っています。
現在のアプリの UI を改善しつつ、次のバージョンへシームレスに移行できるような形にしようと思っています。
理想の開発体制で Android アプリ開発したい方、募集中
他にも今はここでは書けないやりたいことは沢山あるのですが、何せ人が足りていません。次期バージョンの開発ではできる限り「こんな開発体制で開発できたら良いよね」という理想を、現実のものとして開発したいと思っています。
- Min SDK Version はできるだけ高く……
- RxJava / RxAndroid を導入したり……
- しっかりテスト書いて、自動化したり……
などなど、色々あると思いますが、まだ人数も少なく、体制作りから行うような状況だからこそやれることがあるはずです。
そんな環境で Android アプリ開発をやってみたい人を大募集中です。エントリーフォームはこちらです!エントリーをお待ちしております。