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…

git commitで使用するエディタを指定する

Git

$ git commit時に開くエディタは、以下のコマンドで指定できる。 $ git config --global core.editor vim 参考 Git - Git の設定

Kali LinuxをVirtual Boxにインストールする

サイバーセキュリティプログラミング――Pythonで学ぶハッカーの思考を買った。 読む上でKali Linuxの環境が必要になってくるのでVirtual Box上に用意してみる。 Kali LinuxのISOイメージ用意 Kali LinuxのサイトからISOイメージ(kali-linux-2.0-amd64.iso)を…

AsyncTaskでtimeoutを指定する方法

AsyncTaskを利用してAPIへリクエストする際にTimeOutを指定したい場合がある。そのやり方のメモ。 final SampleTask task = new SampleTask(); task.execute(); // TimeOut処理 new Thread(new Runnable() { @Override public void run() { try { // TimeOut…