サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
qiita.com/takahirom
私はAndroidでエミュレーター無しでスクショテストができる Roborazzi というライブラリを作っていて、もう少し周辺について詳しくなっておこうと思いまして、周辺技術のベストプラクティスを薄く広く軽く調べて見ます。 Jestを使ったスナップショットテスト: テストの流れが以下のように書いてあります。 実行して、画面を描画する Captureする 保存する もう一度実行する 比較する 画像をアップデートする 比較のところではdiffや比較の画像を出したりする。 以下のtoMatchSnapshot()で、なければ保存したり、あれば比較したりする。 test(‘should match snapshot’, () => { const data = {name: ‘John’,age: 30,email: ‘[email protected]‘}; expect(data).toMatc
AndroidXのリポジトリにあるサンプルとかを動かしたくなるときって時々ありますよね?(ない?) ちょっと動かなかったところをメモしておいて、あとでまた環境作るときに役立てようかと思いました。 基本的な手順は3ステップです repoをインストール initしてsyncする Android Studioを立ち上げる 基本はこの手順でうまく動きます。 1. repoをインストール repoは複数のgitリポジトリをいい感じにまとめて管理するコマンドです。(という認識) ここに書いてある手順で動きます。 https://android.googlesource.com/platform//frameworks/support/+/refs/heads/androidx-main/docs/onboarding.md#setup-linux-mac (repo syncなしでhttps://an
Qiita Nightの資料になります。 ↑ 右下の拡大ボタンを押すと読みやすくなります。 https://increments.connpass.com/event/251564/ どうAndroidプロジェクトをセットアップするか? takahiromという名前で活動しています。 Androidが好きです。 GDE for AndroidやDroidKaigi Co-organizerやCyberAgent Developers Expertなどの活動をしています。 初めてQiitaスライドを使いました。 初めてAndroidアプリを作りたいという方 Googleから公式のチュートリアルが提供されているので、最新のAndroidの開発について確認してみてください!一緒に開発していきましょう🙌 https://developer.android.com/courses/android
個人的に驚いたところを太字にしておきます。 AndroidのエンジニアなのでAndroidに関するものが多めです。専門領域外のものはかなり素人目線のただの感想が多いです。なにか大きな間違などがあればご指摘お願いします。修正いたします。 またまだ見ていきますが、一旦、 Keynote Developer Keynote What's new in Android What's new in Jetpack What's new in Development tool Lazy layouts in Compose Fragments: The good (non-deprecated) parts を見たメモを書いています。 まだまだ、ここに追加していく予定です。 セッション: Keynote 今までは2言語の比較を見ながら機械学習をしていたが、翻訳を見ずに学習ができるようになった。これによ
AGP 7.0.0-alpha02からJava 11が必須になったようです。 https://developers-jp.googleblog.com/2020/12/announcing-android-gradle-plugin.html あの設定どこだっけってときどきなって、かなり高確率で最初に当たるので、メモしておきます。 An exception occurred applying plugin request [id: 'com.android.application'] > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try
こちらにあるドキュメントです。 ある程度Composeを触ったことがある人向けのドキュメントだと思います。開発チームなどでComposeやっていく人は一読の価値があるかなと思いました。 The Compose API guidelines outline the patterns, best practices and prescriptive style guidelines for writing idiomatic Jetpack Compose APIs. As Jetpack Compose code is built in layers, everyone writing code that uses Jetpack Compose is building their own API to consume themselves. Jetpack Compose API をidi
Androidのエンジニア (Google Developers Expert for Androidでもある) なので、Androidが多めです。 特に驚いたところを太字で書いています。驚いたところもAndroidのものが多めです。 あとからもう一度見たものに☆をつけます。 なにか間違っているところなどあれば修正するので教えて下さい (他は割とてきとうにしか見れていないです) Keynote 以下に9分でまとまっている動画があるので見てみるとテクノロジーの進化を感じられて楽しいです! Smart canvas Notionみたいなもの。ビデオチャットしながら更新したりできる 順次公開ということで、まだ公開日程は決まっていないみたい。 Advancing AI Advancing AI LaMDA language model すごく自然に会話できるのでデモ必見 (まだリサーチ段階らしい)
Google's Engineering Practices documentationはGoogleのコードレビュープロセスとポリシーの標準的な説明のドキュメントです。 https://google.github.io/eng-practices/review/ 開発の仕事する中でコードレビューにかける時間は長いですよね?でも雰囲気でレビューしていませんか? 何をどのようにコードレビューするのかは、ちゃんと知っておきたい部分でもあり、チームで共有したいものでもあります。 いろいろ書いてあるのですが、個人的に刺さる部分を書いていきます。なので、結構端折ってます。意味違うのではみたいなのがあれば修正するので教えて下さい。 以下のような構成になっており、今回はコードレビューの方法の コードレビューの見方(Navigating a CL in Review)まで見ていきます。 コードレビューの方
ちょっと30分ぐらいで書いた小ネタで申し訳ないんですが、すごく簡単で、便利なので、アドベントカレンダーで紹介します。 Android Studioの自動フォーマットだとKtLintで指摘されるものを修正できず、Formatterをコミット前やビルド時に走らせるのもコード量に比例して遅くなりそうで、また変更したところだけフォーマットさせたいですがうまくできません。コミットのたびに時間かかりそうで微妙で、なにか解決策を探していました。 これを調べ始めて30分程度でできちゃったので、すごく簡単に機械的にレビューさせられるので、ちょっと試してみてください。 インデントを直すsuggested changeの例 使うツール Spotless 変更したファイルを検出してFormatterを呼び出してくれたり、いろいろな機能があります。(JetNewsなどGoogleのOSSなどでも使われています。)
SharedFlow、StateFlow、Channelなどを比較して、LiveDataやEvent通知の置き換えを考えるAndroidKotlinKotlinCoroutines (ちょっと早いですが、時間が取れなかった場合、これをアドベントカレンダーのネタにするかもです) このパターンでこれだとうまく動かない、こういう方法があるなど、何か指摘などあればぜひ教えて下さい。 どうやら、これからはStateFlowやSharedFlowの時代のようです。 新しいコードで意図的にLiveDataを選択する理由はありません。ということが書かれていました。 Twitterなどで話題になっていました。 https://twitter.com/codinginflow/status/1326628159077412866 (Kotlin LangのSlackより) 最初にまとめ 以下にLifecycl
DevFestの資料の記事版です。ステップごとにサンプルアプリの差分付きで説明します。 なぜDependency Injectionが必要なのか から始め、Dagger Hiltの説明、実践的なプラクティスまで説明していきます! Dependency Injection(DI)とはなにか なぜDIが必要なのか DI、ちょっと難しいイメージありますが、そもそもなんで必要なんでしょうか? 作っているのが動画再生するアプリでVideoPlayerというクラスがあるとしましょう。 VideoPlayerのクラスの中にデータベースやcodecなどがハードコードされています。 コード: https://github.com/takahirom/hilt-sample-app/commit/8c36602aaa4e27d8f10c81e2808f0ff452f1c8a4#diff-bbc9d28d8bc
以下のようにすることで実装してくことができます。 ポイントはsealed class自体にはParcelizeをつけないで、サブクラスで実装させることです。 sealed class Sealed(open val sealedClassProperty: String) : Parcelable { @Parcelize data class SubDataClass(val subClassProperty: String, override val sealedClassProperty: String) : Sealed(sealedClassProperty) @Parcelize class SubClass(val subClassProperty: String, override val sealedClassProperty: String) : Sealed(seal
Androidのライフサイクルの基礎からViewModel, LiveData, Kotlin Coroutinesまでを流れるように説明したいAndroidlifecycleJetpackAndroidX 先日、Google Developer Expert for Androidになりました。 これからもよろしくおねがいいたします。 Androidの初心者がステップアップできるような記事を書いてみます。 なにかツッコミがあればコメントしてください🙏 ライフサイクルについて少し学んだ後に、ViewModel, LiveData, Kotlin Coroutinesについて、ライフサイクルに関連する課題とその解決策という位置づけで話していきます。 1. ライフサイクルの基礎 ライフサイクルとは生き物の蝶でいうと生まれて、卵から幼虫になってさなぎになって、蝶になって死んでいく感じですが、A
traceがいい感じに使えるようになっていたのでシェアです。 これはAndroid Dev Summitで紹介されています。 https://www.youtube.com/watch?v=9kNhB_z704I PerfettoはUIが改善されたSystraceのUIです。Chromeをクラッシュさせずに、しかもかなり快適に動きます! 事前準備 開発者向けオプションからSystem Tracingを有効にしてShow Quick Settings tileを有効にします trace方法 こんな感じのActivityがあったとします。 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState
概要 Android Kotlin codelab courseでKotlinに関する知識やAndroidのコードに関する知識はかなり手に入れることができますが、 実際に開発を始める上で必要になる知識があると感じているので、それをまとめて紹介しようと思います。 Android Studioを効率的に使う 知っておけば楽になったのに、、というのが結構たくさんあります。 なぜかビルドできない、importできないときの1次対応 File - Sync Project with Gradle FIlesしてみる ダメならFile - Invalidate Caches and Restartを試す ダメならプロジェクトをimportしなおす。ここから一度プロジェクトを消せます CMD + SHIFT + A(Win: Ctrl + Shift + A): Actionの検索 ※ CMD = Co
Android Kotlin codelab courseで、今から最新のAndroidアプリ開発を始めようAndroidKotlinJetpackcodelabs Android Kotlin codelab coursesとは 先日新しくAndroidを試しながらWeb上で学べるコースがGoogleから提供されました。 この記事ではそれぞれのコースの内容を軽く紹介することで、コースを始めるのを楽にしようとしています。 何かツッコミなどあれば編集リクエストかコメントかTwitterでいただければ修正いたします チュートリアルだと気づけないAndroidを始める上で必要になる知識も作成しました。開発したりする上で最低限必要な知識をまとめています。 Androidアプリ開発はかなり目まぐるしく技術が変わるため、数年前のネット上の記事などを見ながら開発したりすると非推奨になっているAPIを利用
ViewModel周りの作り方、ちょっともやもやしていたので、改めてまとめてみました。 ViewModelの作り方 何も工夫せずにViewModelを取得すると以下のようになります class SampleViewModel() : ViewModel() // (Fragment内でのコード) ViewModelProviders.of(this).get(SampleViewModel::class.java) これは内部的に以下と同じです。 FragmentからviewModelStore というのを取得して、それと AndroidViewModelFactory を渡して作ります。 (Fragment内でのコード) val factory = ViewModelProvider .AndroidViewModelFactory .getInstance(requireActivit
概要 AndroidエンジニアなのでAndroidのところメインで見ています。 量が多すぎて、時間も取れておらず、あんまりまとめられていません。🙇🏻 驚いたところは太字にしています Keynote https://www.youtube.com/watch?v=lyRPyRKHO8M 詳しい記事がたくさんあるのでそちらをどうぞ。 Developer Keynote Android https://youtu.be/LoLqSbV1ELU?t=364 User privacy & security Developer productivity https://youtu.be/LoLqSbV1ELU?t=479 Kotlinを一年前に発表した AndroidはいっそうKotlin firstになる。Kotlinの開発者のためにたくさんの新しいJetpackのAPIが最初にできる ただJa
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
1年間Groupieをたくさん使ったので、その知見を書いておこうと思います。 Groupieは簡単に複雑なRecyclerViewによる画面レイアウトを行うことができます。 どう簡単なのかというと以下のようなところがあります。 ただGroupieのアイテムのリストを作って、RecyclerViewのAdapterのGroupAdapter#updateに渡すだけで作れる 基本的にViewTypeや、ViewHolderなどを考える必要がない 変更時や追加時などのアニメーションもされる Groupieは去年のDroidKaigiのアプリで採用を決めたのをきっかけに使い始めました。 1年使ってみて、さまざまな問題があり、さまざまな解決策を考え、対応していきました。 もし、何か改善できそうな部分とか、ツッコミなどあれば教えてください🙇 Groupieの紹介: Groupieでシンプルなリストを
どこでもKotlin #7 〜Kotlin MPP特集〜で話す予定の内容です!他の方の発表面白そうですし、先着順でまだ空きがあるようなので参加まだの方いれば早めにどうぞ! https://m3-engineer.connpass.com/event/123055/ 概要 自分の知見というより、DroidKaigiアプリとしての知見になりますが、このままではもったいないので、書いておきます。 このあたり、自分はAndroid版の機能をレビュー、実装している間に、コントリビューターの方々がやっていただけたものになります。 @kikuchy さんが特にこの基盤作りをメインにやってくれていました。他にもiOSの有名な方々など、さまざまな方が開発に参加していただけました。 DroidKaigiではAndroid版とiOS版をリリースしています。そこで培った知見を公開しておこうと思います。 Kotli
概要 課金今まで触れてこなかったので、メモです。 基本的にはBillingClientに対して以下をするだけです。 接続する。 課金アイテムの情報を取得する。 アイテムの情報を渡して課金するだけ。 このコードラボやりました。 https://codelabs.developers.google.com/codelabs/play-billing-codelab/ (この記事のコードミスっててヤバイことになっても保証はできないです) 何かコメントあればください。 接続する val billingClient: BillingClient = BillingClient .newBuilder(context) .setListener(this) .build() init { billingClient.startConnection(object : BillingClientState
Kotlin FestのLTのネタです。(3分でどこまで話せるか謎です。) きっかけ RxJavaとCoroutinesについてJakeさんが以下のように言っていて、確かにsuspend functionのほうがわかりやすく書けると自分も感じています。 I don't use Single, Maybe, or Completable anymore since suspend functions are superior. Channels do not replace Observables. — Jake Wharton (@JakeWharton) 2018年8月3日 また既存のアプリの実装を思い浮かべたときにほとんどのRxJavaを使っているところがSingleまたはCompletableなどだったので、置き換えたほうが良さそうでは?と思いました。 個人的にはRxJavaのObs
stdlibとstdlib-jdk7とstdlib-jdk8の違い それぞれstdlibをベースに入っている拡張関数が違います。 例えばstdlib-jdk7はJava7のAutoClosableクラスに対するuseメソッドが入っていたり、Java8のstdlib-jdk8ではStreamを返すような拡張関数が入っています。 stdlib-jdk7がなぜ21以上? stdlib-jdk7はほぼAutoClosableクラスに対するメソッドしか入っておらずAutoClosableクラスはSdk Versionが19なので、Sdk Versionが19であれば現状stdlib-jdk7にしちゃっても問題ありません。 しかし例えばJava7のForkJoinPoolクラスなどはSdk Version21で追加されています。そのためそれを返すような拡張関数がバージョンアップで入った場合にクラッシュ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Androidが好きなのでAndroid多めです。 見ながらただ本当にちょろっとメモしただけのやつと2回見たメモがあります。 間違えがたくさんある気がしているので、何かあればご指摘ください。ソースとして使う前に動画見て確認お願いします。。 驚いたところは太字でかいています ★がついているのはYoutubeでももう一度見たので、割と情報が整ってると思います。 ちょっと全部見返すの時間的に厳しいので一度公開しますが、もう少し見たらWIP外します。 Keynote (Google I/O ’18) ★ Gmail Redesign 機械学習に
shibuya.apk #24でLTする内容になります。(ネタバレになるので来る方はその時に見てください ) Hyperion-Android Hyperion-AndroidはStethoやLeakCanary、DebugAlter(宣伝)などと同じデバッグ時のみ有効にさせるライブラリです デバッグメニューをアプリに追加できる 一つ一つのメニューが便利 Google AutoServiceにより、dependencyに追加するだけで、コードを編集せずに機能を追加できる 端末を振るか通知をタップするとこんな感じでデバッグメニューが出てきます。 Hyperion-Androidの機能紹介 hyperion-attr おすすめ度 ★ * ViewのAttributeを見れる * Enableなどを切り替えたりも出来る hyperion-measurement おすすめ度 ★★★★★ Zepli
次のページ
このページを最初にブックマークしてみませんか?
『@takahiromのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く