見出し画像

公共交通事業者様の公式アプリにミニアプリとして機能をご提供する話。

こんにちは、ナビタイムジャパンで鉄道・バス事業者様向けにサービスを提供する、公共交通事業に所属している鉄男、バス子です。それぞれ企画・営業、開発を担当しています。
今回は交通事業者様の公式アプリ向けに提供しているミニアプリについてお話ししたいと思います。お伝えできる範囲にはなりますが、ご容赦いただけますと幸いです。

今回は、内容を「企画・営業」「開発」の2パートに区切り、
「企画・営業」パートはアプリへの機能追加をご検討中の事業者様向けに、「開発」パートはアプリ開発に携わるエンジニアの方向けにお話してまいります。

それではまず「企画・営業」パート(事業者様向け)スタートです。

まず、そもそもミニアプリとは?

ミニアプリが何なのかについては、わかりやすくまとめられている記事があるため、そちらから引用します。

既にご存じの通り、スマートフォンで動作するプログラムを「アプリ」と呼びます。一般的にアプリストアからダウンロードされ、スマートフォンのホーム画面に表示されたアイコンからアクセス・利用しています。

アプリの場合、基本的に1つのアプリに対して1機能を備えていますが、スーパーアプリとは、1つのアプリで日常生活に必要な複数のミニアプリを利用する事ができる、とても便利なアプリです。ミニアプリが「子」なら、スーパーアプリが「親」という立ち位置になります。国内ではLINEやPayPayがスーパーアプリ推進の戦略を打ち出しており、注目されています。

ミニアプリとは、アプリストアからダウンロードするのではなく、スーパーアプリの中で利用するものです。スーパーアプリを使う事でさまざまなサービスを意識する事なく、シームレスに利用する事ができるようになります。UXの向上によって顧客満足度を上げ、中国等では多くの方に利用してもらえる仕組みとなっています。

スーパーアプリ、ミニアプリとは何か?

ナビタイムジャパンにおけるミニアプリ

一般的なミニアプリとは少し目線が異なり、当社で開発するアプリ内で動作する機能ではなく、鉄道・バス事業者がお持ちのアプリ上で新たな機能として搭載できるWebコンテンツを含めてミニアプリと呼称しております。
これまで「経路検索(マルチモーダルルート検索)」「時刻表」「列車走行位置」「迂回ルート検索」「バス発車案内(駅起点)」の5つを開発し、鉄道事業者様が運営する公式アプリなどに提供してまいりました。2022年3月には新しく「Myバス停」機能を開発しました。(「Myバス停」機能の開発に関するお話は後半パートでご紹介します)

提供中のミニアプリの機能

ミニアプリのメリット

ユーザーの視点:

他にアプリをインストールしたり、Webサイトに遷移することなく、すでに使用している鉄道アプリ内にて、使い慣れたUI/UXで新たな機能をシームレスに利用できる点です。また鉄道アプリは情報範囲を限定することで、情報粒度(内容・頻度)を細かくする傾向があり、公式アプリならではの情報が見られる可能性があります。

交通事業者様の視点:

新たにアプリを開発することなく、提供したい機能を追加できる点です。当社は20年以上のサービス運用で培った交通知識やデータ設計・運用ノウハウがございますので、交通情報配信に特化した機能を部分的にミニアプリとして提供することができます。社内資産を活用する分、低コストかつ短期間で導入でき、ユーザーへの価値提供を継続的に行うことができます。

ミニアプリ活用における3つのメリット

「企画・営業」パートまとめ

前述の通りミニアプリによる連携は、ユーザーと交通事業者様双方にメリットがある、新しい機能の提供方法といえ、これから機能追加をご検討される事業者様にとってご参考になればと思います。

それでは後半、「開発」パートに移りたいと思います。

今回新たに開発した「Myバス停」機能について

事前によく使う乗車バス停や降車バス停を検索・選択して「Myバス停」として登録することで、ユーザーは都度検索をせずに利用頻度の高いバスの情報をワンタップで簡単に取得できる機能になります。

「Myバス停」機能で提供が可能な3つの機能

本機能は、昨年度末に西武線アプリ、京王アプリで導入いただきました。

https://corporate.navitime.co.jp/topics/pr/202203/31_5463.html

開発における工夫点

サービスを使うユーザーにとっても、サービスを提供する交通事業者様にとってもメリットがあるミニアプリですが、開発において注意すべきことがあります。
今回提供したミニアプリはWebviewで実装しています。Webviewとは、アプリ内でHTMLコンテンツを表示できるように用意された枠のことです。このWebviewの実装において今回工夫した点についてお話ししたいと思います。

【目次】開発における工夫点

工夫点【その1】

まず1つ目の工夫点は、Webviewは画面サイズを考慮して実装をしたことです。アプリ内に用意されるWebviewのサイズはアプリ側で指定しているため、開発時にはそのサイズを意識した実装が必要となります。高さや幅を決め打ちの値で指定する際には、はみ出る領域が発生してしまうため注意が必要です。今回の場合、西武線アプリと京王アプリにはほとんど同じ機能を提供しましたが、それぞれWebviewのサイズが異なるため表示する要素を一画面の中に収めるために、表示する要素のサイズの調整をしました。

工夫点【その2】

2つ目の工夫点は、画面遷移をしたりWebviewを閉じるために、URLスキームを使用したことです。同一Webview内での遷移は、通常のWebサイトと同様の実装で可能となりますが、別のWebviewに遷移する(例えばアプリの画面自体で遷移する)場合やWebviewを閉じる場合には、URLスキームを使用します。このURLスキームはアプリ上で設定する必要があるため、アプリの設定ができていないとWebviewのコンテンツの実装だけでは動作しません。
またWebviewの開発はブラウザを通して行いますが、その際にはURLスキームは動作しません。今回は実装の確認のために、開発用のパラメータを用意しました。この開発用パラメータがついている場合は、URLスキームを使用しない通常の画面遷移をするように実装し、開発用パラメータが付いていない場合はURLスキームを使用した画面遷移をするように実装しました。開発用パラメータがついているかどうかで、実装を分けることで開発中も画面遷移の確認をすることができました。

工夫点【その3】

3つ目に工夫した点は、アプリ内でのWebviewの挙動を確認したことです。Webviewを利用する場合には、Webviewの挙動とアプリの挙動が組み合わさることで発生する特有の事象に注意する必要があります。
例えばアプリとWebview両方でスクロールが可能な状態になっている場合、それぞれのスクロールの判定が混ざって意図した通りに操作できないことがありました。このような事象は、ブラウザを使用したWebviewのコンテンツ開発時には確認することができないため、ブラウザ上での動作確認だけでなくアプリ上での動作確認は必須となります。
アプリ上での動作確認のためには、実際に作成したWebviewのコンテンツが設定された検証用のアプリを用意しておく必要があります。工夫点の1つ目2つ目についても実際の表示のされ方や画面遷移を確認するためには、この検証アプリが必要です。

「開発」パートまとめ

Webview開発とアプリ開発は分担して行う場合が多いですが、それぞれの開発者間で密なコミュニケーションを取れる環境であることが、スムーズに開発をするポイントになりそうです。

最後に

ユーザーにとっては前述したような開発要素を感じることなく、単一のアプリとして機能をご利用いただけることが理想的と考えています。
しかしながら、アプリ単体で機能を実装する場合、技術面・コスト面でハードルが高い場合があります。
その対策としてWebviewという開発手法がありますが、まだまだアプリとWebサイトの技術的な溝は深い状況です。
そのため当社では、前述したような開発要素を考慮することで、アプリ側へのスムーズな橋渡しを実現し、ユーザーの利便性を向上しながら、低コストかつ高性能なミニアプリを提供することが可能となります。
これからもユーザーの皆さまが便利にお使いいただけるようなミニアプリを提供できるように邁進してまいります。

最後までお読みいただきありがとうございました。