<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Yannick Lung · Blog</title>
		<link>https://yannicklung.com/blog/</link>
		<description>Notes on designing and building software and whatever else is on my mind.</description>
		<language>en</language>
		<atom:link href="https://yannicklung.com/blog/feed.xml" rel="self" type="application/rss+xml"/>
		<item>
			<title>Playground Experiments #1: Swiping Instead of Typing on the Mac</title>
			<link>https://yannicklung.com/blog/playground-experiments-slide-to-type/</link>
			<guid>https://yannicklung.com/blog/playground-experiments-slide-to-type/</guid>
			<pubDate>Fri, 25 Sep 2026 12:00:00 +0200</pubDate>
			<description>&lt;p&gt;&lt;img src=&quot;https://yannicklung.com/blog/playground-experiments-slide-to-type/playground-experiments-slide-to-type.webp&quot; alt=&quot;A hand-drawn keyboard on an orange background, with a mouse pointer drawing a swipe line across the keys&quot;&gt;&lt;/p&gt;&lt;p&gt;Since I have my own blog now, I thought it’d be nice to start a new series: Playground Experiments. In it, I try out ideas that come to me while working or on the side, and write down what I discover along the way. Usually, these are small and, admittedly, pretty unnecessary apps. But that’s exactly what appeals to me right now: I can try out an idea like this in a single evening.&lt;/p&gt;
&lt;p&gt;First up is a keyboard for the Mac where you swipe words instead of typing them.&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;https://yannicklung.com/blog/playground-experiments-slide-to-type/slide-to-type.mp4&quot; aria-label=&quot;Swiping “Hallo” on the floating keyboard, which types it into a text editor&quot; autoplay loop muted playsinline controls&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h2&gt;When It Hit Me and a Quick Look Back&lt;/h2&gt;
&lt;p&gt;Occasionally, I like lying on the couch with my MacBook, holding it at an angle in my left hand. It’s comfortable, but typing on the real keyboard in that position is a hassle.&lt;/p&gt;
&lt;p&gt;Sure, macOS has had a built-in on-screen keyboard for what feels like a hundred years. But there, you click every single key with the cursor. That was the last thing I wanted.&lt;/p&gt;
&lt;p&gt;Then I remembered that smartphones have had something better for ages: you drag your finger across the letters, and a word comes out. The idea is surprisingly old. Apparently, &lt;a href=&quot;http://pokristensson.com/pubs/KristenssonZhaiUIST2004.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;IBM&lt;span class=&quot;visually-hidden&quot;&gt; (opens in a new tab)&lt;/span&gt;&lt;/a&gt; was already working on this back in 2004. It only caught on with Swype on Android, though. On the iPhone, it arrived in 2014, mostly through SwiftKey (it felt magical and new), when Apple first allowed third-party keyboards with iOS 8. Two years later, Microsoft bought SwiftKey. Today, Google’s Gboard does it, and in 2019 Apple added it to its own keyboard with iOS 13, calling it QuickPath. I wanted to know: How well would this work on a Mac with a mouse or trackpad?&lt;/p&gt;
&lt;h2&gt;How a Curve Becomes a Word&lt;/h2&gt;
&lt;p&gt;For me, this was the most interesting part. In short: the app doesn’t store any swipe paths. All it knows is the position of each key and a list of German words.&lt;/p&gt;
&lt;p&gt;From that, it can work out what the ideal path for any word would look like. For “Hallo,” the line goes from &lt;em&gt;h&lt;/em&gt; to &lt;em&gt;a&lt;/em&gt;, then to &lt;em&gt;l&lt;/em&gt;, then to &lt;em&gt;o&lt;/em&gt;. The double &lt;em&gt;L&lt;/em&gt; (damn you sans-serif lowercase &lt;em&gt;l&lt;/em&gt; and uppercase &lt;em&gt;I&lt;/em&gt;) disappears, since you can’t swipe over the same key twice.&lt;/p&gt;
&lt;p&gt;When I swipe, this happens in about ten milliseconds:&lt;/p&gt;
&lt;h3&gt;Filtering&lt;/h3&gt;
&lt;p&gt;Only words that start and end roughly where my path starts and ends are considered. Out of around 77,000 words, a few hundred are left (a good reminder of how fast computers actually are).&lt;/p&gt;
&lt;h3&gt;Comparing&lt;/h3&gt;
&lt;p&gt;For each of them, the app checks three things: Does my path have the same shape? Is it in the same place on the keyboard? And did I pass all the letters in the right order?&lt;/p&gt;
&lt;h3&gt;Probability&lt;/h3&gt;
&lt;p&gt;Common words get a head start, since “das” is simply more likely than “dad.” The previous word counts too: after “ich,” “habe” is more likely than “haben.” The app learned this from around 150,000 word pairs taken from German news articles.&lt;/p&gt;
&lt;p&gt;The best match is inserted right away, with two alternatives above it to pick from.&lt;/p&gt;
&lt;p&gt;I was surprised how well this works. Measured against my own real swipes, the right word comes first 88 percent of the time and lands among the three suggestions 99.5 percent of the time.&lt;/p&gt;
&lt;p&gt;Part of that is learning: the app remembers which words I actually use and in what order. After a few hundred swiped words, it knows my vocabulary. The bigger gain, though, came from cleaning up the word list along the way. The original list was based on movie subtitles and full of English words like “dad” or “mom,” which kept crowding out the correct German ones.&lt;/p&gt;
&lt;p&gt;There was one mishap with the learning. My very first swiped “hallo” was recognized as “Hanoi” twice in a row. Because the app saved every inserted word as correct right away, that only made “Hanoi” more likely. Now it only learns a word once I keep writing without correcting it.&lt;/p&gt;
&lt;h2&gt;German Has Its Own Quirks&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Ä&lt;/em&gt;, &lt;em&gt;Ö&lt;/em&gt;, and &lt;em&gt;Ü&lt;/em&gt; have their own keys, just like on the iPhone, so they’re no problem. The &lt;em&gt;ß&lt;/em&gt;, on the other hand, doesn’t have a key in the iOS layout. So when swiping, it sits on the &lt;em&gt;s&lt;/em&gt;: if you want to write “groß,” you swipe over the &lt;em&gt;s&lt;/em&gt;, and the app figures out from the word itself that you meant &lt;em&gt;ß&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;How Does the Keyboard Come Back?&lt;/h2&gt;
&lt;p&gt;The keyboard floats above all other windows. That’s handy, but sometimes it gets in the way. So you can close it like any other window with the red traffic light button.&lt;/p&gt;
&lt;p&gt;The catch: How do you get it back without a keyboard shortcut or a click in the menu bar? The whole point is not having to touch the real keyboard.&lt;/p&gt;
&lt;p&gt;My solution: I hold down the mouse button anywhere for a second and a half without moving it. Meanwhile, a small ring fills up next to the pointer, so I can see that something is about to happen. Then the keyboard appears right above the spot where I’m writing.&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;https://yannicklung.com/blog/playground-experiments-slide-to-type/longpress-window-appear.mp4&quot; aria-label=&quot;Holding down the mouse button fills a small ring, then the keyboard appears&quot; autoplay loop muted playsinline controls&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h2&gt;The Keyboard Follows Me&lt;/h2&gt;
&lt;p&gt;It quickly became clear that the keyboard has to be close to the text field. While swiping, I want to see out of the corner of my eye whether the right word showed up. If the keyboard sits at the other end of the screen, that connection is lost.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://yannicklung.com/blog/playground-experiments-slide-to-type/yondu.gif&quot; alt=&quot;Yondu whistles, and his arrow follows him&quot; loading=&quot;lazy&quot;&gt;&lt;/p&gt;
&lt;p&gt;With several windows open, dragging it back and forth all the time got annoying. So I added a gesture: when the keyboard is open and I double-click anywhere, it glides over to that spot. It instantly reminded me of Yondu from &lt;em&gt;Guardians of the Galaxy&lt;/em&gt;, who whistles, and his arrow follows him. That’s exactly what it feels like.&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;https://yannicklung.com/blog/playground-experiments-slide-to-type/window-follow-double-click.mp4&quot; aria-label=&quot;A double-click makes the keyboard glide over to another text field&quot; autoplay loop muted playsinline controls&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;From a user interaction perspective, this isn’t clean, of course. A double-click normally selects a word, a triple-click a whole paragraph. That’s why the app clears the selection immediately, otherwise the next swiped word would replace it. And the gesture only works when the keyboard is already visible. For an experiment, that’s fine.&lt;/p&gt;
&lt;h2&gt;What Actually Excites Me About It&lt;/h2&gt;
&lt;p&gt;The interesting part isn’t the keyboard itself. It’s the questions around it. Where should the window go? How do you bring it back? What should a double-click mean? There are no established patterns for this on the Mac, nobody has defined them. Unlike the close button, which has lived in the top-left corner for decades, here you’re free to experiment.&lt;/p&gt;
&lt;h2&gt;What’s Next&lt;/h2&gt;
&lt;p&gt;A few hours of work, a rather unnecessary app, and still, I learned a lot. The keyboard has its quirks, but I really do use it on the couch. Moreover, it was fun for me to learn more and &lt;em&gt;think&lt;/em&gt; about how a feature I use daily on my iPhone might actually work. Sure, Apple’s QuickPath is probably way more advanced, but still, for me as a rather non-technical person it was interesting to dwell on this.&lt;/p&gt;
&lt;p&gt;The next Playground Experiment is coming soon. I’m not short on ideas.&lt;/p&gt;</description>
		</item>
		<item>
			<title>Introducing SF Balloons</title>
			<link>https://yannicklung.com/blog/introducing-sf-balloons/</link>
			<guid>https://yannicklung.com/blog/introducing-sf-balloons/</guid>
			<pubDate>Mon, 21 Sep 2026 12:00:00 +0200</pubDate>
			<description>&lt;p&gt;&lt;img src=&quot;https://yannicklung.com/blog/introducing-sf-balloons/introducing-sf-balloons.webp&quot; alt=&quot;Three hand-drawn balloons against a blue sky: a red heart, a yellow star and a purple letter a&quot;&gt;&lt;/p&gt;&lt;p&gt;My second Mac app is now available: SF Balloons. The app makes it easy to search for and use SF Symbols in design and coding apps.&lt;/p&gt;
&lt;h2&gt;Why I Built It&lt;/h2&gt;
&lt;p&gt;Until recently, I was using SFMenuBar. However, the app hadn’t been updated in years, and the database was incomplete: some symbols were missing. I’d long wanted an SF Symbols app that was as easy to use as macOS’s Emoji Picker, so I built it myself.&lt;/p&gt;
&lt;p&gt;I use SF Symbols almost every day, both for design work and coding. This is what makes SF Balloons so useful to me: the app works just as well in design programs like Figma or Sketch as it does in code editors like Xcode. It covers both worlds.&lt;/p&gt;
&lt;h2&gt;What It Can Do&lt;/h2&gt;
&lt;p&gt;The biggest advantage over Apple’s own SF Symbols app is that you can search in your own language. SF Balloons currently supports nine languages natively, with more to come. For instance, if I don’t know the English word for a symbol or can’t describe it, I can simply search in German.&lt;/p&gt;
&lt;p&gt;Symbols you use frequently can be saved as favorites, so you don’t have to search for them every time. There’s also a history feature, and if you like, you can preview the animation for a symbol.&lt;/p&gt;
&lt;p&gt;If you don’t like the tile view, you can switch to list view. The most important thing for me was that the app stayed smooth and fast even with over 7,000 icons. After all, it’s designed to do one thing well: help you quickly find the right symbol.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://yannicklung.com/blog/introducing-sf-balloons/screenshot-sf-balloons.webp&quot; alt=&quot;The SF Balloons panel floating above the desktop, showing the symbols that match a search for “run”&quot; loading=&quot;lazy&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Where the Name Comes From&lt;/h2&gt;
&lt;p&gt;SF Balloons is named that way because the panel hovers over other apps, much like a balloon. And since balloons are a fun thing to play around with, there are balloons in the app too: when you open a knot, they either pop or go whizzing across the screen.&lt;/p&gt;
&lt;h2&gt;Try It Yourself&lt;/h2&gt;
&lt;p&gt;I already use SF Balloons every day, and it really saves me time. It’s just a little tool for spare moments, so I hope others find it just as useful as I do. You can download it on the &lt;a href=&quot;https://apps.apple.com/app/sf-balloons/id6801875207&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;App Store&lt;span class=&quot;visually-hidden&quot;&gt; (opens in a new tab)&lt;/span&gt;&lt;/a&gt;, for free.&lt;/p&gt;</description>
		</item>
		<item>
			<title>Ten Years Later</title>
			<link>https://yannicklung.com/blog/ten-years-later/</link>
			<guid>https://yannicklung.com/thoughts/ten-years-later/</guid>
			<pubDate>Thu, 17 Sep 2026 12:00:00 +0200</pubDate>
			<description>&lt;p&gt;&lt;img src=&quot;https://yannicklung.com/blog/ten-years-later/ten-years-later.webp&quot; alt=&quot;A hand-drawn white hand waving on a yellow background&quot;&gt;&lt;/p&gt;&lt;p&gt;Yesterday I relaunched my website. “Relaunched” isn’t really the right word. “Refined” is more accurate. Ten years ago, I published it in the form it was in until yesterday, and I haven’t done a major redesign since then. What has changed most over the last ten years is my portfolio, which has grown significantly thanks to the many app icon projects I’ve had the opportunity to work on. The design itself has remained essentially the same, aside from a major update two or three years ago, when I added custom cursors throughout the site.&lt;/p&gt;
&lt;h2&gt;The Website Revamp&lt;/h2&gt;
&lt;p&gt;I’d been thinking about a new, or at least slightly modified, website for quite some time. I think every designer knows this: you’re never really done with your portfolio or website. It’s almost a running joke among us. But when I honestly look back on the last ten years, I was absolutely satisfied with my site and never felt the need for a complete redesign. That’s precisely why I didn’t go through with one this time. I liked the design. I thought it was timeless, and several clients have told me over the years that the site suits me well. It was just the content that wasn’t quite right anymore.&lt;/p&gt;
&lt;p&gt;That’s why I refined the content in certain areas. “Portfolio” became “Work”, and it was important to me to noticeably shift the focus: away from just app icons, toward the apps I build myself. The old site hadn’t reflected that at all. I kept yellow as the main color simply because it’s my favourite color. My header stayed too, though I’ve highlighted it anew to more clearly show where my actual priorities lie. The projects are also no longer listed one after another but arranged in tiles, making better use of screen space. In many places, I’ve tried to introduce more consistency and more detail. Basically, the whole thing was a major polish, fine-tuning the edges.&lt;/p&gt;
&lt;p&gt;When you scroll through your own work after ten years, it’s a bit of a trip down memory lane, full of nostalgia for cool projects and cool people I got to meet along the way. I’m still proud of that, and I’m happy to show it off. At the same time, I wanted to make it clearer that my skills aren’t limited to app icons. As I’ve taken on more and more personal projects, it’s become increasingly difficult to find them. The website is now meant to serve as a hub for what I do because I think these things are cool and believe I can help others with the tools I’m currently building.&lt;/p&gt;
&lt;h2&gt;The New Blog&lt;/h2&gt;
&lt;p&gt;As part of the redesign, I’ve also added a blog: my very first one. I’m noticing a strong trend right now where people are rediscovering the web for themselves and want to have their space, independent of the big social networks and without having to hand over their data to them. And longer posts are no longer shared as threads but end up as articles on people’s own blogs. I think that’s great. I’ve never had a blog myself, but lately, I’ve felt an increasing desire to share the experiences I’ve gathered building apps, and, ideally, to help others who run into the same problems. I don’t know 100 percent yet what exactly will come of it; we’ll just have to see.&lt;/p&gt;
&lt;p&gt;The tools available today to take an idea from concept to finished product have become so accessible that it would almost be a shame not to use them. The barrier to entry has dropped so low that it really just comes down to overcoming your own inner resistance. That’s precisely what I want to overcome with this blog: just do it and publish, instead of endlessly overthinking the next article in my head. I’m excited about this new space and can’t wait to see where it takes me from here.&lt;/p&gt;</description>
		</item>
	</channel>
</rss>
