
エンジニアから見たabceed開発の魅力について
こんにちは、アプリリードエンジニアの鈴木 俊裕です。
今回は主にエンジニアの皆さん向けに、普段abceedの開発チームがどのような課題に取り組んでいて、どのようなやりがいがあるのかをお伝えしたいと思います。
ここ数年の実績
基本的には英語教育・英語学習というのがこれまでの事業領域になってきました。
その中で開発チームがどのようなことをやってきたのかをまずは簡単にご説明します。
TOEIC®︎対策
abceedはもともと「TOEIC®︎対策教材の音声がアプリで聴ける!」というところからスタートしていますので、まずは以下のようにTOEIC®︎対策機能が追加されてきた経緯があります。
紙で買った教材の音声をアプリで聴ける
教材を見ながらマークシートの記入と採点がアプリでできる
HTML/CSSとしてインポートされた教材をベースに学習がアプリだけで完結できる
AIによるレコメンド機能や予測スコア判定で効率的にTOEIC®︎対策ができる(おすすめ問題)
よりTOEIC®︎や英検®︎の本番に近い対策ができる(オンライン模試/レベル判定試験)
Webでもアプリと同じ体験を提供する

学校現場やABCEED ENGLISHにおけるユースケース
次に学校向けのabceed for schoolというtoB展開もありまして、企業や学校現場で使われています。具体的には先生が宿題の形で生徒に課題を配信して使ってもらうケースが多いようです。
またGlobee独自の英会話スクールであるABCEED ENGLISHも立ち上げ、新しく採用された英語講師の方々が生徒さんと一緒に授業の中で使うようにもなりました。
この文脈で追加された機能としては以下のようなものがあります。
ディクテーション、シャドーイングといった発音学習機能の充実
先生や生徒同士のチャット機能
長文Speaking学習、Writing学習と、先生による添削・コメント機能
先生用の管理画面(Web)の使い勝手の改善
タイピングモードの単語テストでより厳密にスペルの習得率を意識できる
ひと口に英語学習といっても様々な目的・スタイルがあるので、このように先生や講師陣のフィードバックによって大幅にユースケースが増えていっています。
特に英会話スクールはかなり野心的で優秀な講師メンバーが集まってますので、今後もさらに楽しい機能のアイディアが出てくるのではないかとワクワクしています。

自由な発想で生まれてきた施策
他にも、「こんなのあったらよさそう」という社長やメンバーの想いから生まれた機能もあります。
詳細な条件指定で効率的に復習ができる「総復習」機能
The Japan Timesの英語ニュース記事を音声付きで読むことができる
教材ごとの単語一覧を単語のレベルごとに閲覧でき、一括で単語帳に登録できる
abceed独自作成の単語教材追加と、これに伴う単語学習画面のリデザイン
MY単語登録や辞書登録の体験向上
どの開発においても、学習者目線に立っていかに効率的な学習体験を提供できるか?についてみんなで考える時が楽しいなと感じます。

プラットフォームへの最適化
アプリやWebなど、プラットフォームにおける体験の最適化の施策も、学習体験に直結するため常に意識されています。この辺りはアプリやフロントエンジニアとして満足感につながるところだと思います。
ダークモード対応
iPad最適化
アプリの全体的なリデザイン(現在v3)
カラーパレットの刷新(現在v2)
技術的チャレンジ
ここまで主な開発案件について書いてきましたが、その中で直面した技術的チャレンジのようなところをご紹介します。エンジニアにとってはパズルの難易度みたいなものが結構やりがいに繋がる部分もあるので、重要ですよね。
HTML/JavaScriptとネイティブの連携
例えば「問題文章でわからない単語をロングタップから単語帳に登録したり辞書検索したい」や「ニュースの文章をタップした箇所から音声再生を開始する」など、結構JavaScriptと連携が必要になるケースが多いです。
正直ここまでWebViewを使い倒すこともこれまでなかったので、自分としては新鮮でした。
音声
ニュースや教材の音声機能を使っていただくとわかると思うのですが、特定区間のリピート、シャッフル、話者の切り替えなど結構機能が豊富で、この辺りをいかに安定して稼働させかつ保守しやすいコードにするかが課題だと思います。

発音
発音学習機能に関しても、色々なチャレンジがありました。現状機能の実装はざっくり以下のような流れで進みましたが、今後も色々な改修が必要な箇所だと思います。
基本となる音声認識エンジンに、Siriなど端末固有のものを使うか、SaaSのものを使うか、自社で実装するか、という技術選定フェーズ
技術選定フェーズでの調査結果をもとに、短文発音/長文音読学習のユーザー体験をどのようにデザインしていくか、というデザインフェーズ
音声認識エンジンと採点ロジックを組み合わせ、実際に色々な発音で採点の精度を検証していく実装・検証フェーズ
動画
abceedでもつい最近、toB向けに動画学習の体験をリリースしました。
ダウンロード機能も最初からつけて使いやすくしてあります。
自分の場合前職までが動画関連でしたので、経験を活かせるという点では嬉しいですね。
ともあれ何かを学習する上で、やはり動画というのはとても効率が良いと思います。
自分自身もCourseraでコンピュータサイエンスや暗号学の講義を受けたことがあります。
abceedでは今後toC向けにも楽しんでいただける動画学習体験をお届けしたいと考えてますので、この辺り技術的にどう構想を実現していくかをちょうどチャレンジしているところになります。
アダプティブレイアウト
巷のアプリを見ても、目一杯工夫してアダプティブレイアウトを組んでいるアプリというのはなかなか少ないですよね。
abceedに関しては、先ほども触れた通り、プラットフォームに対して最適化するモチベーションが高いです。
特に学校ではiPadやChromebookの使用率が高いので、iPhoneよりもむしろiPadの方がユースケースとして重要視されるケースもあります。
アプリエンジニアとしてはやはりひとつの画面の細部までこだわり抜いて作るというのはやりがいだと思うので、ここは楽しいところだなと思います。もちろん画面数も多く、最初からそうだったわけではないのでまだまだ手が回っていない画面も多いですが、例えばオンライン模試の長文読解問題は結構こだわってデザインされているので、見てみてください。

多彩なテストタイプ
キーとなる技術について書いてきましたが、多分一番開発体験として推せるのはこれかもしれません。
開発チーム内で「テストタイプ」「テスト種別」と呼ばれているものになりますが、これが50近くあります。
基本的にはテストタイプごとにレイアウトが異なりますので、新しいテストタイプが出てくるとその画面の体験を1から検討し、作り上げることになります。
上述した通り、どんどんアイディアや要望は増えてきています。今後もたくさんテストタイプが追加されると思いますので、小さい規模の新規開発の機会がたくさんあります。
自分もjoinしてから2年経ちますが、こんなにたくさん新しく画面を作ることになるとは思ってませんでした。

今後やっていきたいこと
これまでの経緯をご説明しましたが、「もうやることなさそうですね」って思われても困る(笑)ので、今後やりたいことや今困っていることを書いておきたいと思います。
トップダウン施策
前述の通り、今後どのようなアイディア・サービスが世に送り出されていくか、楽しみにしています。社長も最近動画学習体験の開発に熱中してくれているのでまずはその辺りからかなと思っていますが、すごくパッション溢れる方ですし、社内にもいい空気が流れているように思うので、長期的にもネタが尽きる心配はなさそうだなと勝手に思っています。
ボトムアップ施策
2022年は、開発チーム主体で施策を提案してどんどん価値を提供していこうという目標というか方針があります。
これに基づいてデザイナーを含めた開発チームでブレスト会を毎月行っているのですが、4月まで4回運用してみて分かったのは、圧倒的に手が足りないということです。
よさそうなアイディアは思いつくし、割とスピーディにデザインまで落とし込むことができているのですが、トップダウン施策も当然インパクトが大きい案件が多く、ボトムアップまで開発が追いついていない状況です。
今のところかろうじで1件だけはインパクトのある施策をリリースまで繋げることができたのですが、開発ラインとして少なくとももう一つ欲しいねというのがやはりここ最近のチームの共通認識になりつつあります。あとはデータ分析にも手が回ってないので、その辺りも手を借りたいですね。
QAフローの整備
abceedではこれまで基本的にQAチームが存在しておらず、品質管理は度々問題になってきました。
最近はリリース前のテスト仕様書として200項目程度のものを用意して自分たちで回すようになりましたので、以前よりはかなり安心感を持ってリリースに臨むことができるようになりました。
ただもっと網羅的な機能試験や回帰試験をどうしていくかなど、これから考えていかなくてはなりません。
足元の改善
あとはもちろんリファクタリングやCIの自動化整備、コーディングルールや開発フローなど、開発効率向上のために着手していかなければならない課題はたくさんあります。
リファクタリングのIssueには `kaizen` ラベルをつけているのですが、「重要だけど時間がかかる」ものは大抵タスクボードの下の方に積まれたままになっています。
iOSアプリのコード行数を計測してみたところ17万行ありましたのでもちろん全部やっていたら事業が進まなくなってしまいますが、事業インパクトに直結するものもあるので、どんどん進めていきたいですね。
まとめ
いかがだったでしょうか。
abceedアプリの開発に日々楽しく携わっているのですが、あまりこの楽しさが外部の方には伝わっていないのではと思い、今回筆を取りました。
参考になれば幸いです。
♦︎ カジュアル面談
現在株式会社Globeeでは「エンジニア職種」を中心に採用活動を積極的に行なっております。
弊社が「教育」にかける思いや「ものづくり」の考え方について、弊社代表の幾嶋より、
お話が出来ればと思いますので、皆様お気軽にご応募下さい。