auの日記

プログラミング初心者の日記。(auはハンドルネームです)

QRコードを使ってセキュア(当社比)なゲームアプリを作り始めた

auです。

大学の委員会の企画で、Web上でできるスマホゲームを作ることになりました。

一応ゲームの候補は決まっていて、くじ引きのように当たり外れがあるゲーム・スコアを競うゲームの二択になっています。

そして、今回の目的は以下の通りです。

1. QRコードを読み込んでゲームサイトに飛ぶことができる

2. FirebaseというNoSQLなサービスを使い、これをデータベースとして管理する

3. 大学内でクラックされないように、思いつく限りセキュアにしていく

4. 開発基盤にはDockerを用い、開発者が共通の環境で開発できるようにする

となっています。

まず1についてですが、以前福引アプリをGAS(Google Apps Script)を使って開発したのですが、いちいちお店まできて、自分たちのPCに触れさせなければなりませんでした。それよりも、個人で持っているスマホでできた方がユーザビリティが高いのではないかということで、QRコードを読み取ってゲームをプレイできるという方式になりました。

次に、2についてのデータベースですが、最初は大学で使われているSQLite3や、主流となっているMySQLなどを使う案が出ていましたが、大きいJSONファイルで管理できるというFirebaseがあるということで多くの開発者が興味を持ったので、それを使うことにしました。Pythonでもいじれるという点も大きいです。

3番目については、そのまんまです。大学内ではパソコンができる人がほとんどなので、様々なクラック対策をしなくてはなりません。何日か開発しましたが、毎回のように「ここってこんな方法で悪さされるんじゃないか」という議論が行われています。プログラムでの解決方法は思いついたり思いつかなかったり。やっぱり物理的な手法が一番ってことですかね。

最後に4つ目については、最初はcondaなどの開発環境を統合しようとしたのですが、多くの企業でDockerが用いられていること、とりあえずやってみたいという人が多かったことから採用されました。環境構築しているのは僕じゃないのですが、やってる本人は唸ってました。Windows10 Homeへの対応の仕方が難しいらしいです。



ただ開発が完了して企画を実行するだけでなく、こんな開発もできるんだということを委員会の上層部に示し、他大学などで評価されるものを作れるように頑張りたいと思います。

この内容も面白くなってきたらまとめていきたいと思います。