Kabo
@kaboc.bsky.social
π€ 333
π₯ 131
π 81
App Developer Dart/Flutter, Go, SQL, PocketBase
https://github.com/kaboc
https://kaboc.cc/
pinned post!
custom_text A package that makes text on your app look and feel better.
pub.dev/packages/cus...
π Highlighting or linkifying parts of text π Changing text styles and pointer type on hover (good for web) π Obtaining tap/hover position π Some of those features are also available in text field
loading . . .
custom_text | Flutter package
Highly customisable text widget and controller to enable styling and gesture actions.
https://pub.dev/packages/custom_text
over 1 year ago
1
4
0
reposted by
Kabo
Fly.io
6 months ago
π 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...
0
10
3
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.
12 months ago
1
0
0
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...
loading . . .
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...
https://github.com/flutter/flutter/issues/162147
about 1 year ago
1
4
0
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!
about 1 year ago
0
0
0
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.
about 1 year ago
0
1
0
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...
loading . . .
Turso Cloud Debuts the New Developer Plan
A new developer plan that offers more generous allowances and a lower price than the Hobby plan.
https://turso.tech/blog/turso-cloud-debuts-the-new-developer-plan
about 1 year ago
0
0
0
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.
about 1 year ago
0
0
0
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...
loading . . .
Many Small Queries Are Efficient In SQLite
https://www.sqlite.org/np1queryprob.html
about 1 year ago
0
0
0
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.
over 1 year ago
0
0
0
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...
loading . . .
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
https://turso.tech/blog/upcoming-changes-to-the-turso-platform-and-roadmap
over 1 year ago
0
0
0
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.
add a skeleton here at some point
over 1 year ago
0
2
0
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.
over 1 year ago
1
4
1
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.
over 1 year ago
1
1
0
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
over 1 year ago
1
0
0
over 1 year ago
0
0
0
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.
over 1 year ago
1
0
0
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?
over 1 year ago
0
0
0
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.
over 1 year ago
1
0
0
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...
add a skeleton here at some point
over 1 year ago
0
1
0
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
.
loading . . .
over 1 year ago
0
2
0
Pocketbase Just Got An SQL Upgrade
youtu.be/KOk_Tw8qZYQ?...
loading . . .
Pocketbase Just Got An SQL Upgrade
YouTube video by Early Morning Dev
https://youtu.be/KOk_Tw8qZYQ?si=5MV-2GChMF93Y8aH
over 1 year ago
0
2
0
reposted by
Kabo
Josh Burton
over 1 year ago
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.
1
4
1
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.
loading . . .
google_adsense | Flutter package
A wrapper plugin with convenience APIs allowing easier inserting Google Adsense HTML snippets withing a Flutter UI Web application
https://pub.dev/packages/google_adsense
over 1 year ago
0
2
0
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!
add a skeleton here at some point
over 1 year ago
1
1
0
Flutter automatically flips (most of) the UI horizontally including icons in RTL locales. But is this really correct?
over 1 year ago
1
0
0
Noticed another one is up. Architecture case study
docs.flutter.dev/app-architec...
add a skeleton here at some point
over 1 year ago
1
3
0
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.
over 1 year ago
0
2
0
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.
over 1 year ago
0
5
0
Wondering why the current state getter added to go_router several weeks ago returns a nullable type. Neither currentConfiguration, last or buildState() is nullable.
over 1 year ago
0
1
0
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.
loading . . .
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...
https://github.com/pocketbase/pocketbase/releases/tag/v0.23.0
over 1 year ago
1
13
1
I didn't know this either. That's easier than what I usually did, like running "flutter build web" and then starting a server with dhttpd.
add a skeleton here at some point
over 1 year ago
1
2
1
Is enableFeedback existing in various widgets really working? For example, it is enabled by default in InkWell, but I've never seen it behave as the property name implies. There's no feedback on any of my Android phones. Does it require any special setting?
over 1 year ago
0
0
0
This would be much longer code if the language doesn't have pattern matching, collection-for/if and the spread operator. Dart is so powerful these days.
over 1 year ago
1
4
0
Generics in Dart is great (I mean, it's good enough), but it is confusing sometimes.
over 1 year ago
1
0
0
> hope to send out something in the next month or so. Definitely < 6 months π stay tuned.
github.com/dart-lang/sd...
This is one of the things I've been looking forward to about Dart. It's great it is likely to come sooner than I expected.
loading . . .
βοΈ New analyzer plugin system Β· Issue #53402 Β· dart-lang/sdk
Tasks needed to deliver a new analyzer plugin system: Tech preview Document requirements. Public doc available Design overall system. Public doc available Design plugin API. Public doc available Pr...
https://github.com/dart-lang/sdk/issues/53402
over 1 year ago
0
0
0
Architecting Flutter apps
docs.flutter.dev/app-architec...
loading . . .
Architecting Flutter apps
Learn how to structure Flutter apps.
https://docs.flutter.dev/app-architecture
over 1 year ago
1
15
8
It was not as hard as I was thinking to implement a feature to swipe down to close an image, which can also be zoomed and panned. It was achieved with only a little over 100 LOC. One of the things I think is nice is a movement by a pull is slowed down if the distance is enough to close the view.
loading . . .
over 1 year ago
0
0
0
reposted by
Kabo
Mike
over 1 year ago
The new
#FlutterDev
way to define WidgetState properties using .fromMap instead of the confusing callbacks are much easier to read and use, plus they allow ThemeData with component themes that use WidgetState properties to again have deep object equality β¬οΈ 1/2
1
15
3
Noticed the file stored with cached_network_image was not deleted, while its data was successfully removed from a JSON file.
over 1 year ago
1
0
0
custom_text A package that makes text on your app look and feel better.
pub.dev/packages/cus...
π Highlighting or linkifying parts of text π Changing text styles and pointer type on hover (good for web) π Obtaining tap/hover position π Some of those features are also available in text field
loading . . .
custom_text | Flutter package
Highly customisable text widget and controller to enable styling and gesture actions.
https://pub.dev/packages/custom_text
over 1 year ago
1
4
0
ListView automatically avoids its scroll ends covering outside the safe area, while other scrollable widgets (probably) don't. It's a bit confusing in an app that supports edge-to-edge. I have to decide whether to add a bottom padding manually depending on the widget.
over 1 year ago
2
0
0
TIL: minBy() and maxBy() from package:collection
forum.itsallwidgets.com/t/lesser-kno...
loading . . .
Lesser known classes and functions from the Dart core libraries
I noticed how, even after a decade of using Dart, I still occasionally find functionality in the standard library thatβs either new to me, or long forgotten. Iβd like to invite you folks to share your...
https://forum.itsallwidgets.com/t/lesser-known-classes-and-functions-from-the-dart-core-libraries/236
over 1 year ago
0
0
0
JsonCodable has just appeared in Dart and it is still experimental, so why don't we take this opportunity to change the naming convention of conversions between an object and a map? fromMap/toMap would be more appropriate than fromJson/toJson.
about 2 years ago
0
0
0
While the disabled colour of NavigationBar is configureable, that of NavigationRail is always onSurface.withOpacity(0.38). And when a widget doesn't have the configuration, I expect ThemeData.disabledColor to be used, but that's not the case. Why is Flutter so inconsistent?
about 2 years ago
0
0
0
I was wondering for a while how to convert a translucent colour to an identical-looking opaque colour in Dart, and then suddenly realised it was just a matter of using Color.alphaBrend. Would be handy to have a wrapper method that works appropriately with both light and dark modes.
about 2 years ago
0
0
0
custom_text - text widget package to make your app more expressive : r/FlutterDev
www.reddit.com/r/FlutterDev...
loading . . .
Reddit - Dive into anything
Reddit and its partners use cookies and similar technologies to provide you with a better experience.
https://www.reddit.com/r/FlutterDev/comments/1b2acqw/custom_text_text_widget_package_to_make_your_app/
over 2 years ago
0
0
0
Inside onPopInvoked - pop() should be called only when false is passed in, otherwise it leads to a strange behaviour (at least on Android emulator on my PC) - maybePop() causes an infinate loop
over 2 years ago
0
0
0
Without onPopInvoked - Cannot go back unless pop() is used - maybePop() does nothing (note: back button in AppBar uses maybePop) With onPopInvoked - pop() navigates back and calls onPopInvoked with `true` - maybePop() calls onPopInvoked with `false` without navigating
over 2 years ago
0
0
0
PopScope is confusing. Here is a note for future reference (only for use with Navigator API) Back gesture - iOS: Gesture itself is disabled, so onPopInvoked is not called - Android: onPopInvoked is called with false, but not when gesture is cancelled
api.flutter.dev/flutter/widg...
loading . . .
PopScope class - widgets library - Dart API
API docs for the PopScope class from the widgets library, for the Dart programming language.
https://api.flutter.dev/flutter/widgets/PopScope-class.html
over 2 years ago
0
0
0
Is animated GIF not supported here?
over 2 years ago
0
0
0
Load more
feeds!
log in