Alex VanyoinAndroid DevelopersDensity, Devices and Flaky TestsLayout logic rounding can lead to surprising behavior across different densities on different devicesJan 26, 2023Jan 26, 2023
Alex VanyoKotlin functions: %, rem and modExplaining the differences and history of the %, rem and mod functions in Kotlin.May 22, 2022May 22, 2022
Alex VanyoinAndroid DevelopersJetnews for every screenUpdating Jetnews to work better on phones, tablets, foldables, and Chrome OS by adding an adaptive list-detail layout.Jan 18, 20223Jan 18, 20223
Alex VanyoinLivefrontDon’t Make Your Code Predict the FuturePrinciples with examples for writing code that makes everyone’s job easier in the long run without being clairvoyant.Mar 31, 2021Mar 31, 2021
Alex VanyoinLivefrontAdvanced Android Edge-to-Edge (Part 2): BottomSheetDialogFragmentMaking BottomSheetDialogFragment from the material components library play nicely with insets for going edge-to-edgeFeb 5, 20215Feb 5, 20215
Alex VanyoinLivefrontAdvanced Android Edge-to-Edge (Part 1): Keyboard Transitions with MotionLayoutDriving keyboard transition animations in Android 11 using MotionLayout.Jan 15, 20211Jan 15, 20211
Alex VanyoinLivefrontDagger Hilt: Testing injected Android components with code coverageConfiguring Hilt, JaCoCo and Robolectric to allow tracking code coverage for Robolectric tests that use Hilt and real Dagger graphs.Nov 17, 20202Nov 17, 20202
Alex VanyoinLivefrontsealed-enum: Replacing Enums in KotlinA Kotlin annotation processor that makes writing normal enum classes obsolete.Nov 2, 2020Nov 2, 2020
Alex VanyoinLivefrontKotlin: A tale of static cyclical initializationDiving into how static cyclical initialization in Kotlin on the JVM can lead to confusing and unexpected behavior.Jul 29, 20202Jul 29, 20202
Alex VanyoinLivefrontkotlinx.serialization: JSON deserializer with a fallbackA custom KSerializer that falls back to a given value when deserializing JSON throws an exception.Jun 12, 20201Jun 12, 20201