RSSAmplifier

Blog

Andriy Druk

Recent content on Andriy Druk

andriydruk.comRSS feed ↗25 posts

Latest posts

Open Source Report

The big theme this month was turning LMPlayground from a chat app into an agentic, multimodal one. 1.7.0 gave capable models tools — web search, page fetch, and a JavaScript sandbox they can call mid-reply. 1.8.0 then added on-device vision: attach a photo (or snap one) and chat about it with Gemma, Qwen, or Ministral vision models, all running locally. Both Spark projects shipped 1.2.2, whose…

Open Source Report

Another busy month for LMPlayground - four releases shipped to Google Play, this time focused on running well across more devices. The UI grew adaptive layouts for tablets, foldables, and Chromebooks, and runtime CPU variant selection brings up to 2× faster generation by dlopen’ing the best ARM feature level at startup. Inference now also lives in its own isolated :llama process, so a native…

Open Source Report

Rare event - I actually wrote a blog post. Compact Compact Language Detector is the launch post for two new pure-C language-detection libraries: ccld3 and compact-fasttext. Both keep the original weights but drop the C++/protobuf/external-model baggage, and both check 100% against their reference implementations. There’s a WebAssembly demo running CLD2, FastText, and CLD3 side-by-side in the…

Compact Compact Language Detector

In a modern world full of AI, detecting the language of a text sounds like a simple task. But in applied AI, it still matters a lot. And because of that, we naturally want a simple, compact library that can detect language reliably in any kind of application. By any kind, I mean literally any: a server app, a desktop app, a mobile app, or even a web app. Why CLD2 Worked For Us When we ran into…

Open Source Report

Big month for LMPlayground - six releases shipped to Google Play, taking the on-device llama.cpp chat app from basic model support to a proper thinking/reasoning UI, reliable downloads, and a much more stable runtime. Service Browser got a ground-up rewrite for its 3.0 release - pure Kotlin, native Android mDNS, and support all the way back to Android 6. Also shipped a new version of…

Exploring the Swift SDK for Android

Announcing the Swift SDK for Android

Spark AI

As AI Foundation Lead at Readdle, I lead the team responsible for all AI-powered features in Spark Mail. We shipped the AI Assistant with a fully local RAG pipeline running on all four major platforms - iOS, Android, Mac, and Windows. Building on-device retrieval-augmented generation across such different hardware and OS constraints was a major technical undertaking. I also led an agent…

LM Playground

LM Playground is an Android app for running Large Language Models locally on your device. No cloud, no API keys, no data leaving your phone - everything runs on-device for complete privacy. Download models from a curated list of 12 model families (Qwen, Gemma, Llama, Phi, DeepSeek, Mistral, and more) ranging from 0.6B to 8B parameters, or load any custom GGUF file. The app features rich markdown…

Swift + Kotlin = ❤️

Last year, we at Readdle launched Spark for Android . After just one year, the app has reached one million installs on Google Play. I believe this makes it the most popular Swift application currently available on Google Play. I joined Readdle in 2016 and worked on the initial release of Spark for Android for three years. Readdle developed a specialized Swift toolchain to create the Android…

Swift for Android

Spark for Android

As Android Engineering Lead at Readdle, I led the team that brought Spark Mail to Android - sharing a single Swift codebase for business logic across iOS, Android, Mac, and Windows. We built the Swift Android Toolchain, an open-source stack of seven repositories covering everything from the SDK and JNI code generation to NDK bindings and build tools. Over seven years the platform matured from a…

Swift Android Toolchain

Swift SDK for Android is a fork of the official Swift SDK for Android that includes Readdle’s patches. It can be used on any platform that supports the official Swift toolchain installed via swiftly. Built on the official Swift SDK build scripts. Swift Android Build Tools is a command-line toolset for building and testing Swift packages on Android. It wraps Swift Package Manager for…

My favourite talks at Google IO 2017

Android general talks Well, 2 weeks have gone since Google IO and I’ve finally finished with my list of sessions. There are general talks that I liked the most: What’s New in Android What’s New in Android Development Tools Architecture Components - Introduction Architecture Components - Solving the Lifecycle Problem Architecture Components - Persistence and Offline What’s…

Introduction to C for Android Developers

Introduction Lately, I’ve spent a lot of time interviewing Android developers. And I was surprised how little amount of Android devs know C language. Most of the developers use only Java and convinced that C is too complex for their needs. But I will try to bust this myth - C code can be much simpler to write and much simpler to run. Toolchain The first step is toolchain. For this tutorial,…

Algorithms

There are a lot books about algorythm data structure like classic Knut & Virt and more moderns. But my favourite exactly this one by Robert Sedgewick and Kevin Wayne. Also I can recommend Coursera course from Prinstrone university. Note: It has to version with C++ and modern Java.

C Programming Language

One of my favourite book about programming. Very basic but still very handfull. Notes: some of example can work wrong on modern operation system.

The Humane Interface: New Directions for Designing Interactive Systems

Deep thinking is rare in this field where most companies are glad to copy designs that were great back in the 1970s. The Humane Interface is a gourmet dish from a master chef. Five mice! –Jakob Nielsen, Nielsen Norman Group Author of Designing Web Usability: The Practice of Simplicity This unique guide to interactive system design reflects the experience and vision of Jef Raskin, the creator…

Service Browser

Service Browser is an Android utility for discovering and inspecting network services via DNS-SD. It resolves IP addresses, ports, and TXT records, and lets developers register their own services. Built with pure Kotlin, Android’s native NsdManager, and Material Design 3. The source code is available under the Apache 2.0 license.

R.tools

Hi everyone. Today I want to announce my new app R.tools . It’s a simple application for android developers, that provides information about a device configuration. I believe you know about android devices fragmentation and a necessity to use alternative resources to support specific device configurations. This app can help you with it.

Wrap Annoying APIs With RxJava

Reactive Extensions (also known as ReactiveX or Rx) is a library, that brings FRP programming paradigm to different platforms. And it’s a breath of fresh air for android developers in Java 6 desert. A lot of articles about RxJava concept and common usage have already been written and I don’t want to explain it again. That’s why I would like to publish my example of RxJava usage…

Bonjour in Android applications

What is Bonjour? Wiki definition of Bonjour is Bonjour is Apple’s implementation of Zero-configuration networking (Zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as printers, other computers, and the services that those devices offer on a local network using multicast Domain Name System (mDNS)…

Stacktrace deobfuscation

One of the problems of Android application support is to deofuscate or retrace stack traces obtained from an obfuscated release build. To figure out how to deobfuscate a stack trace, you need to understand how the obfuscation actually works. The standard way of obfuscation in Android development is done using tools such as the ProGuard. That’s what the official documentation says The…

Что такое .aar библиотеки?

Уже прошло больше года с анонса Android New Build System , работа над которой кипит и по сей день: в экспериментальной области все еще находится несколько увлекательных возможностей Jack and Jill Tool Chain и NDK Integration . Но одной из самых ожидаемых возможностей новой системы сборки стала поддержка aar бибилотек - нового бинарного формата бибилотек, который в отличии от jar бибилотек может…

Andriy Druk

I’m a software engineer and technical writer focused on building high-quality mobile and cross-platform software. I’ve spent the last eight years at Readdle working on Spark Mail - one of the most popular email clients in the world, running on iOS, Android, Mac, and Windows. Android Engineering Lead at Spark (2017–2024) I led the Android engineering team at Spark, where my main…