batchのブログ

知見の備忘録

Jetpack Composeでリストの最後を検知する

この記事は Jetpack Composeでリストの最後を検知する - Qiita のコピーです。 Jetpack Composeでリスト表示を作るとき、今までのRecyclerViewのようにリスト表示を作るとき、 LazyColumnというComposableメソッドを使うと思います。 この LazyColumnの引数…

Kotlinのinlineとcrossinlineの挙動をバイトコードで追う

この記事は、Kotlinのinlineとcrossinlineの挙動をバイトコードで追う - Qiita のコピーです。 ただのメソッドの呼び出し Kotlinでこのようなコードを書いたとき fun main() { doSomeThing() } fun doSomeThing() { println("This is doSomeThing") } バイト…

RecyclerViewのAdapterにClickListenerのいい感じの渡し方とKotlinのラムダ式がチョットわかったはなし

みなさん、Itemの中にボタンがあるRecyclerViewのAdapterを実装するとき、そのボタンの押されたときの処理はどのように書いてますか。 自分は今までこんな感じで書いてました。 class MyAdapter(private val listener: ClickButtonListener) { override fun …

KMMでサンプル作ってみた

はじめに KMMはKotlin Multiplatform Mobileといって、KotlinでiOSとAndroidの共通なビジネスロジックを書いて時間と労力を節約しようというものです。(公式より) 最近は、Flutterのコミュニティがかなり活発で人気があるように感じますが、KMMはいい意味…

Re:ゼロから始めるbuild.gradle.kts生活

はじめに タイトルにあるように build.gradle.ktsをAndroidアプリ開発で使っていこうと思います. また,マルチモジュールでプロジェクトを運用する際に同じような記述を共通化させる部分の紹介もしたいと思います. 最初,Android StudioでNew Projectする…

Flutter初心者がおうちハッカソン参加してきた

はじめに 現在,新型コロナウィルス感染症毎年恒例で行われているオフラインハッカソンが軒並み延期しているようです. そんな中開催されたオンラインハッカソンのおうちハッカソン. connpass.com これに21卒で同期になる予定の友達4人とCyberAgentの人事の…

AmebaでAndroidエンジニアとして内定者バイトしてきた

はじめに 今回,CyberAgentの21卒内定者として内定者バイトに行かせていただきました. 僕の場合はAndroidエンジニアを志望しているため,Androidエンジニアとして行かせていただきました. 配属された部署はAmebaです. このアプリ↓ play.google.com このア…

Androidでダークテーマ機能を実装する

はじめに このようなFragmentの画面を用意しました. 実装方法 Step1 設定画面のレイアウトの表示 実はこれは普通のFragmentではなくてPreferenceScreenというコンポーネントを使って設定画面専用の画面みたいな感じで作成しています. ざっくりと説明すると…

multi moduleで依存関係を記述するときのimplementationとapiの違い

DroidKaigi2020のconference-appをもとに説明します. 点線がimplementationを使った依存関係で実線がappを使った依存関係を表しています. DroidKaigiのこの依存関係のグラフを見れば分かる通り,基本的にはimplementationを使って依存関係を記述していきま…

TextInputLayoutとTextInputEditTextのerrorとかの違いについての豆知識だよ

基本的に,TextInputLayoutの子にTextInputEditTextを入れて使う. TextInputLayoutの設定 android:hintを設定することでhintを設定することができる.これを設定するだけでEditTextをタップしたときにかっこいいアニメーション付きでhintが上に移動するやつ…

Firebase Storageにあるファイルをダンロードする方法

すること Step1 Google Cloud SDKをインストールする. macOSの場合 ここのInstall the latest Cloud SDK versionからPackageをダウンロードして,Python2の環境がある場所で $ ./google-cloud-sdk/install.sh する. 次に $ ./google-cloud-sdk/bin/gcloud …

Android始めて半年くらいの俺がContributeしかけたはなし

タイトルにある通り,Androidアプリ開発を去年の夏頃から初めて現在約半年くらいです.そして今,2月に開催されるDroidKaigiに向けて全国のAndroidアプリエンジニアが集まってDroidKaigiのセッションリストなどをまとめたAndroidアプリをOSSで開発中です. g…

2020やることリスト・やらないことリスト

新年あけましておめでとうございます.ミニマリストなエンジニアを目指しているbatchです.今年のやることリスト・やらないことリストをサクッとまとめて書きたいと思います. 自分が定期的にこの記事を見返してぼーっと一年過ごさないように.今年は学生生…

2019年を振り返る

未来の自分のために今年がどんな年であったかを残しておきたいと思います. いつかこれを自分が見たときに,懐かしさを感じたり新たな考え方を思いついたりできるかなと思うので.今年は自分にとって大きな変化がたくさんあった年でした.研究テーマを全く違…

BottomNavigationViewを使ったときにFragmentの下が隠れるときの対処法というかそもそもConstraintLayout使うときmatch_parentは使わないほうがいい

はじめに Android 初心者向け Advent Calendar 2019の12日目の記事です.BottomNavigationViewを使ってFragmentの中にRecyclerViewを設置したとき,一番下の部分だけ下のBottomNavigationViewに隠れて見えなくなる.みたいな経験したことないですか?原因は…

OUTPUT

はじめに FUN part2 Advent Calendar 2019 - Adventarの11日目の記事です. ミニマリストエンジニアなbatchが書きます. 僕はAndroidアプリ開発が好きなのでそのことを書いてもいいのですが,この時期色々な人たちがこのカレンダーのためにOUTPUTをする時期…

retrofitでGETやPOSTする毎日.そんなときはsocket.io使って双方向にリアルタイム通信しちゃおうか

はじめに socket.ioというものがあります.github.com Androidで外部と通信するとき,ほとんどがRetrofitつかってAPIたたいてJson取得して〜みたいな流れだと思います.クライアントがサーバに対してなにか要求してそれに反応してサーバが値を返したり,何ら…

****Directionsクラス使いたいのにgenerateされない貴方へ(私はこれで4時間くらい時間を無駄にした)

Step 1 build.gradle(Project) dependenciesに以下を追記 classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.0-rc02" // 適宜最新のversionに Step 2 build.gradle(Module: app) applyです.applyしてあげましょう. apply plugin: 'a…

MVVM実装のざっくりしたこととシンプルにFragmentにDatabinding

ただ単純にMVVMを用いているときにAPIで取ってきたデータをDatabindingでFragmentに表示させることをしたいと思ったとき,検索してもなかなか出てこなかった.RecyclerViewに表示するのはたくさん記事が出てくるのですが,Fragmentにおいてある一つのTextVie…

Groupieでitemクリックを実装しちゃう.おまけにNavigationでFragmentに遷移しちゃう

lisawrayさん,お世話になっております. github.com ですが,なぜかあまりGroupieを使ったときのitemクリックの実装の仕方が調べても全然出てきませんでした. なのでその知見を共有.そして,Groupieでリスト表示してitemをクリックしたとき別のFragmentに…

Log.dだって?Timber使うゾ

はじめに デバッグログを使ってアプリの挙動を確認することはよくあること.そのとき,デフォルトであるLog.dよく使う.しかし,Log.dでは毎回TAG入れるのが面倒だったり,valueには毎回toStringしないといけないしめんどくさいことだらけ.おまけに色々とセ…

Androidで画面のスワイプや物理キーイベントなどを取得する with Kotlin

はじめに Androidの画面のタッチイベントとかって気になりつつもあまり触れることって少ないですよね.先日のハッカソンでばりばり触る機会があり,いろいろ調べて実装したので,画面のタップ,2本指タップ,長押し,スワイプなどの実装の仕方の知見を今後自…

Coroutine+Retrofit2+Moshiを使ってAPI叩いてみよう!もちろんKotlinを添えて〜〜2019

どうもこんにちはミニマリストエンジニアbatchです. 最近は,ミニマリストに関することばかりブログに書いていましたが日常的にAndroid開発は続けていて日々進化しております. 最近は自分が作りたいと思うアプリが見つかり,それを実装していたり先日JP HA…

JP HACKS2019に参加してきた

ミニマリストエンジニアと最近勝手に名乗り始めたbatchでございます. 先週末にJP HACKSというハッカソンに参加してきました. これは全国で行われるハッカソンでまず地方予選みたいなものがあってそこから勝ち上がったチームは後日開催される全国大会的なも…

ミニマリズム近況報告

ここ数ヶ月で季節が変わり,冬服の制服化や部屋のモノを更に見直してアップデートなどを行っていました. それらの近況報告を残すとともに,自分に最適なミニマルな生活を目指していく過程を記録しときたいと思います. 冬服の制服化 夏はHanesのBEEFY クル…

Joined In Rakuten Summer Internship

Introduction I joined in Rakuten from August 20th to September 27th.It was a very valuable experience.I was using English all day for a month and a half.Since this was a very rare experience, I would like to write about it for my future se…

メドレーのインターンシップに参加してきた

メドレーとは 株式会社メドレーさんとは,東京の六本木にある2009年に設立された企業です. www.medley.jp事業内容としては,人材採用プラットフォーム事業と医療プラットフォーム事業の2つがあります.事業の名前でわかるように医療分野を対象にした数々の…

私服の制服化をしてみて1ヶ月経って思ったこと

はじめに 久しぶりにライフスタイル系のことを書こうと思います. 最近はイベントなどを通じてAndroidについての記事が多かったですが,無駄なことを省いて自分の本当にやりたいことに時間を使うため,ミニマリズムな生活を目指しています. 具体的には部屋…

Sansanのモバイルアプリ開発1Dayインターンシップに参加してきた

タイトルにあるように,Sansanさんのモバイル開発の1Dayインターンシップに参加してきました. 集まったのは6名で4名がiOS,僕を含めた2名がAndroidというような感じでした. 開発だけでなく,最初にSansanがどのような会社なのかという説明を結構詳しくして…

あんざいゆき氏講演!Androidエンジニアの成長戦略【Caraquri TechNight #5】に参加してきた

あんざいゆき氏講演!Androidエンジニアの成長戦略【Caraquri TechNight #5】に参加してきました. caraquri.connpass.com あんざいゆきさんは,AndroidエンジニアとしてGDE(Google Developer Expert)に認定されている日本には2人しかいないうちの1人でと…