[HN Gopher] Show HN: Shorebird 1.0, Flutter Code Push
___________________________________________________________________
Show HN: Shorebird 1.0, Flutter Code Push
Hey HN. Eric Seidel here (former lead of Flutter & Dart at Google,
prev. YC S06). 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:
https://github.com/flutter/flutter/issues/14330 I left Google about
a year ago and set out to build a company around Flutter and
decided to start with code push. 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. 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.
Author : eseidel
Score : 51 points
Date : 2024-04-08 20:01 UTC (2 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| mfkp wrote:
| Looks cool. Was just about to start a new project with react
| native, but I might just have to check out flutter again to give
| this a shot.
| nerder92 wrote:
| Not a question but a prop, this is truly a great product built by
| a great team!
|
| 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!
| bartekpacia wrote:
| 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:)
|
| 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?
| eseidel wrote:
| Desktop is one of our most requested features:
| https://github.com/shorebirdtech/shorebird/issues/397
|
| I suspect we still have many months of work to do for iOS and
| Android code push. Mostly a lot of features to build for larger
| customers.
|
| After that, I'm not sure. We have a long list of ideas. Do you
| have particular needs around Flutter you'd like us to address?
| dlachausse wrote:
| Has there been any consideration of possibly spinning the Flutter
| project out of Google and into a non-profit foundation?
|
| 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.
| lxgr wrote:
| > 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.
|
| No, as a user of some Flutter apps I also find them incredibly
| janky and wouldn't want to see the technology adopted (in this
| state!) even if it wasn't made by Google.
|
| As nice as it might be to app developers, why should I pay for
| that with noticeable worse performance? How do you even make a
| brand new iPhone Pro drop frames when scrolling!?
|
| Other than that, as far as I can tell it reimplements the
| entire UI rendering stack for web apps (there seems to be an
| optional HTML backend, but rendering to a canvas seems to be
| the default). As somebody never having used it... why? Doesn't
| this break all accessibility and native UI compatibility that
| browsers are providing out of the box?
| mdhb wrote:
| I think your Flutter knowledge is really very out of date.
| They rewrote a rendering engine from the ground up and
| released it about a year ago and a lot of the problems you
| describe are no longer the case.
| msoad wrote:
| Any iPhone App that I can try to see how the performance is
| these days? I remember Google Wallet app was horrible
| performance wise about two years ago
| msoad wrote:
| Just tried Google Classroom on my iPhone Pro and
| animations are indeed choppy and scrolling feels weird
| fngjdflmdflg wrote:
| Without knowing what Flutter version Classroom was using
| before impeller was released and how active development
| is on Classroom at google its hard to say if they could
| easily upgrade to the latest version. Flutter has had a
| lot of breaking changes leading up to the impeller
| release so it's hard to say if they actually upgraded to
| the newest version although yeah it is bad that they
| haven't done it by now if they didn't and if they did
| upgrade to impeller and it's still slow that's also bad.
| cbracken wrote:
| Wonderous is an app we've pointed people to in the past.
| I believe the current iOS release on the App Store uses
| the newer Impeller rendering engine instead of Skia, but
| I could be wrong.
|
| App Store:
| https://apps.apple.com/us/app/wonderous/id1612491897
|
| Code: https://github.com/gskinnerTeam/flutter-wonderous-
| app
|
| (Disclaimer: I work on Flutter)
| lxgr wrote:
| This indeed runs much smoother than most Flutter apps
| I've used in the past!
|
| If it was indeed all just due to the slow rendering
| engine, hopefully this will sift down to other apps.
|
| In the end I really don't care what framework a mobile
| app is developed with, as long as apps don't feel janky
| and/or out of place as far as platform UI conventions are
| concerned. In that sense, me not noticing that an app is
| using Flutter, React Native, maybe even webviews etc. is
| probably the ideal :)
|
| But my experience as a user of apps leveraging
| technologies like this has often shown that reinventing
| so many layers of the UI rendering stack inevitably leads
| to some form of "weirdness". Sometimes that's ok;
| sometimes the alternative would be even weirder, badly
| developed and maintained native apps. But I can't say
| I've ever loved using such an app for, and not despite,
| not being a native app. The React Native approach just
| seems like a better level to try platform abstraction at.
|
| On the web, I still can't help but find "rendering text
| and UI elements to a canvas" incredibly weird. I could
| see that approach working for games, but for things that
| might as well be regular old web applications, there are
| just so many things that can go wrong... (Reader mode and
| password autofill come to mind, for example.)
| nicoburns wrote:
| I think that ultimately (and despite what they might
| claim) Flutter just isn't a web technology (it's not
| suitable for rendering to web). But that shouldn't
| necessarily take away from it as a technology for native
| app development. React Native is a little better at this
| (and actively on rendering better to the DOM), but it
| isn't great either.
| lxgr wrote:
| It still was when I last tried it a couple of weeks ago.
| Not sure if it was ever updated to the new rendering
| engine.
| satvikpendem wrote:
| Why, because I can make an app that works on all platforms,
| seamlessly, and the apps on each platform do in fact have
| accessibility support. As the other commenter said, they have
| improved performance to a considerable degree. It's an
| alternative to React Native, not necessarily native
| development, and it's a great platform for such use cases.
| eseidel wrote:
| My understanding is there has been a lot of discussion about
| this. It's not something I'm actively pushing for.
|
| One of the things I'm excited for with Shorebird is creating an
| economic entity whose purpose is moving Flutter forward. We're
| pretty early in our journey, but I would love to see us grow to
| be "the flutter company" over time.
|
| I think it's still a little early to try and spin Flutter out
| as a non-profit, but I suspect as more companies contribute to
| Flutter something like that will happen.
| lxgr wrote:
| How are these "code pushing" technologies holding up when it
| comes to security?
|
| 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.
| eseidel wrote:
| YouTube, TikTok, FaceBook (and any large game) have code push.
| And of course every app that uses a WebView or any other OTA
| service.
|
| I do think code push is hard to get right. I think that's one
| of the values hopefully Shorebird can provide, by offering an
| easy-to-use and easy-to-get-right solution that's accessible to
| teams who use Flutter, but don't have an extra 10 engineers to
| write their own code push solution.
|
| I feel very aligned with the stores in that what I want are
| great apps for users. Having users stuck on buggy/broken apps
| is a pain not just for companies but also for the platforms and
| most importantly the users (including from a security
| perspective).
| lxgr wrote:
| I do agree with a lot of these points!
|
| But should we then maybe just stop the pretense of "app
| stores control every executable byte of code in the apps they
| distribute" in favor of "app stores do content moderation at
| the business level; what apps technically do is up to their
| developers"?
|
| Maybe we could even have both models (immutable, signed
| bundles vs. very dynamic entry points ad-hoc fetching parts
| of their logic), with app stores indicating which one an app
| purports to follow.
| lwansbrough wrote:
| 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?
|
| Do you have performance data for comparison between the
| interpreted runtime and the official runtime?
|
| Edit: found this thread + comment which answered most of my
| questions.
| https://github.com/shorebirdtech/shorebird/issues/1871#issue...
| maartenh wrote:
| 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?
| dr_kiszonka wrote:
| I am very curious about this too. Wouldn't this allow you to
| remotely inject malware into an app? For my own, non-malicious,
| project, I'd love for this to work, but I don't want the app
| store gods to wreak vengeance on me.
___________________________________________________________________
(page generated 2024-04-08 23:00 UTC)