「世界中の子どもたちを楽しませたい!」スマートエデュケーションのCTOが語る開発秘話、そしてこれからの挑戦

「乳幼児向け知育アプリ」というと、もしかしたら大人向けの複雑なゲームに比べて作りがシンプルで簡単だという印象を与えるかもしれません。
しかし小さな子ども達が楽しむものだからこそ、細かいところにまでしっかりと気を配ったサービスを提供することが必要不可欠です。

安心して親子で楽しめる「高品質」な知育サービスを、最先端のテクノロジーを取り入れながら実現する――「知育」という社会的意義の大きい仕事に取り組みながら、技術力を磨くことができるのがスマートエデュケーションで「エンジニア」として働く大きな魅力です。

日々新しいことに挑戦することから生まれてきた当社のアプリ。その開発の道のりについてCTOの谷川が語ります。

「決して妥協しない」――小さな子ども達を惹きつける世界感や、触って気持ちの良いレスポンスの実現にとことんこだわる

当社のアプリは、お陰様で大変多くのユーザー様からご支持頂いています。また、ユーザーのみならず、アライアンスを組んでいる大手コンテンツホルダーや大手玩具メーカーの皆様からも高い評価を頂戴しています。
「幼児向けアプリ」というと、動きがシンプルなだけに作りも単純だという印象を与えるかもしれません。
しかし小さな子ども達を惹きつけ、一緒に遊ぶ大人達にも違和感なく楽しんでもらうアプリを実現するためには、絵や音楽が創り出す世界感やクオリティ、そしてアプリケーションを操作した時の反応スピードなど、細かいところにまで気を配る必要があります。
当社は、品質に関して「決して妥協しない」という強い姿勢をもっています。この姿勢をしっかりと形にしてきたことがお客様からの支持につながっているのではないかと感じています。

具体的なエピソードをお話すると、開発にあたっては特にパフォーマンスに関する要求がかなりシビアでした。
開発初期段階では、Androidにおいて全くパフォーマンスが出せなかったり、メモリの問題でアプリが落ちたりするなど、様々な問題を抱えていました。
なんとかアプリを完成させた後も、タップしたときの反応などのパフォーマンス面で、やはり満足する結果を得ることができず、「どのように乗り越えようか」とかなり思案しました。最初に直面した大きな壁でした。

解決方法については、まずは問題になっている部分の実装方法を変えることにしました。具体的には本格的なゲーム開発などで使われているOpenGLを使用することにしたのです。
導入の結果、今までできなかった表現に対応できるようになったほか、それまで様々な画面サイズに個別に対応していたものが、特に画面サイズに気を配らずに済むというメリットも得られました。もちろんパフォーマンスに関しては段違いに良くなりました。
リリース版としては良いものができたかな、という気持でいましたが、一方でまだ満足できてない部分も色々とあります。
今最も強く感じているのが、「知育アプリといえども、本格的なゲーム開発と同じスタンスで開発を進めていく必要がある」ということです。
理想の完成形に向けて、課題を一つひとつしっかりと解決していきたいと思っています。

次なる壁は「ユーザー数の急増」

開発者にとってのゴールはアプリのリリースではありません。いつでもどこでもユーザーが快適に使えるよう、トラフィックやシステム負荷に対応することも重要な役割です。
幸運にも最初にリリースしたアプリ「おやこでリズムえほん」は大ヒットし、急激にユーザー数が伸びました。しかし、それが新たな課題となってのしかかってきたのです。
リリース当初はそれ程スペックの良いサーバーを使用していなかったのですが、データ数も多くなかったため特に問題はありませんでした。しかし、ほどなくして予想をはるかに超えるスピードでユーザーが増えていき、至急対応することが必要となりました。

まずは、WEBサーバー、DBサーバーなどインフラ環境自体をすべて、AWS(Amazon Web Service)に移行しました。幸運なことに、ちょうど検証を終えて環境準備中という段階だったので、ここは思い切って乗り換えることにしました。
「リズムえほん」ではアプリ内で楽曲を販売しており、数メガ単位のzipファイルを配信しているのですが、この乗り換えによって簡単にスケールするサーバー環境が使えるようになり、コンテンツの配信などもAWSに任せることで運用が格段に楽になりました。

私自身はもともとソーシャルゲームの開発に携わっていたのですが、これまでの経験が役に立ち、スムーズに大量アクセス・データに対応することができたと思います。現在100万近いユーザーに使って頂いていますが、大きな問題もなく運用できています。

数多くの選択肢のなかから、新しい技術を含めて最適だと思われるものを柔軟に選択できることが一番の魅力

私は前職も含めてこれまで様々な分野での開発を経験してきましたが、スマートエデュケーションで働く一番の良さは、数多くの選択肢のなかから、新しい技術を含めて最適だと思われるものを自由に選択し、試してみることができるところだと感じています。
課題解決や目的実現のためのアプローチは一つではありません。様々な手段を検討しながらベストプラクティスを探っていけるというのは、とても勉強になりますし、面白いですね。

例えば最近では3Dを使ったアプリ開発のためのunityの導入や、アプリの開発手法でcocos2dxを使うなど、新しいことにもチャレンジしています。
ほかにも「ミニゲームをたくさん開発していこう」というアイディアなども出てきており、開発スピードを考えて、javascriptのゲームエンジンenchant.jsなどの導入を考えています。

また、当社は主にタッチデバイスのアプリを提供していますが、アプリ内でブラウザを使ったウェブでのコンテンツ配信などにも力を入れているところです。
現在、アプリだけではなくウェブの開発も比重が高くなっており、Redis, fluentd, jenkins, Hadoopなどソーシャルゲームなどで利用されているような技術も導入しています。
大量データを効率的に処理する施策や、少人数のエンジニアで効率よく運用できるようにするためのシステムの自動化施策などに力を入れて取り組んでいます。

「経験がないから」、「よく知らないから」といって臆するのではなく、それが最適だと思えば新しい技術にも、未知の領域にも挑戦してみることが、エンジニアにとって非常に重要な姿勢だと思います。
今の段階では既存の技術を利用することが多いのですが、今後は新しい仕組みや技術を自分達の手で作り出せるようになっていけたらいいな、と思います。

今後、当社は全世界のユーザーに対してサービスを配信していくことを目標としています。新たな挑戦のなかで、また大きな壁にぶつかることもあるでしょう。しかし、そのぶん非常にダイナミックな経験ができる環境です。
私たち開発者は品質に関して最も重要な責任を担っています。大変なことも多いですが、やりがいも非常に大きいです。「世界」を視野に仕事に取り組むことができるのも、エンジニアとして当社に参画する魅力の一つではないかと感じています。

「世界中の子ども達に影響を与えられるようなサービスを実現し、これまでにない新しい文化を作り上げたい」という大きな想いを胸に、これからも日々挑戦を続けたいと思います。

当社が利用しているプログラミング言語/サーバー環境

■プログラミング言語/フレームワーク
Ruby : padrino, sequel, RSpec, Rails
Perl : mojolicious

■サーバー環境
AWS、さくらのクラウド

 
 

PAGE TOP