数か月間、このプロジェクトを開発する時間がないので、ソース( githubのリポジトリ )を開くことにしました 。
私はこの記事をHabrに書いていますが、ここにWAILをさらに開発し、新機能を追加し、バグを修正し、Androidアプリケーションのオープンソースプロジェクトに参加することに興味がある人はいないでしょう。
last.fmの概要 :これは、ファンが音楽を聴くためのサービスです。主な機能は、聴いているトラックに関する情報を送信できることです。これに基づくlast.fmは、他のアーティスト、友人、アーティストのコンサート、聞いてみてください(ところで、last.fmの推薦で初めてコンサートに行ったときは最高です)。
関心を維持するためのスクリーンショット
簡単にWAIL機能について :
- last.fmでのさまざまなプレーヤーからの音楽の再生とこの情報のスクラブに関するイベントの傍受(ブロードキャストインテント)
- #last.fmの最新の更新
- オフライン作業(ネットワークへのアクセスが表示される場合-WAILはlast.fmに情報を送信します)
- ホロスタイルのミニマルUI(Android Lでも見栄えが良い)
- トラックのスクロブリングまたはトラックのスキップに関する通知を鳴らす機能(さまざまな条件下でトラックがアプリケーションによって無視される場合)
- 処理されたトラックのリスト
- そしてささいなこと:)
さらにいくつかのスクリーンショット:
さて、中を掘ることに興味がある人のためのアプリケーションアーキテクチャについて
- WAIL-私は何を聞いていますか
- 1)WAILの主要部分-BroadCastReceviers。 音楽アプリケーションからの意図をキャッチします
- 2)WAILの2番目の主要部分-トラックに関する情報が送信されるWAILServiceは 、既にそれらの処理方法を決定しています-落書き、#nowplayingの更新など。
- 3)内部SQLiteデータベース、特にTracksDBHelperでは、ここでWAILは処理されたトラックを記録するため、このデータベースによりオフラインで作業できます。 WAILServiceはこの情報を定期的にスキャンし、last.fmに送信します
- 4)まあ、実際にはUI:すべてがフラグメントに基づいて構築されており、タブレットの組版がサポートされています
機能ごとの優先順位は何ですか
- RemoteControllerClientのサポートは、メディアプレーヤーのAPIであり、インテントの処理よりもはるかに優れています。 少なくともいくつかの標準があります。 ところで、ロック画面はこの特定のAPIを使用して、再生中の音楽を表示および制御します。 私はこの分野でいくつかの開発を行っていますが、このトピックに関するGoogleのドキュメントがほとんど完全に欠けているため、すべてが複雑になっています。 RemoteControllerClientサポートの本質は、WAILがこのAPIを使用するすべての音楽プレーヤーを自動的に処理できることです。
- 処理中の現在のトラックをメイン画面に表示する-多くのユーザーは、WAILが現在トラックを処理しているかどうかを理解していません...一般に、この機能は必要で便利です
- スクラブに関する通知の表示、ステータスバーでの#nowplayingの更新
- ネットワーク接続のタイプ(モバイルネットワーク/ Wi-Fi)に応じてスクロブリングを無効にするための設定
- githubの問題であなたの願いを提出してください
誰がWAILを掘り起こすことに興味があるのか
- オープンソースプロジェクトでスキルを発揮したい経験豊富なAndroid開発者:)
- 初心者のAndroid開発者。小さな修正/機能を作成し、実際のユーザーがGoogleユーザーにアクセスして実際のAndroid開発をゆっくりマスターすることをお勧めします。
- AndroidまたはJava開発者でもあり、アプリケーション内の何かを変更したいWAILユーザー:)
WAILを支援することにした場合
1)最初に、私とユーザーの両方からの多くの感謝:)
2)次に、 コミットのスタイルガイド、プロジェクトのソースとリソースに関するgitフローとスタイルガイドのトピックに関する小さなwikiを書きました。
3)3番目-はい、 正常に生成されたプルリクエストはGoogle Playに送られます!
4)私はプロジェクトメンテナーとなり、プルリクエストを定期的にチェックし、時間があれば開発者としてプロジェクトを支援します。 Google Playでのリリースはプロジェクトの進行に合わせて行われます。ユーザーからのフィードバックをすばやく受け取り、次のリリースの計画を立てるために、頻繁にリリースしたいと思います。
5)簡単なものから始めたい場合、たとえばアイコンの修正や理解している言語への翻訳などの小さな問題を考え出し、githubで問題を取得し、修正/機能を使用してプルリクエストを実行します。
ご清聴ありがとうございました。WAILが発展し、生き続けることを願っています:)
WAIL Beta github へのリンク-Android last.fm scrobbler
PS
githubを見ると、コミットが非常に少ないことがわかります。 これは、プライベートリポジトリに、アプリケーションに署名するためのパスワードを持つキーがあったためです(ファイル、同意します)、git filter-branchとbfgを信頼しないことに決め、ソースを転送してプライベートデータを削除して新しいリポジトリを作成しました(約250コミット)失った。
さらに、last.fm APIのキーはアプリで公開されますが、githubで公開されます。 しかし、いまいましい、Androidアプリケーションを逆コンパイルしてこのデータをすべて取得することは難しくありません。また、開発者セクションでlast.fmに登録する必要があるため、他の人の開発を複雑にします。キーを受け取りたくないので、悪意で使用しないでください:)
1)プロジェクトはオープンソートである2)アプリケーションに興味のある人のために魂で作られた、完全に非営利的である3)Habraモデレーターが投稿を「I PR」に移すべきと考える場合-わかった
PPS
当然、コードは完璧ではありません...今私は半分を書き直しますが、一般的に、アーキテクチャは柔軟で拡張可能です:)
記事へのコメントで質問に答える準備ができました。