Skip to content

Code Push / Hot Update / out of band updates #14330

@eseidelGoogle

Description

@eseidelGoogle
Contributor

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.

Activity

aam

aam commented on Jan 29, 2018

@aam
Member
neiljaywarner

neiljaywarner commented on Feb 14, 2018

@neiljaywarner

also see
https://groups.google.com/forum/#!msg/flutter-dev/YwzItp1pxJo/7bFGDLvxBAAJ
I would be extremely excited about this.

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

  • critical bugs, especially on iOS, especially for VIPs or urgent, time sensitive situations, business critical, and/or users that can't use the app at all for some reason.
  • More dynamic testing of features than staged rollouts
  • this would be a nice touch preparing for Fuschia, and/or Chromebooks. there could be scenarios where flutter is "competing" with web apps not just pwas/Kotlin/Swift/React/Xamarin/other-junkier-hybrid solutions
yaronlevi

yaronlevi commented on Mar 5, 2018

@yaronlevi

In the epic battle that is Flutter vs React Native, code push is one hell of a tool (:
As an RN dev I can't stress enough the importance of this feature. Many will pass Flutter just because the absence of hot pushes. Once you get accustomed to quickly fix bug and push new features you can't go back.

badoet

badoet commented on Mar 14, 2018

@badoet

compiling to javascript path will diminish the dart advantages right?
i found some native app used to be able to have code reload using Rollout.io but it was blocked by Apple: https://news.ycombinator.com/item?id=13817557
looking at this pattern, seems like flutter will not have a seamless code push feature like what we see on react native.
would love to get more insight to this feature possibilities from core maintainers (:

zoechi

zoechi commented on Mar 14, 2018

@zoechi
Contributor

compiling to javascript path will diminish the dart advantages right?

What advantages are you talking about?

ck-vimaljose

ck-vimaljose commented on Mar 15, 2018

@ck-vimaljose

Codepush is very much needed. Love to see the over-the-air upgrade release possibility on Flutter.

neiljaywarner

neiljaywarner commented on Mar 16, 2018

@neiljaywarner

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 :(

added
engineflutter/engine repository. See also e: labels.
on Apr 11, 2018
rockneverdies55

rockneverdies55 commented on Apr 19, 2018

@rockneverdies55

No hot code push support is a NO GO :-(

yisding

yisding commented on Apr 25, 2018

@yisding

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

thefuzzyorange

thefuzzyorange commented on May 11, 2018

@thefuzzyorange

If the IOS ecosystem is a hindrance, why not implement on Android only for now? Something better than nothing and its a starting point.

added this to the Goals milestone on Jun 19, 2018

339 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projecta: productionIssues experienced in live production appsc: new featureNothing broken; request for a new capabilitycustomer: crowdAffects or could affect many people, though not necessarily a specific customer.dependency: dartDart team may need to help usengineflutter/engine repository. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @allenwyma@knopp@jamesdixon@selvan@FaisalAbid

        Issue actions

          Code Push / Hot Update / out of band updates · Issue #14330 · flutter/flutter