Skip to main content

Karol Wrótniak

Android & Flutter Developer, Public Speaker, Writer, Open Source Maintainer

Recent Writing

View all
January 28, 2026

When Zero‑Width Isn’t Zero - Pagedout #8

A seemingly harmless zero-width character turned into a real security risk hiding in plain sight.
cybersecuritycvejavascriptnodejssecurity
Read article
January 28, 2026

When Zero‑Width Isn’t Zero: How I Found and Fixed a Vulnerability

A seemingly harmless zero-width character turned into a real security risk hiding in plain sight.
cybersecuritycvejavascriptnodejssecurity
Read article
November 7, 2025

A Practical Guide to Flutter Accessibility – Part 1: The Basics

A practical guide to Flutter accessibility, covering the basics of the Semantics widget, MergeSemantics, and testing tools for Android and iOS.
FlutterAccessibilitya11yTutorial
Read article
October 1, 2025

How to Create an IoT App in Kotlin Multiplatform

In this article, you’ll build a small multiplatform app for Android and iOS that blinks an LED on an IoT device. You’ll use Kotlin Multiplatform (KMP) for shared logic, Compose Multiplatform for the UI, and the Kable library for Bluetooth communication.
IoTKotlinSwiftKMPComposeBluno
Read article
February 22, 2025

Deep Diving Into AI_devs 3: What I Learned And How You Can Benefit

AI_devs 3 course review.
AILLM
Read article
September 19, 2024

10 Ways AI Can Speed Up your Mobile App Development | Guide for Developers

See how AI tools like GitHub Copilot and Stable Diffusion can streamline mobile app development by automating code generation, enhancing testing, and optimizing performance.
AITips&TricksGenAI
Read article
August 30, 2024

How to develop an AI app with a local model in Kotlin Multiplatform

In this tutorial, you’ll learn how to integrate AI into a Kotlin Multiplatform app. We’ll use TensorFlow Lite for text classification and share code between Android and iOS with Compose Multiplatform.
AIKotlinSwiftKMPComposeTensorFlowLite
Read article
July 29, 2024

How to Provide Accessibility in your Android App | Part 4: List, Link Semantics and Testing

Step by step – how to ensure accessibility in your Android app.
AndroidJetpack ComposeAccessibilitya11y
Read article

Recent Talks

View all
Conference
March 2026 Over 15% of the world's population lives with disabilities, and the upcoming European Accessibility Act (EAA) imposes new legal obligations on us. How can we prepare modern mobile applications for this?
accessibilityjetpack composeandroideaaa11y
Event link
Conference
December 2025 Discover how to optimize Android applications using JNI. Learn to configure NDK, invoke native code, and avoid common pitfalls based on the android-gif-drawable case study.
AndroidJNINDKPerformanceC++Kotlin
Event link
Conference
October 2025 This talk provides a practical, live-demo walkthrough of Android application reverse engineering, showing how easily developers' assumptions about code security can be broken.
AndroidReverse EngineeringMobileCybersecurity
Event link
Conference
June 2025 See how AI tools can help build a practical pseudolocale generator.
l10npseudolocalizationi18nFlutter
Event link
Conference
April 2025 What to keep in mind when writing code and why small letters can kill.
triviabest practicesunicodetextdiacriticserrors
Event link
Conference
December 2024 Learn about trivia and common pitfalls related to date and time
triviabest practicestimedate
Event link

Open Source

View all

Android Animation Disabler

Tool for disabling animations on Android devices before automated UI testing.
KotlinAndroidCIGradleQATesting

Android Gradle AOSP AAPT plugin

Gradle plugin for setting AAPT options based on environment variables defined by AOSP build system
GroovyAndroidAOSPGradle

Bitrise Step Flutter

Bitrise step for building Flutter projects
BitriseStepFlutterCIgo

Bitrise Step Build Info Jira Comment

Creates comments for all tasks from pull request merge commits. It uses the commit message to determine which tasks should be commented.
BitriseStepJiraCI

Bitrise Step Device Farmer/OpenSTF Connect

Bitrise step for connecting to Device Farmer or OpenSTF farms
BitriseStepDeviceFarmerOpenSTFCIgoTestingAndroidQA

Bitrise Step Parse Composer Results

Bitrise step for parsing Composer results
BitriseStepComposerCIgo

Bitrise Step Publish Composer Results

Bitrise step for publishing Composer results
BitriseStepComposerCI

Bitrise Step Publish Spoon results

Bitrise step for publishing Spoon test results
BitriseStepSpoonCIQATesting

Bitrise Step SonarQube Scanner

Bitrise step for running SonarQube Scanner CLI.
BitriseStepSonarCI

Bitrise Step Trigger Bitrise Workflow

Bitrise step for triggering workflow on bitrise.io with specified parameters
BitriseStepCIgo

Bitrise Step Update Jira Issue Field

Bitrise step for updating JIRA issue fields
BitriseStepJiraCIgo

Bitrise Step VPNC Connect

Bitrise step for connecting to Cisco VPN
BitriseStepVPNCCI

Android Device Cleaner

Tool for cleaning up Android devices on device farms.
KotlinAndroidCIQA

Device Farmer

A web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser.
AndroidQATesting

FoQA

Container for various Quality Assurance utilities to be included in QA/testing variants of Android apps.
AndroidQALibraryTesting

Android GIF Drawable

Views and Drawable for animated GIFs in Android.
JavaAndroidGIFLibraryNDK

HipChat Gerrit Hooks

Gerrit hooks sending notifications to HipChat.
GerritHipChatCIPython

JaCoCo Gradle TestKit Plugin

Gradle plugin for JaCoCo code coverage in tests using Gradle TestKit.
JaCoCoTestingGradlePlugin

jspoon

An HTML scrapper for Java/Kotlin, based on CSS selectors.
AndroidJavaHTMLScraping

Android Gradle Localization Plugin

Gradle plugin for generating localized string resources
Localizationl10ni18nGradlePluginGroovyAndroid

MockWebServer path dispatcher

A helper for dispatching MockWebServer responses.
AndroidQATestingLibraryKotlin

Android Pitest Gradle Plugin

Gradle plugin for PIT Mutation Testing in Android projects
PitestMutation testingTestingGradlePlugin

Plural Lint

A developer tool to check plural translations in your project.
DartFlutterLinti18nl10n

Public Suffix License

Source of Mozilla Public License 2.0 for tools generating libraries list
AndroidKotlinPublic SuffixLibrary

Shipkit

Set of Gradle plugins and tools that streamline Java and Android projects release process
ReleaseGradlePlugin