ライブラリで実装した経緯
今回グラフを私のアプリで初めて導入すると言うことでグラフの作成方法としてはフルスクラッチで作成するか、ライブラリで作成するか考えられますが以下の点でライブラリの方が優れているのではないかと言うことでライブラリ実装になりました。
- 棒グラフや折れ線グラフなどユーザーの反応を見て今後変えていきたい
- 結構機能が豊富グラフ上のタップ時の挙動特定の時に値を表示しないなど
- 案件の実装の手間を少しでも軽くしたい
実際に使ったライブラリ
AndroidのグラフライブラリはJetpackになってから公式のライブラリや有名ライブラリがあるわけではなかったのでgithubで一番星の数が多かったvicoと言うライブラリを使いました。
vicoを選んだ理由
- 機能が豊富で今回の案件に対応できそうだったため幾つかのライブラリを見たが基本的に何かしらの機能が足りないことが多かった
- UIがJetpackなのでJetpackのライブラリを使いたかったしxmlのライブラリはメンテがされているものがなかったため
今回うまくいかなかったこと
前提としての開発組織の体制について
組織としては企画とデザイナー・バックエンド・各種クライアントフロントと言う形で構成されており、企画・デザイナーが用意したデザインを実装していくような形で進めていきました。 かつグラフを導入した経験がある人がいない状態で案件が始まってしまった。
組織として辛かったこと(個人的な感想)
- グラフを導入するための事前の選定などが別案件と時期が被っていたので十分に時間が取れなかったこと
- デザイナーのデザインが重要視されている組織なのでデザインされたものをなるべく忠実に作らなくてはならなかった(ライブラリ上実装が厳しいものがたくさんあった)
- 各クラアントでライブラリも違うのでデザインを適宜ライブラリで実装可能なものにデザインを1人で全クライアント分を準備しなければならなかった
- 共通の仕様書を作成するのが大変になったかつ品証項目も自ずと増えてしまった
- 案件の対応画面がユーザーがよく使う画面のため何かあってもすぐに消しずらいところに実装になってしまったこと
Androidとして大変だったこと
- グラフのライブラリが公式のものがなかったのでサードパーティーのライブラリを探さなければならなかった。
- フルスクラッチという手もあったがCanvasで一から対応するには時間が足りなかった
- ライブラリのデフォの仕様で対応できないものに関してライブラリをカスタマイズをして無理やり対応したため今後のメンテナンスが大変
- vicoのライブラリが案件のリリース直後にメジャーアップデートが発生した
- うちの会社としては最小端末を横幅320dpと定めているのですがグラフライブラリとデザインを掛け合わせると明らかに320を超えてしまっていた。
グラフを導入するときに気を付けること
- なるべくライブラリのデフォルトの仕様で作成できるグラフにしてもらう(正直ここに尽きる)
- ライブラリのライセンス・サポートSDKバージョン・サポートする最小端末の確認
- なるべく何が起こっても消しても問題ない画面などで実装していくこと推奨
- なるべく早い段階で企画・デザイン会議に入ること
他のチームとの関係性
私の組織としては特にデザイナーが主体となって案件が進んでいっている状態なのですが、フロント・バックエンド・品証チームは週一の定例で会議しており連携がうマック行っていたのですがデザイナとの連携面が不足しており、slackでのコミュニケーションはとっていたものの口の方が明らかに早いことも多いなと思いました。何が言いたいかというとメインで進めるチームとはなるべくコミュニケーションをとる場を用意すること
あとは別の視点の話でデザイナーと開発との認識のズレ
ここは解消�るのは結構厳しいなんでこのデザインになるのか納得いかずもやっとしながら実装するみたいな経験が最近多く、逆にデザイナーは開発が何が大変なのかがわかってないため話をしていてもうまく進まないみたいなこともあるのでここら辺を解消したいとは思ってはいるのですがどうしたものかな?と思っています。