Appをリリースしてみて感じたこと(1) - 小さく始めよう

長いこと待たされましたが、レビューそのものは短時間で終わり、自作アプリがApp storeにリリースされ、一応アプリ開発者の端くれになることが出来ました。

Pinyin Trainer

Pinyin Trainer

  • Kentaro Miyagawa
  • 無料

相当地味なアプリではありますが、(アメリカ西海岸時間-たぶん)9月25日現在13回ダウンロードされています。リリースする前にどこかのWebサイトで、1回もダウンロードされないアプリが結構多いと聞いていました。そこで、目標を10ダウンロードと設定していましたのですが、これは早くもクリアすることが出来ました。

・・・ここで打ち止めだったりするかも知れませんけどね。

私自身はIT業界に身をおいている技術者ですが、開発そのものは本職ではありません(このアプリも業務時間外に作りました)。やっている事を簡単に言うと、すでにある(結構巨大な)アプリの一部についてバグを潰したり、最適化をするのが仕事です。なので、小さいながらも開発してアプリをリリースするという一連の流れを追うことは、とても新鮮でした。その中で感じたことを少し書いておこうと思います。

膨らむ仕様

自分で作ったアプリが少しずつ形になってきて、自分のやりたいことを実装する方法が見えてくると、あれもやりたい、これもやりたいと欲が出てきます。ただ、自分のこれまでの仕事での経験上、仕様がどんどん増えてくると「ネバーエンディングストーリー」になるのは分かっていました。なので、地味すぎてつまらないと言われようが、最初のリリースでは必要最低限の機能しか含めないと決めていました。まずはリリース、そこから機能を拡張していけばいいと割り切りました。

ただ、実際のアプリの中では、当初の設計には含めていない「機能」を後から追加しました。単語の意味が表示されている画面から"Online DIC"というボタンをクリックすると、百度詞典のサイトに飛ぶという機能です。しかしながら、これは厳密には機能拡張ではなく、むしろ開発の効率化、平たく言うと手抜きです。

というのも、もともと単語の意味を日本語以外に、中国語でも表示する事を想定していました。しかし、この機能の実現方法について、いくつかの問題に直面することになります。

  • 厳密な意味で著作権に抵触する可能性が否定できない
  • 入力作業自体が面倒くさい

一点目は、自身のデータベースの中に中国語による単語の説明を持たせることは技術的には難しくありません。しかし、これらの引用元を何にするか、引用元したとして著作権的に問題にならないとは言い切れません。また、このアプリには600以上の単語が収録されていますが、それら1つ1つについて、中国語で数十文字の記述を追加するという作業は単純に手間が掛かります。

そこで、考えたのが外部Webアクセスに変更することです。私の場合は、たまたま中国在住でもあり、中国語のフリーのオンライン辞書サイトもいくつか知っていました。その中で、用例もあり英語での説明も付いている百度词典はベストの選択のように感じられました。外部サイトに直接飛ぶので著作権上の問題も発生しないはずです。

あとは、新たにWeb viewを追加して百度词典にアクセスさせる仕組みを作るのと、データベースを人力でメンテするのとどちらが大変かという話です。つまり、データベースにあらかじめ持たせるという方法から、外部Webアクセスに変更することで、データベースのメンテの省力化によって削減できる工数が、新たにWeb viewを作る工数よりはるかに大きいと判断したからで、機能を最小化するという主旨には反していません。

ただ、中国語での単語の説明を載せる項目が空いてしまったので、そこには代わりに英語を表示するように仕様を変更したので、結局、すべての単語レコードに英語での意味を追加するという作業は新たに必要となりました。それでも、中国語ですべてメンテナンスするよりはるかに早く終わらせることができました。

今後の機能拡張予定

小さく始めて大きく育てることにしたからには、早くも次のリリースにはどんな機能を入れるかを考え始めています。ただ、次のリリース(1.1、これとは別にBugfix版として1.0.1をリリース予定)については、見た目の大きな変更はあまり多くないと思います。今のところ間違いなく入りそうなのは、以下のような変更点です。

  • SQLite直接アクセスからCoreDataに移行
  • App設定の保存方法の変更
  • ダミーの選択肢の生成ロジックの改良(もっと紛らわしく)
  • 日英以外の単語の意味などを入れられるようにユーザ定義項目を追加

CoreDataは現状のDBアクセスの部分を大幅に書き換えるので外科手術が必要ですが、今後の中長期的な機能拡張を考えるといまのうちに基盤は整えておきたいので、このタイミングでやりたいと思います。

長くなりましたが、こんな感じであと数回、感じたことを書いていきたいと思います。