EY-Office ブログ

初めてリリースしたiOSアプリ「読み聞かせ絵本アプリ」の苦労話

EY-Officeで制作した過去のアプリシリーズ第三弾は 読み聞かせ絵本アプリ です。

iPhone/iPad用 絵本アプリです。

読み聞かせ絵本アプリ

読み聞かせ絵本アプリの機能

リリースされた2010年当時はまだスマフォの電子書籍アプリは始まったばかりの時代でした。そんな中 読み聞かせ絵本アプリ はユニークなアプリだったと思います。

  • 絵本の表示
  • ページをめくると、声優さんの読み上げ聞ける
  • 親が絵本を読んで録音し、読み聞かせる事が出来る

などの機能を持っていました。利用される状況としては、移動中や親が忙しい時に小さいお子さんに絵本を読みか聞かせる事を想定して作りました。そのような状況では、親の聞き慣れた声で読み聞かせると子供も安心するのではという考えで録音機能が追加されました。

当時は、まだアプリ内課金は始まっておらず、絵本毎にアプリを作り、2アプリがリリースされました。しかし売り上げは芳しくなく、そのまま終了してしまいました。

なぜiPhoneアプリ開発を始めたのか

EY-Officeを始めてからずっとWebアプリを作って来ました、2000年代はITバブル崩壊などありましたが、世の中は着実にインターネット化が進み開発の仕事はずっとありました。しかし2009年リーマンショックの後、しばらく仕事が途絶えてしまうことがありました。

その頃、私はiPhone3GSを使っていましたし2007年から開発マシンは Mac を使っていました。
そう、iPhone も Mac も有るんだから、暇な今のうちに iPhoneアプリでも作ってみよう!とiPhoneアプリ開発の本を2冊買って勉強しました。そして、地図(GPS)とTwitter API を組み合わせた Tweet Now というアプリを作り無料でリリースしました。

それから少しして、知り合いの知り合いから 読み聞かせ絵本アプリ 開発の話が来ました。

2010年当時のiOSアプリ開発

その当時のiOSアプリ開発は現在とは大きく違いました。まずは開発言語が Objective-C !! 現在の Swift は現代的なプログラム言語ですが Objective-C は C言語の上に、無理矢理 Smalltalk 由来のオブジェクト指向を乗せた言語です。
C言語にオブジェクト指向を導入した言語としては C++ が有名です、C++ はC言語との互換性を考えながらオブジェクト指向を上手く融合しています。それに対しObjective-C は木に竹を接いだような不思議な言語でした。

ただし、Ruby言語を使っていた私には Smalltalk 由来のオブジェクト指向に慣れ親しんでいたので、Objective-C は直ぐに理解出来ました。もちろん昔 C言語は使っていたのも理解をたすけました。

しかし、苦労した点はあります、メモリー管理です。 Objective-Cはメモリーの割り付け・解放をプログラマーが行わないといけません。 Objective-Cのオブジェクトはメモリー管理のためにリファレンスカウンターを持っているので、C言語の alloc / free よりは楽でしたが、やはり管理を間違うとメモリーがリークしたり、解放したオブジェクトを参照して Segmentation fault でアプリが落ちたりしていました。
ただしiOS5で ARC(Automatic Reference Counting)がサポートされると、メモリー管理が画期的に楽になったのは印象的でした。

また、当時のiPhoneのCPUは性能が低くメモリーも少なかったので、快適に動くアプリを作るにはアルゴリズムやメモリーの使用量などで工夫をしないといけませんでした。Mac開発環境のiPhoneシュミレータでは快適に動くのに、iPhone実機で動かすとモッサリという感じでがっかりした事も良くありました。

現在のiPhoneは格段に性能が上がり、場合によってはMac開発環境のiPhoneシュミレータより早いこともあります。また開発言語も現代的なSwiftになり普通のアプリを作るにベーシックな部分で悩む必要がなくなり、iOSアプリの開発はかなり楽になったと思います (そのぶん複雑で大規模なアプリが要求されるように成り悩みは尽きませんが・・・)。

- about -

EY-Office代表取締役
・プログラマー
吉田裕美の
開発者向けブログ