言いたいことはそれだけか

KotlinとかAndroidとかが好きです。調べたことをメモします。٩( 'ω' )و

Intentを使って複数枚画像を取得するときのメモ

Intentを使ってPhotoとかいい感じの(=ユーザが選択した)アプリから画像を選択したいときに、1枚なのか複数枚なのかで色々違うのでメモ。 複数枚画像を選択する場合 選択させるアプリを起動するとき ポイントは Intent.EXTRA_ALLOW_MULTIPLE のextraをtrue…

MediaStoreのThumbnailsの罠

先日参加したCA.apk #2 で前川さんが発表されていた「やさしい画像ギャラリー改善tips」がいい感じだったので、試してみた結果と気になった部分のメモ書きです。 発表の概要 画像ギャラリーを作る時に、MediaStore.Images.Media.EXTERNAL_CONTENT_URI だと画…

BottomNavigationViewのコード読んでみた

このエントリは先日参加した「まったりAndroid Framework Code Reading #5」の成果です٩( ‘ω’ )و Support LibraryのBottomNavigationViewのコード読んできたのでまとめるよ! mandroidfcr.connpass.com BottomNavigationViewとは Support Library 25.0.0から…

SearchViewの詰まったところ備忘録

久しぶりにSearchViewをさわると忘れているポイントが結構あったので、今更感がありますがメモ書きを残します。サンプルコードはKotlinです。 SearchViewをactionbarいっぱいに表示したい SearchViewをAction Barに配置するとデフォルトで左側に謎の余白がで…

DroidKaigi 2017で登壇しました

3月9日、10日と二日間に渡って開催されたDroid Kaigi 2017にスピーカーとして参加してきました。 私のトークテーマはパフォーマンス改善について。オーディエンスの対象を初心者から中級者としていたため、わかりやすく丁寧に伝えるように心掛けたのですが、…

Android + Kotlin + Mockito のメモ書き

Kotlin大好きで、Korlin最高だよって言いまくってるんですけど、Kotlinのつらみみたいな部分も残しておかないとフェアじゃないかなと思ったので残しておきます。 Instrument Testがつらい 実機だったりエミュレータ上で実行するAndroid Instrument Testがつ…

夕飯のカレーとコミットメントの話

先に言っておきますが、ただのポエムです。 エンジニアとして働いていると、「hoge機能を作りたいんだけど、今月中でできますか?」という質問をよくされます。ここでいうhogeがどれくらいしっかり固まっているかで話は変わってきます。 例えば、「今晩カレ…

SnackbarでCustom Content を表示する

Support library revision25.1.0からSnackBarにCustom Contentを表示できるようになったらしいので試してみました٩( 'ω' )و 今回の変更概要 さて、release noteをよく読んでみましょう。 Snackbar has been refactored to allow apps to display custom cont…

Android/Kotlin関連の情報収集とか。

最近Android周りの情報をどうやって追っているか?について質問されることが何度かあったのでまとめました。自分向けに2016年末時点でのスナップショットも兼ねて。 Twitter 知り合いのエンジニアさんや勉強会であった方とTwitterで繋がる機会が多いせいか、…

Activity#getTitle()はActivity/Applicationのresourcesを使わない

このエントリは先日参加した「まったりAndroid Framework Code Reading #4」の成果です٩( 'ω’ )و mandroidfcr.connpass.com 知りたかったこと AppCompatActivity#setSupportActionBar()した時に、Frameworkのバグと思しき挙動を見つけてしまいました。 setす…

開発者オプションメニューの値は3rd partyのアプリから書き換えるのが難しい

[2016.10.19 追記しました] 前回の続きです。 Quick Settings にTileを表示するところまで実装したので、次はそのTileをタップした時に何か便利な挙動をするのを目指してみます。 具体的には下記の二つどちらかできたら便利だなぁと思って調べてみました。 …

Quick SettingsにCustom Tileを追加する

Android N からQuick Settingsに3rd Partyが好きな物を置けるようになりました。 これを使うと簡単にデバッグツール作れるのでは?と思ってやってみました٩( 'ω' )و 右下のやつ やりたかったこと Quick SettingsにTileを追加する Tileをタップした時に何か便…

Android N Easter Egg (neko) に見るアンチパターン

が70匹を超えたあたりから挙動がめちゃめちゃ重くなってきたAndroid N Easter Egg (neko) アプリ。 コードを読んで何が悪そうか調べてみました。 あくまで静的解析の結果なので検証してません。ごめんなさい。「ふーん」くらいに思ってください。ツッコミ大…

Android N Easter Egg (neko) のコード読んでわかったことまとめ

Android N のEaster Eggはねこあつめ的なアプリ。 コード読んでわかったことまとめます。実装観点とかFrameworkのコードの読み方とかはまたいつか別に書きたい。 以下、Easter eggのアプリ名は便宜上nekoとします。 nekoアプリの基本的な遊び方 いつものよう…

FragmentManager#getFragments()で取得するListの要素がnullになっていたのでFrameworkのソースコードを読んでみた

FragmentManager#getFragments() の挙動がなんか思っていたのと違ったので調べてみたメモ。 具体例を挙げると、Fragment A がattachされている状態で、Fragment B をFragmentTransaction#add() -> remove() した時に、 FragmentManager#getFragments() で得…

AsyncTaskのStatusを理解したくてFrameworkのコードを読んだメモ

RX全盛期のいま、こんなことに需要があるのか…ということは気にしない。 AsyncTaskのライフサイクルのstatusがぼんやりとしか理解できずググっても出てこなかったので調べたメモ。 具体的な疑問としては、taskの実行が終わったあと、初期状態(PENDING)に戻る…

meta-dataで数値だけのStringを渡したい

前回manifestPlaceholders最高!٩( 'ω' )و みたいな記事かいといてアレですが、ハマりどころがあったので記事に残しておきます。 某SDKを使うためにAndroidManifestのmeta-dataにidを記載する必要があり、ここにmanifestPlaceholdersを使っていました。 <meta-data android:name="hoge" android:value="${fuga}"/> し</meta-data>…

Build typeによってアプリアイコンを分ける

はじめに この記事は諸事情によりRibbonizerライブラリが使えない人たち向けに書いたものです。 Ribbonizerが使える人はそちらを使ったほうが良いです。 やりたいこと Debug buildの時とRelease buildの時にapp idやapp nameを変えて一つの端末の中に両者を…

何番目のRadioButtonがチェックされているかうっかり取得されてしまう話

RadioGroup#getCheckedRadioButtonId() が、チェックが入ったviewのidではなく、何番目にチェックが入っているかを取得できると勘違いして、実際その勘違い通りの振る舞いをするように見えるケースが存在した調査ログです。 結論から言ってしまうと、RadioBu…

読書の習慣化に成功した話

今年に入って割と効率よくインプットが進んでいるので知見を共有します。 きっかけ バレンタインにバズったこの記事に影響され、毎日コツコツと小さなインプットをしようと決意。 www.lifehacker.jp 何をやったか 昨年からダラダラと読んでいたSoft Skillsを…

Android N からMulti Language and Multi Locale になるらしい

※本エントリは2016/4/8 に書いたもので、Android N Preview 1 時点で公開されている情報に基づいています。昨日「まったりAndroid Framework Code Reading #3」に参加しました。 mandroidfcr.doorkeeper.jp結局Frameworkのソースコードを読まずにAndroid N P…

AndroidでChromeの共有メニューにアプリを追加する

やりたいこと AndroidのChromeで共有メニューを選択した際に出てくるアプリ群に自作アプリを追加したい。 最終的にChromeで開いていたページのURLを自作アプリで受け取るのがゴール。 試したこと まずは公式ドキュメントを参照。 Receiving Simple Data from…

TextEditをタップした時にPortraitでも全画面で入力したい

先に言っておくとあまりいい方法は見つかりませんでした。 やりたいこと タイトルの通り。Landscapeの場合は全画面入力になるので、Portraitでも同じような挙動にしたい もっと具体的に言うと、Portrait固定かつ画面下部固定で置いているEditTextをタップし…

外国語のメニューを読めるようになりたい。【イカ編】

今回は英語ネタです。最近レストランでカラマリフライ(イカフライ)をちょこちょこ見かけるようになってきた気がするので、各国の言葉でイカをなんというのか調べてみたメモ。 適当にググっただけなので間違ってたらすみません。 海外旅行に行った時に単語レ…

LollipopでAlertDialogのMultiChoiceItemのcheck buttonの色を変更する

前回に引き続き、色変更したいシリーズです。やりたいこと掲題の通り。下記のお悩み解決を目標としました。 Changing the color of dialog multichoice items android - Changing the color of dialog multichoice items - Stack Overflow試したことまずはch…

LollipopでActionBarのPopup windowの背景色が変更できない

前回の続きです。 LollipopでActionBarの色が変更できない - Let's go and programming! LollipopでActionBarの色が変更できない - Let's go and programming! ActionBarの背景色は変更できました。次はOverflowボタンを押したときに出てくる Popup windowの…

city, state, country の違い、説明できますか?

通勤中、Fergieのこの曲を聴きながらふと思ったので調べてみました。 Fergie - L.A.LOVE (la la) ft. YG - YouTubeもちろん市/州/国なんだろうけど、これらの違いをはっきり説明できるかというと微妙。 いつもお世話になっているWeblioの英英辞典に聞いてみ…

LollipopでActionBarの色が変更できない

掲題の問題にはまってので、解決するまでのメモ。 やりたいことThemeおよびStyleを使用してActionBarの色を変更する。 下記サイトの現象が再現するか試してみたかった。 Changing the background color of my ActionBar in android 試したことまずはApplicat…

先日他人が書いていたcodeでPriorityQueueの使用方法がおかしかったので、ちょっと気になって調べてみました。誤った使い方としてはこんな感じ。 for (Hoge hoge : mHogePriorityQueue) { Priorityが高い順にfor文を回していることを期待するようなコードで…