Baeldung
作者:Oscar Ramadhan
發布:09-04 00:40
Geospatial Operations Using JTS
Java Topology Suite (JTS) makes working with spatial data in Java intuitive and powerful.
重點摘要
JTS provides a rich API for modeling 2D spatial data.
Supports operations like containment, intersection, and buffer.
Essential for applications like mapping tools and logistics engines.
This article explores the Java Topology Suite (JTS), a powerful geometry engine for handling 2D spatial data in Java. It covers the setup of JTS, creating geometries using Well-Known Text (WKT), and performing various spatial operations such as containment, intersection, and buffer creation. The tutorial includes practical code examples and unit tests to demonstrate how to validate and manipulate geometries effectively. JTS is essential for developing geospatial applications, providing tools for geometric modeling, validation, and spatial computations, making it invaluable for logistics, mapping, and location-aware applications.
使用 JTS 的地理空间操作
Java 拓扑套件 (JTS) 使得在 Java 中处理空间数据变得直观且强大。
重點摘要
JTS 提供丰富的 API 用于建模 2D 空间数据。
支持包含、交集和缓冲等操作。
对于地图工具和物流引擎等应用至关重要。
本文探讨了 Java 拓扑套件 (JTS),这是一个强大的几何引擎,用于处理 Java 中的 2D 空间数据。文章涵盖了 JTS 的设置、使用知名文本 (WKT) 创建几何形状,以及执行各种空间操作,如包含、交集和缓冲区的创建。教程包括实用的代码示例和单元测试,以演示如何有效地验证和操作几何形状。JTS 对于开发地理空间应用至关重要,提供几何建模、验证和空间计算的工具,使其对于物流、地图和位置感知应用变得不可或缺。
使用 JTS 的地理空間操作
Java 拓撲套件 (JTS) 使得在 Java 中處理空間數據變得直觀且強大。
重點摘要
JTS 提供豐富的 API 用於建模 2D 空間數據。
支持包含、交集和緩衝等操作。
對於地圖工具和物流引擎等應用至關重要。
本文探討了 Java 拓撲套件 (JTS),這是一個強大的幾何引擎,用於處理 Java 中的 2D 空間數據。文章涵蓋了 JTS 的設置、使用知名文本 (WKT) 創建幾何形狀,以及執行各種空間操作,如包含、交集和緩衝區的創建。教程包括實用的代碼示例和單元測試,以演示如何有效地驗證和操作幾何形狀。JTS 對於開發地理空間應用至關重要,提供幾何建模、驗證和空間計算的工具,使其對於物流、地圖和位置感知應用變得不可或缺。
Baeldung
作者:Amar Wadhwani
發布:09-04 00:44
Implementing a Simple Rule Engine in Java
This article explores how to build a simple Java-based rule engine from scratch.
重點摘要
Rule engines enable dynamic business rule execution.
Two approaches: SpEL for dynamic rules and POJO for type safety.
Comparison highlights trade-offs between flexibility and safety.
In this article, we delve into creating a simple rule engine in Java, focusing on two main approaches: the Spring Expression Language (SpEL) and a POJO-based method. The SpEL approach allows for dynamic rule evaluation at runtime, offering flexibility but lacking compile-time safety, which can complicate maintenance and debugging. Conversely, the POJO-based engine enhances type safety and clarity, although it may be less adaptable to frequent rule changes. The article concludes by comparing the strengths and weaknesses of both methods, emphasizing the importance of choosing the right approach based on specific business needs.
在 Java 中实现简单的规则引擎
本文探讨如何从头开始构建一个简单的 Java 规则引擎。
重點摘要
规则引擎使业务规则的动态执行成为可能。
两种方法:SpEL 用于动态规则,POJO 用于类型安全。
比较强调灵活性与安全性之间的权衡。
在本文中,我们深入探讨了如何在 Java 中创建一个简单的规则引擎,重点放在两种主要方法上:Spring 表达式语言(SpEL)和基于 POJO 的方法。SpEL 方法允许在运行时动态评估规则,提供灵活性但缺乏编译时安全性,这可能使维护和调试变得复杂。相反,基于 POJO 的引擎增强了类型安全性和清晰度,尽管在频繁变更规则时可能不那么适应。文章最后比较了这两种方法的优缺点,强调根据特定业务需求选择合适方法的重要性。
在 Java 中實現簡單的規則引擎
本文探討如何從頭開始構建一個簡單的 Java 規則引擎。
重點摘要
規則引擎使業務規則的動態執行成為可能。
兩種方法:SpEL 用於動態規則,POJO 用於類型安全。
比較強調靈活性與安全性之間的權衡。
在本文中,我們深入探討了如何在 Java 中創建一個簡單的規則引擎,重點放在兩種主要方法上:Spring 表達式語言(SpEL)和基於 POJO 的方法。SpEL 方法允許在運行時動態評估規則,提供靈活性但缺乏編譯時安全性,這可能使維護和調試變得複雜。相反,基於 POJO 的引擎增強了類型安全性和清晰度,儘管在頻繁變更規則時可能不那麼適應。文章最後比較了這兩種方法的優缺點,強調根據特定業務需求選擇合適方法的重要性。
Baeldung
作者:Karthikeya Tatavarthi
發布:09-04 00:46
How to Reduce Spring Boot Memory Usage?
By tuning JVM options and reducing server threads, we can significantly cut memory usage.
重點摘要
Spring Boot applications often have high memory consumption.
Use Serial Garbage Collector to save memory.
Limit maximum RAM and reduce thread stack size.
Spring Boot applications are known for their substantial memory usage due to factors such as embedded servers and framework overhead. This tutorial outlines various strategies to mitigate memory consumption, including setting JVM options like using the Serial Garbage Collector, reducing thread stack size, and limiting maximum RAM. Additionally, it discusses the importance of managing server threads and optimizing dependencies. While these adjustments can enhance efficiency, caution is advised against over-optimization, which may lead to unforeseen issues. By implementing these techniques, developers can create more memory-efficient Spring Boot applications suitable for cloud environments.
如何减少 Spring Boot 的内存使用量?
通过调整 JVM 选项和减少服务器线程,我们可以显著降低内存使用量。
重點摘要
Spring Boot 应用程序通常具有高内存消耗。
使用串行垃圾回收器以节省内存。
限制最大 RAM 并减少线程栈大小。
Spring Boot 应用程序因嵌入式服务器和框架开销而以高内存使用量而闻名。本教程概述了几种减少内存消耗的策略,包括设置 JVM 选项,如使用串行垃圾回收器、减少线程栈大小和限制最大 RAM。此外,还讨论了管理服务器线程和优化依赖的重要性。虽然这些调整可以提高效率,但对过度优化的警惕也很重要,因为这可能导致意想不到的问题。通过实施这些技术,开发人员可以创建更具内存效率的 Spring Boot 应用程序,适合云环境。
如何減少 Spring Boot 的記憶體使用量?
透過調整 JVM 選項和減少伺服器執行緒,我們可以顯著降低記憶體使用量。
重點摘要
Spring Boot 應用程式通常具有高記憶體消耗。
使用串行垃圾回收器以節省記憶體。
限制最大 RAM 並減少執行緒堆疊大小。
Spring Boot 應用程式因嵌入式伺服器和框架開銷而著稱於其高記憶體使用量。本教程概述了幾種減少記憶體消耗的策略,包括設定 JVM 選項,如使用串行垃圾回收器、減少執行緒堆疊大小和限制最大 RAM。此外,還討論了管理伺服器執行緒和優化依賴的重要性。雖然這些調整可以提高效率,但對於過度優化的警惕也很重要,因為這可能導致意想不到的問題。通過實施這些技術,開發人員可以創建更具記憶體效率的 Spring Boot 應用程式,適合雲端環境。
Baeldung
作者:Olayemi Michael
發布:09-04 00:49
API Documentation Using Smart-Doc
Smart-Doc is a Java library that automatically generates documentation in multiple formats.
重點摘要
Smart-Doc integrates smoothly with existing development practices.
It generates documentation in HTML, OpenAPI, and Postman formats.
The setup is demonstrated using a simple Spring Boot project.
This article discusses how to use Smart-Doc for generating API documentation. Smart-Doc is a Java library that analyzes source code and Javadoc comments to produce documentation in various formats, including HTML, OpenAPI, and Postman. The tutorial guides users through setting up Smart-Doc in a Spring Boot project, detailing the configuration required and how to create a simple REST API. It also covers the generation of documentation outputs and provides insights into reviewing the generated files. The complete source code is available on GitHub.
使用 Smart-Doc 的 API 文档
Smart-Doc 是一个 Java 库,可以自动生成多种格式的文档。
重點摘要
Smart-Doc 与现有的开发实践无缝集成。
它生成 HTML、OpenAPI 和 Postman 格式的文档。
教程展示了如何在简单的 Spring Boot 项目中设置 Smart-Doc。
本文讨论了如何使用 Smart-Doc 生成 API 文档。Smart-Doc 是一个 Java 库,通过分析源代码和 Javadoc 注释来生成多种格式的文档,包括 HTML、OpenAPI 和 Postman。教程指导用户如何在 Spring Boot 项目中设置 Smart-Doc,详细说明所需的配置以及如何创建简单的 REST API。它还涵盖了文档输出的生成,并提供了检查生成文件的见解。完整的源代码可在 GitHub 上获取。
使用 Smart-Doc 的 API 文件
Smart-Doc 是一個 Java 庫,可以自動生成多種格式的文件。
重點摘要
Smart-Doc 與現有的開發實踐無縫整合。
它生成 HTML、OpenAPI 和 Postman 格式的文件。
教程展示了如何在簡單的 Spring Boot 專案中設置 Smart-Doc。
本文討論了如何使用 Smart-Doc 生成 API 文件。Smart-Doc 是一個 Java 庫,通過分析源代碼和 Javadoc 註釋來生成多種格式的文件,包括 HTML、OpenAPI 和 Postman。教程指導用戶如何在 Spring Boot 專案中設置 Smart-Doc,詳細說明所需的配置以及如何創建簡單的 REST API。它還涵蓋了文件輸出的生成,並提供了檢查生成文件的見解。完整的源代碼可在 GitHub 上獲得。
Baeldung
作者:Graham Cox
發布:09-04 00:51
Introduction to RDF and Apache Jena
This tutorial explores the Resource Description Framework (RDF) standard and Apache Jena for working with RDF.
重點摘要
RDF is a W3C standard for storing and exchanging graph data.
Apache Jena is a Java framework for building Semantic Web applications.
RDF models consist of resources with properties and relationships.
This tutorial provides an overview of the Resource Description Framework (RDF) and the Apache Jena library, which is designed for building applications that utilize RDF. RDF is a W3C recommendation that facilitates the storage and exchange of graph data, making it ideal for applications that require the description of interrelated data. Apache Jena, being an open-source Java framework, offers tools for creating, serializing, and deserializing RDF models. The tutorial covers the basics of RDF models, including the use of unique identifiers for resources, the structure of RDF statements, and methods for building and manipulating RDF models in code. Additionally, it discusses serialization formats like N-Triples and RDF-XML, which are essential for data persistence and transmission.
RDF 和 Apache Jena 简介
本教程探讨资源描述框架 (RDF) 标准及其在应用程序中的使用,并介绍 Apache Jena。
重點摘要
RDF 是一种 W3C 标准,用于存储和交换图形数据。
Apache Jena 是一个用于构建语义网应用的 Java 框架。
RDF 模型由具有属性和关系的资源组成。
本教程提供了资源描述框架 (RDF) 和 Apache Jena 库的概述,该库旨在构建利用 RDF 的应用程序。RDF 是 W3C 的推荐标准,便于存储和交换图形数据,特别适合需要描述相互关联数据的应用。Apache Jena 作为一个开源的 Java 框架,提供了创建、序列化和反序列化 RDF 模型的工具。教程涵盖了 RDF 模型的基本概念,包括资源的唯一标识符、RDF 语句的结构,以及如何在代码中构建和操作 RDF 模型。此外,还讨论了 N-Triples 和 RDF-XML 等序列化格式,这些格式对于数据持久化和传输至关重要。
RDF 與 Apache Jena 簡介
本教程探討資源描述框架 (RDF) 標準及其在應用程式中的使用,並介紹 Apache Jena。
重點摘要
RDF 是一種 W3C 標準,用於存儲和交換圖形數據。
Apache Jena 是一個用於構建語義網應用的 Java 框架。
RDF 模型由具有屬性和關係的資源組成。
本教程提供了資源描述框架 (RDF) 和 Apache Jena 庫的概述,該庫旨在構建利用 RDF 的應用程式。RDF 是 W3C 的推薦標準,便於存儲和交換圖形數據,特別適合需要描述相互關聯數據的應用。Apache Jena 作為一個開源的 Java 框架,提供了創建、序列化和反序列化 RDF 模型的工具。教程涵蓋了 RDF 模型的基本概念,包括資源的唯一標識符、RDF 語句的結構,以及如何在代碼中構建和操作 RDF 模型。此外,還討論了 N-Triples 和 RDF-XML 等序列化格式,這些格式對於數據持久化和傳輸至關重要。
Dev.to Kotlin
作者:Terrence Aluda
發布:09-01 14:55
Creating bouncing animations using Sine waves (Kotlin + Jetpack Compose): Part 1
Animations bring life to Android apps, making them feel smooth, dynamic, and engaging.
重點摘要
Sine waves simulate periodic, smooth motions.
Amplitude, wavelength, and frequency are key wave properties.
Phase shifts can control the starting position of the wave.
This article introduces the theoretical aspects of creating bouncing animations using sine waves in Kotlin with Jetpack Compose. It discusses the properties of waves, including amplitude, wavelength, frequency, and phase, which are essential for simulating smooth, natural motions. The author analyzes the movements of bouncing hearts, explaining how different phase shifts can affect their animation. The sine wave formula is presented, emphasizing the importance of manipulating these parameters to achieve desired effects. The article sets the stage for the practical coding in part 2.
使用正弦波创建弹跳动画(Kotlin + Jetpack Compose):第一部分
动画为 Android 应用程序带来生命,使其感觉流畅、动态且引人入胜。
重點摘要
正弦波模拟周期性、平滑的运动。
振幅、波长和频率是关键的波动性质。
相位偏移可以控制波的起始位置。
本文介绍了使用正弦波在 Kotlin 和 Jetpack Compose 中创建弹跳动画的理论基础。讨论了波的性质,包括振幅、波长、频率和相位,这些都是模拟平滑自然运动的重要因素。作者分析了弹跳心形的运动,解释了不同的相位偏移如何影响它们的动画。文章呈现了正弦波公式,强调了操控这些参数以达到所需效果的重要性。本文为第二部分的实际编码奠定了基础。
使用正弦波創建彈跳動畫(Kotlin + Jetpack Compose):第一部分
動畫為 Android 應用程式帶來生命,使其感覺流暢、動態且引人入勝。
重點摘要
正弦波模擬週期性、平滑的運動。
振幅、波長和頻率是關鍵的波動性質。
相位偏移可以控制波的起始位置。
本文介紹了使用正弦波在 Kotlin 和 Jetpack Compose 中創建彈跳動畫的理論基礎。討論了波的性質,包括振幅、波長、頻率和相位,這些都是模擬平滑自然運動的重要因素。作者分析了彈跳心形的運動,解釋了不同的相位偏移如何影響它們的動畫。文章呈現了正弦波公式,強調了操控這些參數以達成所需效果的重要性。本文為第二部分的實作編碼奠定了基礎。
Baeldung
作者:Vishal Shanbhag
發布:09-05 02:23
Introduction to Quarkus Infinispan Embedded Extension
This tutorial provides an overview of Infinispan and its embedded mode in Quarkus applications.
重點摘要
Infinispan is an in-memory key/value data store.
The tutorial covers project setup and cache configuration.
Built-in caching annotations are supported for efficient operations.
This tutorial introduces Infinispan, an open-source in-memory key/value data store, and its integration within Quarkus applications. It details the project setup, including the creation of a new Quarkus project and the addition of necessary dependencies, particularly the quarkus-infinispan-embedded extension. The article explains how to configure the cache using both a builder class and annotations, providing examples of cache accessor methods. Additionally, it covers testing the cache functionality, including expiration and eviction scenarios, and highlights the use of Quarkus caching annotations. Overall, the tutorial serves as a comprehensive guide to leveraging Infinispan within Quarkus.
Quarkus Infinispan 嵌入式扩展介绍
本教程概述了 Infinispan 及其在 Quarkus 应用中的嵌入式模式。
重點摘要
Infinispan 是一个内存中的键/值数据存储。
教程涵盖了项目设置和缓存配置。
内置的缓存注解支持高效操作。
本教程介绍了 Infinispan,这是一种开源的内存键/值数据存储,并探讨了它在 Quarkus 应用中的集成。文章详细说明了项目设置,包括如何创建新的 Quarkus 项目和添加必要的依赖,特别是 quarkus-infinispan-embedded 扩展。教程解释了如何使用构建器类和注解来配置缓存,并提供了缓存访问方法的示例。此外,还涵盖了测试缓存功能,包括过期和驱逐场景,并强调了 Quarkus 缓存注解的使用。总体而言,本教程是利用 Infinispan 在 Quarkus 中的综合指南。
Quarkus Infinispan 嵌入式擴展介紹
本教程概述了 Infinispan 及其在 Quarkus 應用中的嵌入式模式。
重點摘要
Infinispan 是一個內存中的鍵/值數據存儲。
教程涵蓋了專案設置和快取配置。
內建的快取註解支持高效操作。
本教程介紹了 Infinispan,這是一個開源的內存鍵/值數據存儲,並探討了它在 Quarkus 應用中的整合。文章詳細說明了專案設置,包括如何創建新的 Quarkus 專案和添加必要的依賴,特別是 quarkus-infinispan-embedded 擴展。教程解釋了如何使用構建器類和註解來配置快取,並提供了快取訪問方法的範例。此外,還涵蓋了測試快取功能,包括過期和驅逐場景,並強調了 Quarkus 快取註解的使用。總體而言,本教程是利用 Infinispan 在 Quarkus 中的綜合指南。
Dev.to Kotlin
作者:Terrence Aluda
發布:09-01 14:56
Creating Bouncing Animations Using Sine Waves (Kotlin + Jetpack Compose): Part 2
This part focuses on implementing heart animations using Kotlin and Jetpack Compose.
重點摘要
Utilizes Bezier curves to draw a heart shape.
Implements fade-in and fade-out effects for the animation.
Displays multiple bouncing hearts with staggered starts.
In this second part of the series, the implementation of bouncing animations using sine waves in Kotlin with Jetpack Compose is explored. The article details how to draw a heart shape using Bezier curves and animate it with fade-in and fade-out effects. The heart's size is dynamically adjusted during the animation, creating a visually appealing effect. Additionally, multiple hearts are animated with staggered starts to enhance the overall animation flow. The code examples provided guide readers through the process, making it accessible for those familiar with Android development.
使用正弦波创建弹跳动画(Kotlin + Jetpack Compose):第二部分
本部分专注于使用 Kotlin 和 Jetpack Compose 实现心形动画。
重點摘要
利用贝塞尔曲线绘制心形。
实现动画的淡入和淡出效果。
显示多个弹跳心形,并进行错开启动。
在本系列的第二部分中,探讨了如何在 Kotlin 和 Jetpack Compose 中使用正弦波实现弹跳动画。文章详细介绍了如何使用贝塞尔曲线绘制心形,并为其添加淡入和淡出效果。动画过程中,心形的大小会动态调整,创造出视觉上吸引人的效果。此外,还有多个心形以错开的方式进行动画,增强整体动画流畅度。提供的代码示例使读者能够轻松跟随,适合熟悉 Android 开发的人员。
使用正弦波創建彈跳動畫(Kotlin + Jetpack Compose):第二部分
本部分專注於使用 Kotlin 和 Jetpack Compose 實現心形動畫。
重點摘要
利用貝茲曲線繪製心形。
實現動畫的淡入和淡出效果。
顯示多個彈跳心形,並進行錯開啟動。
在本系列的第二部分中,探討了如何在 Kotlin 和 Jetpack Compose 中使用正弦波實現彈跳動畫。文章詳細介紹了如何使用貝茲曲線繪製心形,並為其添加淡入和淡出效果。動畫過程中,心形的大小會動態調整,創造出視覺上吸引人的效果。此外,還有多個心形以錯開的方式進行動畫,增強整體動畫流暢度。提供的代碼示例使讀者能夠輕鬆跟隨,適合熟悉 Android 開發的人士。
Baeldung
作者:baeldung
發布:09-05 07:58
Java Weekly, Issue 610
Enhanced vulnerable API detection in JetBrains IDEs helps catch security vulnerabilities as you code.
重點摘要
New Java language features since Java 21.
Hibernate Validator 9.1.0.Alpha1 is released.
Discussion on passkeys and modern authentication risks.
In this issue of Java Weekly, we explore the enhanced vulnerable API detection in JetBrains IDEs and Qodana, which aids developers in identifying security vulnerabilities in real-time. The newsletter also highlights new Java language features introduced since Java 21, along with significant updates such as Hibernate Validator 9.1.0.Alpha1 and emergency releases for Quarkus. Additionally, there's a thought-provoking discussion on the implications of using passkeys for modern authentication, emphasizing the potential risks of vendor lock-in and loss of user control over digital identities.
Java 每周刊,第 610 期
JetBrains IDEs 的增强型易受攻击 API 检测功能帮助开发者在编码时捕捉安全漏洞。
重點摘要
自 Java 21 以来的新 Java 语言特性。
Hibernate Validator 9.1.0.Alpha1 已发布。
讨论密码钥匙及现代身份验证的风险。
在这一期的 Java 每周刊中,我们探讨了 JetBrains IDEs 和 Qodana 中增强型易受攻击 API 检测功能,该功能帮助开发者实时识别安全漏洞。通讯还突出了自 Java 21 以来引入的新 Java 语言特性,以及 Hibernate Validator 9.1.0.Alpha1 的重要更新和 Quarkus 的紧急版本。此外,还有关于使用密码钥匙进行现代身份验证的深思熟虑的讨论,强调了供应商锁定和用户对数字身份控制权丧失的潜在风险。
Java 每週報,第 610 期
JetBrains IDEs 的增強型易受攻擊 API 偵測功能幫助開發者在編碼時捕捉安全漏洞。
重點摘要
自 Java 21 以來的新 Java 語言特性。
Hibernate Validator 9.1.0.Alpha1 已發布。
討論密碼鑰匙及現代身份驗證的風險。
在這期的 Java 每週報中,我們探討了 JetBrains IDEs 和 Qodana 中增強型易受攻擊 API 偵測功能,該功能幫助開發者即時識別安全漏洞。通訊還突出了自 Java 21 以來引入的新 Java 語言特性,以及 Hibernate Validator 9.1.0.Alpha1 的重要更新和 Quarkus 的緊急版本。此外,還有關於使用密碼鑰匙進行現代身份驗證的深思熟慮的討論,強調了供應商鎖定和用戶對數位身份控制權喪失的潛在風險。
Kotlin Weekly
作者:
發布:07-06 15:26
Kotlin Weekly #466
Kakao Pay uses Kotlin for backend development to build stable, readable, and scalable services.
重點摘要
Kakao Pay chose Kotlin for backend development.
Meta joins the Kotlin Foundation as a gold member.
Articles cover various Kotlin topics including MVI and Jetpack Compose.
In issue #466 of Kotlin Weekly, published on July 6, 2025, several key announcements and articles are highlighted. Kakao Pay has adopted Kotlin for its backend development, emphasizing its stability and scalability. Additionally, Meta has joined the Kotlin Foundation as a gold member. The issue features articles on building a TODO app with MVI in Jetpack Compose, the current status of test fixtures support in Android, and warnings against using type-safe project accessors with Kotlin Gradle DSL. Other topics include Jetpack Compose's potential to replace ViewModels and insights into Kotlin/Native compilation.
Kotlin Weekly #466
Kakao Pay 使用 Kotlin 进行后端开发,以构建稳定、可读和可扩展的服务。
重點摘要
Kakao Pay 选择 Kotlin 作为后端开发语言。
Meta 成为 Kotlin 基金会的黄金会员。
文章涵盖 MVI 和 Jetpack Compose 等各种 Kotlin 主题。
在 2025 年 7 月 6 日发布的 Kotlin Weekly 第 466 期中,重点介绍了几个重要公告和文章。Kakao Pay 采用了 Kotlin 进行后端开发,强调其稳定性和可扩展性。此外,Meta 也成为了 Kotlin 基金会的黄金会员。本期还包含关于使用 MVI 和 Jetpack Compose 构建 TODO 应用的文章,Android 测试工具支持的现状,以及对在 Kotlin Gradle DSL 中使用类型安全项目访问器的警告。其他主题包括 Jetpack Compose 替代 ViewModels 的潜力及 Kotlin/Native 编译的见解。
Kotlin Weekly #466
Kakao Pay 使用 Kotlin 進行後端開發,以構建穩定、可讀和可擴展的服務。
重點摘要
Kakao Pay 選擇 Kotlin 作為後端開發語言。
Meta 成為 Kotlin 基金會的黃金會員。
文章涵蓋 MVI 和 Jetpack Compose 等各種 Kotlin 主題。
在 2025 年 7 月 6 日發佈的 Kotlin Weekly 第 466 期中,重點介紹了幾個重要公告和文章。Kakao Pay 採用了 Kotlin 進行後端開發,強調其穩定性和可擴展性。此外,Meta 也成為了 Kotlin 基金會的黃金會員。本期還有關於使用 MVI 和 Jetpack Compose 建立 TODO 應用的文章,Android 測試工具支持的現狀,以及對於在 Kotlin Gradle DSL 中使用類型安全項目訪問器的警告。其他主題包括 Jetpack Compose 取代 ViewModels 的潛力及 Kotlin/Native 編譯的見解。
Baeldung
作者:Pedro Lopes
發布:09-06 06:37
Introduction to jVector
This article explores the jVector library for efficient index construction from datasets and vector search.
重點摘要
jVector uses HNSW and DiskANN for efficient vector search.
Words are represented as vectors for similarity searches.
The library allows for scalable index construction.
The article introduces the jVector library, which is designed for efficient index construction and vector search in the fields of Artificial Intelligence and Information Retrieval. It explains how words can be represented as vectors, enabling systems to find similar words using distance functions. The jVector library employs modern structures like Hierarchical Navigable Small World (HNSW) and Disk Approximate K-Nearest Neighbors (DiskANN) to address the challenges of high-dimensional data. The article also provides practical examples of how to build an index and search for similar vectors, highlighting the importance of configuration parameters in optimizing search efficiency.
jVector 介绍
本文探讨 jVector 库,以便从数据集高效构建索引和进行向量搜索。
重點摘要
jVector 使用 HNSW 和 DiskANN 进行高效的向量搜索。
单词以向量形式表示,以便进行相似性搜索。
该库允许可扩展的索引构建。
本文介绍了 jVector 库,旨在在人工智能和信息检索领域中实现高效的索引构建和向量搜索。文章解释了如何将单词表示为向量,使系统能够使用距离函数找到相似的单词。jVector 库采用了现代结构,如层次可导航小世界(HNSW)和磁盘近似 K 最近邻(DiskANN),以应对高维数据的挑战。文章还提供了如何构建索引和搜索相似向量的实际示例,强调了配置参数在优化搜索效率中的重要性。
jVector 介紹
本文探討 jVector 函式庫,以便從資料集高效建構索引和進行向量搜尋。
重點摘要
jVector 使用 HNSW 和 DiskANN 進行高效的向量搜尋。
單詞以向量形式表示,以便進行相似性搜尋。
該函式庫允許可擴展的索引建構。
本文介紹了 jVector 函式庫,旨在在人工智慧和資訊檢索領域中實現高效的索引建構和向量搜尋。文章解釋了如何將單詞表示為向量,使系統能夠使用距離函數找到相似的單詞。jVector 函式庫採用了現代結構,如層次可導航小世界(HNSW)和磁碟近似 K 最近鄰(DiskANN),以應對高維數據的挑戰。文章還提供了如何構建索引和搜尋相似向量的實際範例,強調了配置參數在優化搜尋效率中的重要性。
Dev.to Kotlin
作者:William Smith
發布:09-02 09:04
Kotlin vs. Java: Choosing the Right Language for Your Android App
The choice between Java and Kotlin depends on project-specific requirements and developer expertise.
重點摘要
Java has a long history and a vast developer community.
Kotlin offers modern features like null safety and coroutines.
Choosing the right language can significantly impact project success.
For over two decades, Java has dominated Android app development, but Kotlin has emerged as a strong alternative since its introduction in 2016. Java is known for its stability, extensive libraries, and large developer community, making it suitable for large-scale projects. In contrast, Kotlin is praised for its concise syntax, null safety, and modern features, making it ideal for new app developments. The decision between Java and Kotlin should consider factors such as project requirements, team expertise, and long-term maintenance. Ultimately, both languages offer robust solutions for Android development, and the best choice aligns with specific project needs.
Kotlin 与 Java:为您的 Android 应用选择合适的语言
选择 Java 或 Kotlin 取决于项目的具体需求和开发者的专业知识。
重點摘要
Java 拥有悠久的历史和庞大的开发者社区。
Kotlin 提供现代功能,如空安全和协程。
选择正确的语言对项目成功影响深远。
Java 在 Android 应用开发中已经主导了超过二十年,但自 2016 年 Kotlin 推出以来,成为了一个强有力的替代选择。Java 以其稳定性、广泛的库和庞大的开发者社区而闻名,适合大型项目。而 Kotlin 则因其简洁的语法、空安全和现代功能而受到赞誉,特别适合新应用的开发。在 Java 和 Kotlin 之间的选择应考虑项目需求、团队专业知识和长期维护等因素。最终,这两种语言都为 Android 开发提供了强大的解决方案,最佳选择应与具体项目需求相符。
Kotlin 與 Java:為您的 Android 應用選擇合適的語言
選擇 Java 或 Kotlin 取決於專案的具體需求和開發者的專業知識。
重點摘要
Java 擁有悠久的歷史和龐大的開發者社群。
Kotlin 提供現代功能,如空安全和協程。
選擇正確的語言對專案成功影響深遠。
Java 在 Android 應用開發中已經主導了超過二十年,但自 2016 年 Kotlin 的推出以來,成為了一個強有力的替代選擇。Java 以其穩定性、廣泛的庫和龐大的開發者社群而聞名,適合大型專案。而 Kotlin 則因其簡潔的語法、空安全和現代功能而受到讚譽,特別適合新應用的開發。在 Java 和 Kotlin 之間的選擇應考慮專案需求、團隊專業知識和長期維護等因素。最終,這兩種語言都為 Android 開發提供了強大的解決方案,最佳選擇應與具體專案需求相符。
Kotlin Weekly
作者:
發布:07-13 14:42
Kotlin Weekly #467
This issue features articles on building scalable Ktor applications and Kotlin Multiplatform apps.
重點摘要
Modular Ktor for scalable applications.
Guide to building Kotlin Multiplatform apps.
Automating UI verification with GitHub Actions.
Kotlin Weekly #467, published on July 13, 2025, includes a variety of articles and resources for Kotlin developers. Notable highlights include a guide on using modular architecture in Ktor applications, a comprehensive tutorial on building a Kotlin Multiplatform app, and insights into automating UI verification processes with GitHub Actions. Additionally, the issue features reports on KotlinConf 2025 sessions, discussions on AI in project generation, and new libraries for Kotlin development. This edition serves as a valuable resource for developers looking to enhance their Kotlin skills and stay updated on the latest trends.
Kotlin Weekly #467
本期包含关于构建可扩展 Ktor 应用程序和 Kotlin Multiplatform 应用程序的文章。
重點摘要
可扩展应用程序的模块化 Ktor。
构建 Kotlin Multiplatform 应用程序的指南。
使用 GitHub Actions 自动化 UI 验证。
Kotlin Weekly #467 于 2025 年 7 月 13 日发布,包含多篇针对 Kotlin 开发者的文章和资源。值得注意的亮点包括有关在 Ktor 应用程序中使用模块化架构的指南、构建 Kotlin Multiplatform 应用程序的全面教程,以及有关使用 GitHub Actions 自动化 UI 验证过程的见解。此外,本期还报道了 KotlinConf 2025 会议的会议摘要、关于 AI 在项目生成中的讨论,以及 Kotlin 开发的新库。本期为希望提升 Kotlin 技能并保持最新趋势的开发者提供了宝贵的资源。
Kotlin Weekly #467
本期包含有關構建可擴展 Ktor 應用程序和 Kotlin Multiplatform 應用程序的文章。
重點摘要
可擴展應用程序的模組化 Ktor。
構建 Kotlin Multiplatform 應用程序的指南。
使用 GitHub Actions 自動化 UI 驗證。
Kotlin Weekly #467 於 2025 年 7 月 13 日發佈,包含多篇針對 Kotlin 開發者的文章和資源。值得注意的亮點包括有關在 Ktor 應用程序中使用模組化架構的指南、構建 Kotlin Multiplatform 應用程序的全面教程,以及有關使用 GitHub Actions 自動化 UI 驗證過程的見解。此外,本期還報導了 KotlinConf 2025 會議的會議紀要、關於 AI 在專案生成中的討論,以及 Kotlin 開發的新庫。本期為希望提升 Kotlin 技能並保持最新趨勢的開發者提供了寶貴的資源。
Baeldung
作者:Achraf Taitai
發布:09-06 06:40
Streaming Multipart Data Sequentially in Spring
This tutorial explains how to implement streaming for multipart data.
重點摘要
Spring's default buffered approach can bottleneck large payloads.
Streaming enables us to send or receive large files incrementally.
WebFlux provides superior scalability through non-blocking data handling.
Efficiently transferring large files is essential in modern web applications, but Spring's default buffered approach can lead to high memory consumption and delayed processing. This tutorial discusses how to implement streaming for multipart data in Spring MVC and WebFlux, allowing for incremental processing of file uploads and downloads. By configuring the MultipartResolver and utilizing StreamingResponseBody or reactive types like Flux, developers can minimize memory usage and improve performance. The article emphasizes the advantages of streaming for handling large datasets and real-time uploads, making it a suitable approach for scalable web applications.
在 Spring 中顺序流式传输多部分数据
本教程解释了如何实现多部分数据的流式传输。
重點摘要
Spring 的默认缓冲方法可能导致大型有效负载的瓶颈。
流式传输使我们能够逐步发送或接收大型文件。
WebFlux 通过非阻塞数据处理提供了更好的可扩展性。
在现代网络应用中,有效传输大型文件至关重要,但 Spring 的默认缓冲方法可能导致高内存消耗和延迟处理。本教程讨论了如何在 Spring MVC 和 WebFlux 中实现多部分数据的流式传输,允许逐步处理文件上传和下载。通过配置 MultipartResolver 和利用 StreamingResponseBody 或反应式类型如 Flux,开发人员可以最小化内存使用并提高性能。文章强调了流式传输在处理大型数据集和实时上传方面的优势,使其成为可扩展网络应用的合适方法。
在 Spring 中順序串流多部分數據
本教程解釋了如何實現多部分數據的串流。
重點摘要
Spring 的預設緩衝方法可能會造成大型有效載荷的瓶頸。
串流使我們能夠逐步發送或接收大型文件。
WebFlux 通過非阻塞數據處理提供了更好的可擴展性。
在現代網路應用中,有效傳輸大型文件至關重要,但 Spring 的預設緩衝方法可能導致高記憶體消耗和延遲處理。本教程討論了如何在 Spring MVC 和 WebFlux 中實現多部分數據的串流,允許逐步處理文件上傳和下載。通過配置 MultipartResolver 和利用 StreamingResponseBody 或反應式類型如 Flux,開發人員可以最小化記憶體使用並提高性能。文章強調了串流在處理大型數據集和實時上傳方面的優勢,使其成為可擴展網路應用的合適方法。
ProAndroidDev
作者:Iago Fucolo
發布:08-30 13:22
Nested routes with Navigation 3
This approach follows the single responsibility pattern, where each route manages its own navigation stack.
重點摘要
Migrating from fragment navigation to compose navigation.
Using RouteComponents for modular and isolated navigation.
Improving architecture by managing backstacks effectively.
The article discusses the transition from fragment navigation to a more modular approach using Navigation 3 in Android development. It emphasizes the importance of using RouteComponents to manage nested routes, allowing each route to handle its own navigation stack. This modularity simplifies maintenance and enhances performance, particularly during configuration changes. The author provides a detailed guide on implementing bottom navigation with compose, replacing traditional activities with composable flows, and ensuring that each route is self-contained and reusable. This results in a cleaner architecture that prevents memory leaks and promotes better user experience.
使用 Navigation 3 的嵌套路由
这种方法遵循单一责任原则,每个路由负责管理自己的导航堆栈。
重點摘要
从片段导航迁移到组合导航。
使用 RouteComponents 进行模块化和隔离的导航。
通过有效管理堆栈来改善架构。
本文探讨了从片段导航转向使用 Navigation 3 的模块化方法,重点强调使用 RouteComponents 来管理嵌套路由,使每个路由能够处理自己的导航堆栈。这种模块化简化了维护并提高了性能,特别是在配置变更期间。作者提供了详细的指南,说明如何使用组合来实现底部导航,将传统活动替换为可组合的流程,并确保每个路由都是自包含和可重用的。这导致了更干净的架构,防止内存泄漏并促进更好的用户体验。
使用 Navigation 3 的嵌套路由
這種方法遵循單一責任原則,每個路由負責管理自己的導航堆疊。
重點摘要
從片段導航遷移到組合導航。
使用 RouteComponents 進行模組化和隔離的導航。
通過有效管理堆疊來改善架構。
本文探討了從片段導航轉向使用 Navigation 3 的模組化方法,重點強調使用 RouteComponents 來管理嵌套路由,使每個路由能夠處理自己的導航堆疊。這種模組化簡化了維護並提高了性能,特別是在配置變更期間。作者提供了詳細的指南,說明如何使用組合來實現底部導航,將傳統活動替換為可組合的流程,並確保每個路由都是自包含和可重用的。這導致了更乾淨的架構,防止內存洩漏並促進更好的用戶體驗。
Dev.to Kotlin
作者:Qandil Tariq
發布:09-02 19:38
A Tiny KMP Connectivity Monitor (Android + iOS) — No Pods Required
I wanted a production-style, zero-friction approach for Compose Multiplatform.
重點摘要
Open-sourced minimal Kotlin Multiplatform connectivity monitor
No CocoaPods requirement on iOS
Easy to use from Compose
The KMP Connectivity Monitor is a minimal Kotlin Multiplatform library designed to provide connectivity status updates for both Android and iOS applications without requiring CocoaPods. It utilizes native implementations for each platform, leveraging Android's ConnectivityManager and iOS's SCNetworkReachability to monitor network status. The library exposes a simple API through a shared codebase, making it easy to integrate into Compose applications. Developers can start and stop the connectivity monitoring easily, ensuring that their apps can react to changes in network availability.
一个小型 KMP 连接监控器(Android + iOS)— 无需 Pods
我想要一种生产风格、零摩擦的方法来支持 Compose 多平台。
重點摘要
开源的最小 Kotlin 多平台连接监控器
iOS 无需 CocoaPods 的要求
易于从 Compose 使用
KMP 连接监控器是一个最小的 Kotlin 多平台库,旨在为 Android 和 iOS 应用程序提供连接状态更新,且无需 CocoaPods。它利用每个平台的原生实现,通过 Android 的 ConnectivityManager 和 iOS 的 SCNetworkReachability 来监控网络状态。该库通过共享代码库暴露了一个简单的 API,使其易于集成到 Compose 应用程序中。开发者可以轻松启动和停止连接监控,确保他们的应用能够对网络可用性的变化做出反应。
一個小型 KMP 連接監控器(Android + iOS)— 無需 Pods
我想要一種生產風格、零摩擦的方法來支持 Compose 多平台。
重點摘要
開源的最小 Kotlin 多平台連接監控器
iOS 無需 CocoaPods 的要求
易於從 Compose 使用
KMP 連接監控器是一個最小的 Kotlin 多平台庫,旨在為 Android 和 iOS 應用程序提供連接狀態更新,且無需 CocoaPods。它利用每個平台的原生實現,通過 Android 的 ConnectivityManager 和 iOS 的 SCNetworkReachability 來監控網絡狀態。該庫通過共享代碼庫暴露了一個簡單的 API,使其易於集成到 Compose 應用程序中。開發者可以輕鬆啟動和停止連接監控,確保他們的應用能夠對網絡可用性的變化做出反應。
Kotlin Weekly
作者:
發布:07-20 07:37
Kotlin Weekly #468
The Gradle team has released the Develocity plugin for IntelliJ IDEA and Android Studio.
重點摘要
Develocity Plugin for IntelliJ released.
Koog 0.3.0 makes building agents easier.
Ktor 3.2.2 fixes Android D8 compatibility.
Kotlin Weekly #468 highlights several important updates in the Kotlin ecosystem. The Develocity plugin for IntelliJ IDEA and Android Studio has been released, providing live build time information. Additionally, JetBrains launched Koog 0.3.0, which simplifies the process of building and managing intelligent agents. The Ktor 3.2.2 patch release addresses critical Android D8 compatibility issues, alongside minor enhancements. Other articles cover topics such as converting callback functions to suspend functions, exploring Kotlin DSLs, and the Contract Test pattern.
Kotlin Weekly #468
Gradle团队已为IntelliJ IDEA和Android Studio发布Develocity插件。
重點摘要
发布IntelliJ的Develocity插件。
Koog 0.3.0使构建代理更简单。
Ktor 3.2.2修复Android D8兼容性问题。
Kotlin Weekly #468突显了Kotlin生态系统中的几个重要更新。Gradle团队为IntelliJ IDEA和Android Studio发布了Develocity插件,提供实时的构建时间信息。此外,JetBrains推出了Koog 0.3.0,简化了构建和管理智能代理的过程。Ktor 3.2.2补丁版本解决了关键的Android D8兼容性问题,并进行了一些小的增强。其他文章涵盖了将回调函数转换为挂起函数、探索Kotlin DSL以及合同测试模式等主题。
Kotlin Weekly #468
Gradle 團隊已為 IntelliJ IDEA 和 Android Studio 發布 Develocity 插件。
重點摘要
發布 IntelliJ 的 Develocity 插件。
Koog 0.3.0 使構建代理更簡單。
Ktor 3.2.2 修復 Android D8 相容性問題。
Kotlin Weekly #468 突顯了 Kotlin 生態系統中的幾個重要更新。Gradle 團隊為 IntelliJ IDEA 和 Android Studio 發布了 Develocity 插件,提供即時的構建時間資訊。此外,JetBrains 推出了 Koog 0.3.0,簡化了構建和管理智能代理的過程。Ktor 3.2.2 補丁版本解決了關鍵的 Android D8 相容性問題,並進行了一些小的增強。其他文章涵蓋了將回調函數轉換為暫停函數、探索 Kotlin DSL 以及合約測試模式等主題。
ProAndroidDev
作者:Anand Gaur
發布:08-30 16:37
SMS Retriever API in Android
Using SMS Retriever API, you can completely remove the need for SMS permission and improve your app’s OTP verification flow.
重點摘要
No SMS read permission needed.
Enhances user experience by auto-filling OTP.
Improves security by retrieving only specific messages.
The SMS Retriever API is a powerful tool for Android applications that simplifies the OTP verification process by eliminating the need for SMS read permissions. This API allows apps to automatically receive verification codes sent via SMS, enhancing user experience by auto-filling OTPs and ensuring security by only retrieving messages that contain a unique app hash code. The implementation involves setting up dependencies, creating a broadcast receiver, and managing the OTP logic through a ViewModel. This API is particularly useful for banking and payment applications, making the verification process seamless and user-friendly.
Android 中的 SMS Retriever API
使用 SMS Retriever API,您可以完全消除对 SMS 权限的需求,并改善应用程序的 OTP 验证流程。
重點摘要
不需要 SMS 阅读权限。
通过自动填充 OTP 增强用户体验。
仅检索特定消息以提高安全性。
SMS Retriever API 是一个强大的 Android 应用程序工具,通过消除对 SMS 阅读权限的需求来简化 OTP 验证过程。此 API 允许应用程序自动接收通过 SMS 发送的验证码,通过自动填充 OTP 来增强用户体验,并确保仅检索包含唯一应用程序哈希码的消息以提高安全性。实现过程涉及设置依赖项、创建广播接收器以及通过 ViewModel 管理 OTP 逻辑。此 API 特别适用于银行和支付应用程序,使验证过程无缝且以用户为中心。
Android 中的 SMS Retriever API
使用 SMS Retriever API,您可以完全消除對 SMS 權限的需求,並改善應用程式的 OTP 驗證流程。
重點摘要
不需要 SMS 閱讀權限。
通過自動填充 OTP 增強用戶體驗。
僅檢索特定消息以提高安全性。
SMS Retriever API 是一個強大的 Android 應用程式工具,通過消除對 SMS 閱讀權限的需求來簡化 OTP 驗證過程。此 API 允許應用程式自動接收通過 SMS 發送的驗證碼,通過自動填充 OTP 來增強用戶體驗,並確保僅檢索包含唯一應用程式哈希碼的消息以提高安全性。實現過程涉及設置依賴項、創建廣播接收器以及通過 ViewModel 管理 OTP 邏輯。此 API 特別適用於銀行和支付應用程式,使驗證過程無縫且以用戶為中心。
Baeldung
作者:Emanuel Trandafir
發布:09-07 18:23
Tagging Patterns for Micrometer Metrics
This article explores Micrometer metrics with a focus on tagging.
重點摘要
Utilizes Micrometer in a Spring Boot application.
Discusses Builder API and MeterProviders for metrics.
Covers best practices for naming conventions and tags.
This article delves into the use of Micrometer metrics within a Spring Boot application, emphasizing the importance of tagging. It begins by demonstrating how to create counters and timers using Micrometer's Builder API, while also addressing performance concerns related to creating builder instances. The article introduces MeterProviders as a solution to reuse meters and minimize garbage collection overhead. Additionally, it explores the use of Aspect-Oriented Programming (AOP) to declaratively record method invocations with Micrometer annotations. Best practices for naming conventions and tag usage are also discussed to ensure effective monitoring and data collection.
Micrometer 指标的标记模式
本文探讨了以标记为重点的 Micrometer 指标。
重點摘要
在 Spring Boot 应用中使用 Micrometer。
讨论 Builder API 和 MeterProviders 的指标使用。
涵盖命名惯例和标签的最佳实践。
本文深入探讨了在 Spring Boot 应用中使用 Micrometer 指标,强调标记的重要性。文章首先展示了如何使用 Micrometer 的 Builder API 创建计数器和计时器,同时解决了创建构建实例所带来的性能问题。接着介绍了 MeterProviders 作为重用计量器和最小化垃圾回收开销的解决方案。此外,文章还探讨了使用面向切面编程(AOP)以声明方式记录方法调用的 Micrometer 注解。最后,讨论了命名惯例和标签使用的最佳实践,以确保有效的监控和数据收集。
Micrometer 指標的標記模式
本文探討了以標記為重點的 Micrometer 指標。
重點摘要
在 Spring Boot 應用中使用 Micrometer。
討論 Builder API 和 MeterProviders 的指標使用。
涵蓋命名慣例和標籤的最佳實踐。
本文深入探討了在 Spring Boot 應用中使用 Micrometer 指標,強調標記的重要性。文章首先展示了如何使用 Micrometer 的 Builder API 創建計數器和計時器,同時解決了創建構建實例所帶來的性能問題。接著介紹了 MeterProviders 作為重用計量器和最小化垃圾回收開銷的解決方案。此外,文章還探討了使用面向切面編程(AOP)以聲明方式記錄方法調用的 Micrometer 註解。最後,討論了命名慣例和標籤使用的最佳實踐,以確保有效的監控和數據收集。
Dev.to Kotlin
作者:Salih Guler
發布:09-03 11:31
Building Real-Time Multiplayer Android Apps with AWS AppSync Events API
AWS AppSync now offers a solution with its Events API, enabling developers to create interactive multi-user experiences.
重點摘要
Real-time experiences are essential for modern applications.
AWS AppSync Events API simplifies real-time communication.
Build a real-time multiplayer quiz app called QuizSync.
This article discusses building real-time multiplayer Android applications using the AWS AppSync Events API. It highlights the importance of real-time experiences in modern applications, such as collaboration tools and games. The AWS AppSync Events API provides a managed solution for developers, allowing them to create interactive experiences without the complexity of managing WebSocket connections. The article guides readers through the development of a real-time quiz app named QuizSync, detailing the necessary prerequisites, backend infrastructure setup using AWS CDK, and the implementation of real-time features in the Android application.
使用 AWS AppSync Events API 构建实时多人 Android 应用程序
AWS AppSync 现在提供了解决方案,使开发人员能够创建互动式的多用户体验。
重點摘要
实时体验对现代应用程序至关重要。
AWS AppSync Events API 简化了实时通信。
构建一个名为 QuizSync 的实时多人测验应用程序。
本文讨论了如何使用 AWS AppSync Events API 构建实时多人 Android 应用程序。强调了实时体验在现代应用程序中的重要性,例如协作工具和游戏。AWS AppSync Events API 为开发人员提供了一个管理解决方案,使他们能够创建互动式体验,而无需管理 WebSocket 连接的复杂性。文章指导读者开发一个名为 QuizSync 的实时测验应用程序,详细说明必要的前置条件、使用 AWS CDK 设置后端基础设施以及在 Android 应用程序中实现实时功能。
使用 AWS AppSync Events API 建立即時多人 Android 應用程式
AWS AppSync 現在提供了一個解決方案,讓開發者能夠創建互動式的多用戶體驗。
重點摘要
即時體驗對於現代應用程式至關重要。
AWS AppSync Events API 簡化了即時通信。
構建一個名為 QuizSync 的即時多人測驗應用程式。
本文討論了如何使用 AWS AppSync Events API 建立即時多人 Android 應用程式。強調了即時體驗在現代應用程式中的重要性,例如協作工具和遊戲。AWS AppSync Events API 為開發者提供了一個管理解決方案,使他們能夠創建互動式體驗,而無需管理 WebSocket 連接的複雜性。文章指導讀者開發一個名為 QuizSync 的即時測驗應用程式,詳細說明必要的前置條件、使用 AWS CDK 設置後端基礎設施以及在 Android 應用程式中實現即時功能。
Kotlin Weekly
作者:
發布:07-27 11:47
Kotlin Weekly #469
This issue features articles on developing a text editor and understanding coroutines.
重點摘要
Compose Multiplatform: Develop a feature-rich text editor.
Best practices for handling Recomposition.
Guide on calling blocking functions from suspending functions.
Kotlin Weekly #469, published on July 27, 2025, presents a variety of articles focused on Kotlin development. Key topics include creating a feature-rich text editor using Compose Multiplatform, best practices for managing Recomposition, and techniques for safely invoking blocking Java APIs within Kotlin Coroutines. Additionally, the issue features insights into coroutine behavior and MVI architecture implementation in Jetpack Compose. Readers can also find resources like a free Coroutines Cheat Sheet and updates on Kotlin Notebook enhancements.
Kotlin Weekly #469
本期包含开发文本编辑器和理解协程的文章。
重點摘要
Compose Multiplatform:开发功能丰富的文本编辑器。
处理重组的最佳实践。
从挂起函数调用阻塞函数的指南。
Kotlin Weekly #469于2025年7月27日发布,介绍了多种以Kotlin开发为主题的文章。主要内容包括使用Compose Multiplatform创建功能丰富的文本编辑器、管理重组的最佳实践,以及在Kotlin协程中安全调用阻塞Java API的技术。此外,本期还深入探讨了协程行为和在Jetpack Compose中实现MVI架构的见解。读者还可以找到免费的协程备忘单和Kotlin Notebook升级的最新信息。
Kotlin Weekly #469
本期包含開發文本編輯器和理解協程的文章。
重點摘要
Compose Multiplatform:開發功能豐富的文本編輯器。
處理重組的最佳實踐。
從懸掛函數調用阻塞函數的指南。
Kotlin Weekly #469於2025年7月27日發佈,介紹了多種以Kotlin開發為主題的文章。主要內容包括使用Compose Multiplatform創建功能豐富的文本編輯器、管理重組的最佳實踐,以及在Kotlin協程中安全調用阻塞Java API的技術。此外,本期還深入探討了協程行為和在Jetpack Compose中實現MVI架構的見解。讀者還可以找到免費的協程備忘單和Kotlin Notebook升級的最新資訊。
Kotlin Blog
作者:Simon Vergauwen
發布:07-17 14:48
Ktor 3.2.2 Is Now Available
The Ktor 3.2.2 patch release brings a critical fix for Android D8 compatibility.
重點摘要
Critical fix for Android D8 compatibility.
Minor enhancements and bug fixes included.
New checks added to ensure compatibility with Android tools.
Ktor 3.2.2 has been released, addressing a critical compatibility issue with Android's D8 tool that arose in version 3.2.0 due to the use of Kotlin's backticked identifiers. This patch not only resolves the regression but also introduces new testing checks to maintain compatibility with essential Android tools like D8 and ProGuard. Additionally, the update includes various minor enhancements, such as improvements to Thymeleaf and javadoc publishing, as well as several bug fixes that enhance the overall stability and functionality of the framework. Developers are encouraged to start building their projects using the interactive project generator available at start.ktor.io.
Ktor 3.2.2 现已发布
Ktor 3.2.2 的补丁版本带来了对 Android D8 兼容性的关键修复。
重點摘要
修复 Android D8 兼容性问题。
包含一些小的增强和错误修复。
新增检查以确保与 Android 工具的兼容性。
Ktor 3.2.2 已发布,解决了在 3.2.0 版本中因使用 Kotlin 的反引号标识符而导致的 Android D8 工具的兼容性问题。此补丁不仅修复了回归问题,还引入了新的测试检查,以保持与 D8 和 ProGuard 等重要 Android 工具的兼容性。此外,更新还包括各种小的增强,例如对 Thymeleaf 和 javadoc 发布的改进,以及几个增强框架稳定性和功能的错误修复。开发者被鼓励使用 start.ktor.io 提供的互动项目生成器开始构建他们的项目。
Ktor 3.2.2 現已推出
Ktor 3.2.2 的修補版本帶來了對 Android D8 相容性的關鍵修復。
重點摘要
修復 Android D8 相容性問題。
包含一些小的增強和錯誤修正。
新增檢查以確保與 Android 工具的相容性。
Ktor 3.2.2 已經發布,解決了在 3.2.0 版本中因使用 Kotlin 的反引號標識符而導致的 Android D8 工具的相容性問題。這個修補不僅修復了回歸問題,還引入了新的測試檢查,以保持與 D8 和 ProGuard 等重要 Android 工具的相容性。此外,更新還包括各種小的增強,例如對 Thymeleaf 和 javadoc 發布的改進,以及幾個增強框架穩定性和功能的錯誤修正。開發者被鼓勵使用 start.ktor.io 提供的互動項目生成器開始構建他們的項目。
Baeldung
作者:Hardik Singh Behl
發布:09-07 18:25
Using StatelessSession in Hibernate
StatelessSession provides a lightweight alternative for handling database operations in Hibernate.
重點摘要
StatelessSession lacks automatic cascading of operations.
It does not support lazy loading or first-level caching.
Explicit control is required for database operations.
This article discusses the use of Hibernate's StatelessSession API for database operations, highlighting its differences from the standard Session API. StatelessSession is designed for scenarios involving large datasets, offering a lightweight alternative by removing many automatic features like caching and dirty checking. The tutorial covers setting up domain entities, performing write and read operations, and emphasizes the need for explicit control over operations such as inserting and updating entities. It also notes the absence of lazy loading and first-level caching, which can affect how data is retrieved and managed.
在 Hibernate 中使用 StatelessSession
StatelessSession 提供了一种轻量级的替代方案来处理 Hibernate 中的数据库操作。
重點摘要
StatelessSession 不支持自动操作级联。
它不支持延迟加载或第一层缓存。
数据库操作需要明确控制。
本文讨论了如何使用 Hibernate 的 StatelessSession API 进行数据库操作,并强调其与标准 Session API 的不同之处。StatelessSession 专为处理大型数据集的场景而设计,通过移除许多自动功能,如缓存和脏检查,提供了一种轻量级的替代方案。教程涵盖了设置领域实体、执行写入和读取操作,并强调需要对插入和更新实体等操作进行明确控制。它还指出了缺乏延迟加载和第一层缓存的情况,这可能会影响数据的检索和管理。
在 Hibernate 中使用 StatelessSession
StatelessSession 提供了一種輕量級的替代方案來處理 Hibernate 中的資料庫操作。
重點摘要
StatelessSession 不支援自動操作級聯。
它不支援延遲加載或第一級快取。
資料庫操作需要明確控制。
本文討論了如何使用 Hibernate 的 StatelessSession API 進行資料庫操作,並強調其與標準 Session API 的不同之處。StatelessSession 專為處理大型資料集的情境而設計,通過移除許多自動功能,如快取和髒檢查,提供了一種輕量級的替代方案。教程涵蓋了設置領域實體、執行寫入和讀取操作,並強調需要對插入和更新實體等操作進行明確控制。它還指出了缺乏延遲加載和第一級快取的情況,這可能會影響數據的檢索和管理。
ProAndroidDev
作者:Domen Lanišnik
發布:08-30 16:40
Injecting Android Context in Compose Multiplatform with Koin
This article shares how to set up your Compose Multiplatform app to access the Android Context in Koin modules.
重點摘要
Koin can be initialized with platform-specific configurations.
Using KoinMultiplatformApplication automatically injects Android Context.
Avoid static context storage to prevent memory leaks.
This article discusses methods for injecting the Android Context into Koin within a Compose Multiplatform application. The author shares their experience while developing the Space Flight News app, highlighting the need for a scalable solution to access the Android Context. Two main options are presented: one involves adding an optional KoinAppDeclaration argument to the main App composable function, while the other utilizes the experimental KoinMultiplatformApplication introduced in Koin 4.1.0, which automatically injects the Android Context. The article emphasizes the importance of avoiding static context storage to prevent potential memory leaks and crashes.
在 Compose Multiplatform 中使用 Koin 注入 Android Context
本文分享如何设置 Compose Multiplatform 应用以便在 Koin 模块中访问 Android Context。
重點摘要
Koin 可以使用平台特定的配置进行初始化。
使用 KoinMultiplatformApplication 自动注入 Android Context。
避免静态上下文存储以防止内存泄漏。
本文探讨了在 Compose Multiplatform 应用中将 Android Context 注入 Koin 的方法。作者在开发 Space Flight News 应用时,强调了访问 Android Context 的可扩展解决方案的必要性。文章提出了两种主要选择:一种是在主 App 可组合函数中添加可选的 KoinAppDeclaration 参数,另一种是利用 Koin 4.1.0 中引入的实验性 KoinMultiplatformApplication,该函数自动注入 Android Context。文章强调避免静态上下文存储,以防止潜在的内存泄漏和崩溃。
在 Compose Multiplatform 中使用 Koin 注入 Android Context
本文分享如何設置 Compose Multiplatform 應用以便在 Koin 模組中訪問 Android Context。
重點摘要
Koin 可以使用平台特定的配置進行初始化。
使用 KoinMultiplatformApplication 自動注入 Android Context。
避免靜態上下文存儲以防止內存泄漏。
本文探討了在 Compose Multiplatform 應用中將 Android Context 注入 Koin 的方法。作者在開發 Space Flight News 應用時,強調了訪問 Android Context 的可擴展解決方案的必要性。文章提出了兩種主要選擇:一種是在主 App 可組合函數中添加可選的 KoinAppDeclaration 參數,另一種是利用 Koin 4.1.0 中引入的實驗性 KoinMultiplatformApplication,該函數自動注入 Android Context。文章強調避免靜態上下文存儲,以防止潛在的內存泄漏和崩潰。
Dev.to Kotlin
作者:Vaibhav Shakya
發布:09-04 05:00
Offline-First or Bust: How Room, WorkManager & Paging 3 Keep Your App Alive Without Internet
In 2025, offline-first isn’t optional—it’s survival.
重點摘要
Room provides a local cache bunker.
WorkManager acts as a sync ninja.
Paging 3 enables smooth endless scrolling.
The article discusses the importance of offline-first strategies for mobile applications in 2025. It emphasizes that users expect seamless experiences without interruptions, even when internet connectivity is lost. Key technologies such as Room for local data storage, WorkManager for background synchronization, and Paging 3 for efficient data loading are highlighted. The author provides insights into how these tools can be integrated to ensure that apps remain functional and responsive, catering to users in various scenarios, such as commuting or shopping.
离线优先或毁灭:Room、WorkManager 和 Paging 3 如何让您的应用在没有网络的情况下保持运行
在 2025 年,离线优先不是选择,而是生存。
重點摘要
Room 提供本地缓存存储。
WorkManager 作为同步工具。
Paging 3 实现流畅的无限滚动。
这篇文章探讨了在 2025 年移动应用中离线优先策略的重要性。它强调用户期望即使在失去网络连接的情况下,也能享受无缝的使用体验。文中提到的关键技术包括 Room 用于本地数据存储、WorkManager 用于后台同步,以及 Paging 3 用于高效数据加载。作者提供了如何整合这些工具的见解,以确保应用在各种情境下保持功能和响应,满足通勤或购物等用户需求。
離線優先或毀滅:Room、WorkManager 和 Paging 3 如何讓您的應用在沒有網路的情況下保持運行
在 2025 年,離線優先不是選擇,而是生存。
重點摘要
Room 提供本地快取存儲。
WorkManager 作為同步工具。
Paging 3 實現流暢的無限滾動。
這篇文章探討了在 2025 年移動應用中離線優先策略的重要性。它強調用戶期望即使在失去網路連接的情況下,也能享受無縫的使用體驗。文中提到的關鍵技術包括 Room 用於本地數據存儲、WorkManager 用於後台同步,以及 Paging 3 用於高效數據加載。作者提供了如何整合這些工具的見解,以確保應用在各種情境下保持功能和響應,滿足通勤或購物等用戶需求。
Baeldung
作者:Maurice Maina
發布:09-07 18:34
How to Get JSON Response With Selenium
This tutorial presents a practical approach to capture JSON responses using Selenium.
重點摘要
Selenium captures JSON responses from web pages.
Prerequisites include Java, Maven, and ChromeDriver.
The method works for JSON rendered in the DOM.
In this article, we explore how to capture JSON responses from web pages using Selenium WebDriver. The process involves setting up a Maven project, creating a simple HTML page that fetches JSON data, and writing Java code to extract the JSON from the rendered page. We highlight the prerequisites needed for this setup, including Java 11, Maven, and ChromeDriver. The method is straightforward, allowing beginners to easily implement it, but it has limitations, such as only working for JSON that is rendered in the DOM and not for background API calls.
如何使用 Selenium 获取 JSON 响应
本教程介绍了一种实用的方法来捕获使用 Selenium 的 JSON 响应。
重點摘要
Selenium 可以捕获来自网页的 JSON 响应。
需要的前置条件包括 Java、Maven 和 ChromeDriver。
该方法适用于在 DOM 中呈现的 JSON。
在本文中,我们探讨了如何使用 Selenium WebDriver 从网页捕获 JSON 响应。这个过程包括设置 Maven 项目、创建一个简单的 HTML 页面以获取 JSON 数据,以及编写 Java 代码来提取渲染页面中的 JSON。我们强调了此设置所需的前置条件,包括 Java 11、Maven 和 ChromeDriver。这种方法简单易行,让初学者能够轻松实现,但也有其限制,例如仅适用于在 DOM 中呈现的 JSON,无法处理后台 API 调用。
如何使用 Selenium 獲取 JSON 回應
本教程介紹了一種實用的方法來捕獲使用 Selenium 的 JSON 回應。
重點摘要
Selenium 可以捕獲來自網頁的 JSON 回應。
需要的前置條件包括 Java、Maven 和 ChromeDriver。
該方法適用於在 DOM 中呈現的 JSON。
在本文中,我們探討了如何使用 Selenium WebDriver 從網頁捕獲 JSON 回應。這個過程包括設置 Maven 專案、創建一個簡單的 HTML 頁面以獲取 JSON 數據,以及編寫 Java 代碼來提取渲染頁面中的 JSON。我們強調了此設置所需的前置條件,包括 Java 11、Maven 和 ChromeDriver。這種方法簡單易行,讓初學者能夠輕鬆實現,但也有其限制,例如僅適用於在 DOM 中呈現的 JSON,無法處理背景 API 調用。
Kotlin Weekly
作者:
發布:08-03 09:00
Kotlin Weekly #470
Join JetBrains on Aug 12 & 18 for a two-part livestream series exploring Koog in action.
重點摘要
Koog livestream series on AI agents.
Kotlin Multiplatform Award at Shipaton 2025.
Introduction to Structured Concurrency in Kotlin.
In the latest issue of Kotlin Weekly, several exciting announcements and articles are highlighted. JetBrains is hosting a two-part livestream series on Koog, focusing on building and scaling AI agents. Additionally, there is a call for developers to participate in the Kotlin Multiplatform Award at Shipaton 2025, with a prize pool of $55,000. The issue also features insightful articles, including a deep dive into structured concurrency with CoroutineScope and CoroutineContext, and discussions on using Kotlin/JS for web development.
Kotlin Weekly #470
加入 JetBrains 于 8 月 12 日和 18 日的 Koog 直播系列,探索 AI 代理的实际应用。
重點摘要
Koog 直播系列聚焦于 AI 代理。
Shipaton 2025 的 Kotlin Multiplatform 奖项。
Kotlin 中结构化并发的介绍。
在最新一期的 Kotlin Weekly 中,突出了几个令人兴奋的公告和文章。JetBrains 将举办为期两天的 Koog 直播系列,专注于构建和扩展 AI 代理。此外,开发者被邀请参加 Shipaton 2025 的 Kotlin Multiplatform 奖项,奖金总额达到 55,000 美元。本期还包含了深入探讨 CoroutineScope 和 CoroutineContext 的结构化并发文章,以及使用 Kotlin/JS 进行网页开发的讨论。
Kotlin Weekly #470
加入 JetBrains 於 8 月 12 日和 18 日的 Koog 直播系列,探索 AI 代理的實際應用。
重點摘要
Koog 直播系列聚焦於 AI 代理。
Shipaton 2025 的 Kotlin Multiplatform 獎項。
Kotlin 中結構化並發的介紹。
在最新一期的 Kotlin Weekly 中,突出了幾個令人興奮的公告和文章。JetBrains 將舉辦一個為期兩天的 Koog 直播系列,專注於構建和擴展 AI 代理。此外,開發者被邀請參加 Shipaton 2025 的 Kotlin Multiplatform 獎項,獎金總額達 55,000 美元。本期還包含了深入探討 CoroutineScope 和 CoroutineContext 的結構化並發文章,以及使用 Kotlin/JS 進行網頁開發的討論。
ProAndroidDev
作者:Jose Garcia
發布:08-30 16:47
Upload a Photo, Get a Caption. Google’s On-Device AI Is Getting Crazy Good
The app describes what it sees entirely on device, no cloud.
重點摘要
Generates captions for images locally on the device.
Fast processing time of 1-3 seconds per image.
Supports accessibility features and private visual searches.
This article discusses the capabilities of Google's on-device AI, particularly its ability to generate captions for photos using GenAI technology. The SmartWriter app allows users to upload images and receive descriptive captions within 1-3 seconds, all processed locally without cloud dependency. Key features include auto-generating alt-text for accessibility, smart gallery captions, and private visual searches. The implementation requires specific device compatibility, and the setup process is straightforward. Overall, this technology enhances user experience by providing quick and private image descriptions.
上传照片,获取标题。谷歌的设备端 AI 正在变得非常出色
该应用程序完全在设备上描述它所看到的内容,无需云端。
重點摘要
在设备上本地生成图片标题。
每张图片的处理时间为 1-3 秒。
支持无障碍功能和私人视觉搜索。
本文讨论了谷歌设备端 AI 的能力,特别是其使用 GenAI 技术为照片生成标题的功能。SmartWriter 应用允许用户上传图片并在 1-3 秒内接收描述性标题,所有处理均在本地进行,无需依赖云端。主要功能包括自动生成无障碍的替代文字、智能画廊标题和私人视觉搜索。实现过程需要特定设备的兼容性,设置过程简单明了。总体而言,这项技术通过提供快速且私密的图片描述来增强用户体验。
上傳照片,獲得標題。Google 的設備端 AI 正在變得非常出色
該應用程式完全在設備上描述它所看到的內容,無需雲端。
重點摘要
在設備上本地生成圖片標題。
每張圖片的處理時間為 1-3 秒。
支持無障礙功能和私人視覺搜索。
本文討論了 Google 設備端 AI 的能力,特別是其使用 GenAI 技術為照片生成標題的功能。SmartWriter 應用允許用戶上傳圖片並在 1-3 秒內接收描述性標題,所有處理均在本地進行,無需依賴雲端。主要功能包括自動生成無障礙的替代文字、智能畫廊標題和私人視覺搜索。實現過程需要特定設備的兼容性,設置過程簡單明瞭。總體而言,這項技術通過提供快速且私密的圖片描述來增強用戶體驗。
Kotlin Blog
作者:Denis Domanskii
發布:07-28 13:33
When Tool-Calling Becomes an Addiction: Debugging LLM Patterns in Koog
The model's attention mechanism locked onto the tool-calling pattern.
重點摘要
Agent initially performed well but faced context limitations.
Compression logic failed, leading to repeated tool calls.
Breaking the message pattern was key to resolving the issue.
In this article, Denis Domanskii discusses the challenges faced while testing an AI agent built on JetBrains' Koog framework. Initially, the agent effectively handled tasks, but as the conversation progressed, it encountered limitations due to the context window. The compression logic failed, resulting in the agent repeatedly calling tools instead of summarizing its progress. The author discovered that the model had learned a rigid pattern of responding with tool calls, which necessitated a structural change in how messages were formatted. By wrapping messages in custom tags, the agent was able to break free from the learned pattern and successfully summarize its work, demonstrating the importance of message structure in AI interactions.
当工具调用成为一种上瘾:在 Koog 中调试 LLM 模式
模型的注意机制锁定在工具调用模式上。
重點摘要
代理最初表现良好,但面临上下文限制。
压缩逻辑失败,导致重复的工具调用。
打破消息模式是解决问题的关键。
在这篇文章中,Denis Domanskii 讨论了在测试基于 JetBrains Koog 框架的 AI 代理时所面临的挑战。最初,该代理有效地处理任务,但随着对话的进展,它因上下文窗口而遇到限制。压缩逻辑失败,导致代理重复调用工具而不是总结其进展。作者发现模型学会了一种僵化的响应模式,这需要在消息格式上进行结构性变更。通过将消息包装在自定义标签中,代理能够摆脱学习的模式,成功地总结其工作,这显示了消息结构在 AI 互动中的重要性。
當工具呼叫成為一種上癮:在 Koog 中調試 LLM 模式
模型的注意機制鎖定在工具呼叫模式上。
重點摘要
代理最初表現良好,但面臨上下文限制。
壓縮邏輯失敗,導致重複的工具呼叫。
打破消息模式是解決問題的關鍵。
在這篇文章中,Denis Domanskii 討論了在測試基於 JetBrains Koog 框架的 AI 代理時所面臨的挑戰。最初,該代理有效地處理任務,但隨著對話的進展,它因上下文窗口而遇到限制。壓縮邏輯失敗,導致代理重複呼叫工具而不是總結其進展。作者發現模型學會了一種僵化的回應模式,這需要在消息格式上進行結構性變更。通過將消息包裝在自定義標籤中,代理能夠擺脫學習的模式,成功地總結其工作,這顯示了消息結構在 AI 互動中的重要性。
Dev.to Kotlin
作者:Qandil Tariq
發布:09-04 13:29
Build an OCR Action pipeline with Kotlin: ML Kit (Android) + Ktor (server) + KMP roadmap
LetterLens scans a paper letter, extracts text with ML Kit, classifies it, pulls deadlines, and returns what/when/next.
重點摘要
Android UI is Jetpack Compose and the API is Ktor.
Classification and date parsing are done in Kotlin Multiplatform.
Future plans include expanding letter libraries and improving accessibility.
The article discusses the development of an OCR action pipeline using Kotlin, integrating ML Kit for text extraction on Android, and Ktor for server-side operations. The application, LetterLens, scans letters, classifies them, and retrieves relevant deadlines. The architecture involves a minimal Android app using Jetpack Compose and a Ktor server that processes requests for explanations of the extracted text. The roadmap includes transitioning to a compact model for classification and expanding the library of recognized letters, with an emphasis on sharing code across platforms using Kotlin Multiplatform.
使用 Kotlin 构建 OCR 行动管道:ML Kit(Android)+ Ktor(服务器)+ KMP 路线图
LetterLens 扫描纸质信件,利用 ML Kit 提取文本,进行分类,并提取截止日期,返回相关信息。
重點摘要
Android UI 使用 Jetpack Compose,API 是 Ktor。
分类和日期解析在 Kotlin Multiplatform 中进行。
未来计划包括扩展信件库和改善可及性。
本文讨论了使用 Kotlin 开发 OCR 行动管道的过程,整合 ML Kit 于 Android 进行文本提取,并使用 Ktor 处理服务器端操作。该应用程序 LetterLens 能够扫描信件、进行分类并检索相关截止日期。架构包含一个使用 Jetpack Compose 的简单 Android 应用程序和一个处理提取文本解释请求的 Ktor 服务器。未来的计划包括转向使用紧凑模型进行分类,以及扩展可识别的信件库,强调使用 Kotlin Multiplatform 跨平台共享代码。
使用 Kotlin 建立 OCR 行動管道:ML Kit(Android)+ Ktor(伺服器)+ KMP 路線圖
LetterLens 掃描紙本信件,利用 ML Kit 提取文字,進行分類,並提取截止日期,返回相關資訊。
重點摘要
Android UI 使用 Jetpack Compose,API 則是 Ktor。
分類和日期解析在 Kotlin Multiplatform 中進行。
未來計畫包括擴展信件庫和改善可及性。
本文討論了使用 Kotlin 開發 OCR 行動管道的過程,整合 ML Kit 於 Android 進行文字提取,並使用 Ktor 處理伺服器端操作。該應用程式 LetterLens 能夠掃描信件、進行分類並檢索相關截止日期。架構包含一個使用 Jetpack Compose 的簡單 Android 應用程式和一個處理提取文字解釋請求的 Ktor 伺服器。未來的計畫包括轉向使用緊湊模型進行分類,以及擴展可識別的信件庫,強調使用 Kotlin Multiplatform 跨平台共享代碼。
Kotlin Weekly
作者:
發布:08-10 12:29
Kotlin Weekly #471
AI Assistant, Junie and Kineto Now Support GPT-5 by OpenAI
重點摘要
JetBrains integrates GPT-5 into its tools.
New features in Gradle 9.0.0 are highlighted.
Compose Unstyled offers a flexible design system.
In the latest issue of Kotlin Weekly (#471), significant updates include the integration of OpenAI's GPT-5 into JetBrains' AI Assistant, Junie, and Kineto, enhancing code quality and task management. Additionally, Gradle 9.0.0 introduces new features relevant to Kotlin developers. The issue also features articles on Jetpack Compose's LayoutNode, which delves into UI performance, and Compose Unstyled, a new layer for building custom design systems without Material's constraints. Other highlights include a detailed animation visualizer for Kotlin Coroutines and various libraries aimed at improving Kotlin application development.
Kotlin Weekly #471
AI Assistant、Junie 和 Kineto 现在支持 OpenAI 的 GPT-5
重點摘要
JetBrains 将 GPT-5 整合到其工具中。
Gradle 9.0.0 的新功能被强调。
Compose Unstyled 提供灵活的设计系统。
在最新一期的 Kotlin Weekly (#471) 中,重要更新包括 JetBrains 将 OpenAI 的 GPT-5 整合到其 AI Assistant、Junie 和 Kineto 中,提升了代码质量和任务管理。此外,Gradle 9.0.0 引入了与 Kotlin 开发者相关的新功能。本期还介绍了 Jetpack Compose 的 LayoutNode,深入探讨了 UI 性能,以及 Compose Unstyled,这是一种新的层级,允许在不受 Material 约束的情况下构建自定义设计系统。其他亮点包括 Kotlin Coroutines 的详细动画可视化工具和多个旨在改善 Kotlin 应用开发的库。
Kotlin Weekly #471
AI Assistant、Junie 和 Kineto 現在支持 OpenAI 的 GPT-5
重點摘要
JetBrains 將 GPT-5 整合到其工具中。
Gradle 9.0.0 的新功能被強調。
Compose Unstyled 提供靈活的設計系統。
在最新一期的 Kotlin Weekly (#471) 中,重要更新包括 JetBrains 將 OpenAI 的 GPT-5 整合到其 AI Assistant、Junie 和 Kineto 中,提升了代碼質量和任務管理。此外,Gradle 9.0.0 引入了與 Kotlin 開發者相關的新功能。本期還介紹了 Jetpack Compose 的 LayoutNode,深入探討了 UI 性能,以及 Compose Unstyled,這是一個新的層級,允許在不受 Material 約束的情況下構建自定義設計系統。其他亮點包括 Kotlin Coroutines 的詳細動畫可視化工具和多個旨在改善 Kotlin 應用開發的庫。
Kotlin Blog
作者:Ekaterina Petrova
發布:07-29 07:27
Ship, Share, and Win: The Kotlin Multiplatform Award at Shipaton 2025
This summer, you’ve got the perfect chance to capture the thrill of shipping an app at RevenueCat Shipaton 2025.
重點摘要
Build a new mobile app in eight weeks.
Compete for a share of the $350,000+ prize pool.
Join the Kotlin community and share your development journey.
RevenueCat Shipaton 2025 is a global hackathon running from August 1 to September 30, inviting developers to create new mobile apps using Kotlin Multiplatform. Participants must build an app within eight weeks, integrating the RevenueCat SDK for in-app purchases, and submit it to the App Store or Google Play. The Kotlin Multiplatform Reach Award will recognize the best apps developed for both iOS and Android, with a total prize pool of over $350,000. Additionally, developers can apply to work with Junie, an AI coding agent, to enhance their project experience.
运送、分享与获胜:2025年 Shipaton 的 Kotlin 多平台奖
今年夏天,您有绝佳机会在 RevenueCat Shipaton 2025 中体验运送应用程序的快感。
重點摘要
在八周内建立一个全新的移动应用程序。
竞争超过 350,000 美元的奖金池。
加入 Kotlin 社区并分享您的开发旅程。
RevenueCat Shipaton 2025 是一个全球黑客马拉松,从 8 月 1 日到 9 月 30 日,邀请开发者使用 Kotlin 多平台创建新的移动应用程序。参赛者必须在八周内建立应用程序,整合 RevenueCat SDK 以进行应用内购买,并提交到 App Store 或 Google Play。Kotlin 多平台 Reach 奖将表彰为 iOS 和 Android 开发的最佳应用程序,总奖金池超过 350,000 美元。此外,开发者可以申请与 Junie 合作,这是一款 AI 编码代理,旨在增强他们的项目体验。
運送、分享與獲勝:2025年 Shipaton 的 Kotlin 多平台獎
今年夏天,您有絕佳機會在 RevenueCat Shipaton 2025 中體驗運送應用程式的快感。
重點摘要
在八週內建立一個全新的行動應用程式。
競爭超過 350,000 美元的獎金池。
加入 Kotlin 社群並分享您的開發旅程。
RevenueCat Shipaton 2025 是一個全球黑客馬拉松,從 8 月 1 日到 9 月 30 日,邀請開發者使用 Kotlin 多平台創建新的行動應用程式。參賽者必須在八週內建立應用程式,整合 RevenueCat SDK 以進行應用內購買,並提交到 App Store 或 Google Play。Kotlin 多平台 Reach 獎將表彰為 iOS 和 Android 開發的最佳應用程式,總獎金池超過 350,000 美元。此外,開發者可以申請與 Junie 合作,這是一個 AI 編碼代理,旨在增強他們的專案體驗。
ProAndroidDev
作者:Subhankar Bag
發布:08-30 16:49
Full-Screen Intent (FSI) Notifications in Android 14 & 15: What Changed, Why It’s Breaking, and How to Fix It
Google has fundamentally changed how FSI works in Android 14 and 15, and many apps are breaking silently.
重點摘要
FSI is now restricted to critical use cases only.
Manual user consent is required for FSI notifications.
Developers must declare FSI use cases in the Play Console.
The introduction of Android 14 and 15 has significantly altered the functionality of Full-Screen Intent (FSI) notifications, which are essential for applications that require immediate user attention, such as alarms and calls. Developers are now facing challenges as FSI is limited to critical use cases, requiring explicit user consent and mandatory declarations in the Play Console. This has led to many applications failing to deliver notifications as expected, especially when the device is not locked. To adapt, developers must implement runtime permission checks, guide users through enabling FSI permissions, and create robust fallback mechanisms to ensure effective notification delivery.
Android 14 和 15 的全屏意图 (FSI) 通知:变化、原因及修复方法
Google 根本改变了 FSI 在 Android 14 和 15 中的运作方式,许多应用程序默默地出现故障。
重點摘要
FSI 现在仅限于关键使用案例。
需要用户手动同意 FSI 通知。
开发者必须在 Play Console 中声明 FSI 使用案例。
Android 14 和 15 的推出显著改变了全屏意图 (FSI) 通知的功能,这对于需要即时用户注意的应用程序(如闹钟和电话)至关重要。开发者现在面临挑战,因为 FSI 限制在关键使用案例中,并且需要明确的用户同意和在 Play Console 中的强制声明。这导致许多应用程序在设备未解锁时无法按预期发送通知。为了适应,开发者必须实施运行时权限检查,引导用户启用 FSI 权限,并创建健全的后备机制,以确保有效的通知传递。
Android 14 和 15 的全螢幕意圖 (FSI) 通知:變化、原因及修復方法
Google 根本改變了 FSI 在 Android 14 和 15 中的運作方式,許多應用程式默默地出現故障。
重點摘要
FSI 現在僅限於關鍵使用案例。
需要用戶手動同意 FSI 通知。
開發者必須在 Play Console 中聲明 FSI 使用案例。
Android 14 和 15 的推出顯著改變了全螢幕意圖 (FSI) 通知的功能,這對於需要即時用戶注意的應用程式(如鬧鐘和電話)至關重要。開發者現在面臨挑戰,因為 FSI 限制在關鍵使用案例中,並且需要明確的用戶同意和在 Play Console 中的強制聲明。這導致許多應用程式在設備未鎖定時無法按預期發送通知。為了適應,開發者必須實施運行時權限檢查,引導用戶啟用 FSI 權限,並創建健全的後備機制,以確保有效的通知傳遞。
Dev.to Kotlin
作者:Vrushali
發布:09-05 09:39
Kotlin Interview Puzzle: Who Wins the Tie? Loops, Reduce & Functional Surprises
Sometimes the simplest puzzles are the sneakiest — especially in interviews.
重點摘要
Find the longest word in a list.
Example list includes cities like Rome and Berlin.
Puzzles can reveal unexpected insights.
In the realm of coding interviews, simple puzzles can often be the most deceptive. A notable example is the challenge of finding the longest word in a list, such as a list of cities including 'rome', 'berlin', and 'london'. This task not only tests programming skills but also highlights the importance of functional programming concepts like loops and reduce. Such puzzles can provide deeper insights into a candidate's problem-solving abilities and coding style.
Kotlin 面试谜题:谁赢得平局?循环、减少与函数惊喜
有时,最简单的谜题反而是最狡猾的,尤其是在面试中。
重點摘要
找出列表中最长的单词。
示例列表包括像罗马和柏林的城市。
谜题可以揭示意想不到的见解。
在编程面试的领域中,简单的谜题往往是最具欺骗性的。一个值得注意的例子是找出列表中最长的单词,例如包含“rome”、“berlin”和“london”的城市列表。这项任务不仅测试了编程技能,还突显了函数式编程概念的重要性,如循环和减少。这类谜题能够深入揭示候选人的问题解决能力和代码风格。
Kotlin 面試謎題:誰贏得平局?迴圈、縮減與函數驚喜
有時候,最簡單的謎題反而是最狡猾的,尤其是在面試中。
重點摘要
找出列表中最長的單詞。
範例列表包括像羅馬和柏林的城市。
謎題可以揭示意想不到的見解。
在程式設計面試的領域中,簡單的謎題往往是最具欺騙性的。一個值得注意的例子是找出列表中最長的單詞,例如包含「rome」、「berlin」和「london」的城市列表。這項任務不僅測試了程式設計技能,還突顯了函數式程式設計概念的重要性,如迴圈和縮減。這類謎題能夠深入揭示候選人的問題解決能力和程式碼風格。
Medium Kotlin
作者:Abhinay
發布:09-08 19:35
Android ViewModel Interview Questions: Complete Guide with Real-World Implementation
This comprehensive guide shares the most common ViewModel interview questions.
重點摘要
Detailed answers to common ViewModel questions.
Real-world implementation examples included.
Essential for preparing for Android interviews.
This guide provides a thorough overview of the most frequently asked ViewModel interview questions, along with detailed answers and real-world implementation examples. It serves as an essential resource for anyone preparing for Android development interviews, ensuring candidates are well-equipped to tackle questions related to ViewModel concepts and practices.
Android ViewModel 面试问题:完整指南与实际应用
这本全面的指南分享了最常见的 ViewModel 面试问题。
重點摘要
提供常见 ViewModel 问题的详细解答。
包括实际应用示例。
对准备 Android 面试至关重要。
这本指南提供了最常被问到的 ViewModel 面试问题的详细概述,并附上详细的解答和实际应用示例。它是任何准备 Android 开发面试的人的重要资源,确保候选人能够充分应对与 ViewModel 概念和实践相关的问题。
Android ViewModel 面試問題:完整指南與實際應用
這本全面的指南分享了最常見的 ViewModel 面試問題。
重點摘要
提供常見 ViewModel 問題的詳細解答。
包括實際應用範例。
對準備 Android 面試至關重要。
這本指南提供了最常被問到的 ViewModel 面試問題的詳細概述,並附上詳細的解答和實際應用範例。它是任何準備 Android 開發面試的人的重要資源,確保候選人能夠充分應對與 ViewModel 概念和實踐相關的問題。
Kotlin Weekly
作者:
發布:08-17 05:00
Kotlin Weekly #472
Jetpack Compose 1.9 is now stable, introducing several new features.
重點摘要
Jetpack Compose 1.9 brings new features like drop shadows.
KotlinX RPC 0.9.1 introduces serialization decoupling.
Aigentic Client Library enables easy AI agent integration.
In issue #472 of Kotlin Weekly, the latest updates include the stable release of Jetpack Compose 1.9, which introduces features such as drop shadows and improved performance. Additionally, KotlinX RPC 0.9.1 has been released, offering serialization decoupling and a more streamlined API. The newsletter also highlights various articles, including a guide on building a cross-platform tile map and a new benchmarking tool for evaluating LLMs on Kotlin tasks.
Kotlin Weekly #472
Jetpack Compose 1.9 现已稳定,带来多项新功能。
重點摘要
Jetpack Compose 1.9 引入了新的功能,如阴影效果。
KotlinX RPC 0.9.1 引入序列化解耦。
Aigentic 客户端库使 AI 代理集成变得简单。
在 Kotlin Weekly 第 472 期中,最新更新包括 Jetpack Compose 1.9 的稳定发布,该版本引入了阴影效果和性能改进等新功能。此外,KotlinX RPC 0.9.1 也已发布,提供序列化解耦和更流畅的 API。这期通讯还突出了多篇文章,包括如何构建跨平台的瓷砖地图和一个新的基准工具,用于评估 Kotlin 任务上的 LLM。
Kotlin Weekly #472
Jetpack Compose 1.9 現已穩定,帶來多項新功能。
重點摘要
Jetpack Compose 1.9 引入了新的功能,如陰影效果。
KotlinX RPC 0.9.1 引入序列化解耦。
Aigentic 客戶端庫使 AI 代理集成變得簡單。
在 Kotlin Weekly 第 472 期中,最新更新包括 Jetpack Compose 1.9 的穩定發布,該版本引入了陰影效果和性能改進等新功能。此外,KotlinX RPC 0.9.1 也已發布,提供序列化解耦和更流暢的 API。這期通訊還突出了多篇文章,包括如何構建跨平台的瓷磚地圖和一個新的基準工具,用於評估 Kotlin 任務上的 LLM。
Kotlin Blog
作者:Daniela Bentrup
發布:07-29 13:15
Koog: Building and Scaling AI Agents – Join Our Livestream Series
Join us this August for a two-part livestream series about Koog, JetBrains’ open-source agentic framework.
重點摘要
Learn to build AI agents in Kotlin.
Sessions on August 12 and 18, 2025.
Gain hands-on insight from Koog creators.
Join our two-part livestream series this August to explore Koog, JetBrains’ open-source framework for building AI agents in Kotlin. The first session on August 12 will cover the fundamentals of Koog, including its architecture and how to create your first agent. The second session on August 18 will delve into advanced features like context-aware behavior and integration with external tools. This series is perfect for both Kotlin developers and AI enthusiasts looking to enhance their skills and build dynamic AI systems.
Koog:构建与扩展 AI 代理 – 加入我们的直播系列
这个八月,加入我们的两部分直播系列,了解 JetBrains 的开源代理框架 Koog。
重點摘要
学习如何在 Kotlin 中构建 AI 代理。
2025 年 8 月 12 日和 18 日的会议。
从 Koog 创建者那里获得实用见解。
本八月,加入我们的两部分直播系列,深入了解 JetBrains 的开源框架 Koog,专为在 Kotlin 中构建 AI 代理而设。第一场会议将于 8 月 12 日举行,介绍 Koog 的基本概念,包括其架构及如何创建您的第一个代理。第二场会议将于 8 月 18 日进一步探讨高级功能,如上下文感知行为及与外部工具的整合。这个系列非常适合希望提升技能并建立动态 AI 系统的 Kotlin 开发者和 AI 爱好者。
Koog:建立與擴展 AI 代理 – 加入我們的直播系列
這個八月,加入我們的兩部分直播系列,了解 JetBrains 的開源代理框架 Koog。
重點摘要
學習如何在 Kotlin 中建立 AI 代理。
2025 年 8 月 12 日和 18 日的會議。
從 Koog 創建者那裡獲得實用見解。
本八月,加入我們的兩部分直播系列,深入了解 JetBrains 的開源框架 Koog,專為在 Kotlin 中建立 AI 代理而設。第一場會議將於 8 月 12 日舉行,介紹 Koog 的基本概念,包括其架構及如何創建您的第一個代理。第二場會議將於 8 月 18 日進一步探討高級功能,如上下文感知行為及與外部工具的整合。這個系列非常適合希望提升技能並建立動態 AI 系統的 Kotlin 開發者和 AI 愛好者。
Dev.to Kotlin
作者:Ivan Garza
發布:09-06 14:00
barK: A Lightweight Logging Library for Android
barK is designed to simplify logging for Android and Kotlin Multiplatform projects.
重點摘要
Supports turning off logs for release builds.
Integrates easily with clients for customizable logging.
Allows for detailed logging during unit tests.
barK is a lightweight logging library tailored for Android and Kotlin Multiplatform projects, created to address the limitations of existing logging solutions. It allows developers to disable logging in release builds, utilize print statements during unit tests, and provides flexibility for clients to customize or mute logging as needed. The library features automatic tag detection, a global tagging option, and a training system for handling logging requests. Additionally, barK supports custom trainers for various logging outputs, making it a versatile tool for both application developers and SDK creators.
barK:一个轻量级的 Android 日志库
barK 的设计旨在简化 Android 和 Kotlin 多平台项目的日志记录。
重點摘要
支持在发布版本中关闭日志。
与客户端轻松整合以自定义日志记录。
在单元测试期间允许详细的日志记录。
barK 是一个轻量级的日志库,专为 Android 和 Kotlin 多平台项目而设计,旨在解决现有日志解决方案的局限性。它允许开发者在发布版本中禁用日志,并在单元测试期间使用 print 语句,同时提供客户端自定义或静音日志的灵活性。该库具有自动标签检测、全局标签选项和处理日志请求的训练系统。此外,barK 支持自定义训练器以适应各种日志输出,使其成为应用程序开发者和 SDK 创建者的多功能工具。
barK:一個輕量級的 Android 日誌庫
barK 的設計旨在簡化 Android 和 Kotlin 多平台專案的日誌記錄。
重點摘要
支援在發佈版本中關閉日誌。
與客戶端輕鬆整合以自訂日誌記錄。
在單元測試期間允許詳細的日誌記錄。
barK 是一個輕量級的日誌庫,專為 Android 和 Kotlin 多平台專案而設計,旨在解決現有日誌解決方案的局限性。它允許開發者在發佈版本中禁用日誌,並在單元測試期間使用 print 語句,同時提供客戶端自訂或靜音日誌的靈活性。該庫具有自動標籤檢測、全局標籤選項和處理日誌請求的訓練系統。此外,barK 支援自訂訓練器以適應各種日誌輸出,使其成為應用程式開發者和 SDK 創建者的多功能工具。
ProAndroidDev
作者:Shubham Kumar Gupta
發布:08-30 18:19
How We Managed to Send Events Sequentially with Rate Limiting And Controlling Each Event?
We figured out one of the strange problems while working over some feature.
重點摘要
Addressed a unique issue in event handling.
Implemented rate limiting for event transmission.
Ensured sequential sending of events.
In the process of developing a feature for our product, we encountered a peculiar challenge related to event handling. This led us to explore solutions that involved rate limiting and controlling the sequence in which events were sent. By implementing these strategies, we were able to manage the flow of events effectively, ensuring that they were transmitted in a controlled manner without overwhelming the system.
如何在速率限制和控制每个事件的情况下,顺序发送事件?
我们在开发某个功能时发现了一个奇怪的问题。
重點摘要
解决了事件处理中的独特问题。
实施了事件传输的速率限制。
确保事件的顺序发送。
在我们产品的开发过程中,遇到了一个与事件处理相关的特殊挑战。这促使我们探索涉及速率限制和控制事件发送顺序的解决方案。通过实施这些策略,我们能够有效管理事件的流动,确保它们以受控的方式传输,而不会使系统过载。
如何在速率限制和控制每個事件的情況下,順序發送事件?
我們在開發某個功能時發現了一個奇怪的問題。
重點摘要
解決了事件處理中的獨特問題。
實施了事件傳輸的速率限制。
確保事件的順序發送。
在我們的產品開發過程中,遇到了一個與事件處理相關的特殊挑戰。這促使我們探索涉及速率限制和控制事件發送順序的解決方案。通過實施這些策略,我們能夠有效管理事件的流動,確保它們以受控的方式傳輸,而不會使系統過載。
Medium Kotlin
作者:Himanshugaur
發布:09-08 19:53
Mastering Dark & Light Mode in Kotlin Multiplatform: A Complete Guide
Dark mode isn’t just a trend anymore—it’s an expectation.
重點摘要
Users love switching between light and dark modes.
Applicable for both Android and iOS development.
A comprehensive guide for Kotlin Multiplatform.
The article discusses the importance of dark mode in modern app development, emphasizing that it has become an expectation among users rather than just a trend. It highlights the necessity for developers to implement both dark and light modes in their applications, particularly for Android and iOS platforms. The guide aims to provide a thorough understanding of how to effectively manage these modes in Kotlin Multiplatform, ensuring a better user experience.
掌握 Kotlin 多平台中的深色与浅色模式:完整指南
深色模式不再只是趋势,而是用户的期待。
重點摘要
用户喜欢在深色与浅色模式之间切换。
适用于 Android 和 iOS 开发。
提供 Kotlin 多平台的全面指南。
本文讨论了深色模式在现代应用开发中的重要性,强调它已成为用户的期待,而不仅仅是一种趋势。文章指出,开发者需要在其应用中实现深色和浅色模式,特别是针对 Android 和 iOS 平台。这份指南旨在提供对如何在 Kotlin 多平台中有效管理这些模式的深入理解,以确保更好的用户体验。
掌握 Kotlin 多平台中的深色與淺色模式:完整指南
深色模式不再只是趨勢,而是使用者的期待。
重點摘要
使用者喜歡在深色與淺色模式之間切換。
適用於 Android 和 iOS 開發。
提供 Kotlin 多平台的全面指南。
這篇文章討論了深色模式在現代應用程式開發中的重要性,強調它已經成為使用者的期待,而不僅僅是一種趨勢。文章指出,開發者需要在其應用程式中實施深色和淺色模式,特別是針對 Android 和 iOS 平台。這份指南旨在提供對如何在 Kotlin 多平台中有效管理這些模式的深入理解,以確保更好的使用者體驗。
Kotlin Blog
作者:Simon Vergauwen
發布:08-08 13:40
KotlinX RPC 0.9.1 Is Now Available
This release of kotlinx.rpc introduces significant improvements aimed at the long-term stability, maintenance, and evolution of the library.
重點摘要
Decoupling from KotlinX Serialization
Simplified lifetime management
Strict mode is now the default
The release of KotlinX RPC 0.9.1 brings major enhancements focused on stability and usability. Notably, the kotlinx.rpc library is now decoupled from KotlinX Serialization, allowing for greater flexibility in gRPC setups. Additionally, resource management has been simplified, reducing common errors. The introduction of strict mode as the default setting ensures correctness in API usage. This version also includes various improvements, such as better support for nullable serializers and more flexible WebSocket installations. The community's contributions have been invaluable in shaping this update.
KotlinX RPC 0.9.1 现已发布
此次的 kotlinx.rpc 发布引入了旨在长期稳定性、维护和演进的重要改进。
重點摘要
与 KotlinX Serialization 解耦
简化生命周期管理
严格模式现在是默认
KotlinX RPC 0.9.1 的发布带来了针对稳定性和可用性的重大增强。值得注意的是,kotlinx.rpc 现在与 KotlinX Serialization 解耦,这使得在 gRPC 设置中具有更大的灵活性。此外,资源管理得到了简化,减少了常见错误的可能性。引入的严格模式作为默认设置,确保了 API 使用的正确性。本版本还包括各种改进,例如对可为空序列化器的更好支持和更灵活的 WebSocket 安装。社区的贡献对于塑造此次更新至关重要。
KotlinX RPC 0.9.1 現已推出
這次的 kotlinx.rpc 發布引入了旨在長期穩定性、維護和演進的重要改進。
重點摘要
與 KotlinX Serialization 解耦
簡化生命週期管理
嚴格模式現在是預設
KotlinX RPC 0.9.1 的發布帶來了針對穩定性和可用性的重大增強。值得注意的是,kotlinx.rpc 現在與 KotlinX Serialization 解耦,這使得在 gRPC 設置中具有更大的靈活性。此外,資源管理得到了簡化,減少了常見錯誤的可能性。引入的嚴格模式作為預設設置,確保了 API 使用的正確性。本版本還包括各種改進,例如對可為空序列化器的更好支持和更靈活的 WebSocket 安裝。社區的貢獻對於塑造這次更新至關重要。
Kotlin Weekly
作者:
發布:08-24 08:03
Kotlin Weekly #473
JetBrains has released the Kotlin Developer Survey 2025.
重點摘要
Kotlin Developer Survey 2025 is now available.
KotlinConf 2025 highlights backend advancements.
New Kotlin libraries and tools are introduced.
In the latest issue of Kotlin Weekly, JetBrains announces the Kotlin Developer Survey 2025, inviting developers to contribute their insights on Kotlin usage. The issue also highlights key takeaways from KotlinConf 2025, including a new partnership with Spring and updates to Ktor, as well as advancements in AI tooling and server-side adoption. Additionally, several articles and tutorials are featured, covering topics such as structured concurrency, cross-platform text-to-speech applications, and pragmatic Kotlin Multiplatform implementations. The newsletter concludes with information about new libraries and upcoming webinars.
Kotlin Weekly #473
JetBrains 发布了 Kotlin 开发者调查 2025。
重點摘要
Kotlin 开发者调查 2025 现已开放。
KotlinConf 2025 突显后端进展。
介绍了新的 Kotlin 函数库和工具。
在最新一期的 Kotlin Weekly 中,JetBrains 宣布开放 Kotlin 开发者调查 2025,邀请开发者分享对 Kotlin 使用的见解。此期还突显了 KotlinConf 2025 的关键要点,包括与 Spring 的新合作伙伴关系及 Ktor 的更新,以及 AI 工具和服务器端采用的进展。此外,还有多篇文章和教程,涵盖结构化并发、跨平台语音合成应用程序以及务实的 Kotlin 多平台实现等主题。最后,通讯还提供了有关新函数库和即将举办的网络研讨会的信息。
Kotlin Weekly #473
JetBrains 發布了 Kotlin 開發者調查 2025。
重點摘要
Kotlin 開發者調查 2025 現已開放。
KotlinConf 2025 突顯後端進展。
介紹了新的 Kotlin 函式庫和工具。
在最新一期的 Kotlin Weekly 中,JetBrains 宣布開放 Kotlin 開發者調查 2025,邀請開發者分享對 Kotlin 使用的見解。此期還突顯了 KotlinConf 2025 的關鍵要點,包括與 Spring 的新合作夥伴關係及 Ktor 的更新,以及 AI 工具和伺服器端採用的進展。此外,還有多篇文章和教程,涵蓋結構化並發、跨平台語音合成應用程序以及務實的 Kotlin 多平台實現等主題。最後,通訊還提供了有關新函式庫和即將舉辦的網絡研討會的信息。
Dev.to Kotlin
作者:Сергей Бобошко
發布:09-07 11:12
How I tried to bring Oracle/SAP/1C-style auto-generated forms into Android with Jetpack Compose + SQLite
This cuts down boilerplate by ~90%, allowing for rapid testing of ideas.
重點摘要
Compose Entity generates SQLite tables and forms automatically.
Migrations provide full control over data evolution.
The approach simplifies Android development significantly.
The article discusses the author's experience transitioning from enterprise systems like Oracle and SAP to Android development. The author faced challenges with the manual setup required for Android applications, which led to the creation of a framework called Compose Entity. This framework automates the generation of SQLite tables, DAOs, repositories, and UI forms, significantly reducing boilerplate code. The author emphasizes the importance of migration control and the ability to customize forms while maintaining simplicity. By sharing this framework, the author seeks feedback on its utility in Android projects.
如何将 Oracle/SAP/1C 风格的自动生成表单引入 Android,使用 Jetpack Compose + SQLite
这可以将样板代码减少约 90%,让我能快速测试想法。
重點摘要
Compose Entity 自动生成 SQLite 表和表单。
迁移提供对数据演变的完全控制。
这种方法显著简化了 Android 开发。
本文讨论了作者从 Oracle 和 SAP 等企业系统转向 Android 开发的经历。作者面临 Android 应用程序所需的手动设置挑战,这促使他创建了一个名为 Compose Entity 的框架。该框架自动生成 SQLite 表、DAO、存储库和 UI 表单,显著减少了样板代码。作者强调了迁移控制的重要性,以及在保持简单性的同时自定义表单的能力。通过分享这个框架,作者希望获得对其在 Android 项目中实用性的反馈。
如何將 Oracle/SAP/1C 風格的自動生成表單引入 Android,使用 Jetpack Compose + SQLite
這樣可以將樣板代碼減少約 90%,讓我能快速測試想法。
重點摘要
Compose Entity 自動生成 SQLite 表和表單。
遷移提供對數據演變的完全控制。
這種方法顯著簡化了 Android 開發。
本文討論了作者從 Oracle 和 SAP 等企業系統轉向 Android 開發的經歷。作者面臨 Android 應用程序所需的手動設置挑戰,這促使他創建了一個名為 Compose Entity 的框架。該框架自動生成 SQLite 表、DAO、存儲庫和 UI 表單,顯著減少了樣板代碼。作者強調了遷移控制的重要性,以及在保持簡單性的同時自定義表單的能力。通過分享這個框架,作者希望獲得對其在 Android 項目中實用性的反饋。
ProAndroidDev
作者:Ioannis Anifantakis
發布:09-05 02:57
Android’s New 16 KB Page Size: What It Is, Why It Matters, and What You Should Do
The shift from 4 KB to 16 KB pages can lead to improved performance and efficiency.
重點摘要
16 KB pages reduce CPU workload and improve app launch times.
Google Play will enforce 16 KB compatibility starting November 1, 2025.
Native code must be recompiled for 16 KB to avoid crashes.
Android is transitioning from a 4 KB to a 16 KB page size, which is significant for app performance and memory management. This change allows for fewer entries in page tables, leading to faster app launches and reduced power consumption. Developers must ensure their apps are compatible with the new page size by recompiling any native code and updating third-party SDKs. Starting November 1, 2025, Google Play will require all new apps and updates targeting Android 15+ to support 16 KB pages, making this a critical update for developers.
Android的新16 KB页面大小:它是什么,为什么重要,以及你应该怎么做
从4 KB转向16 KB的页面大小可以提高性能和效率。
重點摘要
16 KB页面减少CPU工作负担,改善应用启动时间。
Google Play将于2025年11月1日强制执行16 KB兼容性。
必须重新编译原生代码以避免崩溃。
Android正在从4 KB转向16 KB的页面大小,这对应用性能和内存管理具有重要意义。这一变化使得页面表中的条目减少,从而加快应用启动速度并降低能耗。开发者必须确保他们的应用与新页面大小兼容,通过重新编译任何原生代码并更新第三方SDK。从2025年11月1日起,Google Play将要求所有针对Android 15+的新应用和更新支持16 KB页面,这对开发者来说是一个关键更新。
Android 的新 16 KB 頁面大小:它是什麼、為什麼重要以及你應該怎麼做
從 4 KB 轉向 16 KB 的頁面大小可以提高性能和效率。
重點摘要
16 KB 頁面減少 CPU 工作負擔,改善應用啟動時間。
Google Play 將於 2025 年 11 月 1 日強制執行 16 KB 相容性。
必須重新編譯原生代碼以避免崩潰。
Android 正在從 4 KB 轉向 16 KB 的頁面大小,這對應用性能和記憶體管理具有重要意義。這一變化使得頁面表中的條目減少,從而加快應用啟動速度並降低能耗。開發者必須確保他們的應用與新頁面大小相容,通過重新編譯任何原生代碼並更新第三方 SDK。從 2025 年 11 月 1 日起,Google Play 將要求所有針對 Android 15+ 的新應用和更新支持 16 KB 頁面,這對開發者來說是一個關鍵更新。
Medium Kotlin
作者:Ayaz Qureshi
發布:09-08 21:38
Is C++ Still Worth It for Android Development? A Performance Deep Dive!
The results might surprise you.
重點摘要
Benchmarking C++ vs Kotlin on Android.
Focus on computationally heavy tasks.
Performance results reveal unexpected insights.
In this article, Ayaz Qureshi explores the relevance of C++ in Android development by conducting a performance benchmark against Kotlin. The study emphasizes a computationally intensive task to evaluate the efficiency of both programming languages. The findings are intriguing and may challenge common perceptions about the performance capabilities of C++ compared to Kotlin in the Android ecosystem.
C++ 在 Android 开发中仍然值得吗?性能深入分析!
结果可能会让你感到惊讶。
重點摘要
对比 C++ 和 Kotlin 的性能。
专注于计算密集型任务。
性能结果揭示意想不到的见解。
在这篇文章中,Ayaz Qureshi 探讨了 C++ 在 Android 开发中的相关性,并对其与 Kotlin 进行了性能基准测试。研究强调了一个计算密集型任务,以评估这两种编程语言的效率。结果令人惊讶,可能会挑战人们对 C++ 与 Kotlin 在 Android 生态系统中性能能力的普遍看法。
C++ 在 Android 開發中仍然值得嗎?性能深入分析!
結果可能會讓你感到驚訝。
重點摘要
對比 C++ 和 Kotlin 的性能。
專注於計算密集型任務。
性能結果揭示意想不到的見解。
在這篇文章中,Ayaz Qureshi 探討了 C++ 在 Android 開發中的相關性,並對其與 Kotlin 進行性能基準測試。研究強調了一個計算密集型任務,以評估這兩種編程語言的效率。結果令人驚訝,可能會挑戰人們對 C++ 與 Kotlin 在 Android 生態系統中性能能力的普遍看法。
Kotlin Blog
作者:Kodee
發布:08-13 09:07
Kodee’s Kotlin Roundup: 2.2.20-Beta2, Kotlin LSP Update, Shipaton 2025, and a New Face on the Foundation Board
Kotlin 2.2.20-Beta2 is here with smart upgrades ready for adventurous developers!
重點摘要
Kotlin 2.2.20-Beta2 introduces new features for developers.
Kotlin ranks 15th among popular programming languages.
Sergei Rybalkin joins the Kotlin Foundation board.
In the latest Kotlin Roundup, Kodee highlights the release of Kotlin 2.2.20-Beta2, which includes significant upgrades for developers, especially in Kotlin Multiplatform with Swift export and web development targets. Kotlin has also secured the 15th position in the 2025 Stack Overflow Developer Survey, indicating its growing popularity. Additionally, the Kotlin Language Server Protocol has seen improvements, enhancing its core functionality. The article also announces the exciting news of Sergei Rybalkin joining the Kotlin Foundation board, bringing his extensive experience from Meta and Alibaba Group to help shape Kotlin's future.
Kodee的Kotlin快报:2.2.20-Beta2、Kotlin LSP更新、Shipaton 2025及基金会新成员
Kotlin 2.2.20-Beta2带来了为冒险开发者准备的智能升级!
重點摘要
Kotlin 2.2.20-Beta2引入了新功能。
Kotlin在热门编程语言中排名第15。
Sergei Rybalkin加入Kotlin基金会董事会。
在最新的Kotlin快报中,Kodee强调了Kotlin 2.2.20-Beta2的发布,该版本为开发者带来了重要升级,特别是在Kotlin Multiplatform中,新增了Swift导出和网页开发目标。根据2025年Stack Overflow开发者调查,Kotlin也稳居第15位,显示其日益增长的受欢迎程度。此外,Kotlin语言服务器协议也得到了改进,增强了其核心功能。文章还宣布了Sergei Rybalkin加入Kotlin基金会董事会的消息,他将带来来自Meta和阿里巴巴集团的丰富经验,帮助塑造Kotlin的未来。
Kodee的Kotlin快報:2.2.20-Beta2、Kotlin LSP更新、Shipaton 2025及基金會新成員
Kotlin 2.2.20-Beta2帶來了為冒險開發者準備的智能升級!
重點摘要
Kotlin 2.2.20-Beta2引入了新功能。
Kotlin在熱門程式語言中排名第15。
Sergei Rybalkin加入Kotlin基金會董事會。
在最新的Kotlin快報中,Kodee強調了Kotlin 2.2.20-Beta2的發布,該版本為開發者帶來了重要升級,特別是在Kotlin Multiplatform中,新增了Swift導出和網頁開發目標。根據2025年Stack Overflow開發者調查,Kotlin也穩居第15位,顯示其日益增長的受歡迎程度。此外,Kotlin語言伺服器協議也得到了改進,增強了其核心功能。文章還宣布了Sergei Rybalkin加入Kotlin基金會董事會的消息,他將帶來來自Meta和阿里巴巴集團的豐富經驗,幫助塑造Kotlin的未來。
ProAndroidDev
作者:Subhankar Bag
發布:09-05 03:11
The Hidden Dangers of Jetpack Compose State (And How to Fix Them With Real Examples)
State in Compose is powerful — but only if you know its traps.
重點摘要
Common issues include state resets on rotation and navigation.
Best practices involve using rememberSaveable and shared ViewModels.
Adopting a layered state approach reduces bugs significantly.
This article discusses the challenges developers face when managing state in Jetpack Compose, particularly issues like state resets during rotation and navigation. It emphasizes the importance of understanding the nuances of state management, including the use of rememberSaveable for persistent state and shared ViewModels for navigation. The author provides practical examples and best practices to prevent common pitfalls, such as unnecessary recompositions and flickering lists. By adopting a layered approach to state management, developers can significantly reduce bugs and improve user experience in their applications.
Jetpack Compose 状态的隐藏危险(以及如何通过实际示例修复它们)
Compose 中的状态非常强大,但前提是你要了解它的陷阱。
重點摘要
常见问题包括旋转和导航时状态重置。
最佳实践包括使用 rememberSaveable 和共享 ViewModels。
采用分层状态方法可显著减少错误。
本文讨论了开发者在管理 Jetpack Compose 状态时面临的挑战,尤其是在旋转和导航过程中状态重置的问题。强调理解状态管理的细微差别的重要性,包括使用 rememberSaveable 来保持状态持久性,以及在导航中使用共享 ViewModels。作者提供了实用的示例和最佳实践,以防止常见的陷阱,如不必要的重组和闪烁的列表。通过采用分层的状态管理方法,开发者可以显著减少错误并改善应用程序的用户体验。
Jetpack Compose 狀態的隱藏危險(及如何用實際範例修正它們)
Compose 中的狀態非常強大,但前提是你要了解它的陷阱。
重點摘要
常見問題包括旋轉和導航時狀態重置。
最佳實踐包括使用 rememberSaveable 和共享 ViewModels。
採用分層狀態方法可顯著減少錯誤。
本文探討了開發者在管理 Jetpack Compose 狀態時面臨的挑戰,特別是旋轉和導航過程中狀態重置的問題。強調理解狀態管理的細微差別的重要性,包括使用 rememberSaveable 來保持狀態持久性,以及在導航中使用共享 ViewModels。作者提供了實用的範例和最佳實踐,以防止常見的陷阱,如不必要的重組和閃爍的列表。通過採用分層的狀態管理方法,開發者可以顯著減少錯誤並改善應用程式的用戶體驗。
Dev.to Kotlin
作者:Anurag Dubey
發布:09-07 14:38
How to Request Admin Permissions in Flutter: Complete Implementation Guide
This comprehensive guide walks you through creating a complete working implementation with proper security considerations.
重點摘要
Admin permissions prevent app uninstallation.
Includes native Android implementation and Flutter integration.
Proper error handling and user feedback are essential.
This guide provides a detailed implementation of admin permissions in Flutter, aimed at developers building parental control apps, enterprise security solutions, or device management tools. It covers the necessary steps to enable and disable admin permissions, lock devices, and manage user consent effectively. The tutorial emphasizes the importance of transparency with users regarding permission requests and includes both native Android and Flutter code examples. Developers are advised to test their applications across multiple devices and Android versions to ensure compliance with security best practices and app store policies.
如何在 Flutter 中请求管理员权限:完整实施指南
本指南详细介绍了如何创建完整的实施,并考虑到适当的安全性。
重點摘要
管理员权限可防止应用程序被卸载。
包括原生 Android 实现和 Flutter 集成。
适当的错误处理和用户反馈至关重要。
本指南提供了在 Flutter 中实现管理员权限的详细步骤,旨在帮助开发者构建家长控制应用、企业安全解决方案或设备管理工具。内容涵盖了启用和禁用管理员权限、锁定设备及有效管理用户同意的必要步骤。教程强调了在请求权限时与用户保持透明的重要性,并包括原生 Android 和 Flutter 的代码示例。建议开发者在多个设备和 Android 版本上测试应用,以确保符合安全最佳实践和应用商店政策。
如何在 Flutter 中請求管理員權限:完整實作指南
本指南詳細介紹了如何創建完整的實作,並考慮到適當的安全性。
重點摘要
管理員權限可防止應用程式被卸載。
包括原生 Android 實作和 Flutter 整合。
適當的錯誤處理和用戶反饋至關重要。
本指南提供了在 Flutter 中實現管理員權限的詳細步驟,旨在幫助開發者構建家長控制應用、企業安全解決方案或設備管理工具。內容涵蓋了啟用和禁用管理員權限、鎖定設備及有效管理用戶同意的必要步驟。教程強調了在請求權限時與用戶保持透明的重要性,並包括原生 Android 和 Flutter 的代碼示例。建議開發者在多個設備和 Android 版本上測試應用,以確保符合安全最佳實踐和應用商店政策。
Medium Kotlin
作者:Santiago Mattiauda
發布:09-08 23:41
Stop using SharedPreferences in the main thread: detect all potential ANRs with Strict Preferences
SharedPreferences is one of the most widely used APIs in Android for storing settings and small key-value data.
重點摘要
Avoid using SharedPreferences on the main thread.
Detect potential ANRs with Strict Preferences.
Improve app performance and user experience.
The article emphasizes the importance of not using SharedPreferences on the main thread in Android development. This practice can lead to Application Not Responding (ANR) issues, which negatively impact user experience. By utilizing Strict Preferences, developers can detect potential ANRs and enhance the performance of their applications. The simplicity of SharedPreferences makes it a popular choice for storing settings and small key-value data, but caution is advised to ensure smooth app functionality.
停止在主线程中使用 SharedPreferences:使用 Strict Preferences 检测所有潜在的 ANR
SharedPreferences 是 Android 中最常用的 API 之一,用于存储设置和小型键值数据。
重點摘要
避免在主线程中使用 SharedPreferences。
使用 Strict Preferences 检测潜在的 ANR。
提升应用性能和用户体验。
本文强调在 Android 开发中,不应在主线程中使用 SharedPreferences。这种做法可能导致应用无响应(ANR)问题,从而对用户体验造成负面影响。通过使用 Strict Preferences,开发者可以检测潜在的 ANR,并提升应用的性能。尽管 SharedPreferences 因其简单性而受到广泛使用,但为了确保应用的流畅运行,开发者应谨慎使用。
停止在主線程中使用 SharedPreferences:使用 Strict Preferences 偵測所有潛在的 ANR
SharedPreferences 是 Android 中最常用的 API 之一,用於存儲設置和小型鍵值數據。
重點摘要
避免在主線程中使用 SharedPreferences。
使用 Strict Preferences 偵測潛在的 ANR。
提升應用性能和用戶體驗。
本文強調在 Android 開發中,不應在主線程中使用 SharedPreferences。這種做法可能導致應用無回應(ANR)問題,從而對用戶體驗造成負面影響。通過使用 Strict Preferences,開發者可以偵測潛在的 ANR,並提升應用的性能。儘管 SharedPreferences 因其簡單性而受到廣泛使用,但為了確保應用的流暢運行,開發者應謹慎使用。
Kotlin Weekly
作者:
發布:08-31 06:00
Kotlin Weekly #474
Watch ecnerwala and SecondThread face off in a live Kotlin speed-solving challenge at the ICPC World Finals.
重點摘要
Koog 0.4.0 enhances Kotlin-based AI agents.
Explore powerlifting data using Kotlin Notebook.
Learn best practices for Android ViewModel data loading.
In Kotlin Weekly #474, the highlights include the ICPC World Finals livestream featuring a Kotlin speed-solving challenge, the release of Koog 0.4.0 which enhances AI agents with new features, and an exploration of powerlifting data using Kotlin Notebook. Additionally, best practices for Android ViewModel data loading are discussed, along with innovative uses of Kotlin in mobile testing and build optimization. The issue also features various sponsored content and resources for Kotlin developers, making it a comprehensive update for the Kotlin community.
Kotlin Weekly #474
观看 ecnerwala 和 SecondThread 在 ICPC 世界总决赛中的 Kotlin 速度解题挑战。
重點摘要
Koog 0.4.0 增强了基于 Kotlin 的 AI 代理。
使用 Kotlin Notebook 探索举重数据。
学习 Android ViewModel 数据加载的最佳实践。
在 Kotlin Weekly #474 中,重点包括 ICPC 世界总决赛的直播,展示了 Kotlin 速度解题挑战,Koog 0.4.0 的发布增强了 AI 代理的新功能,以及使用 Kotlin Notebook 探索举重数据。此外,还讨论了 Android ViewModel 数据加载的最佳实践,以及在移动测试和构建优化中创新的 Kotlin 用法。本期还包含各种赞助内容和 Kotlin 开发者资源,为 Kotlin 社区提供了全面的更新。
Kotlin Weekly #474
觀看 ecnerwala 和 SecondThread 在 ICPC 世界總決賽中的 Kotlin 速度解題挑戰。
重點摘要
Koog 0.4.0 增強了基於 Kotlin 的 AI 代理。
使用 Kotlin Notebook 探索舉重數據。
學習 Android ViewModel 數據加載的最佳實踐。
在 Kotlin Weekly #474 中,重點包括 ICPC 世界總決賽的直播,展示了 Kotlin 速度解題挑戰,Koog 0.4.0 的發布增強了 AI 代理的新功能,以及使用 Kotlin Notebook 探索舉重數據。此外,還討論了 Android ViewModel 數據加載的最佳實踐,以及在移動測試和構建優化中創新的 Kotlin 用法。本期還包含各種贊助內容和 Kotlin 開發者資源,為 Kotlin 社區提供了全面的更新。
Kotlin Blog
作者:Alina Dolgikh
發布:08-22 15:02
Kotlin on the Backend – What’s New From KotlinConf 2025
KotlinConf 2025 has firmly placed server-side Kotlin in the spotlight.
重點摘要
Half of Kotlin users are now using it for backend development.
JetBrains announced a strategic partnership with Spring.
New AI tools for Kotlin development were introduced.
KotlinConf 2025 highlighted significant advancements in server-side Kotlin, showcasing its growing popularity among developers. A key revelation was that half of Kotlin users are now focused on backend development, a trend supported by previous reports. The conference featured a strategic partnership between JetBrains and Spring, aimed at enhancing Kotlin's capabilities in server applications. Additionally, JetBrains introduced new AI tools designed to assist Kotlin developers, further solidifying Kotlin's position in modern software development. The event underscored Kotlin's momentum in backend development, driven by community contributions and innovative tooling.
Kotlin 在后端的最新动态 – KotlinConf 2025
KotlinConf 2025 将服务器端 Kotlin 放在了聚光灯下。
重點摘要
一半的 Kotlin 用户现在专注于后端开发。
JetBrains 宣布与 Spring 的战略合作关系。
推出了新的 AI 工具以支持 Kotlin 开发。
KotlinConf 2025 突显了服务器端 Kotlin 的重大进展,展示了其在开发者中的日益受欢迎。会议的一个关键揭示是,现在一半的 Kotlin 用户专注于后端开发,这一趋势得到了以往报告的支持。会议中,JetBrains 与 Spring 宣布了战略合作关系,旨在增强 Kotlin 在服务器应用中的能力。此外,JetBrains 还推出了新的 AI 工具,旨在协助 Kotlin 开发者,进一步巩固了 Kotlin 在现代软件开发中的地位。此次活动强调了 Kotlin 在后端开发中的动力,这一切都得益于社区的贡献和创新的工具。
Kotlin 在後端的最新動態 – KotlinConf 2025
KotlinConf 2025 將伺服器端 Kotlin 放在了聚光燈下。
重點摘要
一半的 Kotlin 使用者現在專注於後端開發。
JetBrains 宣布與 Spring 的戰略夥伴關係。
推出了新的 AI 工具以支援 Kotlin 開發。
KotlinConf 2025 突顯了伺服器端 Kotlin 的重大進展,展示了其在開發者中的日益受歡迎。會議的一個關鍵揭示是,現在一半的 Kotlin 使用者專注於後端開發,這一趨勢得到了以往報告的支持。會議中,JetBrains 與 Spring 宣布了戰略夥伴關係,旨在增強 Kotlin 在伺服器應用中的能力。此外,JetBrains 還推出了新的 AI 工具,旨在協助 Kotlin 開發者,進一步鞏固了 Kotlin 在現代軟體開發中的地位。此次活動強調了 Kotlin 在後端開發中的動力,這一切都得益於社群的貢獻和創新的工具。
ProAndroidDev
作者:Akshat Divekar
發布:09-05 03:12
Mastering Conditional Layouts in Jetpack Compose: The Flexible Way
Learn how to intelligently show or hide Composables based on available space.
重點摘要
Jetpack Compose offers a declarative approach to UI development.
Intrinsic measurements allow efficient space management.
Conditional layouts prevent UI clutter and enhance user experience.
This article discusses the challenges of building conditional layouts in Jetpack Compose, particularly in adapting to varying screen sizes and content. It emphasizes the importance of managing screen real estate effectively, drawing from experiences in Android Auto development. The author explains how intrinsic measurements can be utilized to determine the minimum or maximum dimensions of Composables, allowing for dynamic visibility based on available space. By leveraging these techniques, developers can create clean and adaptable layouts that enhance user experience without cluttering the interface.
掌握 Jetpack Compose 中的条件布局:灵活的方法
学习如何根据可用空间智能地显示或隐藏 Composables。
重點摘要
Jetpack Compose 提供了声明式的 UI 开发方式。
内在测量允许有效的空间管理。
条件布局防止 UI 混乱并提升用户体验。
本文讨论了在 Jetpack Compose 中构建条件布局的挑战,特别是在适应不同屏幕尺寸和内容方面。强调有效管理屏幕空间的重要性,并借鉴了在 Android Auto 开发中的经验。作者解释了如何利用内在测量来确定 Composables 的最小或最大尺寸,从而根据可用空间动态调整可见性。通过利用这些技术,开发者可以创建干净且可适应的布局,提升用户体验,避免界面混乱。
掌握 Jetpack Compose 中的條件佈局:靈活的方式
學習如何根據可用空間智能地顯示或隱藏 Composables。
重點摘要
Jetpack Compose 提供了宣告式的 UI 開發方式。
內在測量允許有效的空間管理。
條件佈局防止 UI 混亂並提升用戶體驗。
本文探討了在 Jetpack Compose 中構建條件佈局的挑戰,特別是在適應不同的螢幕尺寸和內容方面。強調有效管理螢幕空間的重要性,並借鑒了在 Android Auto 開發中的經驗。作者解釋了如何利用內在測量來確定 Composables 的最小或最大尺寸,從而根據可用空間動態調整可見性。通過利用這些技術,開發者可以創建乾淨且可適應的佈局,提升用戶體驗,避免界面混亂。
Dev.to Kotlin
作者:Димитър Трифонов (dvt32)
發布:09-08 12:49
Introduction to Kotlin (for Java Programmers)
Kotlin is closely related to Java and is increasingly chosen over it in various software projects.
重點摘要
Kotlin runs on the JVM and is designed by JetBrains.
It offers interoperability with Java, allowing easy code conversion.
Learning Kotlin can enhance your skills as a Java programmer.
Kotlin is a programming language that operates on the Java Virtual Machine (JVM) and is designed by JetBrains, known for IntelliJ IDEA. It is increasingly favored for Android development and web programming, especially in backend applications. Kotlin's interoperability with Java allows developers to use existing Java libraries and frameworks seamlessly. The language simplifies coding by reducing the amount of code needed while maintaining access to Java's capabilities. Learning Kotlin can be a smooth transition for Java programmers, enhancing their skill set without completely stepping away from the Java ecosystem.
Kotlin 介绍(针对 Java 程序员)
Kotlin 与 Java 密切相关,并在各种软件项目中越来越受到青睐。
重點摘要
Kotlin 在 JVM 上运行,并由 JetBrains 设计。
它与 Java 具有互操作性,允许轻松的代码转换。
学习 Kotlin 可以提升你作为 Java 程序员的技能。
Kotlin 是一种运行在 Java 虚拟机(JVM)上的编程语言,由 JetBrains 设计,该公司以 IntelliJ IDEA 而闻名。Kotlin 在 Android 开发和网页编程中越来越受到青睐,特别是在后端应用程序中。Kotlin 与 Java 的互操作性使开发人员能够无缝使用现有的 Java 库和框架。这种语言通过减少所需的代码量来简化编码,同时保持对 Java 功能的访问。对于 Java 程序员来说,学习 Kotlin 可以是一个平滑的过渡,提升他们的技能而不必完全脱离 Java 生态系统。
Kotlin 介紹(針對 Java 程式設計師)
Kotlin 與 Java 密切相關,並在各種軟體專案中越來越受到青睞。
重點摘要
Kotlin 在 JVM 上運行,並由 JetBrains 設計。
它與 Java 具有互操作性,允許輕鬆的代碼轉換。
學習 Kotlin 可以提升你作為 Java 程式設計師的技能。
Kotlin 是一種運行在 Java 虛擬機(JVM)上的程式語言,由 JetBrains 設計,該公司以 IntelliJ IDEA 而聞名。Kotlin 在 Android 開發和網頁編程中越來越受到青睞,特別是在後端應用程序中。Kotlin 與 Java 的互操作性使開發人員能夠無縫使用現有的 Java 庫和框架。這種語言通過減少所需的代碼量來簡化編碼,同時保持對 Java 功能的訪問。對於 Java 程式設計師來說,學習 Kotlin 可以是一個平滑的過渡,提升他們的技能而不必完全脫離 Java 生態系統。
Medium Kotlin
作者:deelayu peston
發布:09-09 00:20
Clone Cards in Europe and the USA: Availability for ATM and POS Systems
Clone cards come with a full set of details including SSN and DOB.
重點摘要
Clone cards are available for both credit and debit use.
They can be purchased with a good balance.
The article discusses the implications of using these cards.
The article discusses the availability and implications of clone cards in Europe and the USA, particularly focusing on their use with ATM and POS systems. It highlights that these clone cards come with complete details such as Social Security Numbers (SSN) and Dates of Birth (DOB), making them usable for both credit and debit transactions. The piece raises concerns about the potential risks associated with purchasing and using such cards, emphasizing the need for awareness regarding their legality and security.
克隆卡在欧洲和美国:ATM和POS系统的可用性
克隆卡附带完整的个人信息,包括社会安全号码和出生日期。
重點摘要
克隆卡可用于信用卡和借记卡。
可以以良好的余额购买这些卡。
文章讨论了使用这些卡的影响。
本文讨论了克隆卡在欧洲和美国的可用性,特别是其在ATM和POS系统中的使用。文章强调,这些克隆卡附带完整的个人信息,如社会安全号码(SSN)和出生日期(DOB),使其可用于信用卡和借记卡交易。文章还提出了购买和使用这些卡可能带来的风险,强调了对其合法性和安全性的认识需求。
克隆卡在歐洲和美國:ATM和POS系統的可用性
克隆卡附帶完整的個人信息,包括社會安全號碼和出生日期。
重點摘要
克隆卡可用於信用卡和借記卡。
可以以良好的餘額購買這些卡。
文章討論了使用這些卡的影響。
這篇文章探討了克隆卡在歐洲和美國的可用性及其在ATM和POS系統中的應用,特別強調這些克隆卡附帶完整的個人信息,如社會安全號碼(SSN)和出生日期(DOB),使其可用於信用卡和借記卡交易。文章提出了購買和使用這些卡可能帶來的風險,強調了對其合法性和安全性的認識需求。
Kotlin Weekly
作者:
發布:09-07 08:31
Kotlin Weekly #475
JetBrains is conducting a study to improve the Kotlin Multiplatform landing page.
重點摘要
JetBrains seeks mobile developers for a Kotlin Multiplatform study.
Emil Flach outlines future priorities for Kotlin Multiplatform projects.
Duolingo shares insights on optimizing Android app performance.
In the latest issue of Kotlin Weekly, JetBrains is inviting mobile developers to participate in a research study aimed at enhancing the Kotlin Multiplatform landing page. Emil Flach discusses the upcoming priorities for Kotlin Multiplatform and Compose Multiplatform over the next six to twelve months. Additionally, Duolingo reveals how they improved their Android app's performance, focusing on startup speed and daily active users through various optimization techniques.
Kotlin Weekly #475
JetBrains 正在进行一项研究,以改善 Kotlin Multiplatform 登陆页面。
重點摘要
JetBrains 寻求移动开发者参加 Kotlin Multiplatform 研究。
Emil Flach 概述 Kotlin Multiplatform 项目的未来优先事项。
Duolingo 分享优化 Android 应用性能的见解。
在最新一期的 Kotlin Weekly 中,JetBrains 邀请移动开发者参与一项旨在提升 Kotlin Multiplatform 登陆页面的研究。Emil Flach 讨论了未来六到十二个月内,Kotlin Multiplatform 和 Compose Multiplatform 的优先事项。此外,Duolingo 揭示了他们如何通过各种优化技术改善 Android 应用的性能,重点在于启动速度和每日活跃用户的提升。
Kotlin Weekly #475
JetBrains 正在進行一項研究,以改善 Kotlin Multiplatform 登陸頁面。
重點摘要
JetBrains 尋求移動開發者參加 Kotlin Multiplatform 研究。
Emil Flach 概述 Kotlin Multiplatform 項目的未來優先事項。
Duolingo 分享優化 Android 應用性能的見解。
在最新一期的 Kotlin Weekly 中,JetBrains 邀請移動開發者參加一項旨在提升 Kotlin Multiplatform 登陸頁面的研究。Emil Flach 討論了未來六到十二個月內,Kotlin Multiplatform 和 Compose Multiplatform 的優先事項。此外,Duolingo 揭示了他們如何通過各種優化技術改善 Android 應用的性能,重點在於啟動速度和每日活躍用戶的提升。
Kotlin Blog
作者:Ekaterina Petrova
發布:08-25 18:47
What’s Next for Kotlin Multiplatform and Compose Multiplatform – August 2025 Update
Our goals for Kotlin Multiplatform are closely aligned with those detailed in the Kotlin roadmap.
重點摘要
Improving the iOS target and developer experience.
Expanding web target capabilities with Kotlin/Wasm.
Enhancing IDE support for multiplatform development.
The August 2025 update outlines the priorities for Kotlin Multiplatform and Compose Multiplatform over the next six to twelve months. Key focuses include improving the iOS target for a better developer experience, enabling more use cases for web targets like Kotlin/Wasm, and enhancing the IDE support for multiplatform development. The update also highlights the release of Compose Multiplatform for Web in Beta, the implementation of new features for iOS, and ongoing efforts to reduce Kotlin/Native build times. Overall, the roadmap emphasizes collaboration with Google and community feedback to ensure robust and user-friendly multiplatform development.
Kotlin 多平台与 Compose 多平台的未来 – 2025 年 8 月更新
Kotlin 多平台的目标与 Kotlin 路线图中的内容密切相关。
重點摘要
改善 iOS 目标和开发者体验。
扩展 Kotlin/Wasm 的网页目标能力。
增强多平台开发的 IDE 支持。
2025 年 8 月的更新概述了未来六到十二个月内 Kotlin 多平台和 Compose 多平台的优先事项。主要重点包括改善 iOS 目标以提升开发者体验、为 Kotlin/Wasm 等网页目标启用更多用例,以及增强多平台开发的 IDE 支持。更新还强调了 Compose 多平台网页的 Beta 版本发布、iOS 新功能的实施以及持续减少 Kotlin/Native 构建时间的努力。整体路线图强调了与 Google 的合作以及社区反馈,以确保稳健且用户友好的多平台开发。
Kotlin 多平台與 Compose 多平台的未來 – 2025 年 8 月更新
Kotlin 多平台的目標與 Kotlin 路線圖中的內容密切相關。
重點摘要
改善 iOS 目標和開發者體驗。
擴展 Kotlin/Wasm 的網頁目標能力。
增強多平台開發的 IDE 支援。
2025 年 8 月的更新概述了未來六到十二個月內 Kotlin 多平台和 Compose 多平台的優先事項。主要重點包括改善 iOS 目標以提升開發者體驗、為 Kotlin/Wasm 等網頁目標啟用更多用例,以及增強多平台開發的 IDE 支援。更新還強調了 Compose 多平台網頁的 Beta 版本發布、iOS 新功能的實施以及持續減少 Kotlin/Native 建構時間的努力。整體路線圖強調了與 Google 的合作以及社群反饋,以確保穩健且使用友好的多平台開發。
ProAndroidDev
作者:Ahmed Tikiwa
發布:09-08 04:58
The 16KB Question: Why Android’s Big Memory Change Matters and How to Prepare Your App
The transition to a 16-kilobyte (KB) memory page size in Android 15 is one of those changes.
重點摘要
Android 15 shifts to 16KB memory pages.
Native code apps need immediate action.
Follow a 3-step plan: Audit, Upgrade, Test.
Android 15 introduces a significant change by transitioning to 16KB memory pages, which enhances performance and efficiency. This change is particularly crucial for apps using native code, as they may face compatibility issues if not updated. Developers must audit their applications to identify native code usage, upgrade their tools to ensure 16KB compatibility, and rigorously test their apps to avoid crashes. The deadline for compliance is November 1, 2025, making it essential for developers to act promptly to maintain a smooth user experience on future Android devices.
16KB 问题:为什么 Android 的大内存变化重要,以及如何准备您的应用
Android 15 的 16KB 内存页面大小转变是一个重要变化。
重點摘要
Android 15 转向 16KB 内存页面。
使用原生代码的应用需要立即行动。
遵循三步计划:审核、升级、测试。
Android 15 通过转向 16KB 内存页面引入了一项重要变化,这将提升性能和效率。这一变化对于使用原生代码的应用尤为关键,因为如果不进行更新,可能会面临兼容性问题。开发者必须审核他们的应用以识别原生代码的使用情况,升级工具以确保 16KB 的兼容性,并严格测试应用以避免崩溃。合规的截止日期是 2025 年 11 月 1 日,因此开发者必须及时行动,以保持未来 Android 设备上的流畅用户体验。
16KB 問題:為什麼 Android 的大記憶體變化重要,以及如何準備您的應用程式
Android 15 的 16KB 記憶體頁面大小轉變是其中一個重要改變。
重點摘要
Android 15 轉向 16KB 記憶體頁面。
使用原生代碼的應用程式需要立即行動。
遵循三步驟計畫:審核、升級、測試。
Android 15 透過轉向 16KB 記憶體頁面引入了一項重要變化,這將提升性能和效率。這一變化對於使用原生代碼的應用程式尤為關鍵,因為如果不進行更新,可能會面臨兼容性問題。開發者必須審核他們的應用程式以識別原生代碼的使用情況,升級工具以確保 16KB 的兼容性,並嚴格測試應用程式以避免崩潰。合規的截止日期是 2025 年 11 月 1 日,因此開發者必須及時行動,以維持未來 Android 設備上的流暢用戶體驗。
Medium Kotlin
作者:Sivavishnu
發布:09-09 00:36
Kotlin Coroutines Tip: Don’t Use Only IO Dispatcher!
Many Kotlin developers—especially beginners—put everything inside Dispatchers.IO.
重點摘要
Avoid putting everything in Dispatchers.IO.
Beginners often misuse IO dispatcher.
Understand proper coroutine usage.
In the realm of Kotlin development, a common mistake among many developers, particularly those who are new to the language, is the tendency to rely solely on Dispatchers.IO for all coroutine tasks. This practice can lead to inefficiencies and performance issues in applications. It is crucial for developers to understand the appropriate use of different dispatchers to optimize their code and ensure smooth execution of coroutines.
Kotlin 协程提示:不要仅使用 IO 调度器!
许多 Kotlin 开发者—尤其是初学者—将所有内容放在 Dispatchers.IO 中。
重點摘要
避免将所有内容放在 Dispatchers.IO 中。
初学者常常错误使用 IO 调度器。
了解正确的协程使用方式。
在 Kotlin 开发领域,许多开发者,特别是刚入门的开发者,常常会犯一个常见的错误,就是过度依赖 Dispatchers.IO 来处理所有的协程任务。这种做法可能会导致应用程序的效率低下和性能问题。因此,开发者必须了解不同调度器的正确使用方式,以优化代码并确保协程的平稳执行。
Kotlin 協程提示:不要僅使用 IO 調度器!
許多 Kotlin 開發者—尤其是初學者—將所有內容放在 Dispatchers.IO 中。
重點摘要
避免將所有內容放在 Dispatchers.IO 中。
初學者常常錯誤使用 IO 調度器。
了解正確的協程使用方式。
在 Kotlin 開發領域,許多開發者,特別是剛入門的開發者,常常會犯一個常見的錯誤,就是過度依賴 Dispatchers.IO 來處理所有的協程任務。這種做法可能會導致應用程式的效率低下和性能問題。因此,開發者必須了解不同調度器的正確使用方式,以優化代碼並確保協程的平穩執行。
Kotlin Blog
作者:Ksenia Shneyveys
發布:08-26 19:21
How Kotlin Notebook Helps You Teach Programming
Kotlin Notebook is a great tool for educators who want to teach programming in a more hands-on way.
重點摘要
Kotlin Notebook combines runnable code and Markdown explanations.
It allows for incremental execution and structured lessons.
Easy setup and sharing make it ideal for online classes.
Kotlin Notebook is an innovative educational tool that enhances programming instruction by integrating runnable code, Markdown explanations, and visualizations in a single interactive environment. This approach eliminates the need for switching between multiple applications during lectures, allowing educators to present material in a cohesive manner. The platform supports incremental execution, enabling students to debug and test code snippets in isolation, which fosters a more engaging learning experience. Additionally, its easy setup and sharing capabilities facilitate online teaching, making it a valuable resource for educators looking to improve their programming courses.
Kotlin Notebook 如何帮助您教授编程
Kotlin Notebook 是一个适合希望以更实践方式教授编程的教育工作者的优秀工具。
重點摘要
Kotlin Notebook 结合可执行代码和 Markdown 解释。
它允许增量执行和结构化课程。
简单的设置和共享使其非常适合在线课程。
Kotlin Notebook 是一个创新的教育工具,通过将可执行代码、Markdown 解释和可视化整合在一个互动环境中,提升编程教学的效果。这种方法消除了在讲座中需要在多个应用程序之间切换的需求,使教育者能够以一致的方式呈现材料。该平台支持增量执行,让学生能够独立调试和测试代码片段,从而促进更具吸引力的学习体验。此外,其简单的设置和共享功能使得在线教学变得更加便利,成为希望改善编程课程的教育工作者的宝贵资源。
Kotlin Notebook 如何幫助您教授程式設計
Kotlin Notebook 是一個適合希望以更實作方式教授程式設計的教育工作者的優秀工具。
重點摘要
Kotlin Notebook 結合可執行代碼和 Markdown 解釋。
它允許增量執行和結構化課程。
簡單的設置和共享使其非常適合線上課程。
Kotlin Notebook 是一個創新的教育工具,通過將可執行代碼、Markdown 解釋和可視化整合在一個互動環境中,提升程式設計教學的效果。這種方法消除了在講座中需要在多個應用程序之間切換的需求,使教育者能夠以一致的方式呈現材料。該平台支持增量執行,讓學生能夠獨立調試和測試代碼片段,從而促進更具吸引力的學習體驗。此外,其簡單的設置和共享功能使得線上教學變得更加便利,成為希望改善程式設計課程的教育工作者的寶貴資源。
Medium Kotlin
作者:Pee Pheak
發布:09-09 02:25
From Zero to Production Hero: Building a Real-Time Chat App with Spring Boot, Kotlin & WebSockets
The practical follow-up that turns your Spring Boot + Kotlin knowledge into a viral-worthy project.
重點摘要
Learn to build a real-time chat application.
Utilize Spring Boot and Kotlin effectively.
Implement WebSockets for real-time communication.
This article guides readers through the process of creating a real-time chat application using Spring Boot and Kotlin. It emphasizes the practical application of knowledge in these technologies, aiming to transform theoretical understanding into a tangible project. By leveraging WebSockets, developers can achieve real-time communication, making the chat app interactive and engaging. This project serves as a valuable resource for those looking to enhance their skills and create something impactful.
从零到生产英雄:使用 Spring Boot、Kotlin 和 WebSockets 构建实时聊天应用
这是一个将你的 Spring Boot + Kotlin 知识转化为病毒式项目的实用后续。
重點摘要
学习构建实时聊天应用。
有效利用 Spring Boot 和 Kotlin。
实现 WebSockets 进行实时通信。
本文指导读者如何使用 Spring Boot 和 Kotlin 创建实时聊天应用。它强调将这些技术的知识实际应用,旨在将理论理解转化为具体项目。通过利用 WebSockets,开发者可以实现实时通信,使聊天应用互动且引人入胜。这个项目对于希望提升技能并创造有影响力作品的人来说,是一个宝贵的资源。
從零到生產英雄:使用 Spring Boot、Kotlin 和 WebSockets 建立實時聊天應用程式
這是一個將你的 Spring Boot + Kotlin 知識轉化為病毒式項目的實用後續。
重點摘要
學習建立實時聊天應用程式。
有效利用 Spring Boot 和 Kotlin。
實現 WebSockets 以進行實時通信。
這篇文章指導讀者如何使用 Spring Boot 和 Kotlin 創建實時聊天應用程式。它強調將這些技術的知識實際應用,旨在將理論理解轉化為具體項目。通過利用 WebSockets,開發者可以實現實時通信,使聊天應用程式互動且引人入勝。這個項目對於希望提升技能並創造有影響力作品的人來說,是一個寶貴的資源。
Kotlin Blog
作者:Alyona Chernyaeva
發布:08-27 10:18
Exploring Data Science With Kotlin: A Powerlifting Case Study
This blog post uses a dataset from the sport of powerlifting to get you up and running with Kotlin Notebooks.
重點摘要
Learn data science basics using Kotlin.
Connect to a PostgreSQL data source for analysis.
Visualize findings with the Kandy Library.
This blog post introduces readers to data science using Kotlin through a case study on powerlifting. It highlights the use of Kotlin Notebooks, DataFrame, and Kandy for data analysis and visualization. The author discusses the importance of understanding datasets and demonstrates how to connect to a PostgreSQL database, manipulate data, and create visualizations. By analyzing a powerlifting dataset, the post aims to answer research questions about the sport, specifically the impact of successful lift attempts on winning outcomes. The article emphasizes the iterative nature of data science and encourages readers to explore their own datasets.
使用 Kotlin 探索数据科学:一个举重案例研究
这篇博客文章使用举重运动的数据集,帮助您快速上手 Kotlin 笔记本。
重點摘要
学习使用 Kotlin 的数据科学基础。
连接 PostgreSQL 数据源进行分析。
使用 Kandy 库可视化结果。
这篇博客文章通过一个举重案例研究,向读者介绍了使用 Kotlin 进行数据科学的基本概念。文章强调了使用 Kotlin 笔记本、DataFrame 和 Kandy 进行数据分析和可视化的重要性。作者讨论了理解数据集的重要性,并演示了如何连接到 PostgreSQL 数据库、操作数据并创建可视化图表。通过分析举重数据集,文章旨在回答有关该运动的研究问题,特别是成功举重次数对获胜结果的影响。文章强调了数据科学的迭代性,并鼓励读者探索自己的数据集。
使用 Kotlin 探索資料科學:一個舉重案例研究
這篇博客文章使用舉重運動的數據集,幫助您快速上手 Kotlin 筆記本。
重點摘要
學習使用 Kotlin 的資料科學基礎。
連接 PostgreSQL 數據源進行分析。
使用 Kandy 庫可視化結果。
這篇博客文章通過一個舉重案例研究,向讀者介紹了使用 Kotlin 進行資料科學的基本概念。文章強調了使用 Kotlin 筆記本、DataFrame 和 Kandy 進行數據分析和可視化的重要性。作者討論了理解數據集的重要性,並演示了如何連接到 PostgreSQL 數據庫、操作數據並創建可視化圖表。通過分析舉重數據集,文章旨在回答有關該運動的研究問題,特別是成功舉重次數對獲勝結果的影響。文章強調了資料科學的迭代性,並鼓勵讀者探索自己的數據集。
Medium Kotlin
作者:Abhinay
發布:09-09 03:32
ViewModel works internally through several key mechanisms
ViewModelStore and ViewModelProvider are essential components.
重點摘要
ViewModelStore manages ViewModels' lifecycle.
ViewModelProvider creates and retrieves ViewModels.
These mechanisms ensure data survives configuration changes.
The article discusses the internal workings of ViewModel in Android development, focusing on key components like ViewModelStore and ViewModelProvider. ViewModelStore is responsible for managing the lifecycle of ViewModels, ensuring they persist through configuration changes. Meanwhile, ViewModelProvider facilitates the creation and retrieval of ViewModels, allowing developers to maintain data integrity across different states of the application. Understanding these mechanisms is crucial for effective state management in Android applications.
ViewModel 通过几个关键机制在内部运作
ViewModelStore 和 ViewModelProvider 是重要组件。
重點摘要
ViewModelStore 管理 ViewModel 的生命周期。
ViewModelProvider 创建和检索 ViewModel。
这些机制确保数据在配置更改中持续存在。
本文探讨了 Android 开发中 ViewModel 的内部运作,重点介绍了 ViewModelStore 和 ViewModelProvider 等关键组件。ViewModelStore 负责管理 ViewModel 的生命周期,确保它们在配置更改中持续存在。同时,ViewModelProvider 则促进 ViewModel 的创建和检索,使开发者能够在应用程序的不同状态中维持数据的完整性。了解这些机制对于有效的状态管理至关重要。
ViewModel 透過幾個關鍵機制在內部運作
ViewModelStore 和 ViewModelProvider 是重要組件。
重點摘要
ViewModelStore 管理 ViewModel 的生命週期。
ViewModelProvider 創建和檢索 ViewModel。
這些機制確保數據在配置變更中持續存在。
本文探討了 Android 開發中 ViewModel 的內部運作,重點介紹了 ViewModelStore 和 ViewModelProvider 等關鍵組件。ViewModelStore 負責管理 ViewModel 的生命週期,確保它們在配置變更中持續存在。同時,ViewModelProvider 則促進 ViewModel 的創建和檢索,使開發者能夠在應用程序的不同狀態中維持數據的完整性。了解這些機制對於有效的狀態管理至關重要。
Kotlin Blog
作者:Vadim Briliantov
發布:08-28 09:26
Koog 0.4.0 Is Out: Observable, Predictable, and Deployable Anywhere You Build
Koog 0.4.0 is about making agents observable, seamlessly deployable, and more predictable.
重點摘要
Full OpenTelemetry support for W&B Weave and Langfuse.
Drop-in Ktor integration for easy API setup.
New iOS target for Kotlin Multiplatform support.
Koog 0.4.0 introduces significant enhancements aimed at improving the observability, deployability, and predictability of agents. Key features include full OpenTelemetry support for W&B Weave and Langfuse, allowing users to monitor agent activities effectively. The new Ktor integration simplifies API setup, enabling developers to connect agents seamlessly. Additionally, Koog now supports iOS, facilitating the deployment of agents across multiple platforms with consistent strategy graphs and observability hooks. This release also includes support for GPT-5 and custom parameters, enhancing the model's capabilities in handling complex tasks.
Koog 0.4.0 发布:可观察、可预测,并可在您构建的任何地方部署
Koog 0.4.0 专注于使代理可观察、无缝部署,并提高其输出的可预测性。
重點摘要
全面支持 W&B Weave 和 Langfuse 的 OpenTelemetry。
Ktor 插件集成,轻松设置 API。
新增 iOS 目标,支持 Kotlin 多平台。
Koog 0.4.0 引入了显著的增强功能,旨在改善代理的可观察性、可部署性和可预测性。主要特点包括对 W&B Weave 和 Langfuse 的全面 OpenTelemetry 支持,使用户能够有效监控代理活动。新的 Ktor 集成简化了 API 设置,使开发者能够无缝连接代理。此外,Koog 现在支持 iOS,促进了在多个平台上部署代理的一致策略图和可观察性钩子。此版本还包括对 GPT-5 和自定义参数的支持,增强了模型处理复杂任务的能力。
Koog 0.4.0 發佈:可觀察、可預測,並可在您構建的任何地方部署
Koog 0.4.0 專注於使代理可觀察、無縫部署,並提高其輸出的可預測性。
重點摘要
全面支援 W&B Weave 和 Langfuse 的 OpenTelemetry。
Ktor 插件整合,輕鬆設置 API。
新增 iOS 目標,支援 Kotlin 多平台。
Koog 0.4.0 引入了顯著的增強功能,旨在改善代理的可觀察性、可部署性和可預測性。主要特點包括對 W&B Weave 和 Langfuse 的全面 OpenTelemetry 支援,使用戶能夠有效監控代理活動。新的 Ktor 整合簡化了 API 設置,使開發者能夠無縫連接代理。此外,Koog 現在支援 iOS,促進了在多個平台上部署代理的一致策略圖和可觀察性鉤子。此版本還包括對 GPT-5 和自定義參數的支援,增強了模型處理複雜任務的能力。
Medium Kotlin
作者:Sivavishnu
發布:09-09 03:53
Master Kotlin Flow: Ultimate Guide for Reactive Android Development
Kotlin Flow is essential for modern reactive programming in Android.
重點摘要
Kotlin Flow simplifies asynchronous programming.
It provides a powerful way to handle data streams.
Understanding Flow is crucial for reactive Android development.
Kotlin Flow is a key component in modern Android development, enabling developers to handle asynchronous programming with ease. This ultimate guide covers the fundamentals of Kotlin Flow, emphasizing its importance in managing data streams effectively. By mastering Kotlin Flow, developers can enhance their reactive programming skills, making their applications more responsive and efficient.
掌握 Kotlin Flow:反应式 Android 开发的终极指南
Kotlin Flow 是现代 Android 反应式编程的重要工具。
重點摘要
Kotlin Flow 简化了异步编程。
它提供了处理数据流的强大方式。
理解 Flow 对于反应式 Android 开发至关重要。
Kotlin Flow 是现代 Android 开发中的关键组件,使开发者能够轻松处理异步编程。这本终极指南涵盖了 Kotlin Flow 的基本概念,强调其在有效管理数据流方面的重要性。通过掌握 Kotlin Flow,开发者可以提升他们的反应式编程技能,使应用程序更具响应性和效率。
掌握 Kotlin Flow:反應式 Android 開發的終極指南
Kotlin Flow 是現代 Android 反應式編程的重要工具。
重點摘要
Kotlin Flow 簡化了非同步編程。
它提供了處理數據流的強大方式。
理解 Flow 對於反應式 Android 開發至關重要。
Kotlin Flow 是現代 Android 開發中的關鍵組件,使開發者能夠輕鬆處理非同步編程。這本終極指南涵蓋了 Kotlin Flow 的基本概念,強調其在有效管理數據流方面的重要性。通過掌握 Kotlin Flow,開發者可以提升他們的反應式編程技能,使應用程序更具響應性和效率。
Kotlin Blog
作者:Ksenia Shneyveys
發布:08-29 19:29
ICPC World Finals Livestream: ecnerwala and SecondThread Speed-Solving Kotlin Challenge
Join us live from the ICPC World Finals in Baku, Azerbaijan, for a special event.
重點摘要
Live match on September 2, 2025, at 9:30 am UTC.
Competitors include Andrew 'ecnerwala' He and David 'SecondThread' Harmeyer.
The problem set will be from the Kotlin Heroes: Episode 13 practice round.
The ICPC World Finals will feature a live speed-solving match between top competitive programmers Andrew 'ecnerwala' He and David 'SecondThread' Harmeyer on September 2, 2025, at 9:30 am UTC. Hosted by Sebastian Aigner from JetBrains, the event will showcase the competitors solving Kotlin problems in real-time, demonstrating their skills under pressure. This match not only highlights the strengths of Kotlin as a programming language but also serves as an invitation for viewers to engage with competitive programming. The Kotlin Heroes contest will follow the livestream, providing an opportunity for participants to test their problem-solving abilities.
ICPC 世界总决赛直播:ecnerwala 和 SecondThread 的 Kotlin 快速解题挑战
我们将在阿塞拜疆巴库的 ICPC 世界总决赛现场直播特别活动。
重點摘要
直播时间:2025年9月2日,UTC 上午9:30。
参赛者包括 Andrew 'ecnerwala' He 和 David 'SecondThread' Harmeyer。
题目来自 Kotlin Heroes:第13集的练习赛。
ICPC 世界总决赛将于2025年9月2日上午9:30(UTC)举行一场直播的快速解题比赛,参赛者为顶尖竞技程序员 Andrew 'ecnerwala' He 和 David 'SecondThread' Harmeyer。活动由 JetBrains 的 Sebastian Aigner 主持,展示参赛者在压力下实时解决 Kotlin 问题的能力,并强调 Kotlin 作为编程语言的优势。这场比赛不仅吸引观众参与竞技编程,还为参与者提供了参加 Kotlin Heroes 比赛的机会,让他们能够测试自己的解题能力。
ICPC 世界總決賽直播:ecnerwala 與 SecondThread 的 Kotlin 快速解題挑戰
我們將在阿塞拜疆巴庫的 ICPC 世界總決賽現場直播特別活動。
重點摘要
直播時間:2025年9月2日,UTC 上午9:30。
參賽者包括 Andrew 'ecnerwala' He 和 David 'SecondThread' Harmeyer。
題目來自 Kotlin Heroes:第13集的練習賽。
ICPC 世界總決賽將於2025年9月2日上午9:30(UTC)舉行一場直播的快速解題比賽,參賽者為頂尖競技程式設計師 Andrew 'ecnerwala' He 和 David 'SecondThread' Harmeyer。活動由 JetBrains 的 Sebastian Aigner 主持,將展示參賽者在壓力下即時解決 Kotlin 問題的能力,並突顯 Kotlin 作為程式語言的優勢。這場比賽不僅吸引觀眾參與競技程式設計,還為參賽者提供了參加 Kotlin Heroes 比賽的機會,讓他們能夠測試自己的解題能力。
Medium Kotlin
作者:Abhinay
發布:09-09 04:06
Understanding ViewModel Internals: A Deep Dive with Real-World Implementation
How Android’s ViewModel actually works under the hood and why it matters for your app’s architecture.
重點摘要
Explores the inner workings of Android's ViewModel.
Highlights the importance of ViewModel in app architecture.
Provides real-world implementation examples.
This article delves into the internal mechanics of Android's ViewModel, explaining its significance in the architecture of applications. It emphasizes how understanding these internals can enhance the development process and improve application performance. The author also shares practical implementation examples to illustrate the concepts discussed, making it easier for developers to grasp the importance of ViewModel in their projects.
理解 ViewModel 的内部运作:深入探讨与实际应用
Android 的 ViewModel 如何在底层运作,以及这对应用架构的重要性。
重點摘要
探讨 Android 的 ViewModel 内部运作。
强调 ViewModel 在应用架构中的重要性。
提供实际的实现范例。
这篇文章深入探讨了 Android 的 ViewModel 内部机制,解释了其在应用架构中的重要性。作者强调,理解这些内部运作可以提升开发过程并改善应用性能。此外,文章还分享了实际的实现范例,以帮助开发者更好地理解 ViewModel 在其项目中的重要性。
理解 ViewModel 的內部運作:深入探討與實際應用
Android 的 ViewModel 如何在底層運作,以及這對應用架構的重要性。
重點摘要
探討 Android 的 ViewModel 內部運作。
強調 ViewModel 在應用架構中的重要性。
提供實際的實作範例。
這篇文章深入探討了 Android 的 ViewModel 內部機制,解釋了其在應用架構中的重要性。作者強調,理解這些內部運作可以提升開發過程並改善應用性能。此外,文章還分享了實際的實作範例,以幫助開發者更好地理解 ViewModel 在其專案中的重要性。