Urgent.News

What's breaking now, across thousands of outlets.

Tech

Flutter OTA Updates with Shorebird

Flutter OTA Updates with Shorebird Why We Needed OTA Updates We pushed a build with a small logic error. It was a one-line fix. By the time we noticed, the app was already crashing on our users' devices. Sentry was firing nonstop. We fixed the code fast. But shipping the fix was slow. The new build took about 8 hours to go live on Android and 12 hours on iOS. The crashes kept happening the whole…

In an incident where a small logic error in a Flutter app led to crashes on users' devices, the developers realized the need for over-the-air (OTA) updates. They found Shorebird, a code push tool for Flutter, which allowed them to send Dart code updates directly to users' phones without the need for a new store release or review.

This resulted in patches downloading silently in the background, reaching users far sooner than a normal release. Shorebird only applies Dart code changes, while native changes would still require a store release. The developers set up Shorebird in their production app with separate flavors for development and production, running shorebird init and shorebird create to initialize the tool.

They configured the shorebird.yaml file with unique identifiers for each app flavor. To release a build, they ran shorebird release for both Android and iOS, followed by shorebird preview to test the release. Patches could then be pushed using shorebird patch for each platform, addressing bugs without going through the store review process.

The Shorebird console provided insights into the number of users affected by each release and patch. While Shorebird cannot fix native issues, it serves as a safety net, allowing developers to fix problems quickly instead of waiting for a traditional release cycle.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

I built a unique ID generator that's ~60% faster than nanoid

jet-id is a tiny, zero-dependency unique ID generator for JavaScript and TypeScript. IDs are 28-character Crockford base32 strings, with optional timestamps so they sort by creation time.

  • jet-id is a fast, zero-dependency unique ID generator for JavaScript and TypeScript
  • Generates 28-character Crockford base32 strings with optional timestamps
  • ~60% faster than nanoid, producing ~83 million IDs per second

My Journey in Python: Week 1 with Akwannya Hub Skill Pod (Cohort 1)

Throughout my tech journey, I always thought computers were complicated systems. I knew they could do amazing things (in Akan, we would say "ԐyԐ nwanwa"), but I did not know how they worked inside.

  • Python's syntax and semantics form the foundation of any programming language
  • Python was named after Monty Python's Flying Circus, not the serpent
  • Collaborative learning with peers accelerates Python mastery

Your Cypress Retry Passed - But the Test Is Still Telling You Something

Attempt one fails. Attempt two passes. CI turns green. Did the system recover from harmless noise, or did the retry hide an intermittent product defect?

  • Cypress test retry can signal underlying issues
  • Experimental strategies allow stricter policies
  • Preserve failed attempts and details for diagnosis

504 vs 503: What Actually Triggers Each in nginx, ALB, and Cloudflare

You're staring at a 5xx in your logs at 2am. Is it a 503 or a 504, and does the difference actually change what you do next? Yes — a lot.

  • 503 error indicates upstream server actively refusing request
  • 504 error signifies upstream server processed request but failed to respond in time
  • Each platform (nginx, ALB, Cloudflare) has distinct settings and triggers for these errors

Snake and Ladder in Go

Snake and Ladder in Go This is a small console Snake and Ladder game in Go. Use it to see how a program can be split into a few types that each do one thing.

  • Game implemented in Go with 100-square board and three players
  • Dice roll determines movement, snakes and ladders apply special rules
  • Polymorphic design using interfaces for ladders and snakes

More from Saturday 19 September →