今週のプロジェクト:Voltra
今週は、Aprile Elcich と Paolo Fragomeni と会って、Electron を利用した音楽プレーヤーである Voltra について話しました。
Voltra とは何ですか?
Voltra は、自分の音楽を所有したい人のための音楽プレーヤーです。また、すでに所有している音楽に基づいて新しい音楽を発見して購入できるストアでもあります。広告なしで、デスクトップとモバイルの両方に対応したクロスプラットフォームです。また、あなたをスパイすることもありません。
Voltra は誰のためのものですか?
音楽を聴く人なら誰でも。
Voltra を作成するきっかけは何でしたか?
ラジオは常に多くのリスナーを獲得してきました。電波からインターネットに移行しています。今では音楽をオンデマンドでレンタルできます。これはラジオの復活です!このため、多くの新しい製品やサービスが登場しましたが、ストリーミング ラジオでは、依然として他の誰かがあなたの音楽と、その体験方法をコントロールしています。
私たちは、あなたが所有する音楽に完全に焦点を当てた製品を求めていました。アーティストやレーベルから直接新しい音楽を簡単に見つけて購入できるものです。
無料版はありますか?
デスクトップ プレーヤーは完全に無料です。音楽の販売も無料です!広告によるサポートは行っていません。
アプリは無料なので、後でオープンソース化する可能性があります。今はそれを管理する帯域幅がありません。また、機能や、物事を進めたい方向性についても非常に具体的な考えがあります。私たちはアクティブなベータ コミュニティを持っており、フィードバックを真摯に受け止めています。
どのように収益を上げていますか?
プレミアム機能があります!
当社の Voltra Audio Archive は、音楽専用に設計されたクラウド バックアップ サービスです。データの圧縮や共有は行いません。あなたの音楽コレクションは物理的にバックアップされます。
アーティストやレーベル向けには、プロ メンバーシップ が、アナリティクスやプロフェッショナル アーティストのウェブページなど、より関連性の高いオーディエンスにリーチするためのツールを提供します。
Voltra の違いは何ですか?
デザインとユーザビリティは、私たちにとって非常に重要です。リスナーに邪魔のないリスニング体験を提供したいと考えています!興味深い音楽プレーヤーやストアがいくつかあります。しかし、それらの多くは、作成者が認識しているよりも高度で使いにくいものです。私たちは Voltra をできるだけ多くの人に利用できるようにしたいと考えています。
また、アーティストやレーベルから手数料を取ることもありません。それは私たちにとって重要な差別化要因です。アーティストが音楽を市場に出すための障壁を下げるため、本当に重要です。
どのようなデザインと技術的な決定を下しましたか?
Voltra を設計するにあたり、ネイティブ アプリやウェブの UI 規約を検討し、削除できるものについても多くのことを考えました。過去数か月間、重要なフィードバックを提供してくれたアクティブなプライベート ベータ グループがあります。
アルバム アートや写真が人々にとって非常に重要であることがわかりました。多くのプレーヤーはファイルのリストにすぎません。物理的なアルバムを所有することのクールな点の 1 つはアルバム アートであり、Voltra デスクトップ アプリでこれを強調したかったのです。
また、人々のファイルに干渉しないようにしました。ファイル監視を使用しているため、ファイルを好きな場所に配置できます。また、名前を変更したり移動したりすることはありません。組み込みのデータベースを使用して、監視対象ディレクトリの状態を追跡し、プロセスが実行されていない場合でも、新しいものを追跡できるようにしています。
Voltra の構築中に直面した課題は何ですか?
私たちはパフォーマンスに多くの時間を費やしています。フレームワークから始めましたが、バニラ Javascript に移行しました。私たちの経験では、それらが提供する一般化された抽象化は、パフォーマンスのペナルティとそれらが導入する儀式よりも勝ります。
現時点では、非常に大規模なコレクションをうまく処理できます。大規模なコレクションは、おそらく数万枚の画像を意味します。Node.js のファイル システム モジュールをレンダリング プロセスから直接利用できるようにしたことで、DOM イベントに基づいて非常に多くの画像を非常に迅速に遅延ロードおよびアンロードすることが非常に簡単になりました。
一般的に、setImmediate と requestIdleCallback は、UI の応答性を維持しながら、多くの処理を実行するための非常に重要なツールでした。より具体的には、CPU バインドのタスクを別のプロセスに分散すると、ユーザー インターフェイスの応答性を維持するのに非常に役立ちます。たとえば、ビジー状態の UI からの中断を避けるために、実際のオーディオ コンテキストを別のプロセスに移動し、IPC を介して通信しました。
Voltra を Electron で構築することにした理由は何ですか?
ブラウザのサンドボックスは私たちのアプリにとって制約が強すぎます。しかし、ウェブプレイヤーも開発しているので、2つの実装間でほぼ100%のコードを共有できるのは大きな利点です。
実際には、Swiftでネイティブアプリを構築することから始めました。主な問題は、多くのことを再発明していたことでした。Webには世界最大のオープンソースエコシステムがあります。そのため、すぐにElectronに切り替えました。
また、最も重要なこととして、Electronを使用すると、一度開発すれば、主要なすべてのプラットフォームで「Just Work™(うまくいく)」はずです。保証されているわけではありませんが、各プラットフォーム向けにネイティブでコーディングするコストは、Electronがもたらす他のコストを確実に上回ります。
Electronで気に入っている点は何ですか?
GTD!(仕事を成し遂げる!):Node.jsのネットワークスタックとChromiumのプレゼンテーション層がパッケージ化されていることは、物事を成し遂げるためのレシピです。
能力:ただのWebスタックなので、文字通りチーム全体が製品の構築に関わっています。
コミュニティ:非常に組織化されたコミュニティがあり、コミュニケーションが非常にうまくできます!このようなサポートを受けながら開発できることをとても嬉しく思っています。
Electronはどの分野で改善できるでしょうか?
Electronが単一のパッケージャーを推奨することを期待しています。パッケージャーは、Nodeにとってのパッケージマネージャーと同様に、Electronにとって重要なものです。ユーザーランドには複数のパッケージャーがあり、それぞれ興味深い機能を持っていますが、それぞれバグがあります。コミュニティによる合意は、貢献者によって費やされているエネルギーを向けるのに役立つでしょう。
今後の予定は?
現在、モバイルアプリを開発しており、アーティストやレーベルと協力してVoltraショップに音楽を追加しています。アーティストまたはレーベルの方は、今すぐサインアップしてください!1000万曲という目標を達成したら、ショップをオープンする予定です。