dev.to · 22 September 2026
Featured in Android Weekly #746, Articles & Tutorials, 27 September 2026.
Everything we built and shipped in the open between 1 August and 30 September 2026: one Kotlin Multiplatform app on both stores, two open-source libraries, the app's own Kotlin on the web, a deck kit for ChatGPT, Codex and Claude Code, and German words looted on the streets of Munich.
Devpost entry App Store Google Play
Kotlin Multiplatform end to end, with Compose Multiplatform drawing every screen on both phones. The same Kotlin modules also run on both watches and on the web: five compile targets, Android, iOS, watchOS, the JVM and JavaScript.
81,468 of the phone apps' 98,060 production lines live in commonMain and run on both phones.
Only where Android has its own API.
The same seams on Apple's side.
Its own Kotlin, on 1,534 lines of shared Kotlin: 70% of the watch app is shared.
SwiftUI on 1,534 lines of shared Kotlin: 66% of the watch app is shared.
The same shared Kotlin as the phones and both watches, compiled to JavaScript for vocabloot.com, not rewritten.
Written once in shared code on RevenueCat's Kotlin Multiplatform SDK, not two native SDKs behind a bridge.
29,905 of them shared, so one run covers both phones and the rules both watches use.
dev.to · 22 September 2026
Featured in Android Weekly #746, Articles & Tutorials, 27 September 2026.
German words looted with Vocabloot in trams, parks and shops, each post with the snap video and example sentences. Challenge complete: 101 words against a goal of 100, in 89 posts, newest first.
Challenge complete: 101 German words from the real world (walked around Munich, snapped what I saw and learned the German for it)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
101/100: die Apotheke (pharmacy)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Ich gehe zur Apotheke, um Medizin zu kaufen.
100/100: der Fotodrucker (photo printer)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Fotodrucker druckt die Bilder schnell aus.
99/100: die Selbstbedienungskasse (self-checkout machine)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
An der Selbstbedienungskasse kann man schnell bezahlen.
98/100: der Motorroller (motor scooter)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Motorroller steht auf dem Bürgersteig.
97/100: das Postfahrrad (post bike)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Das Postfahrrad transportiert Briefe und Pakete.
96/100: der Getränkekühlschrank (drink fridge)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Getränkekühlschrank ist voll mit kalten Getränken.
95/100: der Dönerkebab (döner kebab)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Dönerkebab ist mit frischem Gemüse gefüllt.
94/100: die Eistüte (ice cream cone)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Ich esse eine Eistüte im Sommer.
93/100: der Briefkasten (postbox)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Ich habe den Brief in den Briefkasten geworfen.
92/100: der Geldautomat (ATM)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Geldautomat gibt Geld aus.
91/100: das Motorrad (motorcycle)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Das Motorrad fährt schnell auf der Straße.
90/100: die Litfaßsäule (advertising column)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Die Litfaßsäule steht an der Straßenecke.
89/100: der Kipper (tipper)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Kipper transportiert Baumaterial.
88/100: der Container (container)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Container steht auf der Baustelle.
86 to 87/100: Blumentopf mit Blumen (der Blumentopf = flower pot, die Blumen = flowers)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
Der Blumentopf mit Blumen steht im Garten.
Kotlin on the web: Kotlin on Android, iPhone and the web (the same Kotlin shared across all three, including Kotlin compiled to JavaScript on the website)
— Nirmal Jeffrey (@NirmalJeffrey) 22 September 2026
85/100: der Zeitungsautomat (newspaper vending machine)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Der Zeitungsautomat steht an der Straßenecke.
84/100: der Turmdrehkran (tower crane)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Der Turmdrehkran hebt schwere Lasten auf der Baustelle.
83/100: die Hubarbeitsbühne (aerial work platform)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Die Hubarbeitsbühne wird benutzt, um hohe Gebäude zu erreichen.
82/100: das Lastenfahrrad (cargo bike)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Das Lastenfahrrad kann schwere Lasten transportieren.
81/100: das Gerüst (scaffolding)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Das Gerüst steht vor dem Gebäude.
80/100: der Container (container)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Wir benutzen den Container für den Müll.
79/100: der Müllcontainer (waste container)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Der Müllcontainer steht an der Straße.
78/100: der Schrankenautomat (parking barrier machine)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Der Schrankenautomat akzeptiert nur Münzen.
77/100: der Teller (plate)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Ich lege das Essen auf den Teller.
76/100: das Besteck (cutlery)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Ich brauche neues Besteck für das Abendessen.
75/100: die Deckenleuchte (ceiling lamp)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Die Deckenleuchte im Wohnzimmer ist sehr hell.
74/100: das Bierglas (beer glass)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Ich trinke aus einem Bierglas.
73/100: das Naanbrot (naan bread)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Ich esse gerne Naanbrot mit Curry.
72/100: die Teekanne (teapot)
— Nirmal Jeffrey (@NirmalJeffrey) 21 September 2026
Die Teekanne steht auf dem Tisch.
70 to 71/100: Absperrung mit Warnleuchte (die Absperrung = construction barrier, die Warnleuchte = warning light)
— Nirmal Jeffrey (@NirmalJeffrey) 20 September 2026
Die Absperrung mit Warnleuchte steht vor der Baustelle.
69/100: der Fahrkartenautomat (ticket machine)
— Nirmal Jeffrey (@NirmalJeffrey) 20 September 2026
Der Fahrkartenautomat akzeptiert Bargeld und Karten.
68/100: die Notbremse (emergency brake)
— Nirmal Jeffrey (@NirmalJeffrey) 20 September 2026
Zieh die Notbremse im Notfall.
67/100: der Getränkeautomat (drink vending machine)
— Nirmal Jeffrey (@NirmalJeffrey) 20 September 2026
Der Getränkeautomat steht am Bahnhof.
66/100: der Bagger (excavator)
— Nirmal Jeffrey (@NirmalJeffrey) 20 September 2026
Der Bagger gräbt ein tiefes Loch.
65/100: der Elektroroller (electric scooter)
— Nirmal Jeffrey (@NirmalJeffrey) 20 September 2026
Ich fahre mit dem Elektroroller zur Arbeit.
64/100: die Preistafel (price sign)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Preistafel zeigt die aktuellen Benzinpreise.
Widgets: Vocabulary before you open the app (home and lock screen widgets on Android and iOS)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Stickers: Learn it, loot it, sticker it (every looted word can become a WhatsApp sticker)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
63/100: die Straßenbahn (tram)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Ich fahre jeden Tag mit der Straßenbahn zur Arbeit.
62/100: die Espressomaschine (espresso machine)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Espressomaschine steht auf der Theke.
61/100: das Gewürzregal (spice rack)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Ich habe das Gewürzregal neu organisiert.
60/100: die Pfeffermühle (pepper mill)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Pfeffermühle steht auf dem Tisch.
59/100: das Brot (bread, knusprig = crispy)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Das Brot ist frisch und knusprig.
58/100: Muffins und Kuchenstücke (die Muffins = muffins, die Kuchenstücke = cake slices)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Ich esse gerne Muffins und Kuchenstücke zum Frühstück.
57/100: die Sitzreihe (row of seats)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Sitzreihe im Stadion ist rot und grau.
56/100: das Vereinswappen (club badge)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Das Vereinswappen ist rot und blau.
55/100: das Trikot (football shirt, jersey)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Das Trikot ist aus atmungsaktivem Material.
54/100: die Treppenstufe (stair, step)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Treppenstufe ist rot gestrichen.
53/100: die Rolltreppe (escalator)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Wir nehmen die Rolltreppe ins Erdgeschoss.
52/100: die Desserts (desserts, süß = sweet)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Desserts sind lecker und süß.
51/100: das Mischpult (mixing console)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Das Mischpult steuert den Ton bei der Veranstaltung.
48 to 50/100: Jacken und Rucksäcke (die Jacken = jackets, und = and, die Rucksäcke = backpacks)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Die Jacken und Rucksäcke hängen an der Wand.
45 to 47/100: der Tisch mit Stühlen (der Tisch = table, mit = with, die Stühle = chairs)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Der Tisch mit Stühlen steht im Büro.
44/100: der Mülleimer (trash can)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Der Mülleimer ist voll.
Wir werfen den Müll in den Mülleimer.
43/100: Vier gewinnt (Connect Four)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Das Kind spielt Vier gewinnt im Garten.
Wir haben Vier gewinnt auf der Party gespielt.
42/100: das Shuffleboard (shuffleboard)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Wir spielen Shuffleboard im Garten.
Das Shuffleboard ist aus Holz gefertigt.
41/100: der Tisch (table)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Der Tisch ist rund.
Wir essen am Tisch.
40/100: das Fußballstadion (football stadium)
— Nirmal Jeffrey (@NirmalJeffrey) 18 September 2026
Das Fußballstadion ist heute sehr voll.
Wir gehen morgen ins Fußballstadion.
37 to 39/100: Auslage mit Backwaren (die Auslage = display case, mit = with, die Backwaren = baked goods)
— Nirmal Jeffrey (@NirmalJeffrey) 17 September 2026
Die Auslage mit Backwaren sieht sehr einladend aus.
Sky Rescue round: Next game unlocked: Sky Rescue (recognise the right word before the rescue goes wrong)
— Nirmal Jeffrey (@NirmalJeffrey) 16 September 2026
36/100: der Baum (tree)
— Nirmal Jeffrey (@NirmalJeffrey) 16 September 2026
Der Baum im Garten ist sehr groß.
Im Herbst verlieren viele Bäume ihre Blätter.
35/100: das Verkehrsschild (traffic sign)
— Nirmal Jeffrey (@NirmalJeffrey) 16 September 2026
Ich habe das Verkehrsschild an der Straße gesehen.
34/100: das Auto (car)
— Nirmal Jeffrey (@NirmalJeffrey) 16 September 2026
Das Auto steht vor dem Haus.
Ich habe ein neues Auto gekauft.
33/100: die Haltestelle (bus stop)
— Nirmal Jeffrey (@NirmalJeffrey) 16 September 2026
Die Haltestelle ist gleich um die Ecke.
Wir warten an der Haltestelle auf den Bus.
32/100: die Ampel (traffic light)
— Nirmal Jeffrey (@NirmalJeffrey) 16 September 2026
Die Ampel ist grün.
Die Ampel zeigt ein grünes Licht für Fußgänger.
29 to 31/100: Person mit Fußgängerampelknopf (die Person = person, mit = with, der Fußgängerampelknopf = pedestrian crossing button)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
28/100: der Einkaufswagen (shopping trolley)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Der Einkaufswagen ist voll mit Lebensmitteln.
Ich nehme einen Einkaufswagen im Supermarkt.
27/100: der Kassenbon (receipt)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Ich habe den Kassenbon für den Einkauf behalten.
Der Kassenbon zeigt alle gekauften Artikel.
26/100: die Weihnachtsschokolade (Christmas chocolate)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Ich kaufe Weihnachtsschokolade für meine Familie.
24 to 25/100: Sechserpack Cola-Flaschen (das Sechserpack = six-pack, die Cola-Flaschen = cola bottles)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Ich habe ein Sechserpack Cola-Flaschen gekauft.
21 to 23/100: Eier im Karton (die Eier = eggs, im = in the, der Karton = carton)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Die Eier im Karton sind frisch.
20/100: der Pfandautomat (bottle return machine)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Ich benutze den Pfandautomat, um meine Flaschen zurückzugeben.
19/100: die Packstation (parcel locker)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Die Packstation ist rund um die Uhr geöffnet.
Ich habe mein Paket an der Packstation abgeholt.
18/100: der Supermarkt (supermarket)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Ich gehe zum Supermarkt, um Lebensmittel zu kaufen.
Der Supermarkt hat frisches Obst und Gemüse.
15 to 17/100: Haus mit Solarmodulen (das Haus = house, mit = with, die Solarmodule = solar panels)
— Nirmal Jeffrey (@NirmalJeffrey) 15 September 2026
Das Haus mit Solarmodulen ist energieeffizient.
Vault round: Loot, play, remember (a round of The Vault on the words looted so far)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
14/100: die Bank (bench)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
Die Bank am Bahnhof ist aus Metall.
Wir sitzen auf der Bank im Park.
10 to 13/100: Tasse Kaffee mit Löffel (die Tasse = cup, der Kaffee = coffee, mit = with, der Löffel = spoon)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
Ich trinke eine Tasse Kaffee mit Löffel.
9/100: die Statue (statue)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
Die Statue steht im Park.
Viele Touristen bewundern die Statue.
8/100: der Palast (palace)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
Der Palast ist sehr groß und schön.
Viele Touristen besuchen den Palast im Sommer.
7/100: die Gans (goose)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
Die Gans schwimmt auf dem See.
Eine Gans steht auf der Wiese.
6/100: das Fahrrad (bicycle)
— Nirmal Jeffrey (@NirmalJeffrey) 14 September 2026
Das Fahrrad steht im Flur.
Ich repariere mein Fahrrad.
5/100: der Zug (train)
— Nirmal Jeffrey (@NirmalJeffrey) 6 September 2026
Der Zug fährt pünktlich ab.
Ich nehme den Zug zur Arbeit.
Dogfooding: Dogfooding Vocabloot with friends (friends try the app on the words around them)
— Nirmal Jeffrey (@NirmalJeffrey) 5 September 2026
2 to 4/100: die Kerze, im, das Glas (candle, in the, glass)
— Nirmal Jeffrey (@NirmalJeffrey) 5 September 2026
Das ist eine Kerze im Glas.
Die Kerze brennt hell.
1/100: der Bus (bus)
— Nirmal Jeffrey (@NirmalJeffrey) 3 September 2026
Das ist ein Bus.
Ich fahre mit dem Bus durch München.
The challenge: 100 German words, just by walking around Munich (I built Vocabloot to learn German from the things around me; now to test it)
— Nirmal Jeffrey (@NirmalJeffrey) 3 September 2026
@learnfrombarbarah This is not fun #languagelearning #learnspanish #fyp #vocabloot #vocabulary
1 September 2026
@learnfrombarbarah Saving words and learning through games are fun than flashcards #learnspanish #languagelearning #fyp #vocabloot #spanishteacher
31 August 2026
@learnfrombarbarah I didn't know that I can learn spanish through playing #learnspanish #languagelearning #fyp #vocabloot #spanishforbeginners
31 August 2026
@learnfrombarbarah Learn Spanish through games. #learnspanish #languagelearning #fyp #vocabloot #learnspanishfast
25 August 2026
@learnfrombarbarah Racing a kraken to learn words ia genius #learnspanishfast #languagelearning #fyp #Vocabloot #spanishforbeginners
24 August 2026
@learnfrombarbarah Crazyyy way to learn spanish #learnspanish #fyp #languagearning #Vocabloot #spanishforbeginners
19 August 2026
@learnfrombarbarah I don't know why I didn't find this before #learnspanish #fyp #languagearning #Vocabloot #spanishforbeginners
18 August 2026
@learnfrombarbarah Waitt!!! Pointing stuffs can help you learn?????? #learnspanish #fyp #languagelearning #Vocabloot #spanishteacher
18 August 2026
@learnfrombarbarah Learn vocabulary through playing #learnspanish #fyp #languagelearning #vocabloot #spanishteacher
17 August 2026
@learnfrombarbarah 3 years of spanish and I learned more from my own mug #fyp #LanguageLearning #speakspanish #learnvocab #vocabloot
15 August 2026
@learnfrombarbarah I didn't know that learning spanish is this easy #learnspanish #languagelearning #learnvocab #speakspanish #vocabloot
14 August 2026
@learnfrombarbarah #learnspanish #languagelearning #learnvocab #fyp #vocabloot
13 August 2026
@learnfrombarbarah #learnspanish #languagelearning #learnvocabulary #fyp #identify
12 August 2026
See something, snap it, learn what it is called. Vocabloot builds your vocabulary from the world around you.
Turn the world around you into your vocabulary: snap a real object and learn what it is called.
Learning languages from the world around me: la torre di Pisa, Schloss Neuschwanstein, 鳥居, la tour Eiffel, the Statue of Liberty, 궁궐. Made with Vocabloot.
Vocabloot 1.3 is out: more polished, more useful, more ways to turn the world around you into vocabulary in 10 languages.
#oktoberfest #languagelearning #vocabulary #deutschlernen, credits: @smdelacruz18
#languagelearning #vocabulary, credits: @smdelacruz18
Learn a language through games. Download Vocabloot on iOS and Android. #languagelearning #learnspanish #learngerman
Available on iOS and Android, free to download. #languagelearning #learnspanish #learnthroughplay
This is what collecting words looks like: point the camera at a mug, a lamp or a flower and the word lands in your Wordbook.
BackupKitBackup into the user's own iCloud or Google Drive. No server, no account on your side.
A Kotlin Multiplatform library that backs up app data to the user's own iCloud or Google Drive, no server required.
BackupKit by Vaazh Studios is a Kotlin Multiplatform library that backs user data up into the user's own cloud, iCloud Drive on iOS and the Google Drive app data folder on Android, with no server and no accounts. It ships a sync engine with differential updates and resumable transfers.
Docs GitHub Maven Central klibs.io Android Weekly Kotlin Weekly
WidgetBridgeTyped handoff of data and images to Glance and WidgetKit widgets. The extension never links Kotlin.
A Kotlin Multiplatform library that hands off typed data and images to native Glance and WidgetKit widgets.
Six skills that turn a conversation into a deck: create, text, stickers, check, pack, publish. No API key; the assistant running the skill writes the cards, and the app's Kotlin packer checks and packs them. Open source under MIT. Runs in ChatGPT, Codex and Claude Code; submitted to Anthropic's community marketplace for Claude Code on 16 September.
Listed in the OpenAI plugin directory since 16 September. Add it in ChatGPT, say what you speak, what you learn and the topic, and ChatGPT writes the cards and the stickers. Free, no API key, and the file it hands back opens straight in the app.
vocabloot.com/decks went live on 16 September: a catalog you can search, filter by the language you learn and the one you speak, and sort. Every deck page shows the whole list with speech and highlight, and a card dialog in the app's own detail flow. The first listed deck, German Greetings, was written in ChatGPT with the kit: 18 words, 14 with stickers.
studio.vocabloot.com turns six real words and stickers from an exported wordbook into a 15-second video: a liquid, mouse- and touch-reactive scene, then the App Store and Google Play badges. Runs entirely in the browser from a .slbackup file; nothing uploads. A World landmarks sample is offered if you have not exported a wordbook yet.
Post three times about how you use Vocabloot on TikTok, Reels, Shorts or X, at any follower count. Creator Studio turns six of your words into the video. 30+ likes earns a month of Premium, 100+ likes a year.