Dragon Launcher
- 24 Devlogs
- 469 Total hours
Fast Gesture based android launcher
Fast Gesture based android launcher
Mostly under the hood optimizations and UI tweaking
I corrected an issue, which led to me creating a completely new actio for the launcher: the Activity launch, different rom the App Launch.
So I spend alot of time actually changing some uIs I find ugly, and I redisigned the actions picker, as well as other stuff such as the points menu screen
So, I’m building the adaptative layout my app needed, and some people wanted,
before it was locked in a portrait orientation, but I remove that lock and build a different ui for several screens for them to adapt to the horizontal layouts.
This is useful for the rotation, and the larger devices, such as the tablets
Various optimisations all around the app
I’ve been closing issues and managed to reduce the number of them to less than 20!!
And furthermore, alot o them are actually feature request that i may implement one day
Due to Android restrictions, disable Play Protect during installation to avoid Dragon being blocked.
I’ve been fixing and adding small features the recnet times, and Iwill soon release a next version!
Here are the recent commits I made:
feat(workspace): add not in nests workspace type, closes #450
fix(ui): improve Ui of the App detail info bottom sheet and long press popup
fix(ui): change typography styles for TextWithDescription
feat(ui): add switch icons un the thumb
fix(i18n): Merge remote-tracking branch ‘weblate/main’
feat(top-preview): Add scale parameter for the new point preview mode
fix: AppDisplayTab was resetting colors, it now resets the UISettingsStore
feat(display): define 2 modes for the top display dragging overlay: new and legacy.
fix(ui): move permissions tab into advanced sub-menu of main settings screen
4.4.2 (Smaug)
2026-10-07
[NEW]
So basically, after tons of ours coding this stuff, I finally launched the release, it should finish the build soon.
Here’s the changelog for this version!
4.4.0 (Smaug)
2026-10-04
[NEW]
So basically, in my previous devlog, I was talking about the new feature I made, to drop the nests in a position and keep it there. but when coding it, I noticed alot of off things in my old code, that was holding there for a while now. What I did recently, is that I moved all the gesture logic to the SwipeService class (an internal injected dependency) to centralize all the gesture logic, instead of keeping spread around in Compose.
I’m really proud of myself, ngl!!
So this is an issue one of my user asked long ago, the ability to have a nest fixed in place.
So I’ve been implementing this for the past couple hours, but the only issue is that I’m now againsts a wall, and I have to refactor a very bit part of the gesture system to make everything work cleanly. Basically, I am moving all the heavy gesture logic that was in Compose to a single shared viewmodel to avoid the repetitions.
Implementing completely new initialization screen.
So I’ve been workijg on this new screen after that alot of ppl asked me to make more easy their integration to the launcher.
Basically this will use hte usage stats permissions to get the recent apps (and most used) on your phone, and place them one by one on the circles. By default I keep them as circles to avoid users to be lost.
Completely reworking the points setttings gesture system.
So I’m refactorging this entire screen too allowsuper fine gesture control. before there used to be abutton to toggle botween 2 modes, but now only the gestures are responsible for that!!
Also, I’m created a ALL NEW initialization system to allow you to easily import your apps to the nests the first time you launch dragon
So recently I’ve been refactoring the app by moving some logic inside the viewmodels, reducing the amount of RAM the app uses and this, along with some minor optimizations and small features will be the next version. (soon!)
Also, i added a new button in the Preset rows to import your themes aditionaly to exporting them. All of this into a clean json you can share
Lots of people have been joinning the discord since last version and that’s super cool!!!
Complete refactor of the welcome screen:
I wanted to change it since a while now, so I did it!
Here’s rhe new version, its a vertical scrollable pager that fully integrates the power of gestures!!
I also added an easter egg in that version, when you select the “flashbang theme” from the color theme selector, it’ll play a flashbang grenade sound🤣
Various optimizations and ui fix
Thanks to the new stargazers on github, I’m almost at 300⭐!!!
I released a small changes update:
With all these fixes, the 4.1.1 was released!!!!
So I just published some little work I did, and the reason why is that I successfully find, after many failed attemps over the months) to hide the status bar , when the app is in fullscreen and that you open a modal bottom sheet. This was android’s default behavior to alway show them and that was ugly.
Also, I did some pretty heavy work implementing ktlint into the app and running the checks and formatting. I had lots of non auto-resolvable issues that I had to solve by hand, like renaming files etc…
Finally, I added a CI pipeline that runs a a lint check build and unit test for each commits in order to check the app’s sanity.
It’s been a while now that there was a subtle bizzare bug with this animated offset, and all of this was caused by a states mishandling and disalignment. I fixed that after stuggling for 2 hours debugging 
Here’s the final code result:
And sadly I can’t manage to share videos , so here’s a picture of what happens under the hoods
I was finishing and polishing everything for the nest minor version,
noethign really huge in this one, but a clear improvement of all the
UI, dialogs, and performance.
Here’s the new changelog for the 4.1.1:
4.1.1 (Labyrinth)
2026-08-29
#Started working on global app optimizations.
Lots of ppl told me some part of the app lags, so I started yb duty to optimize it as much as possible. Right now, I was putting each state items to viewmodels, in order to avoid reading disk the most, and also survive configuration changes.
Also I did a pretty cool update on the color picker tab
I was trying to improve the pin lockscreen of my app, but I ended up trying to reproduce as closely as possible the Google Pixel lock screen, as I really like it alot!
In the end, I’m pretty proud of the result, even though it ain’t finished yet, but I’m quite close!!!