Monthly Archives: November 2015

Android: USB 接続なし (無線LAN) でアプリを実機デバッグする方法

Wifi 環境があれば Android Studio からの実機でのデバッグが USB 接続なしで可能です。 とは言え、最初の設定では結局 USB 接続が必要ですが、デバイスがケーブルから解放されることで、多少は作業ストレスの軽減になるかもしれません。 地味に便利な機能だったのでメモしておきます。 目次 ADB コマンドのパスを通す USB 接続を行う ADB コマンドで接続する USB 接続を解除しビルドを実行する ADB コマンドのパスを通す ターミナルシェルの環境設定(.bashrc や.zshrc等)に ADB コマンドへのパスを通します。 設定を保存した後、設定ファイルをリロードしシェルに設定を反映させます。 ADB コマンドが使えるようになっているか確認します。 無事バージョンが表示されれば完了です。 USB 接続を行う Mac と Android デバイスを USB で接続し Android Studio を起動します。 Android デバイスの 設定 -> Wi-Fi -> 詳細設定 (Android デバイスごとにメニューの名称は異なります)から IP アドレスを確認します。ここでは 10.0.1.1 とします。 ここで表示された IP アドレスを使用し、ADB コマンドで接続を行います。 ADB コマンドで接続する ターミナル(Android Studio 内のターミナルでも可)を起動し、以下のコマンドを実行します。 先ほど調べた IP アドレスに上記のポートを指定し接続します。 接続されているデバイスを確認します。 デバイスが接続されていることが確認できました。 USB 接続を解除しビルドを実行する すでに Wi-Fi で接続されていますので、USB ケーブルを外します。 Android Studio からビルドを実行すれば、USB 接続なしでデバッグが可能になっています。 以上で作業は完了です。お疲れ様でした。 まとめ Android Studio では Xcode に存在しないユニークな機能をちょくちょく見かけます。 Xcode でもこういった無線環境でのビルド・デバッグの機能を追加してくれると、つらいコーディングも少し楽しくなるかもしれませんね。 今回紹介した方法は、準備自体は数分で完了するので、是非一度お試しください。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: WebView での YouTube 再生について(フルスクリーン対応)

Android の WebView は仕様をよく理解していないと、ネイティブ実装よりも大変なケースに遭遇します(しました)。 WebView から Web ページが表示されて一息ついていたら、YouTube が見れないという問題が発生しましたので、その解決方法をメモしておきます。 老婆心ながら、くれぐれもアプリのユーザーエージェントを、あまりにもユニークなものに書き換えたりしないでください。 ユーザーエージェントが大きく変わると、今回の方法でどう頑張っても YouTube は再生できません。これで人生の貴重な3日間を棒に振りました。。。 それではどうぞ。 目次 AndroidManifest の設定 MainActivity -> WebView の設定 MainActivity -> WebChromeClient 拡張クラス MainActivity の全コード レイアウトファイル AndroidManifest の設定 application の android:hardwareAccelerated を true にします。 AndroidManifest.xml MainActivity -> WebView の設定 WebView の設定を以下のようにし、WebChromeClient の拡張クラス(後述)をセットします。 MainActivity.java -> protected void onCreate MainActivity -> WebChromeClient 拡張クラス WebChromeClient の拡張クラスが必要な理由は YouTube のフルスクリーン表示に対応するためです。 フルスクリーン表示になったとき、 WebVeiw を非表示にしカスタムビューと背景(黒)を表示、フルスクリーンが解除された時に WebVeiw を表示し、カスタムビューと背景(黒)を非表示にする、といった処理を書く必要があります。 WebChromeClient の拡張クラスでオーバーライドするメソッドは次の2つです。 public void onShowCustomView public void onHideCustomView WebChromeClient の拡張クラス CustomWebChromeClient は以下のようになります。 MainActivity.java MainActivity の全コード 完成した MainActivity は以下となります。 MainActivity.java レイアウトファイル おまけに layout ファイルも載せておきます。 activity_main.xml まとめ Android も YouTube も同じ Google なのに、なぜここまでやらなければ WebView から YouTube が再生できないんでしょうか。 今回のソースコードは Android 4.0 以降をターゲットに YouTube の再生に特化したソースコードですが、ここに WebViewClient、ジェスチャー、Android OS の後方互換を考慮した場合、相当カオスなソースコードになります。 Android の WebView の取り扱いにはくれぐれもご注意を。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

iOS: Hey Siri! の設定と Siri が認識する日本語一覧(iOS 9対応・最新版)

みなさん、Siri 使っていますか? 日本人だとちょっと言葉に出しづらい名称ですが、iOS 8 から実装された Siri は慣れれば実生活で結構役立ちます。 また、 iOS 9 からはハンズフリーで Siri が起動する Hey Siri が電源ケーブルの接続なしで使用可能になりました。 そんな Hey Siri が最も活躍する場は運転中の車内だと感じました。誰も聞いてないので人目を気にする必要がなく、運転に集中し両手がふさがっているというシチュエーションが、Hey Siri で操作を行う必然性を与えるからです。 ところが Siri を使って iPhone や iPad をスマートに操作したいのに、どういったことが出来るのかが分からなければお願いできませんし、やってほしいことがあっても、いざ機械が相手だと、なんて話しかければいいのか分からくなってしまいます。 今回はそんな方(自分)のために Hey Siri の設定方法と、実際に使ってみて便利だったフレーズをリストアップしてみましたので、是非ともご活用ください。 目次 Hey Siri を使用可能にする Siri の操作対象アプリ Siri が認識する日本語一覧 Hey Siri を使用可能にする Hey Siri の設定 設定 -> Siri -> “Hey Siri” を許可 を ON にする Siri の操作対象アプリ 項目をクリックすると、対象項目で認識可能なフレーズにジャンプします。 Web ミュージック タイマー レート 天気 SNS マップ 電話・メッセージ リマインダー・メモ カレンダー アプリ・設定 その他 Siri が認識する日本語一覧 Web Bing(デフォルト)で検索する 「(検索ワード)を検索」 Google で検索する 「(検索ワード)をグーグル検索」 ミュージック 音楽再生中の呼びかけ 「(アーティスト名)の(曲名)をかけて」 「(アーティスト名)を再生」 「(プレイリスト名)を再生」 「ジャンルが(ジャンル名)の曲を再生」 「音楽をストップ」 「(音楽再生中に)次の曲」 「(音楽再生中に)前の曲」 「シャッフルをオン」 「シャッフルをオフ」 「再生中のアルバムアートを表示」 外部の音楽に対する呼びかけ 「これ何の曲?」 「この曲を歌っているのは誰?」 「この曲のタイトルは何?」 「今かかっている曲は何?」 タイマー アラームのセット 「明日8時に起こして」 タイマーのセット 「タイマーを(時間)にセットして」 カウントダウン中のタイマーを停止する 「タイマーをキャンセル」 レート 「1ドル何円?」 「(数字)ポンドは何グラム?」 「日経平均株価教えて」 天気 「今日の天気は?」 「明日の天気は?」 「水曜日の天気は?」 「東京の天気は?」 「来週の天気は?」 SNS 「(ツイート内容)とツイート」 「(ツイート内容)とつぶやく」 「(ツイート内容)をツイッターで検索」 「私のツイートを見せて」 マップ 「近くのカフェを探して」 「(コンビニ名)を探して」 電話・メッセージ 「(人名)に電話」 「(人名)に “〜” とメッセージ」 リマインダー・メモ 「(リマインド名)とリマインド」 「(リスト名)リストに(リマインド名)を追加」 「(リスト名)にリマインド → リマインドするワードを追加」 「(メモの内容)とメモ」 カレンダー 「今日の予定は?」 「今週の予定は?」 「明日10時に会議と設定」 「来週水曜10時に会議と設定」 アプリ・設定 アプリの起動 「(アプリ名)を開いて」 設定モードの切り替え 「機内モードをオン(オフ)にして」 「bluetooth をオン(オフ)にして」 その他 Siri の実行を中止 「キャンセル」 まとめ この記事を書くために、ひたすら Siri に話しかけて動作を検証していました。ヘッドセットでの会話同様、誰かが見てたらとても怪しいひとだったと思います(笑) あらゆる操作を Siri で行おうとするのではなく、特定の動作にターゲットを絞れば、日常で使える機能が見つかるかもしれません。 こういうのも認識するよ、というものがあれば こちら からご一報くだされば、この記事にて情報を共有させていただきたいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: ImageView をアニメーションさせる(Property Animation)

Android アプリを開発時にアニメーションが必要になったので、そのときのメモ。 今回は Android3.X 系 以降で使用できる Property Animation のサンプルコードを掲載しました。 ImageView をアニメーションさせる(Property Animation) target に対象の ImageView、duration にアニメーション時間(ミリ秒)、from(変更前の値)、to(変更後の値)を渡します。 透過アニメーション 移動アニメーション 回転アニメーション まとめ Android のアニメーションはいくつか種類があるみたいですが、互換性や汎用性を考慮すれば、オブジェクトそのもののプロパティが変更できる property animation が使いやすいみたいです。 今後は iOS だけではなく Android の記事も追加していきたいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

iCloud: Mac と iPhone でユーザ辞書が同期されない場合の対処方法

iCloud で Mac のユーザ辞書を、iPhone や iPad 等の iOS デバイスで共有すれば非常に便利です。 しかし、OS のアップデートやデバイスを新しく追加した場合、このユーザ辞書がうまく同期されなくて、便利なはずの iCloud 連携が、一転してストレスとなるケースにこれまでも幾度となく遭遇しました。 iCloud のせいなのか、Mac OS や iOS 側の問題なのかは Apple に聞いてみなければわかりませんが、今回この問題を解決する方法を発見しましたので説明したいと思います。(本作業の実行は自己責任でお願いします) 目次 作業環境 作業内容の詳細手順 ユーザー辞書の同期を確認する Mac と iPhone でユーザ辞書を同期できない場合の対処方法 今回の方法では、iOS デバイス側に保存されている iCloud Drive のユーザー辞書データを破棄し、Mac のユーザ辞書をベースに iOS デバイスへ同期させる方法をとりました。 一旦 iCloud に保存されている辞書データをすべてリセットすることで、正常に同期が行われることを確認しました。ですので、iOS 側のユーザ辞書のデータを残したい方は、今回の方法は実行しないでください。 また、作業内容の手順だけではなく、(※)でその手順を行う理由も説明していますので、作業内容に不安がある方は無理をせず作業を行わないでください。 環境 MacBook (Mac OS X 10.11 El Capitan) iPhone 6s Plus (iOS 9.0.2) iPad Air 2 (iOS 9.0.2) iCloud Drive の容量が、フォトストリーム等の写真データなどによって不足している場合は、今回の方法を実行してもユーザ辞書のデータは更新されません。iCloud の残り容量にご注意ください。 作業内容の詳細手順 使用するすべての iOS デバイスの 設定 -> iCloud -> iCloud ドライブ を「オフ」にする。※作業中 Mac へ iOS デバイスのユーザ辞書データが同期されないように、先に iCloud Drive への接続を解除します。 Mac の システム環境設定 -> iCloud -> iCloud Drive にチェックが入っていることを確認します。 Mac の アプリケーションフォルダ -> ユーティリティフォルダ -> ターミナル.app を起動します。 以下の1行をコピーし、ターミナルにペーストし return で実行します。※このコマンドで iCloud Drive で同期される辞書のあるフォルダへ移動します。 以下の1行をコピーし、ターミナルでペーストし return で実行します。※このコマンドで iCloud Drive に保存されているユーザー辞書のデータをすべて削除します。(Mac 上のユーザー辞書のデータは消えません) ターミナルを終了し、Mac と iOS デバイスを再起動( 「スリープボタン」と「ホームボタン」をアップルマークが出現するまで長押し)します。 iOS デバイスの 設定 -> iCloud -> iCloudドライブ を「オン」にし、念のためもう一度 iOS デバイスを再起動します。 作業完了 ユーザー辞書の同期を確認する Mac のユーザ辞書が iOS 側で同期されているか確認します。 Mac システム環境設定 -> キーボード -> ユーザ辞書 iOS 設定 -> 一般 -> キーボード -> ユーザ辞書 iOS のユーザー辞書の内容が Mac 側の語句と一致していれば同期は成功しています。Mac で新しくユーザ辞書に登録を行った場合は、登録後少し待ってみるか、iCloud Drive を一度「オフ」にした後「オン」にすれば、新しく登録されたデータが反映されます。 一時的に Mac 側のユーザー辞書がすべて消えてしまう場合がありますが、システム環境設定 -> iCloud -> iCloud Drive の「チェックを外す」「チェックする」でデータが復元されます。 まとめ Mac をお持ちの方であれば、ユーザー辞書の登録は Mac 上で行うケースが多いと思います。 ユーザ辞書が同期されないまま放置されている方は、今回説明した方法で、思い切って過去の iPhone や iPad のユーザ辞書を消去し、快適に iCloud を使用してみてはいかがでしょうか。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。