2016年12月開発状況

前月に引き続きRepete Plusの開発中。

Repete PlusはRepeteの機能追加版です。
* オーディオファイルの区切り編集機能
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* テキストメモ機能

が主な追加機能です。


上旬

中旬

  • テキストエリアへのクラウドストレージからのテキストダウンロード機能作成。
  • テキストエリアのフォントサイズ変更機能作成。
  • テキストを隠す・表示する機能作成。
  • 前回使用したアイテムを起動時に読み込む機能作成。
  • Launch Screen画像修正。
  • 設定画面。設定 > 詳細 画面の設定。

下旬

  • 乱暴に区切りを動かすと、まれに区間がおかしくなるケースがある不具合を修正。
  • 曲リピート機能を修正。再生不要区間のことを考慮したものに修正。
  • Audio Editorの使い方Viewを作成。そのさい、水滴マークや口マークをテキスト中に入れる必要がありました。
    UILabelに画像を表示する – Qiita
    こちらの記事のおかげで助かりました。
  • 「優先する区切りデータ」機能の作成。これは、全体設定では無音検出の基準時間0.9秒レベル2となっているが、すでに基準時間0.3秒でいい感じに区切られたデータが存在する場合に、いい感じの区切りデータを優先するための機能です。
  • 選曲画面の表示崩れを修正。
  • テキストエリアが空であり、ファイルに歌詞がある場合に歌詞を読み込む機能作成。
  • 波形図部分の自動スクロール機能を作成。しかし、動きを見ていると酔ってしまい非常に気持ち悪くなってしまったので不採用。

関連

2016年11月開発状況 – nackpan Blog

2016年11月開発状況

前月に引き続きRepete Plusの開発中。

Repete PlusはRepeteの機能追加版です。
* オーディオファイルの区切り編集機能
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* テキストメモ機能

が主な追加機能です。

11月末時点での開発中動画。


* 選曲画面、タブが増えたのでスワイプ式に変更
* 選曲画面に履歴タブ追加
* テキストエリアにメモを記せます
* テキストエリアをスワイプすると曲送り・戻し(初期設定)


上旬

  • 選曲画面に、履歴タブを加えました。
  • 選曲したitemのタイトル、 アーティスト、アルバム名を上部のnavigation barに表示する機能を実装しました。
  • iPhone 4s用のレイアウト作成しました。
  • オーディオデータが場合により縦に伸びて表示されるのを修正しました。

中旬

  • Repeteの不具合の修正。
  • Container Viewについて調査。
  • Gesture Recognizerについて調査。

下旬

  • テキストエリアでジェスチャー操作ができるようにしました。(タップ、スワイプ)
  • ジェスチャー設定用画面作成。
  • Original再生(Non-stop再生から改名)時、再生速度を1以外にした時の音声が「声」仕様になっていなかったので修正

関連

2016年10月開発状況 – nackpan Blog
2016年12月開発状況 – nackpan Blog

2016年10月開発状況

前月に引き続きRepete Plusの開発中。
また、今月は懸案だったRepeteのiOS 10, Swift 3対応を行いました。

Repete PlusはRepeteの機能追加版です。
* オーディオファイルの区切り編集機能
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* テキストメモ機能

が主な追加機能です。

10月末時点での開発中動画。


* ピンチ操作でオーディオデータ表示を拡大
* 不要な区切り点をタップ操作で削除
* チェックマークをタップして、再生/再生不要を切り替え


上旬

Repete PlusのUI部品の作成と配置、アプリアイコン作成を行いました。
なかなか定まらず、泥沼に。

テキスト編集ボタンとオーディオ編集ボタン

初期案

editor_fullscreen1008v1
ペンアイコンでテキスト編集ボタンを示しました。オーディオ編集ボタンをどのような図案にするか悩みました。オーディオ・ビデオ編集では「はさみ」を図案化したものなどがありますが、実際にやってもらう操作とそぐいません。Repete Plusでは「水滴」状の区切り点マークをタップやドラッグします。そこで、この「水滴」状マークを図案化してペンアイコンと雰囲気を揃えたものとしました。
白地に円形のボタンにしました。しかし、唐突感があって馴染んでいません。また、それぞれテキストに関連している、オーディオに関連しているというのがわかりづらいです。

中期案

editor_fullscreen1009v2
テキスト編集ボタンとオーディオ編集ボタンを再生関連ボタンに合わせて薄い浮き彫り風に変更。
また、対応しているエリアと線で結びました。
線で結ぶというアイデアはうまくいっていません。

決定案

editor_fullscreen1009v3
アイコンの図案の向きを変更して、対応エリアとの結びつきを強めました。
また、アイコンの位置を対応エリアに食いこませました。
再生関連ボタンの形状に準拠した角丸四角形に変更しました。

アプリアイコン

Repeteの後継であり、機能追加版であることを示すものにしようとの思い。

初期案

icon-old-120_white
ごちゃごちゃしすぎました。

シンプルに。
Repeteで用いていたふきだしをメインにしましょう。
ただ、ふきだしのアプリアイコンは、世にいろいろあります。Appleの「メッセージ」も緑にふきだし。
アイコンがならんでいるなかで、どれだっけと迷わずにえらべるものにする必要があります。

決定案

repete_plus_icon_120_white
周りに波のグラデーションを描きました。
発声を繰り返し繰り返し続けていくイメージを表現しています。

中旬

RepeteのiOS 10、Swift 3対応を行いました。
iOS 10からは、メディアライブラリへのアクセスの際に、アクセスを許容するかどうかの確認が入りました。
そこで「許可しない」を選ぶと、以後、選曲時にアプリが強制終了する不具合がありました。
Swift 2.3(移行時用の暫定バージョン)ではなく、Swift 3(Xcode 8でのスタンダードバージョン)に一挙に移行しようとして処理を進めましたが、ひどく時間がかかってしまいました。

外部ライブラリ(クラウドストレージ用のライブラリ)を対応させるのに時間がかかりました。
CocoaPodsを機能させるのに試行錯誤、ライブラリのAPIのバージョンが新たになったのでそれに対応させる、などなど。

また、表示崩れが生じている部分を修正。
iOS 10では、viewDidLoad時にconstraintのwidth,heightが反映されないので、そのため生じたレイアウト崩れを修正。
また、non-stopボタンの文字部分の描画をAutodesk Graphicが生成したコードで行なっていたが、ここでエラーが発生したので、UILabelに置き換えました。
UILabelに”Non-stop”と適切に描くためにNSAttributedStringを使用しました。

下旬

区切り情報、再生/非再生情報などを保存するために、Repete Plusでは、Realmを用いることにしました。
Realm: Create reactive mobile apps in a fraction of the time
外部ライブラリの使用では、ライブラリの導入段階でつまづき、サンプルがそのままでは動かないという事態が毎回のように発生していました。
なので、Realmを使うときもおそるおそる進めていったのですが、使ってみるととくにトラブルなくスムーズに導入、実行ができました。
ドキュメントも充実していて、なんといいますか、すごく心地よく作業を進めることができました。

Repeteでは、メディアライブラリアイテムのみ区切り情報をCoreDataを使って保存して、分析時間の短縮に用いていました。この機能はなければないで、(ちょっと分析に時間がかかるとはいえ)やっていけたのですが、今回のRepete Plusではそうもいきません。
Repete Plusでは、再生されたファイルを照合し、データベースにあれば、区切り情報、区間の再生/非再生情報、再生日時を呼び出す仕組みとしました。再生日時は、選曲画面の履歴タブに用います。

関連

2016年9月開発状況 – nackpan Blog
2016年11月開発状況 – nackpan Blog

2016年9月開発状況

前月に引き続きRepete Plusの開発中。

Repete PlusはRepeteの機能追加版です。
* オーディオファイルの区切り編集機能
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* 歌詞表示

が主な追加機能です。

前半

今月は、iOS 10、Xcode 8がリリースされました。
Xcode 8からは、推奨されるSwiftのバージョンが2系から3.0になりました。
今月前半は、「Repete」「Rendow」「Repete Plus」をiOS 10、Swift 3に対応させる処理を行いました。
Xcodeの自動コンバートでは対応しきれないCore Graphicコードの書き換え用にRubyで簡易コンバーターを作成しました。
CoreGraphicsコードをSwift 3.0に変換する – nackpan Blog

後半

「区切り点編集機能」のプレイヤーへの組み込みを行いました。

再生中、停止中、待ち中に
* 区切り点の移動
* 区間の使用・不使用チェック
を行ったとき、プレイヤーにその操作が適切に反映されるようにしました。

スクロール直後に軽くpanしたときに、意図せず区切り点の移動になってしまう症状が出ていたのを直しました。

テキスト表示機能の試作をおこないました。

関連

2016年8月開発状況 – nackpan Blog

2016年8月開発状況

前半

前月に引き続きRepete Plusの開発中。

Repete PlusはRepeteの機能追加版です。
* オーディオファイルの区切り編集機能
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* メイン画面の左右下部に設定変更ショートカットボタン
* 歌詞表示

が主な追加機能です。

今月は、7月に引き続き「区切り点編集機能」の作成を行いました。

スクロール、ズーム、区切り点の挿入・削除に加えて、
* 区切り点の移動
* 区間の使用・不使用チェック
機能を追加しました。

後半

Dropbox API

Dropbox APIが、従来のものが廃止されることになり、あらたなAPIを用いて書き直す必要が生じました。
API v1 is now deprecated | Dropbox Developer Blog
そこで、Repeteおよび作成中のRepete Plusの該当部分を書き直しました。

OneDrive API, Google Drive API

Repeteでは、他にOneDriveとGoogle Driveを連携できるクラウドストレージとして設定しています。
OneDrive、Google Driveともに、既存のアプリは従来のAPIを継続して使用できます。
新規に作成するアプリであるRepete Plusでは、最新のものを用います。
8月後半は、そのための書き換えを行いました。

2016年7月開発状況

前月に引き続きRepete Plusの開発中。

Repete PlusはRepeteの機能追加版です。
* 歌詞表示
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* メイン画面の左右下部に設定変更ショートカットボタン
* オーディオファイルの区切り編集機能
が主な追加機能です。

今月は、「区切り点編集機能」の作成を行いました。

7月初頭。UIScrollViewを使用しないで、グラフをスクロールさせる機能を作ったものの、UIScrollViewのスピードに乗ったスクロールやバウンドがない。やはり、UIScrollViewを使用することとした。

UIScrollViewのあつかいかたを学ぶ。重くならないように、必要なぶんだけグラフを描画する。

UIScrollView、スクロールすると、scrollViewのoriginが変化する。
scaleが変化すると、scrollViewが持つviewのframeのsizeも変化する。

スクロール、ズーム機能の実験

tapして点を消したり、加えたりする。Tap Gesture Recognizerを用いた。

スクロールとズームを横方向に限定

区切り点の編集機能を作成中

ここまで作ったところで、やはり指先tapでは位置がおおまかになってしまい、狙った点にいまいちtapできないなと感じました。
tapで点を置いた後、点をドラッグすると移動できることとしました。
その機能を作るのに難航して7月が終了してしまいました。

2016年6月開発状況

今月からRepete Plusの開発を本格的に再開しました。
(去年、Objective-C版で開発に手をつけたあたりで、RepeteのほうのSwift移行およびプレイヤーの抜本的改修の必要があり、それに半年かかってしまいました)

Repete PlusはRepeteの機能追加版です。
* 歌詞表示
* 曲送り・曲戻し
* 早送り・戻しでの秒数指定
* メイン画面の左右下部に設定変更ショートカットボタン
* オーディオファイルの区切り編集機能
が主な追加機能です。

1日~22日

Repete Plusの開発。
* 画面レイアウト
* Repeteの機能の移植
* 歌詞表示機能
を行いました。
また、この時期には並行して、関数型プログラミングの考え方を理解しようと「すごいHaskellたのしく学ぼう!」を読み進めていました。

23日~28日

RepeteのPicker、Playerの動作確認中にいくつか挙動がおかしい箇所を発見。
選曲画面で一番下のセルが選択できないケースがあったのを修正。
Playerで用いているKVOにおいて、removeObserverが立て続けに呼ばれる可能性がまれにあり、crashを引き起こすので、その部分を修正。

29日、30日

Repete Plusの開発。
* 曲送り・曲戻し機能

開発中の画面

2016年5月開発状況

5月上旬

Repeteのアップデート(ver 2.0 -> ver 2.1)を行いました。
録音したあとに、それを確認するために再生する操作をスムーズに行えるようにしました。
具体的には、録音ボタンのとなりに直前に録音したものを再生するボタンを加えました。
ss_2016-05-10_21_10_41_2

5月中旬

Rendowをアップデート。
Swiftコードをモダンにしました。
iAdを取り外して、AdMobにしました。

5月下旬

Rendowを紹介する動画を作ろうと試みました。
動作しているところを撮ったものと人物が走っているアニメーションを組み合わせたものを作り始めました。

誰でもわかる!アニメの基本バイブル 人物の動き編を参考に、人物が走っているところを作画。

当初はiPadに指で描いていましたが、途中でペンタブレット(ワコム ペンタブレット Intuos Draw ペン入力専用 お絵描き入門モデル Sサイズ ホワイト CTL-490/W0)を購入。
本を参考に、歩いているところ、走っているところ、ゆっくり走っているところ、を描いたところで、こりゃ大変だ、なかなか終わりそうにないや、と感じて動画作成はいったんとりやめとしました。
また、折を見て作成したいと思います。

図はゆっくり走っているところ。