並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 292件

新着順 人気順

kotlinの検索結果241 - 280 件 / 292件

  • LiveDataの監視にktxを使わなくなったら起きたこと

    はじめに これは Mobility Technologies Advent Calendar 2020 の11日目の記事です。 t_sofueです。よろしくお願いします。 今年、Androidアプリを開発している中で遭遇した問題について書きたいと思います。 具体的にはLiveDataのobserve関数についてです。 遭遇した問題 まずはどのような問題に遭遇したかです。簡単に言うとFragmentを表示して閉じて、再度表示すると例外が発生してクラッシュするという問題でした。 発生した例外は以下になります。 java.lang.IllegalArgumentException: Cannot add the same observer with different lifecycles 例外を投げているのはこちら 問題が起きたクラスについて 今回の問題が発生したクラスはざっくりと以下のような

      LiveDataの監視にktxを使わなくなったら起きたこと
    • 20210404 Kotlin Tech Talk発表『例外ではなくnullを返すKotlinらしいAPIデザイン』

      MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng

        20210404 Kotlin Tech Talk発表『例外ではなくnullを返すKotlinらしいAPIデザイン』
      • 「Kotlin Fest 2022」12/10に開催、スピーカーの募集を開始 | gihyo.jp

        日本Kotlinユーザグループは、2022年12月10日(土)に「Kotlin Fest 2022」をオンラインで開催する。Kotlin Festは「Kotlinを愛でる」をビジョンに、Kotlinに関する知見の共有と、Kotlinファンの交流の場を提供する技術カンファレンス。2019年以来、3回目の開催となる。 開催概要は以下の通り。 開催日:2022年12月10日(土)10時~18時(予定) 場所:オンライン 参加費:無料 対象:Kotlinに興味のある、すべてのエンジニア また開催に先立ち、セッションスピーカーの募集が開始されている。スピーカーとして発表したい方は、「Kotlin Fest 2022 トーク募集」のページから申し込みのこと。セッションスピーカー募集締切は2022年10月23日 23:59。

          「Kotlin Fest 2022」12/10に開催、スピーカーの募集を開始 | gihyo.jp
        • The state of managing state (with Compose)

          Five years ago the Cash App Android client started splitting our UI rendering and UI presenter responsibilities into distinct types. We had leaned into RxJava heavily in the years prior, and it became very effective in facilitating this split. I ended up giving a fun talk, “The State of Managing State with RxJava”, where I refactored then-common (anti?)patterns in RxJava to an architecture similar

            The state of managing state (with Compose)
          • JUnitにおけるルールとは - Qiita

            ルールとは JUnit4.7で追加された、JUnitの拡張フレームワーク。 JUnitでは、フィクスチャのセットアップの共通処理を抽出するための様々な仕組みがあるが、 ルールはより容易に、そして柔軟に共通処理を抽出することができる仕組みである。 特徴としては以下のようなものが挙げられる。 共通処理を独立したクラスとして定義できる テスト実行時のメタデータにアクセスできる 上記の特徴から、ルールは再利用しやすく、宣言的に記述でき、 テスト実行時の拡張を容易に行うことができる仕組みであると言える。 ルールの実装 ルールのお約束(ややこしい) org.junit.rules.TestRuleインターフェースの実装クラスであること org.junit.Ruleアノテーションもしくはorg.junit.ClassRuleを付与した publicなフィールドとして定義すること フィールドの宣言と同時に

              JUnitにおけるルールとは - Qiita
            • JetBrainsがKotlinの新コンパイラK2、Kotlin for WebAssemblyなどを発表

              Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                JetBrainsがKotlinの新コンパイラK2、Kotlin for WebAssemblyなどを発表
              • build.gradle.ktsに移行する! Tips編 - すきま風

                以前記事にしたプロジェクトをbuild.gradleからkotlin-dslに移行します。 build.gradle.ktsにすることでスクリプト内でKotlinを使えるようになるし、IntelliJの補完が賢くなるし、groovyの文法をいちいちググらなくてよくなります。Spring Initializrでのデフォルトもktsになっていますし、やるしかねえぞこれ で、気合で一気にやりました。変換結果はこちら 以下、自分用のメモとしてTipsを記載しておきます。 変換TIPS kotlin plugins // groovy // plugins { // id 'org.jetbrains.kotlin.jvm' version '1.3.50' // id 'org.jetbrains.kotlin.plugin.spring' version '1.3.50' // id 'org.

                  build.gradle.ktsに移行する! Tips編 - すきま風
                • The huge potential of Kotlin/Wasm

                  Last week, a preview release of Kotlin/Wasm was announced as part of Kotlin 1.8.20-Beta. For me who has been nudging the Kotlin team to work on WebAssembly support since June 2016, that’s a huge step forward even if providing WebAssembly first class support for Kotlin will be a long journey. I also decided recently to contribute actively by creating KoWasm, an experimental side project intended to

                  • Kotlin 1.7.0 Released | The Kotlin Blog

                    Kotlin 1.7.0 has been released. It unveils the Alpha version of the new Kotlin/JVM K2 compiler, stabilizes language features, and brings performance improvements for the JVM, JS, and Native platforms. Here is a list of the major updates in this version: The new Kotlin К2 compiler is in Alpha now, and it offers serious performance improvements. It is available only for the JVM, and none of the comp

                      Kotlin 1.7.0 Released | The Kotlin Blog
                    • What's new in Kotlin 2.0.0 | Kotlin

                      What's new in Kotlin 2.0.0Released: May 21, 2024 The Kotlin 2.0.0 release is out and the new Kotlin K2 compiler is Stable! Additionally, here are some other highlights: New Compose compiler Gradle plugin Generation of lambda functions using invokedynamic The kotlinx-metadata-jvm library is now Stable Monitoring GC performance in Kotlin/Native with signposts on Apple platforms Resolving conflicts i

                        What's new in Kotlin 2.0.0 | Kotlin
                      • Dropbox、ネイティブアプローチへの転換によってAndroidアプリの高速化と信頼性向上を実現

                        あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

                          Dropbox、ネイティブアプローチへの転換によってAndroidアプリの高速化と信頼性向上を実現
                        • Gradleのjvm-test-suiteプラグインがテスト周りの定型コードを排除するのに便利そう - Kengo's blog

                          Gradle v7.5の時点ではまだIncubating段階の機能ではあるのですが、Gradleの新しいプラグイン jvm-test-suite がいい感じなので紹介します。 docs.gradle.org 解きたい課題:サブモジュールや統合テストが出てくるととたんに面倒になるビルドスクリプト Gradleは設定をDSLで記述するので基本的には何でもありなのですが、やはり定形コード(boilerplate)は少ないほうがビルドスクリプトの見通しも良くなります。もちろんGradleは「設定より規約(Convention over Configuration)」の考えを持っているため、ある程度は空気を読んでSourceSetやTaskを自動的に生成してくれます。しかしテスト周りにおいてはこうした自動生成は十分ではなく、次に挙げるような課題がありました: サブプロジェクト全てに対して実行したタス

                            Gradleのjvm-test-suiteプラグインがテスト周りの定型コードを排除するのに便利そう - Kengo's blog
                          • 逆引きKotlin Multiplatform 〜Swiftに対応するKotlinの機能と、KMPによる変換後の実態〜

                            CA.swift #17 https://cyberagent.connpass.com/event/294197/ https://fortee.jp/iosdc-japan-2023/proposal/e9ffca7b-d40e-4e26-a393-0baf59c001d4 弊チームではK…

                              逆引きKotlin Multiplatform 〜Swiftに対応するKotlinの機能と、KMPによる変換後の実態〜
                            • Jetpack Compose の Composition Local ってなんなの?

                              Jetpack Compose には Composition Local という仕組みが用意されています。 これを使うとバケツリレー問題に対応することができます。 バケツリレー問題 例えば深いところの Composable で Context が必要だとします。 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val context: Context = this setContent { MyAppTheme { MyApp(context) } } } } @Composable fun MyApp(context:Context) { TopScreen(context)

                                Jetpack Compose の Composition Local ってなんなの?
                              • 「Ktor 1.5.0」がリリース、自動リロードが可能な開発モード搭載

                                「Ktor 1.5.0」はマイナーリリースであり、自動リロードや拡張デバッグ情報といった機能を提供している。これらの機能は、開発中には役立つものの、本番モードでは速度が低下する可能性があることから、これらの機能を簡単に有効化できる開発モードを備えており、開発時と本番環境での切り替えを可能にした。 そのほか、KtorクライアントではJVMをターゲットにする際に、Java 11で導入されたリアクティブストリームに基づくHTTPクライアントをサポートするとともに、HttpRequestBuilderを介したCookie送信、事前圧縮されたファイル、CORSでのカスタムヘッダ、サーバーセッションでの封印されネストされたクラスのサポート、WebSocketとDeflate拡張機能の試験的なサポート、OkHttp WebSocket作成オーバーライド、例外処理などが追加されている。 そのほか、2020

                                  「Ktor 1.5.0」がリリース、自動リロードが可能な開発モード搭載
                                • kotlin coroutinesのFlow, SharedFlow, StateFlowを整理する - Mori Atsushi

                                  JetpackでもRoom, Paging 3, DataStore等様々なライブラリがkotlin coroutines flowを使い始め、もはやAndroid開発にはflowが必要不可欠になってきました。 そんな中、以前紹介したStateFlowに加えて、SharedFlowが1.4.0-M1から登場しました。 少し複雑に感じますが、実はかなり整理されており、以前より使いやすくなっていると思っています。 今回は、Flow、SharedFlow、StateFlowの概要に関して紹介し、各々の詳細に関しては別途まとめたいと思います。 型の関係を確認する Flow まず、Flowの定義はこのようになっています。 今回は型のみを重視するため、一旦メンバに関しては考慮しません。 public interface Flow<out T> SharedFlow 次にSharedFlowです。 pu

                                    kotlin coroutinesのFlow, SharedFlow, StateFlowを整理する - Mori Atsushi
                                  • LiveData vs Flow vs RxJava - Mori Atsushi

                                    Kotlin Coroutinesの進化はすざましく、とどまるところを知りません。 状態やイベントを扱いやすくなったStateFlowやSharedFlowが登場し、さらには、Lifecycleをより扱いやすくなったLifecycleOwner.addRepeatingJobやLifecycleOwner.repeatOnLifecycle、Flow.flowWithLifecycleが追加されました。 RoomやDataStore等Jetpackの各種ライブラリでもCoroutinesが使われており、Jetpack Composeでも様々なところでCoroutinesが活用されています。 そういった中で、一部LiveDataやRxJavaからCoroutinesに書き直す動きが見られ、多少混乱を招いていると感じています。 結論から言うと、現時点において積極的にCoroutinesに移行す

                                      LiveData vs Flow vs RxJava - Mori Atsushi
                                    • The K2 Compiler Is Going Stable in Kotlin 2.0 | The Kotlin Blog

                                      IDEs CLion DataGrip DataSpell Fleet GoLand IntelliJ IDEA PhpStorm PyCharm RustRover Rider RubyMine WebStorm Plugins & Services Big Data Tools Code With Me JetBrains Platform Scala Toolbox App Writerside JetBrains AI Grazie Junie JetBrains for Data Kineto Team Tools Datalore Space TeamCity Upsource YouTrack Hub Qodana CodeCanvas .NET & Visual Studio .NET Tools ReSharper C++ Languages & Frameworks K

                                        The K2 Compiler Is Going Stable in Kotlin 2.0 | The Kotlin Blog
                                      • Jetpack Compose 1.0 公開 : Android の最新 UI ツールキットで、ネイティブ UI を作成しましょう

                                        #11WeeksOfAndroid 18 #AdaptiveApps 1 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #CredentialManager 1 #GDC2025 2 #GenerativeAI 3 #GoogleIO 19 #WeArePlay 22 12l 1 5 star apps 1 adaptive 2 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 128 Android 10 1 Android 11 1 Android 12 Beta 5 1

                                          Jetpack Compose 1.0 公開 : Android の最新 UI ツールキットで、ネイティブ UI を作成しましょう
                                        • もう雰囲気で使わない。rememberを理解するためのポイント - 縁側プログラミング

                                          Jetpack Composeで再コンポジションを超えて変数を保持するために使うrememberですが、なかなか概念を理解するのが難しく、なんとなく雰囲気で書いて、期待通りの動作になるまで何度も試行錯誤を繰り返しながら実装していました。そんな状態を脱出して、ちゃんと理解してrememberを使うために調べたことをいくつか紹介します。 rememberの定義 最初に定義を確認しておきます。 rememberはandroidx.compose.runtimeパッケージに定義されています。いくつかの形式がありますが、大きく分けて引数にkeyを受け取らないものと受け取るものがあります。calculationラムダの戻り値がrememberの戻り値になります。 @Composable inline fun <T : Any?> remember( crossinline calculation: @

                                            もう雰囲気で使わない。rememberを理解するためのポイント - 縁側プログラミング
                                          • DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern

                                            DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern

                                              DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
                                            • Kotlin Coroutines Exception Handling Cheat Sheet | Lukas Lechner

                                              Lukas Lechner ✏️ Blogger | 🎓 Course Creator | 📢 Speaker | 👨‍💻 Freelance Android Developer Exception Handling with Kotlin Coroutines is hard. I wrote an extensive article about it and gave talks about it at several conferences. Some developers suggested creating some kind of cheat sheet that could be helpful for implementing appropriate exception handling in coroutine-based code. Here it is 😉.

                                                Kotlin Coroutines Exception Handling Cheat Sheet | Lukas Lechner
                                              • KotlinとSpring Security 6.xを使って、Introspection Endpointでトークンを検証するOAuth2のリソースサーバ−を実装する | DevelopersIO

                                                AWS事業本部サービス開発室の佐藤です。 KotlinとSpring Security 6.xを使ってOAuth2のリソースサーバーを試す機会がありましたので、手順を残そうと思います。2023年3月時点ではSpring Boot 3.xを使っているためSpring Security 6.xを使うことになるのですが、あまりネット上に情報が少なかったのとハマった部分も多かったので記事にしました。現在のSpring Security書き方をするように意識し、非推奨の書き方はしないようにしています。 新しいSpring Securityの設定の書き方については以下のQiitaの記事がとても参考になります。 この記事では、Spring Security 6.xを使ってOAuth2 Resource Serverを構成し、Access TokenをIntrospection Endpoint経由で検証

                                                  KotlinとSpring Security 6.xを使って、Introspection Endpointでトークンを検証するOAuth2のリソースサーバ−を実装する | DevelopersIO
                                                • Kotlinを用いたDSL的な設計手法と使用上の注意

                                                  サーバーサイドKotlin LT大会 vol.11 の発表資料です。 https://server-side-kotlin-meetup.connpass.com/event/309183/

                                                    Kotlinを用いたDSL的な設計手法と使用上の注意
                                                  • KotlinのSharedFlowとStateFlowの違いを理解する - 縁側プログラミング

                                                    StateFlowはSharedFlowのサブクラス StateFlowは、SharedFlowのいくつかのパラメータを固定したサブクラスです。kotlinlang.orgに、StateFlowの内部動作を説明したソースコードが掲載されているので引用します。 // MutableStateFlow(initialValue) is a shared flow with the following parameters: val shared = MutableSharedFlow( replay = 1, onBufferOverflow = BufferOverflow.DROP_OLDEST ) shared.tryEmit(initialValue) // emit the initial value val state = shared.distinctUntilChanged()

                                                      KotlinのSharedFlowとStateFlowの違いを理解する - 縁側プログラミング
                                                    • For Complex Applications, Rust is as Productive as Kotlin

                                                      In this article, we will compare one apple (IntelliJ Rust) to one orange (rust-analyzer) to reach general and sweeping conclusions. Specifically, I want to present a case study supporting the following claim: For me, this is an unusual claim to argue: I always thought exactly the opposite, but I am not so sure now. I came to Rust from C++. I was of the opinion that this is a brilliant low-level la

                                                        For Complex Applications, Rust is as Productive as Kotlin
                                                      • [Kotlin] isEmpty(), isBlank()などの違い早見表 - Qiita

                                                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                          [Kotlin] isEmpty(), isBlank()などの違い早見表 - Qiita
                                                        • 【MVVM】 Kotlin Flow で使える5つの利用パターン | #iOS | #Android ファショ通

                                                          Swift を身に付けていく過程の記録、最新ニュースや使い方、iPhone、Mac、Android、Python なども。 LiveData は、2017年に必要とされていました。オブザーバーパターンは私たちの生活を楽にしてくれましたが、RxJava などの選択肢は当時の初心者にとって複雑すぎました。Architecture Components チームは、LiveData (Android向けに設計された、非常にこだわりをもったオブザーバ型のデータホルダークラス) を作成しました。これは、簡単に始められるようにシンプルに作られており、より複雑なリアクティブストリームのケースでは、RxJava と統合して使用することが推奨されていました。 Java開発者、初心者、そしてシンプルな状況では、やはり LiveData が最適です。それ以外の人は、Kotlin Flow に移行するのが良いでしょ

                                                            【MVVM】 Kotlin Flow で使える5つの利用パターン | #iOS | #Android ファショ通
                                                          • Jetpack Compose の Side-effect を使いこなす / DroidKaigi 2023

                                                            オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference

                                                              Jetpack Compose の Side-effect を使いこなす / DroidKaigi 2023
                                                            • VSCodeでもKotlinが書きたい!公式Kotlin LSPの今とこれから - Sansan Tech Blog

                                                              技術本部 Contract One Engineering Unit の髙野です。2024年に新卒で入社し、AI契約データベース「Contract One」を開発しています。 KotlinConf 2025で突如として発表されたKotlin LSPは、Jetbrains IDEが主流だったKotlin開発に大きな変革をもたらす可能性を秘めています。 そんなKotlin LSPについて、現状と今後の展望をまとめます。 Kotlin LSPとは? 配布形式 Visual Studio Code 拡張機能 Standalone Kotlin LSPでできること AI連携と生産性向上への期待 GitHub Copilotとの連携 Serena MCPとの連携 触ってみた感想 今後の展望 まとめ Kotlin LSPとは? Kotlin LSPは、Jetbrainsが開発している公式のLanguag

                                                                VSCodeでもKotlinが書きたい!公式Kotlin LSPの今とこれから - Sansan Tech Blog
                                                              • KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotlin Devs

                                                                集まれKotlin好き!Kotlin愛好会 vol.55で発表した内容です。

                                                                  KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotlin Devs
                                                                • Dispatchers.Unconfined and why you actually want EmptyCoroutineContext

                                                                  Dispatchers.Unconfined is one of kotlinx.coroutines’ built in CoroutineDispatchers. It’s different from other built in dispatchers as it’s not backed by a thread pool or other asynchronous primitive. Instead, Dispatchers.Unconfined is hardcoded to never change threads when entering its context (this is called “dispatching”). It’s pretty easy to verify this from its (simplified) implementation: obj

                                                                    Dispatchers.Unconfined and why you actually want EmptyCoroutineContext
                                                                  • Coroutine context and dispatchers | Kotlin

                                                                    Coroutine context and dispatchersCoroutines always execute in some context represented by a value of the CoroutineContext type, defined in the Kotlin standard library. The coroutine context is a set of various elements. The main elements are the Job of the coroutine, which we've seen before, and its dispatcher, which is covered in this section. Dispatchers and threadsThe coroutine context includes

                                                                      Coroutine context and dispatchers | Kotlin
                                                                    • A Comprehensive Kotlin Learning Guide for All Levels | The JetBrains Academy Blog

                                                                      So you want to learn Kotlin – now what? Beginners in any field often encounter a fundamental problem: They don’t know what they don’t know. This resource aims to help self-taught Kotlin learners get a better sense of the learning landscape, from their first fun() main to juggling coroutines with ease. This guide is for anyone interested in the Kotlin language, regardless of how much experience you

                                                                        A Comprehensive Kotlin Learning Guide for All Levels | The JetBrains Academy Blog
                                                                      • LINEでKotlinを活用してサービスを作っていく話 / The story about using Kotlin to create a new service at LINE

                                                                        LINEで新規に開発しているライブコマースサービスにおいて、どういうコンポーネントを作っているのか、どう作っていくのか、どんな技術を利用して作っているのかを説明しています。 Speaker:岩谷 明 / @hoshi_gaki https://twitter.com/hoshi_gaki …

                                                                          LINEでKotlinを活用してサービスを作っていく話 / The story about using Kotlin to create a new service at LINE
                                                                        • StateFlowの深堀り、SharedFlowとの違いとstateIn【kotlin coroutines flow】 - Mori Atsushi

                                                                          StateFlowの深堀り、SharedFlowとの違いとstateIn【kotlin coroutines flow】 StateFlowはkotlin corouteinsの1.3.6で追加された状態管理用の特別なFlowです。 以前、「StateFlowのドキュメントを読み込む」という記事を書きましたが、その後SharedFlowが追加され、若干実装に変更がありました。 また、新たにstateInというoperatorも追加されています。 今回はそれらを含めたStateFlowの詳細な仕様に関して深堀りしていきたいと思います。 Flow, SharedFlow, StateFlowの比較はこちらの記事を、SharedFlowの深堀りはこちらの記事を参考にしてください。 StateFlowの基本的な使い方 StateFlowは状態管理に特化したFlowです。 StateFlowはMut

                                                                            StateFlowの深堀り、SharedFlowとの違いとstateIn【kotlin coroutines flow】 - Mori Atsushi
                                                                          • UIイベント管理をSharedFlowでスッキリ簡単に!Androidアプリの開発効率が向上できました! - asoview! Tech Blog

                                                                            はじめに 直面した課題 課題へのアプローチ 改善前のコード SharedFlowの導入 UiEvent と SharedFlow 改善後のコード SharedFlowを使う際の注意点 まとめ さいごに はじめに こんにちは!アソビューでAndroidアプリの開発をしているけんすーです。 アソビューのAndroidアプリはリリースから約2年が経ちました。その間、様々な機能追加や仕様変更を行ってきました。 当初は画面構成がシンプルで問題なかったものの、画面要素やUIイベントが増えることでComposable関数が複雑化していきました。その結果、コードの可読性や保守性が損なわれるという課題に直面しました。課題の詳細は次の章にて説明します。 今回は、その課題とどのように改善したのかを紹介します。 題材として、GitHubリポジトリを検索するアプリのサンプルコードを使用します。 サンプルコードは以下

                                                                              UIイベント管理をSharedFlowでスッキリ簡単に!Androidアプリの開発効率が向上できました! - asoview! Tech Blog
                                                                            • いまさらWorkManager〜概要編〜 - Qiita

                                                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                                                いまさらWorkManager〜概要編〜 - Qiita
                                                                              • Kover を使って PR にシンプルなテストカバレッジレポートをつけたい

                                                                                こんにちは!アルダグラムでエンジニアをしている内倉です🦐 ユニットテストのカバレッジを出したいけれど「ちょっと見たいだけで Codecov とか使うほどではないんだよな」というようなこと、たまにありませんか? 今まで Rails のプロジェクトでは、テストカバレッジを GitHub の PR にコメントとして追加してみたことがあるのですが、Android + Kotlin ではやったことなかったので、少し調べてみました。 Android でカバレッジ取るなら、JaCoCo 一択なのかな?と思っていましたが、Kotlin だったら Kover というのが良さそうだったので導入してみたところ、出力したレポートをほぼそのままPRコメントにつけるだけでも、結構いい感じになりました。 Kover とは Kover は、JVM や Android プラットフォーム向けにコンパイルされた Kotlin

                                                                                  Kover を使って PR にシンプルなテストカバレッジレポートをつけたい
                                                                                • SansanアプリにおけるKotlin Multiplatform導入の効果とアーキテクチャ紹介 - Sansan Tech Blog

                                                                                  こんにちは! 技術本部 Sansan Engineering Unit Mobile Applicationグループの桑原です。 この度、Sansanモバイルアプリでは開発スピードを加速させるため、実プロダクトにKotlin Multiplatform(以下、KMP)を導入しました! まずは1画面の導入から始めましたが、今後は既存の画面も順次KMPに移行していく予定です。 この記事では、Androidエンジニアの視点から、SansanアプリにKMPを導入した背景やその成果、さらにKMPの設計についても簡単に紹介します。 KMPの導入背景と成果 導入した理由 導入で感じたメリット 導入で感じたデメリット KMPの基本設計 AndroidでのKMPモジュールの取り込み方法 採用したアーキテクチャ KMPモジュールの構成 エラーハンドリング テスト KMPで使用しているその他ライブラリ 最後に

                                                                                    SansanアプリにおけるKotlin Multiplatform導入の効果とアーキテクチャ紹介 - Sansan Tech Blog

                                                                                  新着記事