九州大学のアプリを一カ月で作ってみたら、Appstoreで94位になっちゃった。
はじめに
皆さんは、少し前に話題になった九州大学アプリをご存知でしょうか?
本アプリはTwitterなどのSNSで拡散されるなどして、AppStoreにて94位を記録いたしました。[1]
また、現在のインストール数は、九大生人口の20%を超えております。[2]
さらに、星5評価が150件を超えるなどもしました。
今回は、制作時に得た知見を共有することで、皆さんのお力になれたらと思います。
また、皆さんからいろんなアドバイスをいただきたいとも思っているので、ぜひよろしくお願いします。
自己紹介
九州大学、学生のKaede Gamesです。
チームではなく個人開発です🍁
アプリの概要
主な機能は3つ
- クラウド過去問
- デジタル学生証
- ニュース
を実装しています。
また、PVとして以下の動画(18秒ほど)を制作しているので、見て頂けるとわかり良いかと思います。
制作背景
コロナ禍で繋がりにくさを感じる学生が、情報過少で悩むことを無くしたい
との思いから、制作することになりました。
実際コロナ禍になって、多くの人が鬱や不登校になっていると言われています。中でも大学生(低学年)は、「実家を離れて異郷の地でチャレンジする」人が多いために、相対的に該当者が多いようなことを考察しました。
本学(九州大学)においても状況は例外でなく、救済を意図としたメンタルヘルス予約アプリ [3] [4]の開発・リリースを外注するなど、大学としても対応をおこなっていたことを知りました。
また、僕の経験談にはなりますが、コロナ禍になってからというもの、可愛がっている後輩らから落ち込んでいるなどの相談を受けたり、友人づてに鬱になった学生らの噂を何度か聞くなど、身の回りでも、そういった学生がいることを知りました。その度に、何かできることはないかな、と感じてはおりました。そんな中、僕の大学一番の親友も、ついに不登校になってしまいまして[5]それがきっかけで、もう本当に危機感と救命心で心がいっぱいになりました。卒論や就活の最中でしたが、本アプリの着想を始めました。
技術選定
こんな状況だったため、とにかく早くリリースに漕ぎ着けようと思い、以下のような技術を選びました。
- Flutter
- Firebase
- Pub.dev外部パッケージの多用
なぜFlutterを選んだかを述べます。
私自身、普段はUnityを利用してゲームを制作しているのですが、ツールアプリ&時短を考慮して、宣言的UIかつクロスプラットフォームを候補にした結果、
- Flutter
- React Native
- Bubble.io
が挙がり、それぞれの特徴を調べたところ「情報多そう、バグ少なそう」という2点に目が行き、Flutterを利用することにしました。
3つの機能
アプリのサブタイトル「過去問と学生証をスマホで」の通りメインの機能は、
- クラウド過去問
- デジタル学生証
の二つであり、おまけとして
- ニュース
を実装しています。
なぜ上記三つの機能を実装したのかを、時系列順に説明します。
①ニュース
開発背景
Flutterを初利用する上で、練習がてらにプログラムしたのが、ニュース機能です。
これは、公式ページをスクレイピングするだけで実装できるので、練習にちょうど良かったです。
当初は、⚡️公式ページよりも早く表示できるということをウリに差別化していました。(実際、先んじてデータをスクレイピングしておいたり、スクレイピングの際に簡素なデータのみを抽出することで高速化を図っていました。ただ、利便性重視のアップデートを行うことでその速さはほとんど軽微なものになりましたが。)
使用技術
pub.dev のパッケージを利用することで、制作しました。
使い方
動作はYahoo!ニュースに近いです。
②クラウド過去問
開発背景
外せないと思った機能は、クラウド過去問です。
周りの状況から鑑みるに不登校や鬱になった学生の共通点として
- 真面目
- 頼るのが苦手
- 完璧主義
がみて取れました。逆に、いわゆるウェイ系(飲み会好き)やサボリ系(適当主義)、リア充(彼氏彼女持ち)は該当することが少ないようでした。
そう言うわけで、彼らを救うために、
- 情報の提供
- コミュニティの提供
- 価値観変更の促し
などを考えましたが、その中でも新規アプリとして提供できる純度の高いものは、情報の提供になるのではないかと仮説しました。念の為、友人へLINEやTwitterで「上記3種のアイデアのどれが有用だと思うか」を尋ねた結果、ほとんど私と同じで「作るなら過去問のアプリだろう」とのことでした。
実際に、過去問の機能(有志によるアップロードと、無償で可能なダウンロード)を実装した初版をリリース後、学内のいろんな人にビラを配ったり触ってもらいつつ、所感を述べてもらったりインストール率を確認することで、需要の度合いを確認してみました。(計500名ほど)すると、次のことがわかりました。
⭕️ 大学1,2年生はかなりの確率でインストールしてくれる。
❌ 大学3,4年生、大学院生はほとんどインストールしない。
考えたら当たり前のことでしたが、実際に経験するとショックな出来事でした。やはり下級生は過去問で困っている人が多いようで、ベータ版にも関わらず、砂漠でオアシスを見つけたかの如く「ありがとうございます!!完成したら絶対使います!」と言っていただく機会が多かったです。
反対に上級生は、そもそも過去問が必要な学年ではないという前提もありますので、「後輩を救うためにアップロードしてほしいです!」という文言でビラを配りましたが、あまり共感を得られませんでした。彼らの意見として「アップロードに対してのインセンティブがないとやらないな」とか「自分はもう、過去問を利用する年齢じゃないので使わない。」などが多く寄せられました。また、そもそもビラを受け取ってくれない人も多く、ここに、コロナ禍を経験した層としていない層の大きな隔たりを見て取れました。
もちろん、上級生であっても即インストールして頂ける方も少なからず居て、彼らはコロナ禍の後輩の現状を知っている人だったり、共感性の高い人だったりしました。ですが、多くの上級生は、コロナ禍の後輩の現状を知らない方が多いようでした。
そこで、上級生がインストールするメリットを感じられる機能を追加することにしました。
使用技術
Firebase Strage
Firebase Authentication
使い方
UIはGoogle Driveに近いです。
③デジタル学生証
開発背景
「学生証がアプリになった」というパワーワードが上級生のインストールにつながるだろう、とのことで学生証機能を実装しました。
最初は、学生証のICをスマホのFelicaで反映できないかと考えましたが、どうやら本学の学生証は、富士通?の独自IC技術を取り入れているようで、スマホに入れられる形式ではありませんでした。そこで、いわゆる学生番号(バーコード形式)のみをスマホに反映することにしました。同時に、大学事務室や学内図書館に掛け合って、このバーコードシステムを学内利用できないか掛け合うご相談をいたしました。結果、大人の事情で難しいだろうということで、現在は未だ「使い道のない学生証システム🤔」です。この点は、大学公認サークル[6]と連携しまして、着実に新ルール提案からしていこうか、という話になっております。
機能実装に伴い、さらに500枚ほど学内でビラを配ったところ、上級生のインストール率がかなり伸びる結果となりました。具体的な数値は後日追記いたします。
使用技術
pub.dev のパッケージを利用することで、制作しました。学生番号を入力するか、スマホカメラにて学生証を読み取ると使えるようになります。
使い方
UIはPayPayに近いです。
信頼性を高める。
信頼性については、以下の2点の対応を行いました。ただ、開発よりもこの部分にかなりの時間を費やすことになりましたし、私の知識不足から未だ上手い対処ができておりません。ぜひ皆さんにアドバイスしていただきたいです🥺
- プログラム的な信頼性
- 開発元の信頼性
プログラム的な信頼性というのは、「勝手に情報が抜き取られているのではないか」という点の対処です。結論、本アプリは個人情報を抜き取ったり、どこかにストックしたりということはありません。 一番気になるのは、学生証を読み取る機能の部分だと思いますが、こちらはスマホ内での計算とストレージにのみ頼っており、この際情報が外部に通信されることは一切ありません。
ただ、これを証明するいい案が思いつかず、、、皆さまどういった案があるでしょうか?🥺
また、開発元の信頼性というのは、「開発者は信頼できるのか」ということですが、ユーザーのアドバイスによると、個人でやっている限り懐疑心は高いのでは、とのことだったので、色々な学内団体に掛け合い、大学公認サークル[6:1]と連携することになりました。また、アプリ内で収益を得ないということも、間接的に信頼につながるだろうとの意見もありましたので、無広告・アフィリエイト無しにしました。また、過去問用のサーバー費を私が負担することで、赤字前提で、後輩を救うために運営しているということが伝わればと思っています。ただ、こちらも上手い伝え方が分からないのでいい伝え方があれば、是非とも教えていただきたいです🙇♀️
許可を得る。
アプリに関する許可等については、事務室など色々な場に掛け合うことで対応中ですが、こちらは本当に難しいです。大人の方には、かなり誠意的に相談に乗って頂いているので、有難い限りです。ただ、大人の事情がどうしてもありまして、ご相談の結果、連携する大学公認サークル[6:2]にて対応することにしました。
お忙しい中、ご相談用の会議を開いていただいた事務室の方や、色々な大人の方にはこの場を借りて感謝申し上げます。🙇♀️
YouTubeのvideoIDが不正です
最後に
AppStore、Google Playにて公開しておりますので、ぜひダウンロードして頂けると嬉しいです。
改善点やレビュー等、お待ちしております。
Discussion
ところで学生証って暗号化はしているのでしょうか?
インストールしてもらえればより分かるのですが、バーコード情報のみをスマホ内に取り入れてます。暗号化はしていません。バーコード情報を、どうやって暗号化するのか教えていただきたいです🙇♀️
バーコードデータをバイナリ型に変換しAES等で暗号化すると良いでしょう
バーコードをトレースして表示しているだけの機能なのですが、暗号化は必要ありますかね?
あとは学生証などを識別させるためにデータベースに保存する必要かもしれませんね。
念のためというのもあります
ありがとうございます!大変助かりました🙇♀️
今更のコメントですが・・・
素晴らしいアプリですね🔥
コロナ禍との共存に向かっている現在ですが、アプリの中でも特にクラウド過去問はこれからも多くの学生を救うサービスになると思います。
貴アプリの更なる発展に向けて、私からはアイデアを出すくらいしか貢献できませんが・・・以下の施策をすれば記事中で挙げられていた課題点を改善するのに役立つかもしれません。
①スクリーンショットの改善
信頼性について。デザイナーさんと連携してストアのスクリーンショットを小綺麗に整えれば、多少信頼性の向上に繋がると思います。
②過去問売買システムの構築
過去問が揃わないという課題について。レシート買取アプリ「ONE」のように、過去問を買い取るという形にすれば、過去問の提供が加速すると思います。
具体的には、提供してくれた人にはギフトカードで還元し、過去問を購入したい人にはApp内課金で購入してもらいます。
例:特定の過去問をアップロードしてくれたら500円分のギフトコードを提供。アップロードされた過去問は一つにつき160円のApp内課金で閲覧できるようになる。
上記の例では一つの過去問につき5人以上が購入すれば利益が出るのでお財布を痛めずとも継続的な運営が可能になりますし、学校周りにあるような過去問屋さんよりも安く提供できるのでユーザーとしても提供者・購入者双方にメリットがあると思います。
実際にはさまざまな壁や制約があるとは思いますが、こうなったらもっと面白いなということでコメントさせていただきました🔥