Swift第2弾、Fiio用のファイル転送&プレイリスト作成アプリを作ってみた


以前にSwift第1弾として、Exifからファイルの振り分けを行うアプリを作成致しました。

↓こちらです。

Swiftを使って初めてMacアプリを作ってみた

第2弾として、音楽ファイルの転送&プレイリストを作成するアプリを作ってみることにしました。
 

◎ きっかけは、


最近Fiio X3 2ndを購入しました。
不在通知が入っていて受け取れてませんが、約1週間で届いた感じです。
それはさておき、DAPは今までiPhoneメインでしたので、iTunesが基準です。
一時期Walkmanも使いましたが、結局iPhoneに戻ってきました。
理由は、M505がハイレゾ音源に対応していないためです。
今までハイレゾには興味が無かったのですが、たまたまflacの音源を聴いたら、感動してしまいiPhoneアプリのOnkyo HD Playerで聴くようになりました。
アプリではなく、ちゃんとしたので聴きたいなと思いました。
 

◎ 問題は山積み


今まで、何度もAndroidなど別のプレーヤーに行きましたが、iTunesでずっと管理していたので、ドラッグアンドドロップだけで良いと言われても、どこにどうすれば良いか逆に困るんです(笑)
結果としてすぐにiPhoneに戻ってきてしまっていました。

さらに、今回のFiioはWalkmanのContent Transferのような転送ソフトもありませんし、プレイリストを作るのも大変みたいです。
Macだと書き出したm3uも文字化けしたりするようなことも書かれていましたし、このままだと、きっとiPhoneに戻っちゃいます。
いや、確実に戻るでしょう(笑)
こんな状態なのに、何でFiioを買ったのでしょう(笑)
安くハイレゾを聴けるし、イヤホンのiPhoneリモコンも使えるようだし、何か良いなって思っちゃったんだもん。
 

◎ 買ったからには何とかしよう


使い倒すためには、iTunesが使える、プレイリストを楽に作れることがとても大事。
基本iPhoneでも何でもプレイリストで聴いているので、プレイリストが使えない、使いづらいのは困ります。

前置きが長くなりましたが、Mac用の転送ソフト&プレイリスト簡単作成アプリを作りました。

仕様は、
- iTunesのプレイリストのD&Dで転送&プレイリスト作成
- flacなどiTunesに対応していないものでも使えるように、ファイルのD&Dでも同様の処理
- ファイルをD&Dした場合は、プレイリストを新規にするか既存のに足すか選択可能
- TF1:とかプレイリストのファイルパス前に付ける文字を選択可能
- ファイル名を変更して転送する機能(ファイル名で表示される部分があるそうなので)
- 転送先ディレクトリ構成はiTunesと同じ
- ファイル名にディスク番号を付けられるように。
 (2枚組だと1枚目の1曲目の次に2枚目の1曲目が来るようなので、ファイル名変更すれば対応できるのかなと浅はかな考えw)
- プレイリスト作らないで転送だけもできるように
- 対応ファイルは、mp2,mp3,m4a,flac,aac,wavのはず。
 (mp3,m4a,flacが使えればいいかなって感じ)
- Fiio用で作ってるけど、他でも使えるんじゃないかな。
が現在
というのもこれでちゃんと再生できるかとか、問題ないのかとか、実機がまだ無いので未確認。

動作的にはこんな感じ。
 

◎開発の話をちょっと


今回は、Swift+Objective-Cで作りました。メインはSwiftで、ちょっとSwiftだと辛いところはObj-C。
Obj-CもSwiftもそうですが、iPhone関係の関数は充実してるけどOSX側は止まってる感じ。
iPhoneならできるのにっていう関数が結構あって辛い。
おまけにWeb上の情報はほとんどiPhoneなので、なかなかたどり着かない。
BlackBerryの開発を思い出した(笑)
それでも調べれば、形になるから面白い。
試行錯誤したおかげでSwiftもObj-Cも慣れてきた。
前よりも嫌悪感が無くなった。というか楽しいかも。
ただ、Obj-cの補完機能は早いのに、Swiftの補完機能がやたら遅いのは何とかして欲しいな。
Appleにお布施しないからかな(笑)
 

 
 

Newer: MNOとMVNOの回線速度は昼だけ顕著に違うみたい

Older: 今度はミュージックアプリが刷新される予定らしい

in the Swift category...

Newer: Swiftで画像サイズがうまく取れなかった件

Older: Swiftを使って初めてMacアプリを作ってみた

他にもこんな記事が読まれています [さらに他の記事]

Copyright © Rocomotion