iOSアプリを作ってみる(1) : アプリの基本概念とSQLiteの準備

ということでいきなり始まりましたアプリを作ろう企画。何回シリーズになるか分かりませんが、とりあえず突き進んでみます。

やりたいこと

今回、アプリを作るに当たって、こんな感じかなというイメージを書き出してみました。あくまで希望ベースです。

  1. スタート画面みたいのがある。「開始」と書かれたボタンを押したら始まる。
  2. 画面の丈夫に単語、その下にピンインの4択があるので選ぶ。(選択肢はまぎらわしい感じに)
  3. 次画面で正解と単語の意味などの補足情報が出る。
  4. 継続ボタンか画面のスワイプで次の問題(単語)へ移動。
  5. 一定の数の単語が終わったら「おつかれさん」というメッセージとともに正解率などの結果が出る
  6. 単語の数とか、どんな基準で単語を選んでくるかの最低限の設定が出来る

自分で単語を登録できるなども考えてみたのですが、特に入力された内容が正当なモノかどうかを判別する部分が煩雑になりそうなので、今回はやめておくことに。もう少しかみ砕いて必要となりそうなロジックも書き出して見ます。

  1. たくさんある単語の中から出題するものを選択する
  2. 紛らわしい選択肢を表示する
  3. 正解・不正解などの統計情報を保持して結果を表示する
  4. 1回に出題する単語数などの設定情報を保存・取得する

これまでも類似のアプリを触ったことがあるのですが、(自分が見たアプリの中で)いちばん不満だったのが1番目と2番目なんです。当たり前なのですが収録されている単語と自分のレベルが合致しないので少し物足りなく感じてしまいます。いっぽう、4択の場合どうやってダミー(不正解)となる選択肢を表示させるのかというのがポイントになるような気がします。これまで触ったモノでは、他の単語のモノを拝借していたりしていたのですが、母語である日本語に音読みを持っている以上、消去法でみるからに一択になってしまうような選択肢では意味がありません。なので、敢えて紛らわしい選択肢を「生成」する方法を考えることにしました。これには過去に一番熱心に中国語学習をしていた頃の学習データ、具体的にはどういう単語をどのように間違えたのかが幸いなことに残っているので、その中からパターン化することが出来そうです。

という感じでやりたいことはだんだん固まってきました。

データベースの作成

ネタ元となる単語とその情報は、FileMakerのデータベースとして手元にあります。今回の場合は、Filemaker Goを使うわけではないので、iOSアプリで一般的なSQLiteに移し替えて使う事にします。と言うことで、コーディングに入る前にSQLiteのデータベースを準備することにしました。

先ほど書いたとおり、単語と正しいピンイン、単語の意味などのデータはFilemakerのデータベースに入っています。このデータベースの中から必要な情報をエクスポートして、SQLiteのデータベースに入れてあげれば良さそうです。ということで、SQLiteGUIで扱えるツールを探してみたところ、FirefoxのアドオンのSQLite Managerが良さそうだったのでダウンロードしてみました。

操作するに当たって何か特段の説明が必要そうな感じではありません。だいたい直感で操作できると思いますが、いくつか画面ショットを貼り付けておきます。(なぜかWindowsの画面ですが気にしないでください。もちろんMacのFirefoxからでも同じ操作ができます。)

これが管理画面。まずは新しいDBを作成するところから始めます。といっても、この画面はすでに作成済みの画面だったりしますけど気にしないでください。

f:id:deutschina:20130903180735p:plain

これがテーブル定義の画面。少しでもDBに触ったことがある人なら難しく感じる事はないはず。

f:id:deutschina:20130903180900p:plain

CSVファイルをインポートする機能もちゃんとあります。あらかじめFilemakerからCSVファイルとしてエクスポートしておいたヤツを読み込めばOKです。エクスポートする際にSQLite側の項目構成に合わせてエクスポートしておけば楽だと思います。

f:id:deutschina:20130903180950p:plain

インポートが終われば、こんな感じでエントリが入っているのが確認できます。

f:id:deutschina:20130903180825p:plain

では早速iOSとつなげてと行きたいところですが、もう少し考えないと行けないところがあります。

(つづく)