Web Music ハッカソンは「web」と「音楽」が大好きな開発者が集結し、皆でハックをして、成果を発表するイベントです。波形を加工したり、楽器を作ることのできる Web Audio API、ブラウザと外部 MIDI 機器をダイレクトに接続する Web MIDI API を 1 日中ハックして想い描く web と音楽の未来をプロトタイプして語りましょう。
テーマは DJ / VJ
今回のハッカソンは当日だけでは終わりません。後日ライブハウスを貸し切り、生まれた作品を DJ に演奏してもらう場を設けます。演奏される作品はハッカソンでの優秀作品、DJ の方々が「ぜひ使いたい」と感じた作品に限らせていただきますので、アイデアと発表時の作品の完成度合いがとても重要になります。
過去の Web Music ハッカソンからは、ブラウザ上で楽器を作る、ツール・センサを使ったシーケンサ、外部 MIDI 機器と連携したVJ、ワンボード・マイコンと連携したハック等、様々なアプリケーションがハックされてきました。今回も幅広い分野で Web Audio / MIDI API がハックされるのを楽しみにしています。テーマは DJ / VJ ですが、その他の分野での参加も歓迎しています。
// Where should direct replies be put in the intent bundle (can be any string)
private static final String KEY_TEXT_REPLY = "key_text_reply";
// Create the RemoteInput specifying this key
String replyLabel = getString(R.string.reply_label);
RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
.setLabel(replyLabel)
.build();
// Add to your action, enabling Direct Reply for it
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(R.drawable.reply, replyLabel, pendingIntent)
.addRemoteInput(remoteInput)
.setAllowGeneratedReplies(true)
.build();
また、サマリー通知を作成することも重要です。サマリー通知は、setGroupSummary(true) で指定できます。Marshmallow 以前のデバイスで表示される通知はサマリー通知のみなので、(おわかりと思いますが)個々の通知をすべてまとめる必要があります。その際には、InboxStyle を使うとよいでしょう。ただしこれは必須ではありません。Android N 以上のデバイスでは、サマリー通知から一部の情報(サブテキスト、コンテンツ インテント、削除インテント)が抽出され、バンドル通知用の折りたたまれた通知になります。そのため、すべての API レベルでサマリー通知を作成する必要があります。
Android N デバイスでは、全般的なユーザー エクスペリエンスを改善するために、グループのない通知を 4 つ以上送信すると、自動的に通知がまとめられます。
ユーザーが検索しているのは、レシピや映画情報だけではありません。たった今起きている出来事についての最新情報を探すために、Google 検索にやってくることもあります。こうした考えから始まったのが、リアルタイム インデクシングを利用することで、リアルタイムの出来事を検索するユーザーと新鮮なコンテンツを結びつけようという Google の取り組みです。Google Indexing API を使えば、パブリッシャーは自らのコンテンツがクロール対象になってインデクシングされるのを待つのではなく、リアルタイムでのインデクシングを促せるようになります。この取り組みはまだ始まったばかりですが、今年夏にもベータ版を公開したいと考えています。
4. Accelerated Mobile Pages(AMP)で Google 検索を高速化
Google が Accelerated Mobile Pages(AMP)をどのように使っているかについて、最新情報を公開しました。AMP はモバイル ウェブの表示を高速化するオープンソース プロジェクトです。Google 検索では AMP を使うことで、コンテンツを一瞬で読み込めるようにしました。スピードは重要です。読み込みに 3 秒以上かかると、40% 超のユーザーがサイトを離れてしまいます。Google は、iOS と Android 向けの Google アプリに、AMP を適用したカルーセル形式のニュースコンテンツを採用し、同時に AMP とリッチカードを組み合わせる実験を行っていることを発表しました。詳しい情報は、Google のブログと github のページをご覧ください。
参加者はセッションだけでなく、Search & AMP のブースでも Google の担当者と直接話すことができました。
Google I/O に参加くださり、ありがとうございます。デベロッパーのみなさんと直接話して、その経験をじかに聞くのは、毎回とてもためになります。現地で参加された方も、遠隔地からご覧いただいた方も、引き続きウェブマスター フォーラムや、ハングアウト オンエアを使って毎週開かれている Google のウェブマスター オフィスアワーにご参加ください。
/* User types in their password: */
String password = "password";
/* Store these things on disk used to derive key later: */
int iterationCount = 1000;
int saltLength = 32; // bytes; should be the same size
as the output (256 / 8 = 32)
int keyLength = 256; // 256-bits for AES-256, 128-bits for AES-128, etc
byte[] salt; // Should be of saltLength
/* When first creating the key, obtain a salt with this: */
SecureRandom random = new SecureRandom();
byte[] salt = new byte[saltLength];
random.nextBytes(salt);
/* Use this to derive the key from the password: */
KeySpec keySpec = new PBEKeySpec(password.toCharArray(), salt,
iterationCount, keyLength);
SecretKeyFactory keyFactory = SecretKeyFactory
.getInstance("PBKDF2WithHmacSHA1");
byte[] keyBytes = keyFactory.generateSecret(keySpec).getEncoded();
SecretKey key = new SecretKeySpec(keyBytes, "AES");
Google の投資会社である Google Ventures も、開発を始める前にアイデアをテストする手法を支持しています。同社はこの手法を広めるため、「Design Sprint」という方法論を構築しました。アイデアをまとめ、プロトタイプを作り、顧客と協力してテストを実施する 5 日間のプロセスにより、ビジネス上の重要な課題を解消します。コストをかけずにプロトタイプをテストする Google Venture の手法の詳細については、こちらをご覧ください。
Java 対応 C++ デバッガー: N 以上で動作する C++ コードをデバッグする場合、Java 言語に対応した 1 つの lldb インスタンスでデバッグを行うことができます。このデバッガーは、ファスト ステップやメモリ ウォッチポイントなどのすばらしい lldb 機能のサポートを継続しつつ、Java 言語のブレイクポイントでの中断や、Java 言語のメモリ内容の表示ができるようになっています。
自動デバッガー選択: Android Studio アプリは、デバッガー タイプに「Auto」を利用できます。これによって、Java 言語対応 C++ デバッガーと C++ プロジェクト用のハイブリッド デバッガーから自動的で適切なデバッガーが選択されるようになります。 Java 言語のみを使用するプロジェクトでは、Java 言語デバッガーがそのまま利用されます。
C++ での自動デバッガーの有効化
次のステップ
ダウンロード
旧バージョンの Android Studio をご使用中の方は、ナビゲーション メニューから Canary チャンネルのアップデートを確認できます(Windows / Linux の場合は [Help] → [Check for Update]、OS X の場合は [Android Studio] → [Check for Updates])。このアップデートは既存の Android Studio にパッチを適用するものではなく、新しいバージョンをダウンロードするものです。Android Studio 2.2 プレビューは、Canary リリースサイトからもダウンロードできます。
Android Studio 2.2 プレビューをご利用いただく場合、新しい Canary とともに安定版もご利用いただくことを推奨します。2 つのバージョンを共存させる方法については、ツールサイトをご覧ください。
気に入った機能や問題点、新機能の提案などのフィードバックは大歓迎です。Google+ のページや Twitter で Android Studio 開発チームからの情報を常にチェックしてください。