見出し画像

gamba!の開発10年を振り返ってみて 〜 後編

中編はこちら

gamba!には、いまのところデザイナーは一人もいません。

では、gamba!の画面デザイン・UI設計はどうするか?といえば、エンジニア自身がやっています。

エンジニア自身がデザインを考えるべき、と思う理由が3つあります。

1つ目は、エンジニア自身がデザインすることで、必然的に実装に負担のかからないシンプルで効率的なデザインが選択されていく、というメリットがあると考えているからです。

UIを使いやすくするために実装を複雑にしていいという考え方は極力避けたいと思っています。一方で、実装がシンプルなシステムは自ずとUIもシンプルになるはずだし、その方が長期的にはユーザにとってメリットをもたらすという考え方でやってきました。

2つ目は、尖ったユニークなUIは誰も求めていない、と考えているからです。FacebookやLINEなど、既存の誰でも使ったことのあるサービスのUIを躊躇なくオマージュします。

gamba!のお客様の大半は、現場でお仕事をする人たちです。最先端のアプリを使いこなす人たちではなく、どちらかといえばスマホはLINEとYouTubeを見るためだけに使っている人たちが大半です。

なのでgamba!ではオリジナルなUIを追求しません。極力すでに世の中にあるサービスで、似たようなことをやっているものはないかを探し、みんなに受け入れられた使い慣れたUIを実装していくことを目指しています。

3つ目は、結局いくらデザイナーが頑張ってUIを考えても、結局動かしてみないと良し悪しがわからないと考えているからです。

スマートフォンアプリのデザインは、実際の利用シーンで、実際のスマートフォンで触れて操作してみて、初めて気付くことというのがたくさんあります。デザイン段階では良さげと思っていたものが、実際に動かしてみるとどうも気に入らない、不満が出るということはよくあることです。デザインはどこまでやっても机上の空論でしかなく、人の想像力に限界がある以上、動くものをエンジニアが作ってみないと判断できません。

むしろ、デザインに時間をかけるのではなく、さっさとプロトタイプを作り、CodePushで実機にインストールしてみんなで動作の感触を試し、早いサイクルでフィードバックを取り込んだ方が、絶対にいいものができます。

もちろん、デザイナーが社内にいてくれたらいいのに、と思うことは時々あります。今後はどうなるか分かりませんが、少なくともこの先しばらくはチームのシンプルさを優先していきたいと思っています。

最後にコードの共通化について書きたいと思います。

gamba!では、一部の例外を除いて、Web・iPhone・Androidすべてのプラットフォーム・アプリで同一の機能を同時に提供しています。

アプリの開発経験がある人ならわかっていただけると思いますが、これ、実は簡単なことではありません。ネイティブアプリの開発をしている会社の多くは、Web・iPhone・Androidそれぞれに専任のエンジニアを擁しています。それでも、Webとアプリで仕様が異なったり、できない機能があったりします。

gamba!の場合、ReactNativeを採用したことで、iPhone・Androidはほぼ完全に共通のコードで実装されています。さらに、クライアント側でAPIとのデータのやりとりや主要なビジネスロジックを処理するコードは完全にWebとアプリで共通化されていて、クライアントのコードの約1/3が再利用されています。

これは、同じ機能をまったく同じ仕様でWeb/iOS/Androidほぼ同時にリリースできるというメリットだけでなく、同じコードが使われることでテストの網羅性が上がり、品質が向上するというメリットをもたらします。

gamba!にはエンジニアが私を含めても3名しかいませんが、ここに書いたようなたくさんの工夫で効率化・高品質化を進めています。これからもたくさんの新機能がgamba!ではリリースしていきますし、たくさんの機能改善を進めていきます。

どうぞ、お楽しみに。
引き続き、gamba!をご愛顧ください。

この記事が気に入ったらサポートをしてみませんか?