🚀 Just dropped: Litestream VFS. Query SQLite databases directly from S3 with zero download penalty. It uses HTTP range headers for lazy fetching and LTX for compaction, enabling instant startup even for large databases. 🔗 ➡️ fly.io/blog/litestr...
Kabo
@kaboc.bsky.social
App Developer Dart/Flutter, Go, SQL, PocketBase https://github.com/kaboc https://kaboc.cc/
I'm curious about the min window size allowed in iPadOS 26's multi-window system. Some of my apps are responsive and look good at 100x100, but likely overflow at 50x50.
I'm still on Flutter 3.24.5, which I believe was the last truely stable version. When will critical bugs in 3.27 and 3.29 be fixed? Even then, these versions won't receive backports, so for me, they'll essentially remain untouched forever. E.g. github.com/flutter/flut... github.com/flutter/flut...
Flutter 3.27.x | Android 10, 11 | Crash: "drawRenderNode called on a context with no surface!" · Issue #162147 · flutter/flutter
Steps to reproduce Issue Summary: Our app uses multiple screens with WebView (flutter_inappwebview). After upgrading Flutter from version 3.24.4 to 3.27.1 to address this issue on iOS 18.2, we star...
github.com
Finally solved the Go dependency issue I'd been battling in IntelliJ IDEA for months. It turns out a permission error related to the env file in GOROOT – which should have been a file – had somehow been replaced with a directory of the same name. So bizarre!
I struggled a bit to find out how to scroll to an element smoothly with scrollIntoView() in a website made with Jaspr. Its argument needs to be JSAny, but js_interop doesn't (apparently) have a method to convert a Dart Map to JSObject. Evetually turned out jsify() was the one.
Considered Turso and skipped it recently, but wanna think about using it in the future. I guess it is now one of the most affordable cloud relational database services. Only $4.99 (or 5.99) /month for 1,000 databases and 2.5 billion monthly rows read. turso.tech/blog/turso-c...
Turso Cloud Debuts the New Developer Plan
A new developer plan that offers more generous allowances and a lower price than the Hobby plan.
turso.tech
Scrolling obviously stutters in my app. Seems the cost of creating widgets is higher than the benefit of lazy creation in SliverList. Using Column makes it smoother, but the initial build is probably more costly. I wonder whether to fix the cause now. It isn't that noticeable in profile mode.
I had been a little skeptical that running a lot of queries consecutively wouldn't be a problem in SQLite (and actually haven't measured the performance), but found the document had a dedicated page about it. It says even N+1 Queries are fine. www.sqlite.org/np1queryprob...
Many Small Queries Are Efficient In SQLite
sqlite.org
Asked an AI about things to be cautious about when using the WAL mode in SQLite on a mobile app. I didn't know WAL might not work on an SD card. I'm lucky I'm using Drift for DB operations but also using sqflite's getDatabasesPath() together to get `data/data/xxxx/databases/`, which isn't in SD.
So Turso will allow us to create up to 500 databases with 1-day PITR and no cold starts for free, or with 10-day PITR, 3-day audit logs and no archiving for only $4.99 (down from $9). Sounds very affordable and nice! turso.tech/blog/upcomin...
Upcoming changes to the Turso Platform and Roadmap
With a renewed focused on the rewrite of SQLite, we will make some changes to our offering
turso.tech
I saw this post just the right time when I was struggling to access ‛window.navigator.language‛ using package:web on a static site created with Jaspr, only to get an incompatibily error. The universal_web package (used together with kIsWeb) solved the issue.
New 'universal_web' package adds platform compatibility to 'web' package: This wraps the 'web' package and provides stubs for non-web platforms, which makes it directly importable in all environments. No more conditional imports. Used by Jaspr for all web interactions. pub.dev/packages/uni...
Started to migrate my developer website from Svelte to Jaspr. The experience is much better than when I created part of my blog site with it 2.5 years ago. It's impressive that even styling is possible via Dart, which was not possible before IIRC.
Didn't know I can use the the use-named-parameters flag in l10n.yaml. According to the change log, it's been available since Flutter 3.19.
I was looking for a long time for a way to remove granted entitlements on RevenueCat dashboard, and I realised just yesterday that I had to uncheck the "Sandbox data". 1. Customers > Sandbox 2. Choose a customer from the list 3. Uncheck the checkbox at the top right
Drift stores a date and time as an epoch time in seconds by default. To change the precision to milliseconds, it is necessary to either (a) use IntColumn + a converter instead of DateTimeColumn, or (b) configure to store DateTime as a string. Both have pitfalls. Wish it was easier.
Logging in is not required in my app, but it is necessary if a user has purchased a subscription at the Play Store and wanna enable it on iOS without re-purchasing at the App Store. Will the app be rejected if I describe the flow for users and Apple notices it?
Topics of a package seem to affect the order of search results on pub.dev. I recently added "rich-text", "link" and some more topics to one of my packages, which had had only "text" before. A search by "rich text" or "link" now shows the package in the first or second page.
Learned `FontFeature.tabularFigures()` (or `FontFeature.enable('tnum')`) as well as other font features from this article several years ago. suragch.medium.com/font-feature... The page now asks me to create an account. This is why I don't like Medium...
Font Features in Flutter
A little extra help for styling your text
suragch.medium.com
Did you know? If you want to render fixed width (monospaced) digits, set FontFeature.tabularFigures() inside your TextStyle. 🎯 This works great when showing numbers and dates that should align vertically or update in realtime! 🔥
IntrinsicHeight sometimes doesn't align the height of children of a Row (dunno why). CustomMultiChildLayout is another option, but cannot be used if the Row height is unbounded. So I created a custom RenderFlex as a last resort. IMO, this should be possible out of the box in #FlutterDev.
Pocketbase Just Got An SQL Upgrade youtu.be/KOk_Tw8qZYQ?...
Pocketbase Just Got An SQL Upgrade
YouTube video by Early Morning Dev
youtu.be
Well I'll be reverting that change. When using workspaces all of the workspaces in the project seem to be bundled with the app, even if not referenced by the app pubspec. Surely that's a bug.
google_adsense 0.0.1 Google AdSense plugin for Flutter Web pub.dev/packages/goo... Looks nice as a new way to monetize web sites/apps created with Flutter.
google_adsense | Flutter package
A wrapper plugin with convenience APIs allowing easier inserting Google Adsense HTML snippets withing a Flutter UI Web application
pub.dev
TIL: Everything is flipped in RTL (or at least in Persian), more thoroughly than I thought. Even the question mark is not an exception. It feels to me as if they live in a mirror. How interesting!
Yes. In Persian, that’s the question mark: ؟
Flutter automatically flips (most of) the UI horizontally including icons in RTL locales. But is this really correct?
Keeping a tooltip open is possible with TooltipTriggerMode.manual + GestureDetector + TooltipState.ensureTooltipVisible() in Flutter, but a tap on the Tooltip child reopens the tooltip instead of closing it. As a workaround, I had to use Tooltip.dismissAllToolTips() to get the visibility status.
It's kind of fun to try opening mobile apps offline and see what happens. X and Mastodon show cached data, and oh, BlueSky... I don't think all kinds of apps should support offline use, but it's definitely bad that an app surprises already logged in users by showing the login page.
Wondering why the current state getter added to go_router several weeks ago returns a nullable type. Neither currentConfiguration, last or buildState() is nullable.
PocketBase v0.23.0 github.com/pocketbase/p... It is incredible that the author completed so many awesome improvements after announcing the plan nine months ago.
Release v0.23.0 Release · pocketbase/pocketbase
NoteYou don't have to upgrade to PocketBase v0.23.0 if you are not planning further developing your existing app and/or are satisfied with the v0.22.x features set. There are no identified critical...
github.com