Hey HN. Eric Seidel here (former lead of Flutter & Dart at Google, prev. YC S06).<p>I founded Flutter and led the team for almost a decade. One of the constant questions we got was would we support code push like the web/react native: <a href="https://github.com/flutter/flutter/issues/14330">https://github.com/flutter/flutter/issues/14330</a> I left Google about a year ago and set out to build a company around Flutter and decided to start with code push.<p>It took us a year to build. We had to build a new toolchain for Dart and a custom interpreter (for store compliance). But it works! Our beta has already been used by thousands of apps. Most (eventually all) of the code is open source on GitHub.<p>I’ll be around all day to answer Flutter and Shorebird questions. We run our company in the public on Discord and are happy to take questions there too. Would love to hear your thoughts.
Has there been any consideration of possibly spinning the Flutter project out of Google and into a non-profit foundation?<p>I think right now the biggest thing holding Flutter back isn’t technological, but rather the stigma that is attached to Google’s history of abandoning products. I understand that it is in widespread use in important products from Google and other major companies, but nearly every time Flutter comes up both here and on Reddit a significant number of comments are concerns about Google’s long-term commitment.
This is amazing. Thank you very much for all you've done and are still doing. Flutter changed my life as a developer. I learned so much thanks to its culture of openess & embracing community contributions. I feel like it's something unseen in most other open-source projects of this scale - I'm speaking this as a person that contributes regularly & has been invited to #flutter-hackers a few months ago:)<p>I was at Fluttercon Berlin last year and I remember your talk where you said we need to build for the next 10 million developers who will use Flutter. Many tools that should exist for Flutter still don't exist. The fact that you did code push on Android & iOS is a great achievement (code push on desktop should be much easier to implement than iOS and it's only a matter of time for you) - but what's the next big thing you plan to accomplish at Shorebird?
We have a pretty large (surface area) Flutter app. One of our concerns with Shorebird in evaluating it early on was lack of JIT for iOS. As you mentioned, your custom interpreter solves this problem. But I guess my question is, how well?<p>Do you have performance data for comparison between the interpreted runtime and the official runtime?<p>Edit: found this thread + comment which answered most of my questions. <a href="https://github.com/shorebirdtech/shorebird/issues/1871#issuecomment-2040568074">https://github.com/shorebirdtech/shorebird/issues/1871#issue...</a>
How are these "code pushing" technologies holding up when it comes to security?<p>Apps loading and executing additional code at runtime (as opposed to e.g. gating behavior using feature flags fetched from the backend) just doesn't sound like a great idea, even if it might technically pass the various app stores' review guidelines.
TIL that self-updating mobile apps are a thing. It is quite surprising to me that the app store gatekeepers don't force all app changes through their vetting process! Has this always been the case, or is this a new development?
I had to read the github ticket to find out what "code push" actually meant, as it is quite the generic term. Makes me think of git.<p>Turns out it means, "out-of-store updates," a description which I immediately understood. I'd lead with that.
Hi Eric, congrats for the launch!<p>I'm curious, do you recommend any E2E test framework for Flutter?
The idea behind hot pushing is releasing more often, for which you become more confident if you have some testing involved.<p>I'll make a shameless plug for my product (you don't get an opportunity to reach out to the Flutter founder every day!). I waited till the page was out of the front page to avoid looking like I was riding your show hn.<p>We claim we have the best support for writing and running end-to-end tests for mobile apps, and Waldo stands out in terms of compatibility with hybrid frameworks like RN or Flutter (where Appium support is poor). How can you tap on a button if your test framework doesn't "see" it?<p>We are releasing a new offer to run local test scripts on cloud devices, which has many benefits: <a href="https://dash.readme.com/project/usewaldo/v2.0/docs/getting-started" rel="nofollow">https://dash.readme.com/project/usewaldo/v2.0/docs/getting-s...</a> .
By any chance, if you want to know more, I'd be glad to offer additional credits and even honored to do a personal demo (this holds for all HNers!)! My email is in my profile.
Not a question but a prop, this is truly a great product built by a great team!<p>One day I hope to be able to truly do CD on mobile to avoid the annoying gatekeeping of the app stores, for sure Shorebird is the way!
Will this work with state management libraries like Bloc, and libraries that depend on code generation like MobX?<p>And how about adding new (Dart-only) libraries in pubspec?<p>EDIT: Also, flavors.
Does this still run AOT built code at fully optimised native performance? Your FAQ's mention that the App & Play stores allow interpretted code to be downloaded, but not native code. So this reads to me that this solution might be running things closer to JIT debug mode than AOT release mode. Help me understand this please.
This service is straight up lying when it says that Remote Code Push is implemented as per Apple's guidelines. Apple expressly prohibits Remote Code Push and if your app is found doing this, it can be banned by Apple.<p>Here is the guideline from Apple for the same:<p>2.5.2: Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the app completely viewable and editable by the user.<p>Ref: <a href="https://developer.apple.com/app-store/review/guidelines/" rel="nofollow">https://developer.apple.com/app-store/review/guidelines/</a>