Wikipedia APIとChrome Extensionsを使って、Wikipedia Golfアプリを作ってみた。

に公開

概要

存在する日本語版のWikipediaのページタイトルを返すWikipedia APIを活用して、Wikipedia Golf補助アプリを作ってみました。

きっかけ

クイズノックでWikipedia Golfゲームをしていて、このゲームの支援アプリがあればいいなと思って作成しました。

Wikipedia Golfとは

Wikipediaゴルフは、Wikipediaのあるページから別のページまでウィキリンク(内部リンク)だけを使用して移動するゲームです。

※ Wikipediaから引用

使い方

下記にアクセスして、「Chromeに追加」を押下するとブラウザ右上追加されて使用可能になります。
「start wikipedia-golf」を押下するとゲームがスタートします。
「input ending word」, 「set time」でゲームの設定を変更できます。
wikipedia golfはこちらから

※現在はChromeブラウザ向けのExtensionしか作成していません。

アプリ作成まで

作成するまでの課題

今回当アプリを作成するにあたって課題がありました。

  • CORS制約などのセキュリティ問題対策
  • 環境構築、開発のコスト
  • デプロイのコスト
  • モチベーション維持

CORS制約などのセキュリティ問題対策 -> chrome extensionsを使用

CORS(オリジン間ソース共有)の制約でデータ通信の制約がありました。WebアプリのオリジンとWikipediaのオリジンの情報共有をするときは手間が必要になります。その処理をするのが面倒に感じていました。
Chrome Extensionsを使えば、用意されているAPIを使って簡単にURLのアクセスを監視できるのでCORS問題の解決や実装負担の軽減ができます。

環境構築/開発のコスト -> Chrome ExtensionsならChromeとmanifest.jsonを用意すれば、少ないファイルで開発可能

ReactNext.jsなどフレームワークを取り入れることも考えましたが、最小限で済まそうという考えがもとにありました。
Chromeがあれば環境構築は既に完了しており、html,css,js, API使用などを定義するmanifest.jsonを用意すれば開発可能です。

デプロイのコスト -> Chrome Web Storeにリリースで完了

アプリを作ってもデプロイ先は無限にあります。
そもそも補助を目的にしているため、既存のWikipediaのページをそのまま使えればと思っていました。かつ既存のWikipediaページの唯一無二の良さ(UIなど)を生かすなら、尚更補助に適したChrome Extensionsは今回のアプリ開発の方針にあっているとも思いました。

モチベーション維持 -> MVP思考で維持

遊び感覚のアイデアで動き出した分、モチベーションの維持に苦労しました。上記のようなCORS制約/環境構築/開発/デプロイがあるとそれらにリソースを当てるだけでモチベーションが下がってしまうため、なるべく負担が少なくなるようにしたいと思っていました。
そこでよくアプリ開発である考え方のMVP(最小限だけの機能を実装する。)に沿って作成していました。

今後

  • ReactまたはNext.jsなどで作り直してみる。
  • ユーザーが増えれば、アプリのWebページを作成してみる。

参照一覧

https://ja.wikipedia.org/wiki/Wikipedia:Wikipediaゴルフ
https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/CORS

Discussion