Music Roverでミュージックライブラリの閲覧・再生ができるようになりました

Apple Musicでお気に入りの曲を見つけるためのアプリ、Music Roverがv1.1.0でミュージックライブラリの閲覧、再生もできるようになりました!(iOS 16以上)

App Storeでダウンロードする

右上のアイコンからホーム/ライブラリ/検索を切り替えられます。

おすすめの使い方は、ライブラリにある好きな曲からステーションを開始することです。ステーションを開始すると関連する曲が自動で再生されます。曲を長押ししてステーションキューに追加してみてください。

Music Roverは、すっきりしたデザインに重点を置いたミュージックプレイヤーアプリです。Apple Musicのコンテンツだけでなく、ミュージックライブラリの再生でもこのアプリのシンプルなUIを楽しんでいただけますと幸いです。

音楽探索プレイヤー Music Roverをリリースしました

Apple Musicの曲からお気に入りの曲を見つけるためのiOS向けアプリ
Music Roverを先日リリースいたしました。

[無料] App Storeからダウンロード

これはApple Musicで何か良い曲はないか探したい時に使ってほしいアプリです。
アプリの特徴や機能についてはこちらをご覧ください。

このアプリが目指すもの

私はApple Musicをよく利用しており、好みの曲がないかちょくちょくチェックするような使い方もしております。そこで感じたのは、iOS標準のミュージックアプリは非常に高機能で様々なコンテンツを表示することができますが、音楽に関することを一つにまとめているために各機能にたどり着きにくくなっているのではないかということでした。

また、せっかく非常に多くの曲を聴くことができるサービスなので、まだ聴いたことのない音楽を楽しく探せるよう、探索することに特化したアプリを作りたいと考えたのが開発のきっかけです。

特に重視している点が、再生キューステーション機能です。

再生キュー

再生キューとは、再生される曲のリストのようなものです。iOS標準のミュージックアプリではこのキューが1つだけあり賢く制御されているのですが、様々な曲を聴いてみたいときにキューの内容を意図せず変更してしまうことがあります。そのためMusic Roverでは複数のキューを用意し、それらを切り替えて使用することで気になる曲を聴いてみやすくなるようにいたしました。

ステーション機能

ステーション機能は特定の曲やアーティストをもとに自動的に選曲されるラジオのようなもので、Apple Musicの便利な機能の一つです。あらかじめ作成されたステーションもありますが、自分の好きな曲からステーションを作成することもできます。

この自分で作成するステーションでお気に入りの曲が見つかることが多く個人的に愛用しているのですが、iOS標準ミュージックアプリではあまり目立つようになっておりません。そこで、Music Roverではすぐにステーションを開始できるようにいたしました。ステーションを作成されたことがない方はぜひ試してみてください。

UIデザインについて

Music RoverのUIは曲を探したくなることをテーマにしてデザインしました。

ホーム画面では様々な音楽があることを印象付けるために比較的小さめに各コンテンツを表示しつつ、窮屈にならないようにレイアウトしております。

また、アートワークはあえて角丸にせず、正方形で表示しております。現在は多くの音楽アプリがアートワークの角を丸く表示しておりますが、アートワークによっては角が削られることであまり良くない結果になる場合があります。アートワークをキレイに表示することを重視し、正方形を採用いたしました。

アルバムやプレイリストの詳細画面では、アートワークをもとにして背景やタイトル、ボタンの色等を作品ごとに少し違った表示になるようにしています。アートワークによってはかなり変化する場合もありますので、聴くだけでなく見た目も楽しんでいただけたらと考えています。

使用技術について

Music Roverでは下記を使用して実装されています。

SwiftUI

アプリのターゲットがiOS 15以上のためSwiftUI 3で実装したのですが、それほど大きな問題もなく実装することができました。iOSがUIKitでしか持っていない機能(AVRoutePickerViewなど)以外は全てSwiftUIを使っています。

SwiftUIはUIKitと比較してかなりUIが作りやすいと感じました。
まだSwiftUIではできないこともあり妥協しなければならない点もありますが、それでも細かい調整や共通化がしやすく、非常に気に入っています。

MusicKit

Apple Musicとの連携にはiOS 15から使えるようになったMusicKitを使用いたしました。新しい仕組みのため情報があまりなく使い方を理解するのに時間がかかるところもありましたが、Apple Music APIを直接呼ぶのと比べてかなり実装量が減ったように感じます。特に認証の簡略化と、MusicItemCollectionがページネーションに対応しており便利でした。

iOS 16ではMusicKitに機能が追加されており、今後Music Roverでも取り入れていけたらと考えています。

The Composable Architecture

The Composable Architecture(TCA)はアプリを構築するためのフレームワークで、個人的にweb開発でReduxを使っていることもあり、近い概念のTCAを採用することにしました。

自分の理解が不十分なせいか、一部対応方法が分からず強引な手法を取ってしまうこともありましたが、状態管理がしやすく、統一した方法で開発できるためこちらも気に入っています。

特にSwiftUIではパフォーマンスを良くするために再レンダリングを意識することがありますが、その辺りもTCAのStateをうまく使うことで改善することができました(Stateの分割やViewStateの作成など)。

インターフェースのアイコンについて

インターフェースのアイコンにはPhosphorを使用させていただきました。このアイコンは見た目がすっきりと見やすく、また線で構成されているものがあるためカスタムSF Symbolsに変換しやすいのが良かったです。

robickでインポートエラーが発生する場合について

耳コピ向けオーディオプレイヤーアプリ robickは
ミュージックアプリやDropboxにある音楽ファイルをインポートします。

インポートの際に、エラーが発生し
曲を読み込めない場合があります。
その場合は、下記の点についてご確認ください。

1. ミュージックアプリの曲がiCloud上にある場合
曲ファイルがiCloud上にあり、ローカルライブラリにダウンロードされていない場合
(ミュージックアプリで曲名の右に雲と下矢印のアイコンがある場合)
は、一度曲を端末にダウンロードする必要があります。
雲アイコンをタップしてダウンロードした後、robickでインポートしてください。

2. DRMで保護されたファイル
DRMで保護された音楽ファイルは
iOSの仕様により、インポートすることができません。