New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Code Push / Hot Update / out of band updates #14330
Comments
cc @floitschG |
also see I would think this would be fairly important because this is might be one of the only truly distinctive features of react native, and unfortunately some companies might consider this a dealbreaker. Use cases
|
In the epic battle that is Flutter vs React Native, code push is one hell of a tool (: |
compiling to javascript path will diminish the dart advantages right? |
What advantages are you talking about? |
Codepush is very much needed. Love to see the over-the-air upgrade release possibility on Flutter. |
we just had a live use case with a production app where we were getting lots of bad reviews for a feature that appeared to be slightly edge case (related to denying location permission in a use case that not every test account had ) but really wasn't. a codepush feature could push critical fixes for users immediately rather than waiting for them to upgrade; for some reason it seems users are slow to upgrade sometimes :( |
No hot code push support is a NO GO :-( |
Looks like JavascriptCore may no longer be required for interpreted code: https://www.theregister.co.uk/2017/06/07/apple_relaxes_developer_rules/?page=2 |
If the IOS ecosystem is a hindrance, why not implement on Android only for now? Something better than nothing and its a starting point. |
Much appreciated for team to implement this feature ASAP. |
We've built some basic prototypes here, but don't have anything really to share at this time. To do this really well will require some work in Dart's compiler toolchain. I would expect it to be many months before we will have much to share here. The team is currently focused on stabilization for 1.0. All that said, we hear you. :) This is clearly a feature many people value and we're interested in providing functionality like this eventually. |
"Code Push" support for Flutter could be the final nail in the coffin regarding React Native. With all my love for RN and the RN community, being the game changer it is, it is no match for Flutter. After 1.0 hits and the community grows a little bit more + Code Push support = Can't see any reason to start a new mobile project with anything other the Flutter. |
any progress on "Code Push" ?? |
How feasible would be to have a full .so replaced dynamically? The whole compiler toolchain, code shake etc shouldn't be steered to an arguably edge case that people may or may not benefit, given there will always be tickets at the top of the priority list. I think there should be room for "sideloading" the full .so file, so the build from dart to machine code can still be exactly the same. A small but completely independent component could be assigned the following "minimum viable features": download .so and replace the originally shipped one with it, and restart app with the main launch intent. Extra responsibilities: download assets, verify signatures and what not. Update flutter/dart/skia engines and what not. It sounds to me like it violates iOS guidelines, but I'm really not a fan of anything interpreted anyway, or iOS in general. And I'd rather have it in Android than not having it at all, just because it's cool. At least the download part seems doable now that we have some isolate work being allowed in the background, but it would be interesting to see how to swap the original .so with the downloaded one. Maybe an extra .so or java code could do that part, but it's going to be sitting at the code folder, not sure the app itself can modify it so probably it would need some tweaks so the flutter engine loads all app's .so from internal data? |
Starting to revamp my companies app using flutter. However our key demand to have a hot update feature since we are still in beta and keep testing out new UIs and features rapidly. Would live to have this feature. |
Any updates? |
up vote |
There is only one reason to prevent us from using Flutter: Code push |
If you guys can not support Code Push, is there a way to make a Parser to generate from some dictionaries (like json, xml...) to Flutter Widget? Is this impossible or a good idea? |
This sounds a bit promising. Firebase remote config to widget if needed.
Although getting companies to have an idea what they want also helps :)
…On Fri, Oct 12, 2018, 3:45 AM Hưng Lương Đỗ Minh ***@***.***> wrote:
If you guys can not support Code Push, is there a way to make a Parser to
generate from some dictionaries (like json, xml...) to Flutter Widget? Is
this impossible or a good idea?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#14330 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AC4TYe9qDMi4bt2U5qyyAnJisN3ys_Z5ks5ukFavgaJpZM4RxUZi>
.
|
expect it can be included in the coming 1.0 release! |
Many of our customers will be using our Flutter app on a kiosk device behind strict firewalls that would prevent Google Store's app-update mechanisms. These customers will not whitelist the Play Store. We will ultimately have 100's of hardware devices with the Flutter app, and having a way to push updates to app while adhering to customer firewall restrictions would be amazing! |
Sorry guys, it's only available for internal. And they are going to use JS instead in the future |
anybody know about this? https://codepush.dev/ |
They maybe discontinue it, there is no update. |
CodePush is (was?) a Microsoft product, part of Visual Studio App Center (https://appcenter.ms/); I used to be a PM on that team. Microsoft moved the team to GitHub a couple of years ago and App Center wasn't getting a lot of attention there the last time I checked. Here's the landing page: https://microsoft.github.io/code-push/ Doesn't support Flutter, of course, because Flutter can't support OTA updates. |
I've stumbled across this: shorebird.dev. They seem to be working on this, apparently, it's currently in closed access. I haven't used it so I don't know how well it works, but maybe it's interesting to keep an eye on them. Their Github: Link |
This comment was marked as spam.
This comment was marked as spam.
Can the official team add an identifier when packing to enable dynamic JIT or parser functions? For example, to develop macos applications, you need to develop some functions of dynamically running plug-ins, which can be developed by users. So it cannot be written inside the application in advance. |
Is it possible to provide a set of tools to package Flutter widgets into .so files: bundle1.so, bundle2.so, where each .so corresponds to one or multiple page-level widgets, and then load the .so files at runtime to dynamically load the widgets? |
This is one of the most critical factors that I consider turning to RN halfway. I can't believe that this issue has passed four years by a team that claims it pursues user experience. |
Have you checked out shorebird.dev ? It's led by @eseidelGoogle himself and it seems to be ready for production on Android and iOS. I believe they already have existing customers who've published apps with the code-push support. Could be worth looking into. |
i need it |
@rutvik110 Have you used this? If yes, how's the experience so far? |
CodePush is the more important factor than others When Company chooses development framework. In China development efficiency is the first question |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
I'm no longer at Google (hence using @eseidel rather than my @eseidelGoogle account), but have built a solution for this issue in my new company: https://shorebird.dev. Shorebird's "code push" allows developers to deploy fixes to Dart code directly to Flutter apps on end users’ devices. It takes < 5 minutes to integrate, requires no code changes to your app, and supports updating any Dart code in your app. We designed Shorebird specifically to comply with Apple and Google store policies without sacrificing performance (even after patching). It does not use Hot Reload (or Dart's JIT compiler), rather we had to build a special interpreter for Dart since store agreements require use of an interpreter for updates (https://docs.shorebird.dev/faq discusses more details). I'm happy to answer any questions via our Github (almost all Shorebird source code is open and MIT + Apache 2 licensed): https://github.com/shorebirdtech/shorebird, or via our public Discord: https://discord.gg/shorebird, but out of respect for the wider Flutter project (and people's inboxes) I do not plan to reply to questions about Shorebird on this issue. The current Google Flutter team should decide if they wish to keep this issue open. Thank you! |
The essential reason why we choose open source project is that they are free. For nowadays, Code Push is almost essential feature to a production application. But shorebird is charged, which means flutter is not free to a current production application. It can hardly be believed that Goolge will allow its own product flutter to bypass its own Play Store, which means this issue can hardly be resolved. From a benefit perspective, unless flutter be stripped from Google or shorebird's developer find a new reliable way to makey money, flutter will never support Code Push and will never be a modern production-level and really open-source project. |
That's a pretty narrow view. Flutter is already free and open-source, and there are over 1m apps built with Flutter. Isn't that production-ready enough for you? It’s not like they included code push as a feature and then hid it behind a paywall. If you think it's essential and should be free and built-in, why not clone Flutter, build your own solution, and share it with us? Then we can self-host and push live code ourselves. Sounds easy enough, right? The discussion here should be:
|
This is currently not on Flutter's roadmap, for reasons discussed in these comments: #14330 (comment), #14330 (comment)
Code push for Flutter is available as a third-party product from shorebird.dev, as discussed in this comment: #14330 (comment)
This comment gives a brief overview of various kinds of "hot update" features, and gives terminology for referring to them, which can help if you wish to communicate unambiguously about this topic: #14330 (comment)
Often people ask if Flutter supports "code push" or "hot update" or other similar names for pushing out-of-store updates to apps.
Currently we do not offer such a solution out of the box, but the primary blockers are not technological. Flutter supports just in time (JIT) or interpreter based execution on both Android and iOS devices. Currently we remove these libraries during --release builds, however we could easily include them.
The primary blockers to this feature resolve around current quirks of the iOS ecosystem which may require apps to use JavaScript for this kind of over-the-air-updates functionality. Thankfully Dart supports compiling to JavaScript and so one could imagine several ways in which one compile parts of ones application to JavaScript instead of Dart and thus allows replacement of or augmentation with those parts in deployed binaries.
This bug tracks adding some supported solution like this. I'll dupe all the other reports here.
The text was updated successfully, but these errors were encountered: