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!

Jetpack Compose: Material Design 3 is stable

At the Android Dev Summit, Google announced the latest improvements to Jetpack Compose including stable Material You (Material Design 3) components.

Material Design 3 components are a key feature in this release, but it also includes an assortment of other new or enhanced UI components, including lazy staggered grids, variable fonts, pull to refresh, snapping in lazy lists, draw text in canvas, URL annotations in text, hyphenation, and LookAheadLayout.

more:

https://developer.android.com/jetpack/androidx/releases/compose-material3

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 #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.

Weekend good reads for Android developers, issue #34 (20/2022)

It’s Friday and we have a new pack of articles to go over the weekend.

Jetpack Compose Destinations

In this tutorial, you can learn how to implement an effective navigation pattern with Jetpack Compose, in a way that will work with different screen sizes, from phones to tablets.

Stubbing with doAnswer vs doReturn – what's the difference?

Jarosław Michalik explains the subtle difference between Mockito/MockK's answer vs return.

The Guide To Your First Annotation Processor with KSP (And Becoming A Kotlin Artist)

The author creates a KSP-based annotation processor that generates new code and files based on annotation usages.

[REPO] Now in Android App

Now in Android is a fully functional Android app built entirely with Kotlin and Jetpack Compose. It follows Android design and development best practices and is intended to be a useful reference for developers. This project shows a lot of good practices recommended by Google.

That’s all from us, have a nice weekend.

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

It’s Friday and we have a new pack of articles to go over the weekend.

13 Things to know for Android developers at Google I/O!

A lot of news related to Android was presented during the Google I / O conference. The most important of them are:

  • Jetpack Compose 1.2 Beta with more advanced features such as LazyLayouts, built-in Window Insets, or nested scrolling
  • Live Edit, i.e. the ability to immediately preview views created with Jetpack Compose in Android Studio
  • Baseline Profiles accelerating application development by up to 30%
  • More tablet support - Along with this news, Google announced a new Pixel tablet, expected to be available next year
  • Jetpack Compose for Wear OS beta. Additionally, Google announced the release of the Pixel Watch in the fall of this year
  • Health Connect to access and share your health information with other applications
  • Google Play Index, i.e. verification by Google Play that the application uses the correct SDK based on various metrics
  • Android 13 Beta 2

I strongly recommend watching a dedicated playlist for
Android and Play at Google I/O 2022.

Using MotionLayout in Compose

In this blog post, the Author goes over an example of using MotionLayout in Jetpack Compose by animating several widgets in relation to each other.

Design a pixel perfect Android app

The success of your app depends heavily on its UI/UX and from this article, you will learn how to create the best UI for different screens and resolutions.

Fact or kapt? Build your next annotation processor with KSP with David Rawson

Today we have a day of awesome videos :)

https://youtu.be/zI1BWZOoTfw

That’s all from us

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

It’s Friday and we are back after a short break with a pack of articles to go over the long (for some of you) weekend.

7 things to keep in mind while building jetpack composable’s

Although the documentation for Jetpack Compose is considered to be very good, we often notice some problems only when using a specific tool. If you'd prefer to learn from someone else's rather than your own mistakes, then check out this article.

The curious case of crashing Workers

WorkManager is great to schedule background work on Android. However, since scheduled work lives outside of the app lifecycle, you might run into unexpected crashes. Check this article and learn how to prevent this.

Kotlin coroutine dispatchers overview

In this article, Vasiliy describes different types of coroutine dispatchers.

Modeling Retrofit Responses With Sealed Classes and Coroutines

Handling Retrofit responses and exceptions is an essential part of modern Android app architecture. This article covers modeling responses with sealed classes and coroutines in a multi-layered architecture.

Bonus:

Flutter Swagger Generator — package to save your time

This article is about Flutter Swagger Generator package which I strongly recommend to try.

That’s all from us

Weekend good reads for Android developers, issue #31 (15/2022)

It’s Friday, it’s time for a new pack of articles to go over the long (for some of you) weekend.

Composable metrics

Jetpack Compose 1.2 introduces a lot of new features. One of them is the ability to analyze created Composables in terms of various metrics and measurements of their performance. Please review the article to check the details.

Migrating Architecture Blueprints to Jetpack Compose

Probably each of us knows the Android Blueprints projects and in this article, Manuel Vivo presents how they migrate them to Jetpack Compose.

Android — 9 Useful Kotlin Flow Operators You Need to Know

Operators are key elements of any reactive framework, including Kotlin Flow. They enable various operations to be performed on the data stream elements. In this article, you will find 9 of them which are the most useful during daily basis work.

Resilient use cases with kotlin.Result, coroutines and annotations

When creating software, it is extremely important to consider cases where something may go wrong this article shows you how to implement fault-tolerant UseCase classes.

Android App Excellence Summit

In this article, you can find a summary of App Excellence Summit 2022.

Weekend good reads for Android developers, issue #30 (14/2022)

It’s Friday, it’s time for a new pack of articles to go over the weekend.

Android and Figma Typography and how to achieve 100% fidelity

Please read this article carefully if your app designs are created in Figma. Autor describes how Compose text rendering will soon match those designs exactly.

Documenting Kotlin Code for Android Using KDoc and Dokka

Article about how to use KDoc to document your Kotlin code and generate beautiful-looking documentation pages using Dokka.

Kotlin Flow Buffer is like A Fashion Adoption

Kotlin Flow provides 3 different ways to buffer values, they are Buffer, Conflate, CollectLatest. Although the idea behind each of them is similar, the principles of operation are different. This article illustrates these differences.

Stabilize, Modularize, Modernize: Scaling Slack’s Mobile Codebases

Project modularization is not the easiest task. It is good to watch how others do it and learn from their mistakes and successes. This article is a good source of information for us.

That’s all from us, be safe!