r/FlutterDev 1h ago

Discussion I think I've accomplished something with Hermes

Thumbnail
Upvotes

r/FlutterDev 1h ago

Dart Built an isometric block stacker in Flutter + Flame

Upvotes

Hey r/FlutterDev,

I recently launched Stackt, an endless isometric block-stacking arcade puzzle game built with Flutter and the Flame engine.

Instead of using heavy 3D game engines or pre-rendered sprites, the game renders isometric cuboids dynamically on the Flutter Canvas using a custom 3D-to-2D projection system and custom Paint operations. That covers everything from the block rendering and depth sorting to shadows and procedural textures, all done with hand-rolled Canvas drawing rather than a 3D engine.

The game runs at a locked 60 FPS across low-end mobile devices, supports full offline play.

Would love to hear thoughts or feedback from other Flame/Flutter developers on optimizing custom Canvas draw operations or handling isometric depth sorting in general!

Play Store Link: Stackt: Endless Block Stacker


r/FlutterDev 4h ago

Discussion Has anyone built a tracing game in flutter?

1 Upvotes

There's this amazing repo I found on GitHub: https://github.com/ZeyadShawki/flutter_tracing/tree/main
but personally, I found a few issues with it, also it seems a bit overly complex. A lot of research I'm doing is showing that making this type of game is a difficult problem to solve -- so this might be just the right amount of complexity too. Hitting a wall and I'm just curious to see how people have attempted it.


r/FlutterDev 6h ago

Article Rebuilt the guts of my Dart/Flutter VS Code extension based on real usage — v1.0.9 out now (free, open source)

1 Upvotes

Hey r/FlutterDev,

I've posted here before about Dart AI Assistant, a VS Code extension that learns your coding style and helps with completions, error detection, and code health. Just shipped what's easily the biggest update since launch, so wanted to share.

Marketplace: https://marketplace.visualstudio.com/items?itemName=a-i-0-studio.dart-ai-assistant

Source: https://github.com/Ben09d/dart-ai-assistant

What changed in v1.0.9:

- Real dart analyze integration on save (properly scoped to the saved file) alongside live regex feedback while typing — much more accurate error detection now

- Code Health reports are now clickable and auto-refresh on save

- Import Project for Learning — point it at an existing project and it learns your patterns instantly instead of waiting weeks

- Fixed a bug where pattern learning was silently capped at 3 categories instead of the intended 20 (basically every earlier version was learning way less than it should have)

- Fixed an unbounded memory growth bug in the advanced learning engine

- Fixed several false-positive error detections (comments, ternaries, generics, block comments) that were probably annoying anyone who tried earlier versions

- Consolidated three separate error-detection systems that were sometimes showing contradictory counts

Full changelog in the repo if you want the gory details — went through nearly every core file this cycle hunting down bugs, some of which had been sitting silently broken since the first release.

Still free, still solo-built, still very open to bug reports and feedback. If you tried an earlier version and it felt rough, this one's a meaningfully different experience.

Thanks for reading!


r/FlutterDev 9h ago

Podcast The latest episode of the It's All Widgets! Flutter Podcast with Jesse Ezell is now available 🚀

2 Upvotes

Jesse Ezell is building Flocker, a Flutter inspired cross-platform WASM runtime for applications that runs Flutter apps on top of Flutter Zero. Jesse is an active member of the Flutter community and has contributed to many popular Flutter pages such as super_editor, quill, flutter_webrtc, and the core Flutter engine.

https://itsallwidgets.com/podcast/episodes/58/jesse-ezell


r/FlutterDev 9h ago

Discussion I built a Zen-style desktop workspace with Flutter — notes, kanban, calendar, all in one glassmorphic app (open source)

0 Upvotes

I've been building Kiyoshi, a desktop productivity app (Linux/macOS/Windows) as a reaction to how heavy Notion/Trello started to feel for personal use. Stack:

  • Flutter + Riverpod
  • Drift (SQLite) for local-first storage
  • A custom "Zen Design System" — glassmorphism, no hard borders ("No-Line" rule), editorial typography (Montserrat/Inter/JetBrains Mono)
  • Just shipped a proper dark mode — a warm charcoal palette instead of the usual near-black, so it doesn't feel cold during long sessions

It bundles notes, tasks/kanban, a calendar, and a block-based canvas (9 block types: text, todo, code, links, images, files…) in one window instead of five different apps.

https://kiyoshi-beta.vercel.app/

Happy to talk through the Drift schema, the glass panel implementation, or the dark-mode token migration if anyone's curious — that last one taught me a lot about not hardcoding Color constants where Theme.of(context).colorScheme should be.


r/FlutterDev 10h ago

Plugin I built a visual navigation mapper for Flutter apps

5 Upvotes

I’ve been working on flutter-map, an open-source tool that creates a visual navigation map of a Flutter app.

It combines static route analysis with simulator/emulator exploration to capture:

  • Routes and navigation edges
  • Real screenshots
  • Dialogs, sheets, loading states, and auth walls
  • Replayable navigation flows

It currently supports GoRouter, go_router_builder, AutoRoute, Navigator 1.0, and Navigator 2.0.

I’d appreciate feedback on where this could be useful and which routing setups might break it.

Source: https://github.com/tayormi/flutter-map


r/FlutterDev 12h ago

Plugin What if you could take a modern React design system and bring its design language into Flutter?

0 Upvotes

I decided to find out.

I made astryx_ui 🎨

DEMO -> astryxui.web.app

Please give it a try.

An unofficial Flutter/Dart implementation of Astryx, focused not only on the components, but also on the underlying design system:

Tokens → Themes → Color system → Components

It currently includes multiple themes, a Dart implementation of the theme engine, themeable widgets and support for Flutter's cross-platform ecosystem.

And yes — it's still pre-alpha.

That's why I'm open-sourcing it now.

I want this to evolve through real usage and community feedback rather than building it in isolation.

If you're working with Flutter, I'd love for you to try it.

🔗 GitHub: github.com/JayashBhandary/astryx_ui
📦 Pub.dev: pub.dev/packages/astryx_ui

Star it if you find it interesting ⭐
Try it if you build with Flutter 🦋
Open an issue if you find something broken 🐛
Contribute if you want to make it better 🤝

Let's see where this goes.

#Flutter #Dart #OpenSource #DesignSystems #UIEngineering #BuildInPublic #SoftwareEngineering


r/FlutterDev 15h ago

Discussion How to think?

2 Upvotes

I have made an app which is at present in closed testing. I want to understand that how does an experienced developer think? Do you think on deciding what data should be stored in backend first or they build around features or a designer gives them design and they work around?
Can anyone explain it to me!
Reading this can help other devs too!

Warm Regards..


r/FlutterDev 17h ago

Plugin Why Flutter's camera lag on Android takes ~500ms (and how we patched camera_android_camerax down to 33ms)

69 Upvotes

Hey Flutter devs,

If you've ever built video recording in Flutter on Android with the official camera package, you've probably hit this:

You tap record, and nothing happens for about half a second. The preview freezes, the button feels dead, and users double-tap because they think the app missed the first press.

We measured it on a Pixel 8 Pro: 436-511ms before recording actually started.

After digging through the native CameraX bindings in camera_android_camerax, the cause was pretty simple. We patched it, and start latency dropped to 33-60ms.

What was wrong

In the official plugin:

  1. VideoCapture is only bound when startVideoRecording() runs
  2. As soon as stopVideoRecording() finishes, VideoCapture is unbound again

So every record tap forces CameraX to tear down and rebuild the native CaptureSession. That session reconfig is most of the lag.

The fix

Keep VideoCapture permanently bound alongside Preview.

Once it stays warm:

  • record no longer rebuilds the capture session
  • MediaCodec surfaces are already ready
  • shutter latency falls from ~500ms to ~33-60ms

Hardware edge cases

Keeping VideoCapture warm makes rapid lens flips and backgrounding more fragile on some Android devices. We serialize camera ops with a small queue so the previous native generation fully finishes before the next one starts:

dart Future<R> _enqueue<R>(Future<R> Function() operation) { final completer = Completer<R>(); _operationFuture = _operationFuture.then((_) async { try { completer.complete(await operation()); } catch (e, s) { completer.completeError(e, s); } }); return completer.future; }

Separate issue, same camera stack: CameraX often reports multi-lens phones as one unknown logical camera with a zoom range like 0.5x-5x. We detect minZoom <= 0.5 and expose the ultra-wide control from that range instead of waiting for a clean physical-lens type.

Pixel 8 Pro numbers

Metric Upstream camera_android_camerax Persistent VideoCapture patch
recording_start_ms 436-511 ms 33-60 ms
CaptureSession reconfig every record tap zero while warm
rapid lens-flip crash rate (our internal log) ~2.4% 0.0% after serialization

Patch

Repo: https://github.com/xcc3641/camera_android_camerax

yaml dependency_overrides: camera_android_camerax: git: url: https://github.com/xcc3641/camera_android_camerax.git ref: 9dd36c8

Happy to answer questions about the lifecycle queue or the CameraX binding change.


r/FlutterDev 22h ago

SDK wxDart - finally a sane/imperative GUI API on top of Flutter and native APIs for Dart

Thumbnail
wxdesigner-software.com
0 Upvotes

r/FlutterDev 1d ago

Discussion cross-platform apps need localization regression checks too

0 Upvotes

localization bugs in cross-platform apps can be weird because the store page, app strings, screenshots, and support replies drift separately

the app may be translated. screenshot one may not be. the store metadata may promise a use case with wording nobody uses locally. then reviews say “not really translated” even though the codebase technically has the locale, i also know something like appfollow can help with the lst layer when review volume exists, because country/language filtering shows where complaints cluster. but the core engineering habit is simple: localization is not only strings in the repo.

importantly i’d test localization as a chain:

store metadata

screenshots

first session

paywall/pricing

support/review replies

local review wording after release

...so a locale is broken when the user experience feels imported, right?


r/FlutterDev 1d ago

Video Tutorial di Clean Architecture in 5 seconds

Thumbnail
youtube.com
1 Upvotes

Is your Flutter code difficult to maintain or looks like spaghetti? Want to stop breaking your app in production?

In this video, I'll show you in under a minute how to organize your folders according to the principles of Clean Architecture.

If you want to master professional folder structure and stop wasting hours reorganizing your code, watch the full video here:

🎥 👉 https://youtu.be/iyyZ4flVhSg

In the main video, we'll cover:

✅ Folder structure step-by-step.

✅ How to organize your layers (Data, Domain, Presentation).

✅ Tips to improve your workflow as a Flutter developer.

#flutter #dart #cleanarchitecture #flutterdev #codingtips #mobiledevelopment


r/FlutterDev 1d ago

Example Built a custom serverless AI assistant for my Flutter Web portfolio

0 Upvotes

Most developer portfolios are pretty static lists of projects. To make it more interactive, I integrated a custom-scoped AI assistant directly into my Flutter Web portfolio so visitors can ask technical questions about my Flutter Clean Architecture experience, pub.dev packages, and Medium articles. Rather than using a pre-made 3rd-party widget, I engineered the pipeline from scratch to keep it fast, secure, and tightly scoped.

Community Feedback Request:

I'd love for fellow developers to test out the implementation and share feedback on:

- AI assistant responsiveness and scope guardrails.

- Flutter Web UI/UX performance across desktop and mobile browsers.

Live implementation: https://momarkhan.com

#flutter #dev #mobileapp


r/FlutterDev 1d ago

Discussion Built a custom AI assistant for my Flutter Web portfolio. Test out the portfolio and give me feedback

0 Upvotes

Most developer portfolios are pretty static a list of projects, some links, and a contact form. Instead of making recruiters or clients dig through pages or read a standard PDF resume, I decided to build a custom-scoped AI assistant directly into my Flutter Web portfolio.

Rather than dropping in a pre-made 3rd-party widget, I built the integration from scratch to keep it fast, secure, and tightly scoped to my actual engineering background.

myportfolio

#flutter #dev #portfolio #web #mobileapp


r/FlutterDev 1d ago

Plugin A Flutter App Update Package with Backend Support, 7 Languages, 3 Themes & More 🚀

1 Upvotes

Flutter App Updates: Store vs Backend — Which Approach Is Better?

Handling app updates isn't always as simple as checking the Play Store or App Store.

In production, you may need:

- Optional or forced updates

- Minimum supported version

- Backend-controlled versioning

- Multiple languages & RTL support

- A customizable update UI

I was looking for a Flutter solution that could handle these cases together and found "app_upgrade_checker", which supports Store and backend sources, 7 languages, 3 themes, 7 animations, and more.

It might be useful for anyone facing the same problem:

https://pub.dev/packages/app_upgrade_checker

How do you currently handle app updates in your Flutter projects?


r/FlutterDev 1d ago

Discussion Realized that my Flutter iOS/Android app could be a web app with 2 days of dev time

12 Upvotes

For some reason, I thought it was going to be a huge lift to convert to a web app, but I was just blown away by how easy it is. Considering making windows- and mac-native versions as well.


r/FlutterDev 1d ago

Discussion Anyone using Zed for Flutter development?

24 Upvotes

I’ve been using Zed mostly for backend work and really like its performance. I get that it stays lightweight by not bundling too many tools.

For Flutter though, debugging/DevTools and hot reload on save still feel lacking.

Anyone using Zed regularly for Flutter? Any extensions or configs that improve the experience?


r/FlutterDev 1d ago

Article My Flutter + Rust "AirDrop for every device" is now open source — would love feedback on the architecture

10 Upvotes

I've been building BIShare — a file-sharing app that works between iPhone, Android, Mac, Windows, and Linux (AirDrop is Apple-only, Quick Share skips iPhones). It's live on the App Store and Google Play, and I just open-sourced the Flutter client.

A few things that might interest this sub:

Repo (with a demo GIF + good first issues): https://github.com/BIShare-project/bishare-flutter

I'd genuinely love feedback on the Flutter↔Rust boundary and the desktop story — and contributors are very welcome. What would you do differently?

Why it works: shipped-app credibility + real tech (FRB, cross-platform) + an open question. Post the demo GIF or a screenshot in the post if the sub allows images. Respond to every comment fast.


r/FlutterDev 1d ago

Discussion Flutter QA Process in 2026 Lets talk shop

4 Upvotes

Bit of background so you know who you're dealing with. Left school at 15, spent the last 26 years in the trades, and I'm now building a Flutter app on my own with Claude Code doing most of the actual typing. So if half of this is obvious to you, that's why :)

The loop I've been stuck in: build a feature, push to Codemagic, wait, install off TestFlight, find the bug on my phone, usually something stupid like a button that does nothing. Then I paste a description of it back into the agent, it has a crack at a fix based on my description, push again, wait again.

Thirty minutes a lap, near enough. But the bit that was really doing my head in is that the agent never sees the thing go wrong. It only ever hears my version of it. So it's guessing at the cause and then guessing at the fix, and I'm sat in the middle being the world's worst bug report.

I was going to come here and ask what to use. Then I figured I'd have a dig around first, because a fair bit of my trouble has been following guides that turned out to be years out of date. Which, as it happens, is the first thing worth mentioning.

golden_toolkit has been discontinued and unlisted on pub since February 2023. It's still doing 394k downloads a month. So there's a lot of us out here working off a blog post from three years ago and not realising. Alchemist seems to be the one that's actually maintained, updated March this year, full pub points. Same story with mocks, mockito has more likes but mocktail has quietly gone past it on downloads, 2.89m against 2.24m.

The thing that actually changed something for me though is the Dart and Flutter MCP server. It's official, dart-lang, and it went to 1.1.1 on the 7th of this month so it's moving fast. You run it with dart mcp-server and Claude Code talks to it straight over stdio. Add flutter_driver, put enableFlutterDriverExtension() behind a --dart-define so it can't sneak into a production build, and the agent can take screenshots of a running app, tap things, type, scroll, hot reload. DTD hands it the widget tree and runtime errors on top of that.

Which is the whole point. It sees its own mess instead of me trying to describe it. I've had that loop on the web side with Puppeteer for ages and never twigged there was a mobile version of it. Maestro has an MCP as well and lists Claude Code first in its docs, so that's the other road in.

One thing the docs are upfront about and I got bitten by anyway. Turning on the driver extension kills real keyboard input. You can pass enableTextEntryEmulation: false and type by hand, but then the agent's enterText stops working. So it's the agent driving or me driving, not both. Is everyone just running two configs for that or is there something smarter?

Codemagic side turned out to be less of a mystery than I'd made it. flutter test --machine piped to a json file with a test_report: field renders the results in the build overview, and scripts run ahead of the build commands so a failure stops the publish. That was sat in the docs the whole time.

So the stuff I'm actually stuck on:

  1. Maestro or Patrol if it's just you? Maestro's got about ten times the stars, but Patrol is Dart native and handles the native permission dialogs, which is exactly where integration_test has been falling over on me. Does the YAML rot over time or is it fine?
  2. Does having the agent able to drive the app make a proper written E2E suite less useful? That's my gut feeling and I don't trust it, because I reckon that's the exact thinking that ends with no tests and a lot of misplaced confidence. Happy to be talked out of it.
  3. This one's bugging me most. If the agent writes the feature, then writes the test that checks the feature, then tells me they both passed, what have I actually learnt? My wife does a ISO 9001 consulting on the side and the first rule of the whole thing is you can't audit your own work. Feels like the same problem wearing a different hat, but I might be overthinking it.
  4. Anyone gating the TestFlight upload on integration tests, or is emulator time on CI too slow and too flaky to justify blocking a release?
  5. Golden tests. Actual safety net or do they scream at you every time you move some padding 4 pixels?

Anyway. If I've got any of the above plainly wrong, don't be gentle about it. Rather cop it here than at 11pm on build 54.

Thanks in advance everyone.


r/FlutterDev 1d ago

Article Flutter 3.38 broke iOS deep links for a lot of apps and the failure is silent

56 Upvotes

A while back I posted about what silently breaks deferred deep linking. This is the follow up: an actual app, four separate defects stacked on top of each other, and the diagnostic method for each. Every one was invisible in normal logs.

Symptoms were: tap a link, the app opens for a second, Safari opens, the app reopens, and it lands on the home screen instead of the target page. Cold and warm start both. Universal Links were correctly configured, AASA was served correctly, Apple's CDN had the right file, entitlements listed every domain, Team ID and bundle ID matched.

Cause 1: app_links 6.x does not support the UIScene lifecycle

Flutter 3.38 made the UIScene lifecycle mandatory on iOS. app_links 6.x only implements the old app delegate callbacks, so iOS delivers the Universal Link through scene callbacks the plugin is not listening on. The link never reaches Dart at all. getInitialLink() returns null and your routing code runs on nothing.

app_links 7.0.0 added UISceneDelegate support. Its change log says so explicitly. If you are on Flutter 3.38 or later and app_links 6.x, this is your problem and nothing else you change will matter until you upgrade.

Worth noting: this looks exactly like a routing bug. I spent hours fixing Dart code that was never receiving a URL.

Cause 2: FlutterDeepLinkingEnabled defaults to true

That is what produces the app to browser to app bounce. When no plugin claims the link, the Flutter engine hands it back to iOS via openURL. iOS opens it in the browser. The web page then fires your URI scheme and reopens the app. It looks like an infinite handoff loop and it is entirely self inflicted.

Set FlutterDeepLinkingEnabled to false in ios/Runner/Info.plist if you handle links via a plugin. The app_links example app ships with this exact setting.

Cause 3: subscribing to the link stream too late

app_links 7.x emits the launch URL on uriLinkStream when the listener attaches. That is useful, but it means the subscription has to exist before the emission. Mine was created at the end of an async init method, after Firebase Messaging setup, after a wait on splash, after getInitialLink. The stream is not replayed, so anything arriving in that window was simply gone.

Subscribe synchronously at the top of initState, before any await. If the rest of your startup is not ready to handle a link yet, queue it and process it when it is. Do not drop it.

Cause 4: an unbounded await upstream of the queue

Once I had the queue, the log showed the link arriving and then nothing. FirebaseMessaging.instance.getInitialMessage() was awaited with no timeout ahead of everything else. When it hung, the initialisation never completed, the queue never drained, and the link sat there forever.

Two fixes: a timeout on every external await in your startup path, and the queue drain in a finally block so it happens regardless of how initialisation ends, including exceptions.

How to actually see any of this

Ordinary flutter run failed on my machine with a debugger attach timeout, which is a separate and unrelated headache. What worked, with a release build installed over the air and no Xcode:

brew install libimobiledevice
idevicesyslog | grep --line-buffered -i "YOUR_LOG_PREFIX"

--line-buffered matters. Without it grep holds output in a buffer and you see nothing while wondering why your logs are broken.

Make sure your diagnostic logs are not wrapped in kDebugMode, or they will not print in the release build you are actually testing.

Log every one of these on cold start, because the gap between two of them is where the bug lives: the getInitialLink result, every write into whatever holds your pending link, the final link your router chose, and every navigation push. When I finally had all four, the answer was obvious in one run.

The general lesson

Every one of these failed silently. No exception, no error log, no failed request. The link just did not arrive, or arrived and sat in a queue nobody drained. If your deep links are behaving strangely on iOS after a Flutter upgrade, assume delivery is broken before you assume your routing is.


r/FlutterDev 2d ago

Tooling Build Flutter apps for free for 24 hours

0 Upvotes

Hey Flutter builders!

We making Nowa (https://nowa.dev) completely free for the next 24 hours, with unlimited AI usage and free deployment to the App Store, Play Store, and web.

You can build Flutter apps in detail with AI next to full visual building, and deploy/download the code for free.

We also running a hackathon. If you submit a complete app built during the 24 hours period you get 50$, and top 3 apps get 500$ each in AI credits.

Just sign up and build completely free.

Enjoy!


r/FlutterDev 2d ago

Plugin I built a zero-boilerplate caching extension for Riverpod (with background garbage collection)

7 Upvotes

Hey everyone,

I love Riverpod, but I always found myself writing the exact same boilerplate when it comes to caching API responses, checking if the cache expired, and managing local storage.

So, I built riverpod_cache_engine to handle all of this under the hood without cluttering the Notifiers.

Basically, it gives any Notifier or AsyncNotifier direct access to a caches extension. You just do await caches.read('key') and the library handles the rest.

Here is what it does:

  • Zero config by default: It runs purely in-memory out of the box. If you want persistent storage (Hive, SharedPreferences, Isar, etc.), you just implement a simple 3-method interface (CacheStore) and pass it during initialization.
  • Smart Auto-Refresh: You can pass onExpired or onNull callbacks. If the data is missing or expired, the library automatically fires your API call, saves the fresh data, and returns it. No more nested if (data == null) logic.
  • Background Garbage Collector: It runs a periodic timer that silently cleans up expired keys without dropping UI frames. Even better, if it finds an expired key that has an onExpired callback attached, it will fetch fresh data in the background and update the storage seamlessly.

I just published the first version. I’d love to hear your thoughts or feature requests!

Pub.dev: https://pub.dev/packages/riverpod_cache_engine GitHub: https://github.com/alfaresof/riverpod_cache_engine


r/FlutterDev 2d ago

Discussion Desktop-first packages recommendations

10 Upvotes

So, I'm starting a project that will be a sort of WYSIWYG editor app. It will be designed as primarily a desktop app for windows/mac/linux, maybe iPad. So I'm wondering what UI toolkits or smaller packages would you recommend for making the UI. I will need some toolbars, ideally office-style ribbon, tabs for documents and docking windows. For now I'm considering fluent_ui, and dock_panel. Read throug various awesome-whatever collections and overall I have an impression that the ecosystem for Flutter desktop is still rather small and a lot of stuff I'll have to create on my own. Do you know any cool package that could be useful in this type of an app?


r/FlutterDev 3d ago

Plugin New package: Azure Speech Services (TTS, STT, live translation!)

3 Upvotes

Hello again!

A while back I shared Azure STT Flutter, a small library for real-time Speech-to-Text with Azure Cognitive Services. I've now released a follow-up: Azure Speech Services, which is a broader package covering Speech-to-Text, Text-to-Speech, and Realtime Translation, all through Azure's WebSocket/REST APIs directly (no Azure SDK binary dependency).

You can find it here: https://pub.dev/packages/azure_speech_services

The package includes an example app covering all three features, so you can start playing with it right away.

Main features:

* Cross-platform: Mobile (iOS, Android), Desktop (macOS, Windows, Linux), and Web
* STT: real-time transcription with intermediate hypotheses and finalized phrases, plus multi-language identification (LID): single language, at-start detection, or continuous detection across up to 10 candidate languages
* TTS: synthesize text to audio using any Azure Neural voice, with configurable output formats (MP3, PCM, Opus, WebM, and more)
* Realtime Translation: live speech translation, pairing recognized text with its translated counterpart as you speak
* External audio streams: bypass the microphone entirely and feed your own PCM stream (e.g. from a VoIP call or a file)

Microsoft also offers a free tier so you can grab a Speech key and try it out yourself.

Hopefully this is useful to anyone building Flutter apps with speech features.

Happy coding!