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

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

Javaのmethod referenceは初回しか評価されない

はじめに 言いたいことは掲題の通り。method referenceを渡しちゃうと実行時に毎度評価されるわけではない。 毎度評価されたければlambdaを渡した方がいい。 Reference 公式のドキュメントには以下のように記述がある。 Chapter 15. Expressions The timing …

AppBarLayoutを使う時にlayout_behaviorをFragmentに持たせるとviewが重ねて表示される

困った問題に出会ったのでメモ。 AppBarLayoutがActivityにいて、layout_behaviorつけたscrollableなviewがFragmentにいる場合、AppBarLayoutはちゃんと動くんだけど、scrollするviewの方がAppBarLayoutと同じ高さからlayoutされるので隠れてしまう…みんな同…

Kotlin Bytecodeを読みたいけど、何から勉強したらいいかわからないあなたへ。ASMのドキュメントを読みましょう。

はじめに このblog postは半年以上下書き放置していて自分の中では旬がすぎた話題ではありますが、最近Android系日本語技術podcastであるdex.fmのep.66でbytecodeが話題になったので、勿体無い精神で公開します :pray: それではどうぞ。 Kotlin書いていると…

TabItemをxml layout fileに記述してもview hierarchyからfindViewById()できない理由

TabItem、xml layout fileに書いててもViewHierarchyに追加されないの知らなくて昨日すごく時間を無駄にしたhttps://t.co/hc8WyqfHV2— むーむー/Atsuko FUKUI (@muumuumuumuu) January 31, 2019 Tweetにリンクを貼っている通り、公式ドキュメントによると Ta…

TabLayoutでいい感じにアイコンをつけたい時のメモ

ViewPagerとかと併用してTabLayoutを使う場合に、特定のタブにアイコンを表示する時にどうすればいいかなーという時のメモ。1 今のところは Tab#setCustomView() でcustome layout resourceをセットするのが大体のケースにおいて現実解となりそう。 また、こ…

便利なTextInputLayoutとその内部実装

はじめに Material Designにいつの間にか入っていたTextInputLayoutが便利なのでメモを残す。 TextInputLayout とは 公式ドキュメント によると、TextInputLayout とは「テキストを入力する時にhintを隠す代わりにfloating labelを表示するEditTextをラップ…

2018年後半を振り返る

はじめに 2018年後半に自分が何をしていたか後から振り返られるようにメモを残しておく。前回のまとめはこちら。 muumuutech.hatenablog.com 7月 ランチでビリヤニ食べたら風邪なおってきた気がする— むーむー/Atsuko FUKUI (@muumuumuumuu) July 3, 2018 今…

RecyclerView in RecyclerViewだとAppBarLayoutがスクロールしないことがある

Nested Scroll(RecyclerView in RecyclerView)とAppBarの組み合わせでうまくいかないことがあったのでメモします。 前提 RecyclerViewが入れ子になってNested Scrollする画面で、 Parent RecyclerViewはvertical scroll Child RecyclerViewはhorizontal scro…

selectableItemBackgroundはBackgroundにセットしないと意図した挙動にならない話

タイトルが意味わからないことになっている はじめに AndroidはAPI Level 21 (Android 5.0 / Lollipop) からRipple Effectがサポートされ、これによりより良いタッチフィードバックをユーザに提供できることができる。ボタンなど、「もともとタップが想定さ…

Shared element transitionでリストの要素を並び替える

やりたいこと Fragmentを切り替えてReordering(要素を並び替え)する shared element transition の記事を見て楽しそうだったからやってみた。 medium.com 全く同じことをやっても楽しくないので、Fragment <-> Activityでやってみる。 できた いきなりだけ…

2018年前半を振り返る

はじめに 2018年前半に自分が何をしていたか後から振り返られるようにメモを残しておく。2017年のまとめと同じく自分のtweetを振り返ってペタペタしていく。本当は年末にまとめて一年分やりたかったがtweet数が多すぎて一気にやると辛いという前回の反省を生…

Android Frameworkのコードにbreakpointを止めるメモ

Android開発をしていると、Frameworkがどういう挙動をしているか調べたくなる時がある。そういう時はFrameworkのコードにbreakpointを置くんだけど、止まってくれたり止まらなかったりすることがあるので困っていた。 完全に理解した!と言いたいけど、ViewR…

StateListAnimatorを使ってXMLだけでAnimationをつける

こちらの記事を読んで「<selector> の中にobject animator埋め込めるの知らなかった!!すげー!!!!」となったので遊んでみたメモ。 android.jlelse.eu StateListAnimator AndroidにはStateListAnimatorというクラスがあって、Viewのdrawable stateによってAnimatio</selector>…

KotlinのRegexとDestructuredで文字列からdata classに変換する

Androidでアプリを書いていて、正規表現を扱うときにjava.util.regex.Matcherを使うこと多いが、あれは個人的には好きではない。もっとスッキリかけるんじゃないかなぁといつも思ってしまう。 例えば、URLからprotocolとdomainを正規表現を使って取り出すコ…

kotlin.concurrent.threadは新規threadが作成されるけどcurrent threadのgroupで動く

[2018.7.15 ご指摘いただき記事の最後に追記しました] あらまし 先日おもしろいTweetを見つけたのでちょっと調べてみたメモ。 別ActivityでUI操作の必要なマルチスレッド処理をしたいとき、runOnUiThreadを使わないとMarshmallowならクラッシュするけど、Ore…

RxTextView#textChanges()でdistinctUntilChangedする時にeventが流れない時がある

みんな大好きRxBinding1 ですが、ちょっとハマることがあったのでメモ。 RxTextView#textChanges() で EditText の入力イベントを監視する。その時に重複した入力をdistinctUntilChanged()で削ろうとしたら以降何もeventが流れない現象に遭遇した。 RxTextVi…

@JvmOverloadsなfunctionをmockできないケースがある

@JvmOverloadsを付与したKotlinのfunctionを、Javaから呼び出すコードを書いた。ここのテストを書こうと思ってmockito-kotlinでmockしようとしてできなかったときのメモ。ちなみにmockしたいクラスはDagger2でDIしている前提。 やりたかったこと 例えばこん…

アメリカでUberにiPhone置き忘れて無事に回収した。SIMは通話付きを買おうな!

[2018/06/13 追記しました] 事の顛末 一週間くらい出張でUS(CA, Palo Alto)に来ている。Palo AltoはSan Fransiscoと異なり移動は車が基本になる。なので出勤はUberを利用しているのだが、車内にiPhoneを置き忘れる事件が発生。先日のGoogle I/OでiPhoneを置…

TransitionのShowcaseアプリを作って公開しました

はじめに 先日droid girls meetupに参加し、Animationのハンズオンを楽しんできた。 GoogleのオフィスでGooglerの方(Support libraryを作っている方)が講師というなんとも贅沢な回だった。 droidgirls.connpass.com そういえば業務でがっつりtransitionを…

Toolbarにセットしたheightが無視されるケース

まずはこちらのコード、どのような表示になるか考えながら読んでみてください。 (タイトルでネタバレしている気がするけど気にしないで!)

NestedScrollViewの中のRecyclerViewを配置すると要素全てメモリ上にallocateされて困った話

長いタイトルが全てを表していて、NestedScrollViewの中にRecyclerViewを配置した場合、要素全てメモリ上にallocateされて困った話。そのまんま。 こんな感じでNestedScrollViewの中にRecyclerViewを置いた場合 <NestedScrollView> <RelativeLayout> .... <RecyclerView /> </RelativeLayout> </NestedScrollView> 例えば30個RecyclerViewが表示すべ…

南の島で読んだ本たち

先日ふらっと南の島(タイのサムイ島)に行ってきた。日常から頭を切り離すことが目的でとにかくぼんやりしてみたくなったのだ。 ぼんやりするにも時間は潰したいので本を持って行くことにしたのだか、日常を想起させる技術書・ビジネス書はNGという縛りで何…

DroidKaigi公式アプリにRTL周りのPull Request出した時にやったことまとめ

DroidKaigiお疲れ様でした!公式アプリでRTL周りのPull Requestを出したので何をしたのか備忘録のメモを残しておきます。 Issue github.com Pull Request github.com やったこと Left / Right をgrepして適切なものに置き換え ConstraintLayout周りとかLint…

AndroidのMVIについて勉強した時のメモ

AndroidのMVIについて勉強した時のメモです。自分用のメモなので雑です。 MVIとは 「MVCを元にして、jsのreduxやreactの思想を取り入れた何か」のようなもの。リアクティブで関数型プログラミングを採用している。 MVCだとViewを操作するのがControllerかも…

[海外対応] AndroidのLocale周りまとめ [多言語対応]

はじめに 複数の国や地域、あるいは言語に対応する場合に避けられないMulti Locale対応ですが、Android Frameworkのバージョンによってできること・しなくてはならないことが変わって来ます。 各APIでの大きな変化を時系列でまとめてご紹介します。 また、実…

Kotlin 1.1以降をAndroidで安全に使いたかった話

はじめに この記事は「Kotlin 1.1以降をAndroidで安全に使いたかった話」です。本当は会社のAdvent Calendar向けに書くはずだったのですが、色々あってお蔵入りになったのでこちらで供養。 ちなみにこれはボツネタ第2弾で、第1弾はこちら。 muumuutech.haten…

2017年を振り返る

はじめに 2017年に自分が何をしていたか後から振り返られるようにメモを残しておく。 shirajiさんのエゴサで振り返るというアイディアがとても素敵だったので彼に倣ってtweetをペタペタしていこう。 shiraji.hatenablog.com 1月 ❤㊗️㊗️❤— むーむー (@muumuu…

KotlinJSでReact Nativeを書いてみたかった話

はじめに この記事は「KotlinJSでReact Nativeを書いてみたかった話」です。つまりできなかった話 であることをあらかじめご了承ください。 では本題。 年末になり会社のAdvent Calendarのネタ探しをしている最中に電波が降りて来た。 KotlinでReact Native…

小規模もくもく会運営についての知見とポエム

この記事は勉強会運営 Advent Calendar 2017の19日目の記事です adventar.org はじめに 会社でもくもく会を運営しているが今年はついに20回を超え、ありがたいことに他社からも「御社のもくもく会を パクリ 参考にしてうちでももくもく会はじめました 」と言…

Custom View を作るときに気をつけること

Custom Viewの背景画像を変えたいときにちょっとやらかしたのでメモる٩( 'ω' )و 何が起こったか Custom Viewを作って動的に背景画像を変えようとして切り替わらない(ように見える)現象に遭遇。 レイアウトファイルで指定していた背景をコードから動的に切…