Skip to content
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

Expo like tool for flutter #29021

Open
no-1ne opened this issue Mar 8, 2019 · 76 comments
Open

Expo like tool for flutter #29021

no-1ne opened this issue Mar 8, 2019 · 76 comments
Labels
a: first hour The first hour of using Flutter c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter customer: crowd Affects or could affect many people, though not necessarily a specific customer. P3 Issues that are less important to the Flutter project team-tool Owned by Flutter Tool team tool Affects the "flutter" command-line tool. See also t: labels. triaged-tool Triaged by Flutter Tool team

Comments

@no-1ne
Copy link

no-1ne commented Mar 8, 2019

Hi folks, thank you for amazing flutter.

React native ecosystem has snack.expo.io and a companion Expo android/ios client where users can test the app on their actual device.

A similar thing for flutter would be awesome.
Considering the modular architecture of flutter, I hope it's doable and it would be an amazing tool for people to get started, experiment and share (kind of like a flutterbin (also considering humming bird, it would make a perfect UX as well)

@kangwang1988
Copy link
Contributor

/cc @timsneath
Maybe something like https://dartpad.dartlang.org for flutter.

@zacowan
Copy link

zacowan commented Mar 9, 2019

Something like this, in my opinion, would be amazing for Flutter. The only reason I am holding off on switching to Flutter from React Native is because I need to test stuff on an actual device, and I don't want to have to connect it to my computer and build it every single time. Would love to see somebody create an Expo-like solution for this problem.

Edit: I no longer think this is necessary. There is already extensive tooling available for building on the iOS simulator and building to a device, and I don't think Expo is necessary with the ability to hot reload.

@guichafy
Copy link

guichafy commented Mar 9, 2019

Something like expo.io would be awesome.

@no-1ne
Copy link
Author

no-1ne commented May 3, 2019

This would fall inline with roadmap

"Making it easy to try Flutter without installing the full tooling and runtime stack"

Looking forward to hummingbird details, never have been so exciting times, a possible holy grail of development

https://events.google.com/io/schedule/events/03d8425c-54ca-437b-bac7-ece76cca8347

Hope there will also be an "one more thing" where you announce tooling to try flutter without installing it. Once again looking forward and good luck for #IO19

@jmagman jmagman added a: first hour The first hour of using Flutter c: new feature Nothing broken; request for a new capability tool Affects the "flutter" command-line tool. See also t: labels. labels Aug 9, 2019
@mactive
Copy link

mactive commented Oct 8, 2019

Expo is so cool and has a lot of SDK embeded. https://docs.expo.io/versions/latest/sdk/overview/ Otherwise, it has a complete CLI for you from dev to publish.

@jmagman jmagman removed the tool Affects the "flutter" command-line tool. See also t: labels. label Jan 15, 2020
@iapicca iapicca added customer: crowd Affects or could affect many people, though not necessarily a specific customer. dependency: dart Dart team may need to help us framework flutter/packages/flutter repository. See also f: labels. c: proposal A detailed proposal for a change to Flutter labels Jan 15, 2020
@Harshithpm
Copy link

Harshithpm commented Jan 29, 2020

With expo we can test our react native apps on ios or android regardless of the os we are using
a feature like this in flutter would be awesome

@yogesh-aggarwal

This comment was marked as off-topic.

@jmfantin2

This comment was marked as off-topic.

@JovanMwesigwa

This comment was marked as off-topic.

@JorgeOsorio97

This comment was marked as off-topic.

@isacmoura

This comment was marked as off-topic.

@Sunbreak
Copy link
Contributor

Sunbreak commented Sep 4, 2020

It will help a lot, if flutter app would run on real device using a service like expo.io directly

We've got something similar working internally. Hope one day we may open source

@stevemosiori
Copy link

Guys open source that thing please 😊

@LiamDotPro

This comment was marked as off-topic.

@iheathers

This comment was marked as off-topic.

@illud

This comment was marked as off-topic.

@soportedontec

This comment was marked as off-topic.

@k-frankov

This comment was marked as off-topic.

@tabvn

This comment was marked as off-topic.

@fabioselau077

This comment was marked as off-topic.

@tabvn
Copy link

tabvn commented May 17, 2021

Any good news :?

i not see, you?

so still stick with React-native for now :D , because i usually create apps for clients and give them testing and fix quickly rather than submit to apple testfight.

@Gerrit-Maatkamp
Copy link

Me and my team have to decide between React Native and Flutter for an upcoming project. And we're leaning towards React Native just because of Expo.

@SOG-web

This comment was marked as off-topic.

@mesaglam

This comment was marked as off-topic.

@goderbauer goderbauer removed the framework flutter/packages/flutter repository. See also f: labels. label Feb 7, 2023
@surajtrioency

This comment was marked as off-topic.

@ahmedabosamra1981

This comment was marked as off-topic.

@YahyaBekirCanevi

This comment was marked as off-topic.

@fawzibazari

This comment was marked as off-topic.

@luga97
Copy link

luga97 commented Mar 18, 2023

As a windows/linux app developer one of the main problems for me is get a solution to work arround IOS, if something like expo Go exist for flutter, without doubt, will be the differentiating tool for this framework. Please bring this for us!

@Kooperlol

This comment was marked as off-topic.

@SouVitorGabriel

This comment was marked as off-topic.

@abclangs
Copy link

Is there any tool like expo go for flutter? If there is not, build it. I think every one would come from that garbage called react native to flutter

@mzaeemnasir

This comment was marked as off-topic.

@fiveNinePlusR
Copy link

expo allows you to build and test an app immediately without having to compile. they do some magic on their backend that allows the binary to be used without having to intermediately compile it. you just scan a qr code and the app is running in your logged in device. it's quite magical and would be a compelling feature for flutter. the only time you need to custom build is if you use some external or third party non-expo ready component but there are many expo ready components that they have already integrated. the expensive builds where you can code sign and deploy to the app stores are the ones that you pay for after the free tier. It's a very well crafted system and would be very compelling to have as a service for flutter.

@maks
Copy link

maks commented Jul 14, 2023

@fiveNinePlusR there is no "magic". Expo simply has a prebuilt "starter" app to which they can code push whatever code your app has, because its all JS there is no compile step. This workflow is literally exactly what you get with the Flutter development UX of hot-restart, where there is a compile step that gives you Dart's strong type safety and null-safety, with the Flutter tooling taking care of all of it for you.

To see this in action: just build the ubiquitous Flutter counter app in debug mode and run in it on your device of choice, then while it's running, replace the whole lib folder with the lib folder of your app code of choice, hot-restart and your new app code will be deployed into your running app. With a bit of imagination this workflow could be built out into a backend service similar to what Expo provides.

Note just as with Expo, the above will not work if you are using plugins which rely on native libs.

@JakePrim

This comment was marked as off-topic.

@pratiksanyaja1998
Copy link

@ALL guys I have some solution for this. You can check out on my repo https://github.com/pratiksanyaja1998/flutter-wa-boilerplate

It's built in top of node.js

@SOG-web
Copy link

SOG-web commented Jul 19, 2023

@ALL guys I have some solution for this. You can check out on my repo https://github.com/pratiksanyaja1998/flutter-wa-boilerplate

It's built in top of node.js

Can you give the details of how this works

@danagbemava-nc danagbemava-nc added tool Affects the "flutter" command-line tool. See also t: labels. team-tool Owned by Flutter Tool team labels Jul 26, 2023
@pratiksanyaja1998
Copy link

@SOG-web, basically expo is used for whitelabel apps like single code with multiple different build. You can check inside index.js https://github.com/pratiksanyaja1998/flutter-wa-boilerplate/blob/main/index.js here is magic. I'm doing all step which is required for change bundle identifier.

@CarlosDelRosario7
Copy link

In the past four years, many users have been kindly requesting Flutter to consider adding functionality similar to Expo. It appears that these requests have not received a response, leaving us uncertain about Flutter's stance on implementing such functionality. Could you please clarify whether there is an intention to implement this feature in the future, or if it's not within Flutter's current plans? Clear communication on this matter would be greatly appreciated, and it would help users make informed decisions about their development choices.

@christopherfujino
Copy link
Member

In the past four years, many users have been kindly requesting Flutter to consider adding functionality similar to Expo. It appears that these requests have not received a response, leaving us uncertain about Flutter's stance on implementing such functionality. Could you please clarify whether there is an intention to implement this feature in the future, or if it's not within Flutter's current plans? Clear communication on this matter would be greatly appreciated, and it would help users make informed decisions about their development choices.

Can you clarify what exactly the developer experience would look like with an "expo-like tool for Flutter"? I have never used expo, and from doing a little bit of reading it's unclear what functionality Expo provides that Flutter does not currently. Thank you.

@k-frankov
Copy link

k-frankov commented Sep 11, 2023

Can you clarify what exactly the developer experience would look like with an "expo-like tool for Flutter"? I have never used expo, and from doing a little bit of reading it's unclear what functionality Expo provides that Flutter does not currently. Thank you.

Can explain what Expo-like experience I am missing: Developer can share with anyone who has Expo app installed on their phone:
Expo Go

Very convenient way to test your app on different real devices or show it to some customer etc. without publishing it to PlayStore or AppStore

@christopherfujino
Copy link
Member

Can explain what Expo-like experience I am missing: Developer can share with anyone who has Expo app installed on their phone: Expo Go

Can you explain in more detail how this would work? Is it streaming the UI over the internet? Would we need to stand up servers to do this?

Very convenient way to test your app on different real devices or show it to some customer etc. without publishing it to PlayStore or AppStore

You can do this with flutter install onto a real device, but I suppose you mean something else?

I genuinely want to understand, I have just found most of the explanations of Expo to be sparse on details, so I can't quite wrap my head around what it's doing.

@maks
Copy link

maks commented Sep 11, 2023

@christopherfujino I'll try to chime in and help explain, though I'll prefix with saying the last time I used Expo was more than 4 years ago.

I believe what the "Expo Go" app gives people is a RN "shell app" that users can install on their device and then using a proprietary Expo process the user can have the Expo backend do a code push to that app instance via scanning a QR code according to their docs.
Given especially the App Store policies:

3.3.2 Except as set forth in the next paragraph, an Application may not download or install
executable code. Interpreted code may only be used in an Application if all scripts, code and
interpreters are packaged in the Application and not downloaded. The only exceptions to the
foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change the primary purpose of the
Application by providing features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store.

I'm not even sure how this is even allowed given the above restriction on "...change the primary purpose of the Application..." but hey I'm not a Apple appstore "curator" 🙄 so I have no idea if this would set a precedent that Flutter could make use of to ship a similiar app or if this is just a case of gross incompetence on their end for not enforcing their own policies.

But anyways @christopherfujino hope that helps explain how Expo works and what the previous comments were asking for.

@christopherfujino
Copy link
Member

@christopherfujino I'll try to chime in and help explain, though I'll prefix with saying the last time I used Expo was more than 4 years ago.

I believe what the "Expo Go" app gives people is a RN "shell app" that users can install on their device and then using a proprietary Expo process the user can have the Expo backend do a code push to that app instance via scanning a QR code according to their docs. Given especially the App Store policies:

3.3.2 Except as set forth in the next paragraph, an Application may not download or install
executable code. Interpreted code may only be used in an Application if all scripts, code and
interpreters are packaged in the Application and not downloaded. The only exceptions to the
foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or
JavascriptCore, provided that such scripts and code do not change the primary purpose of the
Application by providing features or functionality that are inconsistent with the intended and
advertised purpose of the Application as submitted to the App Store.

I'm not even sure how this is even allowed given the above restriction on "...change the primary purpose of the Application..." but hey I'm not a Apple appstore "curator" 🙄 so I have no idea if this would set a precedent that Flutter could make use of to ship a similiar app or if this is just a case of gross incompetence on their end for not enforcing their own policies.

But anyways @christopherfujino hope that helps explain how Expo works and what the previous comments were asking for.

@maks, thanks so much for this explanation! It sounds like this is blocked by #14330.

@christopherfujino christopherfujino added P3 Issues that are less important to the Flutter project triaged-tool Triaged by Flutter Tool team labels Sep 12, 2023
@indramal

This comment was marked as duplicate.

@Anyaoha

This comment was marked as duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: first hour The first hour of using Flutter c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter customer: crowd Affects or could affect many people, though not necessarily a specific customer. P3 Issues that are less important to the Flutter project team-tool Owned by Flutter Tool team tool Affects the "flutter" command-line tool. See also t: labels. triaged-tool Triaged by Flutter Tool team
Projects
None yet
Development

No branches or pull requests