うさがにっき

読書感想文とプログラムのこと書いてきます

android

Kotlinためしてみる

概要 Android Testing Bootcampで触発されたので、赤べこ本を読んでKotlin勉強する #android_testing_bc今日のまとめkotlinをテストから攻める— うさがに@AR㌠VR (@usaganikki) 2017年5月10日 詳細 ️# 開発環境 とりあえずTry Kotlinのサイトで書いてみる tr…

AndroidでVysorを使ってAndroidのミラーリングとかキャプチャとか動画撮影とか

概要 Vysorっていうchrome plugin教えてもらって感動したので小ネタとして残す 詳細 前提 USBデバッグとかは良きようにしておく 一応必要な設定は以下 offthehook888.net Vysor chrome.google.com使い方 youtu.be こんな感じでかなりサクサクとリアルタイム…

VR prototypeツール紹介

概要 VRにおけるprototypeツールを二つ紹介する VR Prototyping Template Sketch-to-VR 詳細 VR Prototyping Template facebookから最近出たVRのPrototyping環境 facebook.design technical-creator.com 使い方 TECHNICAL CREATORさんに書いてある通り、各々…

vuforia + unityでARを実装する際に参考となるドキュメントまとめとARアプリを作ってみた感想

前書き 本記事はUnity Advent Calendar 2016 12/20の記事です qiita.com 概要 こんなことをするアプリを作りたい Image Targets Sample App - Augmented Reality - Vuforia (new) - YouTubeそのために、unity, vuforiaのARアプリ実装方法をまとめる・・・と…

ProjectTangoとはなんなのか、どうしたらいいのか

前置き この記事は Androidその2 Advent Calendar 2016 の12/1の記事です qiita.com 概要 ProjectTangoとは一体なんなのか 一言で言うなら 通常のスマホでは体験できないAR体験をいろいろなセンサーを搭載していることによって体験できる 端末であるProject…

daydream現状まとめ、サンプルソース眺めた感想(native層)

概要 tiro105.hateblo.jp の続き、native眺めてみまた&vulkan対応などの今後どうするのが正解なのか考えてみた 詳細 native層について 基本的にはOpenGLES 2の書き方をしているので、OpenGLES使える人はそんな困らないと思う(vulkan対応したソースとか欲し…

daydream現状まとめ、サンプルソース眺めた感想(java層)

www.youtube.com 概要 daydream気になる、けど現状どうなの?開発行ける雰囲気? 2016/7/16時点での雰囲気を掴む サンプルコードあったら読んでみる 詳細 情報 qiita16件、けどだいたいGoogleIO軽くまとめた感じの記事 「daydream」の検索結果 - Qiita stack…

よく使うショートカット

概要 よく使う、使いそうなショートカットをまとめる 詳細 Find Action(COMMAND + SHIFT + A) AndroidStudioのすべての機能にアクセスできる Basic Completion(CTRL+SPACE) 文字列から予測する補完機能 Macではspotlightと被っているのでspotlightを変えるか…

Vulkanのサンプルを動かしてみた

概要 VulkanとはAndroid nから実装されるOpen Gl ESの後継となる機能 以下の情報をもとにVulkanのサンプルを動かすまでの険しい道のり Vulkan Setup | Android DevelopersVulkanの情報があまり見つからなかったのでまとめた (まだpreviewなのでどんどん変わ…

NのDataSaverを試してみた

概要 Android N Developer preview2に入っているDataSaverの挙動を調べてみた 詳細 What's DataSaver? アプリのバックグラウンド通信を禁止することにより、モバイル通信量を少なくする機能 WIFI環境に入ればバックグラウンドは自動的に行われる また、ホワ…

onDataでCustomAdapterを使ったlistviewのテスト方法

概要 EspressoでonDataを使えばlistviewのadapterをテストできるという記事はよく見かけるが、customAdapterに対してどうすればテストができるかという日本語記事はほとんどなかった のでまとめた 詳細 Espressoとは? ここらへん参照 Testing UI for a Sing…

Realm migration小ネタ集

概要 小ネタ集 Realmのmigration時、気をつけなければならないこと 概要 プリミティブ型を追加するときには必須項目であることを明示すること 例えばこんな感じでboolean型を追加したいとする if (oldVersion == 0) { RealmObjectSchema pictureInfoSchema =…

DataBindingを使ったLayoutの作成(ソース編)

概要 tiro105.hateblo.jp の続き javaソースの視点からDataBindingの使い方を見てみる 詳細 Bindingクラスの作成方法 ActivityでのBindingクラスの作成にはDataBindingUtilクラスおsetContentView()メソッドを使ったが、このメソッドはActivityクラスのsetCo…

DataBindingを使ったLayoutの実装(xml編)

概要 DataBindingを使えばjava側でviewの操作などをxmlで完結することができる ButterKnifeなどを使えばある程度は簡略化できるが、よりプレゼンテーションとロジックを切り離して考えられる様子 その他にも色々できるみたいだが、とりあえずlayout xml内で…

DroidKaigi2016でスピーカーしてきました

概要 DroidKaigi 2016でスピーカーをしてきたのでその感想などなど 詳細 DroidKaigi 2016で発表してきました。 怖くないGradle設定とBazel from shimada tatsuya www.slideshare.net 講演直前 みんなきてね! https://t.co/XbiOzr0Rls— うさがに@ARで美少女 …

HashMap[int, int]使うならSparseIntArray使ったほうが効率的

概要 API1からあったのに知らなくって恥ずかしいシリーズ SparseIntArrayを使ったほうがHashMap[int, int]を使うよりいいよっていうのをまとめた 詳細 SparseIntArrayとはHashMapの[int, int]に特化したクラス 公式ドキュメントに SparseIntArrays map integ…

HandlerThreadを使ってHandlerみたいなQueue構造を他スレッドで使う

概要 HandlerThreadを使うと他スレッドからでもHandlerの仕組みを使えるようなのでそのまとめ (HandlerThread API1からあるじゃん…知らなかった恥ずかしい…) 詳細 Camera2 APIに四苦八苦していたらHandlerThreadなるクラスがあったので調べてみたら割と使…

Floating Action Buttonを使った俺流speeddialの実装方法

概要 Floating Action Button(以降fab)を使ったspeeddialを実装したので、その方法をまとめておくこんな感じの 詳細 layout レイアウトでは展開するfabを重ねておく 初期表示で表示しないものはvisible:goneにしておく

ButterKnifeZeleznyの変数の命名規則を変更する方法

概要 あけましておめでとうございます 今年もよろしくお願い致しますButterKnife便利ですよね そんなButterKnifeをさらに便利にしてくれるButterKnifeZeleznyですが、この変数名定義方法の変更についてまとめます 詳細 デフォルトではlayout xmlのidをそのま…

RecyclerView内で正方形のViewを定義する方法

概要 RecyclerViewの要素で画面の横幅にあわせた子要素を定義する方法をまとめた まとめ 結論から言うとRecyclerView.Adapterから攻めるより正方形の独自Viewを作る方が現実的最初はRecyclerView.Adapter内のonBindViewHolderで横幅を取得し、縦に設定しよう…

TabLayoutのタブテキストの色やフォントを変更する

概要 TabLayoutでタブにあるテキストのフォント、色、大きさを変更する方法をまとめる 詳細 色、大きさの変更方法 tabLayoutにstyleを指定する <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/ToolTabStyle"/> styleの種類は以下参照 Google Play Style Tabs using Tab…</android.support.design.widget.tablayout>

センサーから得られた値を整地して使う

概要 コンパスを作っていたら、センサーから取得した値は変動が大きくそのまま使うと振れ幅が大きく使えるものではなかった センサーから得られた値をうまく整地する方法を考えてみた 詳細 コンパスを作る際には加速度センサーと地磁気センサーを使って実現…

Cookpad×Fablic −現場のエンジニアが話します に参加しました

概要 CookPadさんで開催された「Cookpad×Fablic −現場のエンジニアが話します」に参加したのでそのまとめと感想 詳細 感じたことは斜体でメモった 「cookpad.comの中身〜クックパッドでの開発〜」(Cookpad前田さん) 5500万人以上の利用者、219万レシピ Rub…

realmでテーブル構造(モデルクラス)の更新、データ移行方法

概要 realmで何も考えずにモデルクラスを更新してアプリをアップデートすると以下のエラーを吐いて落ちる io.realm.exceptions.RealmMigrationNeededException: RealmMigration must be provided at io.realm.BaseRealm.migrateRealm(BaseRealm.java:568) at…

TabLayoutでsetupWithViewPagerでタブ名がでない時

概要 tiro105.hateblo.jp の補足 tablayoutでsetupWithViewPagerを使って、タブ名がでない時に見るべきところ 詳細 viewPagerに設定するFragmentPagerAdapterの最小構成をoverrideしてadapterを作成するとタブ名が表示されない 以下メソッドをoverrideしてタ…

Now on Tapが日本語対応したので使ってみた感じと設定周りの確認

概要 marshmallowにアップデートがきたので、Now on Tapがまわりの確認と、ついでに設定画面周りの変更を見てみた 詳細 Now on Tap 設定 > Google > Goole Now的なところから設定できる 例えばブラウザでHOMEボタン長押しすると 表示されてる文字列を解析し…

Android Marshmallowのpermissionの動きについて

概要 【合同勉強会】RettyTechCafe ☓ Developers.IO Meetupに参加してきた - うさがにっきで教えてもらったmarshmallowのpermission周りはちゃんと調べとかないとすごい危険な感じがしたので実際にmarshmallow端末でいろいろ動きを調べてみた 詳細 marshmall…

RecyclerViewの中にNestedScrollViewを入れてみる(失敗)

概要 NestedScrollViewがでたことにより内部にScrollViewを入れれるようになった なのでRecyclerViewにNestedScrollView入れてみたらどうなるか調べてみた 詳細 listviewでもよかったんだが、ViewHolderをかえてスクロールするところとスクロールしないとこ…

AndroidStudio1.5 Betaにしたらビルドエラーになったこととその対処法

概要 AndroidStudioを1.5βにしたらgradleエラーになってプロジェクトが実行できなくなった、その対処法 詳細 エラー的にはgradle2.4のディレクトリが無いとのことだった Error:A problem occurred configuring root project 'NestedScrollViewInRecylerView'…

【合同勉強会】RettyTechCafe ☓ Developers.IO Meetupに参加してきた

概要 【合同勉強会】RettyTechCafe ☓ Developers.IO Meetup#14 - connpassに参加してきたので、その感想、まとめ 詳細 RettyさんでAndroid marshmallowの勉強会に参加してきた アジェンダは以下のような感じ Mで変更になったpermissionの概要 クラスメソッド…

Androidを使ってMIDIを操作する

概要 Android Mから追加されたMIDI操作APIについてまとめる 詳細 MIDI APIには大きく分けて二つの機能カテゴリが存在する MIDIデバイスを使用するためのAPI MIDIを利用したアプリケーションを開発す場合に使う MIDIデバイスサービスを実装するためのAPI MIDI…

Auto Backup for Appsについて

概要 Android Mから導入された自動バックアップのシステムAuto Backup for Appsについてまとめる 詳細 バックアップの仕組みはAndroid2.2から存在していたが、Android Mからは自動的にバックアップがGoogleDriveにとられるようになる ちなみにAndroid2.2のバ…

App Linksを使って優先的に自分のアプリを開く方法

概要 Android Mから導入されたURLから特定のアプリを優先的に開く方法をまとめる 詳細 従来のAndroidではURLを開く時、そのURLをフックしてアプリを起動した際、ブラウザで開くかアプリで開くかを選択するダイアログが表示された これをAndroid MからはURLを…

AndroidStudioで突然gitが実行できなくなった時に確認すること

概要 AndroidStudioを使っていて突然gitコマンドが叩けないと怒られることがある その解消法 詳細 最近xcodeが9.1にupdateされたためxcodeをupdateだけしてAndroidStudioを使っていると、AndroidStudio側からgitコマンドが叩けなくなる 一度xcodeを起動して…

Espresso2.0でNoClassDefFoundErrorへの対処法

概要 Espresso2.0でテストを実行したところ以下エラーが発生した これへの対処法 java.lang.NoClassDefFoundError・・・ 詳細 gradleの記述に問題があった gradle.buildに記載した androidTestCompile 'com.android.support.test.espresso:espresso-contrib:…

Espressoの基本的な使い方

概要 Espressoを使った自動化テスト環境を作成する - うさがにっき の続き Espressoの主なコンポーネントを理解し、基本的な使い方をまとめる 詳細 基本的な構成要素 Espresso Viewとのインタラクションのエントリーポイント(onView, onDataなど) pressBack…

Espressoを使った自動化テスト環境を作成する

概要 Espressoがsupportライブラリに取り込まれたことにより、GUIのテストがしやすくなったと聞いたので試してみることに まずはHello World!がテストできるところを目標に 詳細 端末設定 テストが不安定にならないようにシステム側のアニメーションを無効に…

Google Creative Lab壁紙でWifi電波や電池残量を表示できるアプリMeter発表したので入れてみた

概要 Google Creative Lab壁紙でWifi電波や電池残量を表示できるアプリMeter発表したのでその内容やそのままだとエラーが出たので直したところとか 詳細 Meterの内容は以下のような感じ >Meter is a data-driven wallpaper that displays the battery, wirel…

AndroidStudio1.4のScrolling Layoutを読み解く

概要 AndroidStudio1.4から追加されたScrolling Layoutを読み解き、CoordinatorLayout, AppBarLayout, CollasingToolbarLayoutを理解する 詳細 生成されたレイアウトxml

SnackBarはScrollView上では表示できない

概要 ScrollViewを使用した画面でSnackBarを使おうとしたら下記エラーが出て使えなかった java.lang.IllegalStateException: ScrollView can host only one direct child 10-05 15:53:44.779 13887-13887/? E/AndroidRuntime: at android.widget.ScrollView.…

独自Behaviorにより、CoordinatorLayout指定時のアニメーションを指定

概要 Design Support LibraryのCoordinatorLayoutを使ってみる_1 - うさがにっき の続き 独自Behaviorを指定して、CoordinatorLayout指定時のanimationを独自に作成する Floating Action Buttonを下方向にスクロールしたら消えるようにanimationを作成する …

AndroidStudioをアップデートしたら雛形となるActivityの選び方や種類が変わった話

概要 AndroidStudio1.4 RC2からActivityを作成する際の雛形がよりMaterial Designを意識した作りになったのでそのまとめ 詳細 AndroidStudioで新しいActivityを作ろうとすると以前まであった「Activity and Blank Fragment」みたいなやつがなくなっていた 仕…

依存するライブラリを検索する方法

概要 プロジェクトが依存するライブラリを検索する方法をまとめる まとめ 依存するライブラリの単語が分かっていれば、検索できる プロジェクト右クリック、Open Module Setting Dependenciesタブを選び+を押下 検索したい単語を入力し検索 ライブラリを選択…

Design Support LibraryのCoordinatorLayoutを使ってみる_1

概要 Design Support LibraryのCoordinatorLayoutを使ってみたまとめ その1 詳細 CoodinatorLayoutはFrameLayoutと同じように扱え、CoodinatorLayoutの子View同士に関係を持たせることができるコンポーネント ある子Viewの動きに合わせてもう一つの子Viewを…

Design Support LibraryのSnackBarを使ってみる

概要 Design Support Libraryを使ってMaterial DesignのToast的存在のSnackBarを使ってみる 詳細 Material Design以前ではToastを使って簡単なメッセージを表示していたが、今後はSnackBarを使うのがよさげ SnackBarはToastとよく似ているが、ずっと表示した…

Design Support LibraryのTextInputLayout,FloatingActionButtonを使ってみる

概要 Design Support LibraryのTextInputLayout,FloatingActionButtonを使ってみたので、そのまとめ 詳細 TextInputLayout TextInputLayoutはEditTextの親Viewとして使うことを前提として作られている ラベルとなるテキストはEditTextのhintとして設定する

Support Design LibraryのNavigation Viewを使ってみる

概要 Support Design LibraryのNavigationViewが色々便利だったのでまとめ 詳細 まずはActivityのlayout

Design Support LibraryのTabLayoutを使ってみる

概要 Design Support LibraryのTabLayoutを調べて使って見ると、いろいろと便利だったのでまとめる 詳細 まずはライブラリ追加 compile 'com.android.support:design:22.2.1'次にxmlにTabLayout指定 Activity

AndroidStudioを1.4 preview4にしたらAndroid Device Monitorが起動しなくなった時の対処法

概要 AndroidStudioをアップデートするついでにAndroid SDKなどいろいろアップデートしたらAndroid Device MonitorがAndroidStudioから起動できなくなった、その対処法 詳細 AndroidStudioのAndroid Device Monitorボタンを押しても反応しなくなったので調査…

ContentProviderで保存した画像をContentProviderを使って取り出す

概要 ContentProviderを使って画像を保存するとUriが帰ってくるので、それをContentProviderを使って取得する方法をまとめる 詳細 カメラなどを実装し、ギャラリーから見える位置に画像を保存するときによく以下メソッドが使われる MediaStore.Images.Media.…