中国で流行っているミニアプリが日本でも流行り始めているらしい

# はじめに
みなさんはミニアプリってご存知ですか？
中国で流行っているらしいです！

日本でもそれを受けて、LINEやPayPayあたりが取り組んでいます。
先日私が行ったお店でもLINEミニアプリを導入しており、「はやり始めているぞッ。。」とひしひしと感じています。

今回はそんなミニアプリについて色々解説していきたいと思います。
後半では具体的にLINEを例に出して、開発するにはどうすれば良いかなどにも触れます。

# ミニアプリとは
## ざっくり解説
１つのアプリをプラットフォームとして、そのアプリ上で起動するアプリのことをミニアプリと言います。
日本ではLINEやPayPayがミニアプリを提供しており、**インストール不要**で使うことができます。

## とりあえず見せます
### 自作アプリ
飲食店を検索・お気に入り登録できるミニアプリ＆LINE BOTです。
デモ動画のロングバージョンは[こちら(Twitter)](https://twitter.com/i/status/1276721223808892929)にあります。

<img width="350" alt="mojikyo45_640-2.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/5fac11fe-33b0-5844-6831-16becdc15f5d.gif">

以下のURLにアクセスするか、QRコードをLINEで読み取るとお試しできるので、良ければ試してみてください！
https://lin.ee/R5mD4Dt
![M.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/251e4c47-0a88-7f8d-d339-c5153a14ba86.png)
技術構成などは別Qiitaにまとめています。

- [GoとNuxtで飲食店検索ができるLINE BOTとLINEミニアプリ(LIFF)を作ってみた](https://qiita.com/yagi_eng/items/8490f189d1be82c433e2)
- [Goとクリーンアーキテクチャで飲食店検索ができるLINE BOT作ってみた](https://qiita.com/yagi_eng/items/983a7cd36b63a2f0ffac)
    - Qiitaデイリー5位にランクインしました！

### LINE
「ホーム＞サービス＞すべて見る」からミニアプリ一覧を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/599390df-10c6-c666-7a25-9d0d45fb7897.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/2b36c024-c003-b362-1fa1-1962f653c92d.png)

詳細な事例は以下の記事が詳しく解説してありました。

[LINEミニアプリ（LINE Mini app）とは？最新導入事例と開発方法をご紹介](https://saichat.jp/line/line-mini-app/)
⇒LINE Mini appの最新事例

### PayPay
ホーム画面や「ホーム画面＞その他」から一覧を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/0ad457f9-f72e-2fdc-d0b1-9b9cade48394.png)

詳しく調べていないですが、PayPayは明確に「ミニアプリ」と謳っていない印象です。
現状、PayPayの機能とミニアプリが混合しているように見えます。
例えば、「UberEats」や「タクシー配車」はミニアプリに該当しますが、「請求書払い」や「わりかん」はPayPayの一機能な気がします。。

# 海外事例
【引用】[世界でも注目！いよいよ日本もアプリに代わるMini app（ミニアプリ）の時代へ](https://anybot.me/posts/72/%E4%B8%96%E7%95%8C%E3%81%A7%E3%82%82%E6%B3%A8%E7%9B%AE%EF%BC%81%E3%81%84%E3%82%88%E3%81%84%E3%82%88%E6%97%A5%E6%9C%AC%E3%82%82%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AB%E4%BB%A3%E3%82%8F%E3%82%8BMini%20app%EF%BC%88%E3%83%9F%E3%83%8B%E3%82%A2%E3%83%97%E3%83%AA%EF%BC%89%E3%81%AE%E6%99%82%E4%BB%A3%E3%81%B8)
> ミニアプリの始まりは、WeChatのミニプログラムと言われます。
中国で圧倒的な人気で10億以上のアカウントを持つといわれるWeChatを運営するテンセントは、いち早くこのアプリ市場の流れを先読みし、2018年のはじめに、WeChatのアプリ内のアプリをミニプログラムとして提供し始めました。
これにより、WeChatのユーザーは、WeChat内での買い物や予約、友だち間の送金やゲームなど、他のアプリをダウンロードすることなく企業のサービスを利用できるようになりました。

中国のWeChatがミニアプリのパイオニアらしいです。中国のITはすごいですね。。

# ミニアプリのメリット
ネイティブアプリと比較して、気軽に使えることが一番のメリットかなと思います。

## 個別にアプリをインストールする必要なし
LINEやPayPayなど、ユーザーが日常的に使っているアプリ上で起動するため、ユーザーは用途別にアプリを起動する必要がありません。

ちなみにLINEやPayPayなどのミニアプリのプラットフォームとなるアプリのこと**スーパーアプリ**と言います。

## ユーザ情報入力の必要なし
ミニアプリではスーパーアプリのアカウント情報をそのまま使うことができるます。そのため、1つのアカウントで全てのミニアプリを「個人情報の入力」や「クレジットカード情報の入力」なしに使うことができます。

## ネイティブアプリとミニアプリの比較
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/6f2bb459-5f6b-4499-294d-085f2ac9bbb5.png)
【画像引用】[ミニアプリが注目される理由とは？国内外の事例から読み取るメリットと活用法](https://lp.fanp.me/blog/miniapp_chumoku/)

# 開発者目線で嬉しいこと
個人的には以下のことが開発者的に嬉しいかなと思います。

- AppStore、GooglePlayといったアプリケーションストアを通す必要がない
    - ただし、現状LINEミニアプリを提供する場合はLINE社の事前審査が必要。
- ユーザの利用頻度の高いアプリから提供することができる
- ユーザ認証を0から実装せずに、スーパーアプリでの認証情報を使うことができる
- Webアプリなので、Web系開発者にとってはネイティブアプリの開発知識なしで開発できる

# LINEでミニアプリを作る
## LINE社による審査が必要
ユーザにも開発者にも嬉しいサービスとなると、作ってみたい！となりますよね。
LINEでミニアプリを開発する場合、先述の通り、以下の手順を踏む必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/b2c7dc9e-f13f-73f7-2642-f5b93449066f.png)

【画像引用】[LINEミニアプリ公式](https://www.linebiz.com/jp/service/line-mini-app/)

私は審査に申し込んだことがないのでわかりませんが、現段階ではLINEミニアプリの開発は法人がメインで、個人で開発して提供するのは少し難しいのかなという印象です。

しかし、次章に記載の通り、便利な機能を使うことができるので、法人でLINEを活用したいケースにはかなり向いていると思います。

## LINEミニアプリで提供できる機能
以下の通り、様々な便利機能を提供することができます。

【引用】[ケータイ用語の基礎知識　第960回：ミニアプリとは](https://k-tai.watch.impress.co.jp/docs/column/keyword/1266906.html)

> - Reservation機能（予約機能）
    - ミニアプリと予約フォームを連携した予約機能
- Notification（お知らせ）機能
    - プッシュ通知を使用してユーザーに発信ができるサービス
    - たとえば予約時間になったらお知らせが届けるなどができる
- Payment（お支払い）機能
    - 商品の決済がLINE payでできる
- Coupon（クーポン）機能
    - 来店促進、再来店促進などに利用できる「クーポン」の発
- Membership Card（ポイントカード）機能
    - LINE自体をお店のポイントカードにできる

# LINEでミニアプリもどき（LIFFアプリ）を作る
じゃあ個人ではLINEミニアプリ作れないのか？というとそうではありません。
冒頭でお見せしたようなLIFFアプリと呼ばれる自作アプリは作ることができます。
後述するLIFFという技術を使っています。

LIFFアプリも含めてLINEミニアプリと呼ぶケースもあります。

## LIFFとは
【引用】[LINE Front-end Framework](https://developers.line.biz/ja/docs/liff/overview/)

> LINE Front-end Framework（LIFF）は、LINEが提供するウェブアプリのプラットフォームです。このプラットフォームで動作するウェブアプリをLIFFアプリと呼びます。
LIFFアプリを使うと、LINEのユーザーIDなどをLINEプラットフォームから取得できます。LIFFアプリではこれらを利用して、ユーザー情報を活用した機能を提供したり、ユーザーの代わりにメッセージを送信したりできます。

簡単に言うと、**LINEと簡単に連携できてブラウザやLINE上で動作するアプリを作れるやつ**って感じです。

個人的に補足すると以下の通りです。

- プラットフォームと謳っているが、簡単に言うと、フロントエンドでLINEのAPIが使えるということ
- 「LIFFプラットフォーム上にWebアプリを開発」というよりは、「LIFFを使ってWebアプリを開発」という認識がいいかも
- LINEログインが使えるので、ユーザ登録の必要なアプリを開発する際に、認証周りの実装が楽になる
- ただのWebアプリなのでURLがあり、WebブラウザからでもLINEアプリ上からでもアクセスできる
    - LINEからアクセスすると、通常のWebビューアとは異なる起動の仕方となる
- 当然ReactやVueと併用してWebアプリのフロントを作れる、ロジックはバックエンドに書ける

## LIFF入門
以前LIFF入門の記事を書いているので、もし実際に作ってみたい方がいたら参考にしてみてください！

[【LINE/LIFF入門】LIFFでLINE公式アカウント（旧LINE＠）上に予約フォームを作成する（GitHub Pages使用）](https://qiita.com/yagi_eng/items/5dce5527dc5d6a6e9833)

## LIFFとLINEミニアプリの違い
- LIFFアプリは誰でも開発できるが、LINEミニアプリはLINE社の審査が必要
- LIFFアプリはLINEログインやチャットでのテキスト送信が主な機能
    - LINEPayAPIとうまく連携すれば決済は可能だが単体で完結しない認識（間違っているかも）
- LINEミニアプリは前述の通り、予約・通知・決済などいろいろな機能が使える

# 感想と浅い考察
- LINEやPayPayは覇権を取りに来ているなー
    - 生活に根差してそれなしでは生きていけなくなるところに来ている
- LINEアプリは他の便利なチャットアプリが出てきたらどうするんだろ、とか数年前は思っていたけど、様々なサービスを展開して今やスマホアプリのプラットフォームとしての立場を確立した
- 中国で流行っているものが日本へ、って感じが少し切ない
- 海外で成功事例あるし、ここにベットしておくのもあり
- ミニアプリは知らないうちに使っているというパターンが多そう
    - 数か月前に行った人気かき氷屋さんでもミニアプリを活用して予約を行っていた
- 数年後には小規模のネイティブアプリは絶滅するかもしれない
    - ていうかしてほしい。色々アプリインストールするの好きじゃないからLINEで完結してほしい

# さいごに
Twitterの方でも、モダンな技術習得やサービス開発の様子を発信したりしているので良かったらチェックしてみてください！

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">最近はやり始めているミニアプリについてQiitaにまとめてみました😇<br><br>⬇️中国で流行っているミニアプリが日本でも流行り始めているらしい<a href="https://t.co/czSXOfjzNV">https://t.co/czSXOfjzNV</a><br><br>LINEやPayPayが積極的に取り組んでます<br>ネイティブアプリの知識なしにアプリが実装できるので開発者的にも便利かなと言う感じです</p>&mdash; やぎぬ😇行動力エンジニア (@yagi_eng) <a href="https://twitter.com/yagi_eng/status/1318744022983192577?ref_src=twsrc%5Etfw">October 21, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

また、BOT開発を通じてGoとLINE BOTにまとめて入門する記事をZennに掲載していますので、良かったらそちらもご覧ください！

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ZennでGoとLINE BOTの記事を書いてみました<br><br>⬇️BOT開発を通じてGoとLINE BOTにまとめて入門する<a href="https://t.co/QqsEESJMKa">https://t.co/QqsEESJMKa</a><br><br>5ステップに分け、「Hello Worldから始めて、飲食店検索ができるLINE BOTの実装まで」を解説しています<br>GoやLINE BOTに興味のある人は是非読んでみてください😇<br>24,000字超え😇</p>&mdash; やぎぬ😇行動力エンジニア (@yagi_eng) <a href="https://twitter.com/yagi_eng/status/1325027213784326152?ref_src=twsrc%5Etfw">November 7, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 参考
- [LINEミニアプリ（LINE Mini app）とは？最新導入事例と開発方法をご紹介](https://saichat.jp/line/line-mini-app/)
- [ミニアプリが注目される理由とは？国内外の事例から読み取るメリットと活用法](https://lp.fanp.me/blog/miniapp_chumoku/)]