RoomのDatabase Instanceの初期化についてのメモ

概要 Roomのcodelabで疑問に思う箇所があったのでメモ codelabで紹介されているコード codelabではRoomDatabaseのインスタンス生成はsingletonパターンで実装され、以下のようなコードになっている。 @Database(entities = [Word::class], version = 1) publ…

Gradle Play PublisherのAndroid App Bundle Supportがもうすぐリリースされそう

Gradle Play Publisher? Gradle Play PublisherはAPKのGoogle Play Developerコンソールへのアップロードを自動化できるGradleプラグインです。 github.com APKのアップロード以外にもPlay Storeに掲載する各種メタデータの管理も一括で行うことができます。…

kotlin-puzzlersのnaughtyWhen問題

Twitterで#KotlinConf18jpのハッシュタグを眺めてたら次のような問題が流れてきた。 package syntax.naughtyWhen // by Ilya Gorbunov fun f(x: Boolean) { when(x) { x == true -> println("$x TRUE") x == false -> println("$x FALSE") } } f(true) f(fal…

DiffUtilのgetChangePayloadで返したオブジェクトをどう使うか

DiffUtilのgetChangePayloadでは、古いアイテムと新しいアイテムでどのフィールドが更新されたかの情報を詰めたオブジェクトを生成して返す。 どんな感じなのかは以下のサイトを参照。 DiffUtil is a must! – ProAndroidDev Android DTT #12 — Optimize and …

LiveDataのユニットテストを書く際に参考になる記事

LiveDataのユニットテストを書く場合にどうするか調べたのでメモ。 LiveDataのUnitTest – Kenji Abe – Medium こちらの記事を読むことでLiveDataのユニットテストをどう行うかついて理解できました。 AACのcore-testingをtestImplementationに追加し忘れてテ…

OSSにプルリクエストを送る時に参考にする記事

OSS

Github で Fork してから Pull Request をするまでの流れ | けーこ in サンフランシスコ

It’s time to upgrade GCM to Firebase Cloud Messagingの意訳

FirebaseからGCM終了のお知らせとFCMへのアップグレード告知メールが来たので意訳した。ついにGCMが終了するのかー 意訳文 2016年、Google Cloud Messaging(GCM)の後継としてFirebase Cloud Messaging(FCM)をローンチしました。FCMはGCMを進化させ、通知とデ…

Advertising IDの取得

毎回忘れるので取得の仕方をメモしておく。 仕様・実装方法 仕様や実装については以下を見ておけば恐らくOK。 Advertising ID | Android Developers AdvertisingIdClientのリファレンスは以下を参照。 https://developers.google.com/android/reference/com/…

potatotipsで発表してきました

先週potatotips #48で「Alexa、APKを配布して」というタイトルで発表してきました。Rettyさんありがとうございました。 資料はこちらです。

Support Libraryを27.1.0に更新した際に行った事のメモ

Support Library 27.1.0が公開されていたので更新しました。その際に行った作業のメモ。 developer.android.com RecyclerView.Adapterの抽象メソッドが取る引数の型を変更 onCreateViewHolder、onBindViewHolderでそれぞれViewGroup、RecyclerView.ViewHolde…

GSONのSerializerとDeserializerを書く時に参考になったページ

毎回調べてる気がするのでメモ。 Gson User Guide - gson 公式ドキュメントは外せない。 GSON Serialiser Example | Java Creed Serializerについての解説。取り敢えずこのページを見ておけば問題ないと思う。 GSON Deserialiser Example | Java Creed Deser…

新規アプリでGoogle Play App Signingを有効にしアプリ署名鍵からFacebook SDKで使用するkeyhashを作成する方法について

概要 新規アプリでGoogle Play App Signingを有効にするとアプリ署名鍵がGoogle側で自動的に作られるためリリースkey hashを作成できず困ったのでその解決方法についてのメモです。 Google Play App Signingとは? Google I/O 2017で発表されたGoogle Play A…

Androidエミュレータでコピー&ペーストしたい

このStackOverflowの質問と解答を見れば解決なんですが、何度も忘れるので個人的にメモ。 stackoverflow.com API Level 19 以上 API Level 19 以上なら普通にコピー&ペーストするだけです。 API Level 19 未満 adbを使って入力します。 adb shell input text…

potatotipsで発表してきました

先日potatotips #45で「Swaggerで定義したAPI仕様から Retrofitで使用するinterfaceを自動生成してみる」というタイトルで発表してきました。リクルートマーケティングパートナーズさん、お邪魔させて頂きありがとうございました。 資料はこちらです。

Bazelのrules_kotlinについてのメモ

Bazelのrules_kotlinにkotlin_android_library rule 追加され、Kotlinで書かれたAndroidアプリがビルド可能になったので調べたメモ。 BazelでのAndroidアプリのビルド方法の復習 Bazelのインストール サンプルプロジェクトの用意 workspaceのセットアップ WO…

Reproでプッシュ通知を受け取る際にSmall Iconが表示されない場合の対処方法

概要 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でクエリを追加する方法

既存のURLにUri.Builderを使ってクエリを追加する場合こうする。parse後にbuildUpon()で繋ぐのがミソ。 val url = Uri.parse("既存のURL") .buildUpon() .appendQueryParameter("key", "value")

Kotlinで1から99までの整数を含むListを簡単に作成する

KotlinではlistOf関数を使う事で簡単にListを作成できる。 val list = listOf(1, 2, 3) // [1, 2, 3] ここで1から99までのListを作る場合はRangeを使うと簡単に作成できる。toList()でListに変換してやるのがポイント。 val list = (1..99).toList() // [1, …

KotlinでListをイテレーションする際にindexが欲しい場合の書き方

withIndex()を指定すればOK。 val list = listOf(1, 2, 3, 4, 5) for ((index, element) in list.withIndex()) { print("$index, $element\n") }

英語でKotlinを勉強するためのリソース

Android DevelopersのKotlinのページにはResources to Learn Kotlinというページがあります。 Resources to Learn Kotlin | Android Developers このページにはタイトル通りKotlinを学ぶためのリソースのリストが載っていて、以下のカテゴリに別れています。…

BuckでのAndroidプロジェクトのビルドについて

概要 Facebook製ビルドツールBuckをインストールし、サンプルとして公開されているAndroidプロジェクトをビルドしてみます。 Buck? BuckはFacebookが開発しているビルドツールです。 buckbuild.com 公式サイトではBuckの特徴が解説されています。ビルドが高…

React NativeプロジェクトでFlowのよる型チェックが「Flow: Waitng for diagnostics」と表示され実行されない場合の対処方法

概要 React NativeのプロジェクトをReact Native CLIで新規作成し、Nuclideで開発を始めると以下のように「Flow: Waitng for diagnostics」と表示されFlowによる型チェックが実行されませんでした。 この記事は型チェックが正常に動くまで行ったことのメモで…

React NativeでiOSアプリをビルド

概要 React Nativeが公開された際に一度動かしてから触っていないので、改めてReact Nativeプロジェクトの作成から、ビルドしてiOSシミュレーターで表示するまでをやってみたのでメモ。

後方参照不要なグループ化

よく忘れるのでメモ (?:1|2|3)

s3からのファイルの取得

AWS SDKを使いs3からファイルを取得する方法についてメモ require 'aws-sdk-core' Aws.config[:region] = 'ap-northeast-1' s3 = Aws::S3::Client.new( access_key_id: ACCESS_KEY_ID, secret_access_key: SECRET_ACCESS_KEY ) File.open('保存時のファイル…

GoogleMapのMapFragmentを取得した際にNullPointerExceptionが発生する場合の対処方法

概要 以下のようなコードでGoogleMapを表示しようとしたところNullPointerExceptionが発生した。 GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); UiSettings uiSettings = googleMap.getU…

KotlinでAndroidアプリをビルドしてみる

最近Kotlinの話題を聞く事が多くなってきたので、Kotlinでプロジェクトを作成し、HelloWorldアプリをビルドするところまでやってみる。 公式サイトを見ながら環境を構築していく。 Kotlin Pluginのインストール IntelliJ IDEA 15は最初からKotlin Pluginが入…

半年振りにBazelをインストール

概要 BazelがAndroidのビルドに対応してから試せていないので試したいが、Bazelは半年前にインストールしたままなので、新しくインストールし直してみる。 Bazelのインストール http://bazel.io/docs/install.htmlを参考にインストールする。Ubuntuのバージ…

Dockerで起動したUbuntuコンテナからarchive.ubuntu.comの名前解決ができない場合の対処方法

Dockerで起動したUbuntuのコンテナで、apt-getを実行したところ以下のようなエラーが発生した。 $ apt-get install software-properties-common ・ ・ ・ 0% [Connecting to archive.ubuntu.com] Err http://archive.ubuntu.com/ubuntu/ trusty/main libroke…

deprecatesになったBoot2DockerをDocker MachineにMigrationする

たまたまDockerの公式サイトをみたところ以下のような注意書きが。 Note: This release of Docker deprecates the Boot2Docker command line in favor of Docker Machine. Use the Docker Toolbox to install Docker Machine as well as the other Docker to…