Weekend good reads for Apple developers #2023/33

Great weekend for another big pack of great articles to go through.

And one video on SwiftData:

https://www.youtube.com/watch?v=y3LofRLPUM8
https://www.youtube.com/watch?v=y3LofRLPUM8

That's a lot. Weekend will be packed.

Kotlin 1.8.0 Released

The Kotlin 1.8.0 release is out.
Here are some of its biggest highlights:

  • New experimental functions for JVM: recursively copy or delete directory content
  • Improved kotlin-reflect performance
  • New -Xdebug compiler option for better debugging experience
  • kotlin-stdlib-jdk7 and kotlin-stdlib-jdk8 merged into kotlin-stdlib
  • Improved Objective-C/Swift interoperability
  • Compatibility with Gradle 7.3

more: https://kotlinlang.org/docs/whatsnew18.html

KotlinDL 0.5 is out!

According to the latest blog post we now have quite interesting features on Android:

Version 0.5 of our deep learning library, KotlinDL, is now available! This release focuses on the new API for the flexible and easy-to-use deployment of ONNX models on Android. We have reworked the Preprocessing DSL, introduced support for ONNX runtime execution providers, and more. Here’s a summary of what you can expect from this release: […]

More:
https://blog.jetbrains.com/kotlin/2022/12/kotlindl-0-5-has-come-to-android/

Weekend good reads for Android developers, issue #40 (45/2022)

The weekend is coming so we have some reads for you:

SIMPLE IS NOT EASY

Unfortunately, most of the examples showing Clean Architecture and Hexagonal Architecture show that this is the model way. Abstraction on top of abstraction and next abstraction. But still, writing simple and easy to read code is not easy. It requires multiple iterations and effort. Read more in this article.

Mastering Android Dialogs: Don’t follow official Google Guides

This article explains why Google Guides for Dialogs are bad and what risks you and your apps may face if you follow them.

Performance Considerations for Memory Leaks: An Android Cookbook

Memory leaks can be found everywhere, in application code, dependencies, the Android operating system, and even in the JVM. It is difficult to come up with a complete list of the reasons why these problems occur, but showing a broad range can help us better characterize what they may be like. This great article gives you a better understanding of what memory leaks are.

Declarative UI — What, How, and Why?

This short but succinct post perfectly explains Declarative programming paradigm.

Library of the week:

https://github.com/touchlab/xcode-kotlin

The xcode-kotlin plugin allows debugging of Kotlin code running in an iOS application, directly from Xcode.

Have a nice Weekend!

Weekend good reads for Android developers, issue #39 (38/2022)

The weekend is in progress but we are sharing some interesting articles with you:

How to automate your UI testing using Maestro

UI testing is usually ignored. The main reason why it is like that is the complexity of most of test frameworks. The Maestro library changes the way you think about UI testing and in my opinion can be considered as great tool.

Type modelling in Kotlin
Jan Mostert shares several examples of how using Kotlin features can help better model data and errors in your code.

Writing your own CoroutineContext Element

How to pause a coroutine

How to break a coroutine cancellation

As you can see Vasiliy Nikitin created series of blogposts about coroutines which I strongly recommend to review.

Web3 Series: Intro for developers

The first blog of the Web3.0 series from me so if you are interested in NFT, DeFi, Web3 it can be for you.

Thats all for this weekend, have a nice one!

Weekend good reads for Android developers, issue #38 (35/2022)

The weekend is almost end but I will try to share my recommended reads for you:

Using Version Catalog on Android projects

There are already many ways to define dependencies for a project, and we have new one -Version Catalogs. The solution itself looks very interesting and can be very useful especially for managing libraries between many modules.

Appyx vs Jetpack Compose Navigation

Everyone who used Jetpack Compose in large project will probably admit that using native navigation can be problematic, especially when it comes to transferring data between screens. The Appyx library introduces a new approach to solving this problem.

DESIGN PATTERNS (catalog)

As wee all know design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code. This catalog will help you to refresh knowledge about them.

Here are also some videos to watch this evening:

Weekend good reads for Android developers, issue #37 (33/2022)

Hello Android fans, here are some articles for you:

Guide to Android app modularization

Tips and tricks on how to approach the problem of modularization of the project have appeared in the Android documentation. It contains very useful recommended patterns for multi-module applications.

How I keep my Git source control history clean

The article covers some helpful tips for young developers on how to work with git.

On Pair Programming

You have heard about pair programming, this article describes it very well and it is recommended for people who even use this approach on daily basis.

Building Plugable Features on Android

Modularization becomes an important tool to help developers continue to be productive without stepping on each other’s toes. The author examines a way to do this, and how to simplify it with Dagger or Hilt.

That's all for this weekend, have the nice one!

Weekend good reads for Android developers, issue #36 (32/2022)

Hello Android funs, here are some articles for you:

Optimizing Android Performance

I have read hundreds articles about performance and this one can be very useful if you need to play with optimization.

Gotchas in Jetpack Compose Recomposition

Recomposition in Jetpack Compose is the mechanism in which state changes are reflected within an app’s UI. To accomplish this, Compose will rerun a composable function whenever its inputs change. Unfortunately it may break performance optimisations built into Compose and trigger unnecessary work, which have the potential to slow down an app’s UI and waste precious device resources.

AutoSize TextField in Android Jetpack Compose

I think that one of the latest struggles we had with Jetpack Compose was the implementation of the input field that resizes its font when the text is wider than the input field.

Different Kinds of Channels in Kotlin

Quite old article but interesting. The Author described different types of channels in Kotlin.