Repete Plusをリリースしました

「Repete Plus」をリリースしました。

Repete Plusは、語学学習を支援するオーディオプレイヤーです。
複数のフレーズが収録された語学教材を自動的に間隔をあけて再生できます。

Repete(語学学習支援プレイヤー)の全機能を含み、さらに追加の機能として
• 区切り点の編集機能
• 分割した区間の再生・再生不要を設定できます
• テキストメモ機能
• クラウドストレージ(Dropbox, OneDrive, Google ドライブ)からテキストファイルをダウンロード
• 歌詞読み込み機能
• 曲送り・曲戻し
• 曲リピート
• 早送り・早戻し秒数指定
• 前区間ボタンを押した時に、前区間へ戻るか現在の区間の冒頭に戻るかを定める境界値秒数指定
• テキストエリアでタップ・スワイプのジェスチャーで再生機能をコントロール
• 選曲画面の利便性向上
– スワイプタブ式に変更
– 最近使用したアイテムを表示
– 履歴タブ
– タブ並べ替え機能
があります。

大幅に使い勝手が向上した「Repete Plus」をよろしくお願いします。

2015年8月開発状況

2015年8月開発状況

8月上旬

Rendow(走る速度に連動して再生速度が変化するオーディオプレイヤー)の開発。仕上げ段階。
8月11日にAppleに提出。
その後、2回リジェクトされて9月2日現在、まだリリースできていない。
1回目のリジェクト。アプリが落ちるバグ。ミュージックライブラリにプレイリストが一つもないときに選曲画面を呼び出そうとするとアプリが強制終了するというもの。これはひどい。テストしていればすぐにわかったはず。
適切なテストのやりかた学ぼう。
2回目のリジェクト。バックグラウンド処理はミュージックプレイヤー等限定されたものに限られているが、Rendowはそれに違反しているとのこと。
Rendowがバックグラウンド再生の最中に加速度センサーを動かして歩行速度を計測しているのがよろしくないようなので、バックグラウンド再生機能は取り除いて再提出した。

8月下旬

Repete Plus用のプレイヤー部分の作成。
4,5月から作成していたものを引き継いで、Objective-Cで作っている。
Repete Plus用と書いたが、現在作成中のObjective-Cで書いているものは、Repete用に使う予定。
Repete(語学学習支援プレイヤー)はフォアグラウンド用プレイヤーとバックグラウンド用プレイヤーの二本立てになっている。複雑な構成で手を入れにくい状態になっている。また、(作成当時は必要だと思ったが)いたずらに複雑な処理をしている部分がある。
なので、Repeteのプレイヤーを作り変えて、すっきりしたかたちにする予定。
それが、終了すれば、プレイヤー部分をSwiftに書き換えてRepete Plusに用いる予定。

5月時点では、Repete PlusもObjective-Cで作っていこうかと思っていた。
しかし、そのあとRendowをSwiftで作ってみて、またAppleはSwiftを推進するだろうことから、Repete PlusはSwiftで作成することにした。

しかし、Objective-Cで書いて、またSwiftで書き換えるいう作業は、しんどい。
Repeteに関しては、Objective-CかつiOS7.x系で処理するとして、これから作成するアプリはSwiftで、またできるだけ最新のiOSで作成することにしよう。

2015年5月、6月、7月開発状況

2015年5月、6月、7月開発状況

三ヶ月間の開発状況

  • Repete Plusのオーディオプレイヤー部分を刷新

  • 走る速度に連動して再生速度が変化するオーディオプレイヤー「Rendow」の開発

5月上旬
• Repete Plus
Repete時代のオーディオプレイヤー部分は、複雑な構成になっている。
バックグラウンド再生に対応するために、プレイヤー部分を刷新した。
しかし、この対応機能作成が非常に難航。
reference通りにやっても正確なcurrent timeがとれない。シーク動作を繰り返していると、0.3秒ずれる。ぎゃあぁ。あるいは、0に戻ってしまっている。うげぇ。などなど。
そこで、それまで機能していたフォアグラウンド再生用のプレイヤーを復活させて、フォアグラウンド再生用プレイヤーとバックグラウンド再生用プレイヤーの二本立てにして進めていった。
その後、バックグラウンド再生用プレイヤーの改修を進めていって、ほぼ安定的に動作させることができるようになった。
ただ、Repeteでは、二本立てプレイヤー状態は残したまま。
また、区間情報管理部分と、プレイヤー部分が妙に絡み合っている。
そのため、なにか修正をする際に、思わぬところに影響がないかを気にしながら進めなければならない。

その状態は、ややこしくて手を入れずらい。
Repete Plusでは、プレイヤーは一つにしたい。
また区間情報管理部分とプレイヤーの絡み合いを取り除き、分離したい。

ということで、Repete Plusのオーディオプレイヤー部分を作成した。
以前よりは学習が進んだので、以前よりはわかりやすいものになったし、以前よりはなにか修正があったさいに手を入れやすくなった。

ここで、5月上旬が終わり、あらためて、Repete Plusの今後について考えた。
・テキスト表示部どうするん?
・テキストの取り込みどうするん?
・テキストとオーディオの対応どうするん?
・区間分割したあと区切りを取り除いたり付け加えたりの編集機能どうするん?
・データ管理どうするん?
などなど。課題が大量にあって、完成までは相当時間がかかることがあらためて明らかになった。

うーん。
できるまで相当時間がかかるとなると、精神衛生上よろしくない。
ひとつきぐらいは元気だけど、それを過ぎると、だんだんのたくりながらうごめく精神になってしまう。
毎月、なにかしら成果物を出したい。

と考えた。
そこで、「こういうアプリ作りたいメモ」のなかの「走ると速くなるオーディオプレイヤー」を作成することとした。
これは、さっとできるんじゃないかしら。5月末までに作れるだろう。
ちょっと試作してみた。走ったら速くなる部分。実際に走ってみた。ちょっと面白い。
よし、作ろう。

5月下旬~8月上旬
• Rendow
「走ると速くなるオーディオプレイヤー」は、そののち「Rendow」と名前をつけた。
当初、完成は5月末と見込んでいたが、実際には8月上旬までかかったのだった。
Rendowの製作については別記事をたてて、記すこととします。

以上、三ヶ月間の開発状況というか、5月上旬までのRepete Plusの作成状況とRendow作成開始までのはなしでした 

2015年4月開発状況

2015年4月開発状況

上旬
• Repete
録音リストまわりを改修
録音UI関連でいくつか実験。実装には至らず
選曲画面をいったんはリスト式にしていたが、タブ式に変更
選曲画面の右端にインデックス
Podcastタブの追加

中旬
• Repete
iOS 7.x系でプレイリストからその中の項目を開こうとすると落ちるバグを修正
(これは、iOS 7.x系の実機で「プレイリストを選び、一覧から一つを選ぶ」動作チェックをしていれば防げたバグ。
こういう確認作業の抜けをなくすのに参考になるかと思い、iOSアプリテスト自動化入門
を読みだした)
ver1.5.3を提出

• Repete Plus
アプリアイコン作成。
決定できなかったので暫定アイコンを作成して、アイコンは開発が進んでからということに。

下旬
• Repete Plus
レイアウト作成
iPhone 4SからiPadまで、いいかんじに収まるようにUI部品をレイアウトする
テキスト表示機能があるので、その部分の広がりを機種によって変更する。
ひろがりをどのように確保するのか。
もともと語学学習支援プレイヤー(Repete)は、iPhone 4S画面いっぱいを使うレイアウトだったので、それを引き継ぐとあまり場所がないね。
オーディオファイル情報とボリュームバーに移動してもらって、iPhone 4Sの3.5インチ画面上でテキスト表示部を確保。
iPhone 6+だと、テキスト表示部が画面の半分はあって十分確保できてると言えるでしょう。
いいかんじにレイアウトできたので、良しとして開発を進めましょう

• Repete
「録音リスト」での移動モード時に、「録音リスト」と表示されるべきところで「recordings」となっているバグなど、表示がおかしい部分を修正
設定画面でアプリのバージョン情報を表示するようにした
5月1日にver1.5.4を提出