Android
概要 Roomのcodelabで疑問に思う箇所があったのでメモ codelabで紹介されているコード codelabではRoomDatabaseのインスタンス生成はsingletonパターンで実装され、以下のようなコードになっている。 @Database(entities = [Word::class], version = 1) publ…
Gradle Play Publisher? Gradle Play PublisherはAPKのGoogle Play Developerコンソールへのアップロードを自動化できるGradleプラグインです。 github.com APKのアップロード以外にもPlay Storeに掲載する各種メタデータの管理も一括で行うことができます。…
DiffUtilのgetChangePayloadでは、古いアイテムと新しいアイテムでどのフィールドが更新されたかの情報を詰めたオブジェクトを生成して返す。 どんな感じなのかは以下のサイトを参照。 DiffUtil is a must! – ProAndroidDev Android DTT #12 — Optimize and …
LiveDataのユニットテストを書く場合にどうするか調べたのでメモ。 LiveDataのUnitTest – Kenji Abe – Medium こちらの記事を読むことでLiveDataのユニットテストをどう行うかついて理解できました。 AACのcore-testingをtestImplementationに追加し忘れてテ…
FirebaseからGCM終了のお知らせとFCMへのアップグレード告知メールが来たので意訳した。ついにGCMが終了するのかー 意訳文 2016年、Google Cloud Messaging(GCM)の後継としてFirebase Cloud Messaging(FCM)をローンチしました。FCMはGCMを進化させ、通知とデ…
毎回忘れるので取得の仕方をメモしておく。 仕様・実装方法 仕様や実装については以下を見ておけば恐らくOK。 Advertising ID | Android Developers AdvertisingIdClientのリファレンスは以下を参照。 https://developers.google.com/android/reference/com/…
先週potatotips #48で「Alexa、APKを配布して」というタイトルで発表してきました。Rettyさんありがとうございました。 資料はこちらです。
Support Library 27.1.0が公開されていたので更新しました。その際に行った作業のメモ。 developer.android.com RecyclerView.Adapterの抽象メソッドが取る引数の型を変更 onCreateViewHolder、onBindViewHolderでそれぞれViewGroup、RecyclerView.ViewHolde…
毎回調べてる気がするのでメモ。 Gson User Guide - gson 公式ドキュメントは外せない。 GSON Serialiser Example | Java Creed Serializerについての解説。取り敢えずこのページを見ておけば問題ないと思う。 GSON Deserialiser Example | Java Creed Deser…
概要 新規アプリでGoogle Play App Signingを有効にするとアプリ署名鍵がGoogle側で自動的に作られるためリリースkey hashを作成できず困ったのでその解決方法についてのメモです。 Google Play App Signingとは? Google I/O 2017で発表されたGoogle Play A…
このStackOverflowの質問と解答を見れば解決なんですが、何度も忘れるので個人的にメモ。 stackoverflow.com API Level 19 以上 API Level 19 以上なら普通にコピー&ペーストするだけです。 API Level 19 未満 adbを使って入力します。 adb shell input text…
先日potatotips #45で「Swaggerで定義したAPI仕様から Retrofitで使用するinterfaceを自動生成してみる」というタイトルで発表してきました。リクルートマーケティングパートナーズさん、お邪魔させて頂きありがとうございました。 資料はこちらです。
Bazelのrules_kotlinにkotlin_android_library rule 追加され、Kotlinで書かれたAndroidアプリがビルド可能になったので調べたメモ。 BazelでのAndroidアプリのビルド方法の復習 Bazelのインストール サンプルプロジェクトの用意 workspaceのセットアップ WO…
概要 Reproでプッシュ通知を受け取る際に、NotificationCompat.BuilderのsetSmallIconでiconのリソースを指定していても通知に表示されない場合の対処方法について。 対処方法 AndroidManifestのapplicationタグに以下のようなmeta-dataを追加します。 <meta-data android:name="io.repro.android.PushNotification.SmallIcon" android:resource="@drawable/YOUR_ICON_ID"> </meta-data> こ…
既存のURLにUri.Builderを使ってクエリを追加する場合こうする。parse後にbuildUpon()で繋ぐのがミソ。 val url = Uri.parse("既存のURL") .buildUpon() .appendQueryParameter("key", "value")
Android DevelopersのKotlinのページにはResources to Learn Kotlinというページがあります。 Resources to Learn Kotlin | Android Developers このページにはタイトル通りKotlinを学ぶためのリソースのリストが載っていて、以下のカテゴリに別れています。…
概要 Facebook製ビルドツールBuckをインストールし、サンプルとして公開されているAndroidプロジェクトをビルドしてみます。 Buck? BuckはFacebookが開発しているビルドツールです。 buckbuild.com 公式サイトではBuckの特徴が解説されています。ビルドが高…
概要 以下のようなコードでGoogleMapを表示しようとしたところNullPointerExceptionが発生した。 GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); UiSettings uiSettings = googleMap.getU…
最近Kotlinの話題を聞く事が多くなってきたので、Kotlinでプロジェクトを作成し、HelloWorldアプリをビルドするところまでやってみる。 公式サイトを見ながら環境を構築していく。 Kotlin Pluginのインストール IntelliJ IDEA 15は最初からKotlin Pluginが入…
AsyncTaskを利用してAPIへリクエストする際にTimeOutを指定したい場合がある。そのやり方のメモ。 final SampleTask task = new SampleTask(); task.execute(); // TimeOut処理 new Thread(new Runnable() { @Override public void run() { try { // TimeOut…
概要 Cloud Test Labのドキュメントが公開されていたのでトップページだけざっくり翻訳してみた(英語は得意じゃない)。 原文 cloud.google.com [翻訳] Google Cloud Test Lab Google Cloud Test Labは、クラウドベースのAndroidアプリテスト環境を提供します…
AndroidでCalabashのテストを実行した際に以下のエラーが発生した。 Error message 'java.net.SocketException: socket failed: EACCES (Permission denied)' 原因はパーミッションが足りないから。AndroidManifest.xmlに以下を追加。 <uses-permission android:name="android.permission.INTERNET"/> 参考 stackoverflow.c</uses-permission>…
概要 AWS SDKを使用してDeviceFarmへAPKとテストコードをアップロードし、Calabashによるテストを実行してみたのでそのメモ。 APIドキュメントと使用するSDK ドキュメントは以下を参照した。 http://docs.aws.amazon.com/sdkforruby/api/Aws/DeviceFarm.html…
概要 AWS Device FarmのAPIが公開されていたので試してみた。 AWS CLIのインストール 今回はAWS CLIを使ってみる。ドキュメント通りにCLIをインストール。 $ sudo pip install awscli 認証情報の設定 ドキュメントに従い設定。AWS Device Farmがオレゴン限定…
build.gradleからの環境変数の参照 CIサーバなどで以下のように環境変数を定義する。 export ORG_GRADLE_PROJECT_TEST="hoge" ORG_GRADLE_PROJECT_propertyと定義すると、propertyという変数名でbuild.gradleから参照できる。 apply plugin: 'com.android.ap…
ターミナルからコマンドでJavaDocを出力できるようにしてみる。 build.gradleの修正 JavaDocを出力したい対象(moduleとか)のbuild.gradleに以下を追加。 android.libraryVariants.all { variant -> if (variant.name == "debug") { return } task("generateJ…
Robolectricを使いテストを実行する際に、AndroidのLogクラスでログを出力したい時があったのでメモ。 調べてみると、ShadowLogクラスのstreamフィールドの値を変更すれば良いようです。 テストコードでこんな感じに書いておきます。 @Before public void se…
Robolectricを使ってテストを実行した際に以下のようなエラーが発生した。 java.lang.RuntimeException: java.lang.RuntimeException: ../volley/res/values is not a directory volleyはAndroid用ネットワークプログラミング用ライブラリで、そのパッケージ…
週末の結婚式の準備に追われております。新郎の挨拶を考えてるのですが難しいですね。 さて仕事では急にAndroidをやることになりました。Androidはサンプル動かしたぐらいで素人同然なのでこれから勉強していこうと思います。 で、どう勉強しようかと考えた…