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

[Add Official Support] Add Support for Flutter Installer #63619

Open
YazeedAlKhalaf opened this issue Aug 13, 2020 · 19 comments
Open

[Add Official Support] Add Support for Flutter Installer #63619

YazeedAlKhalaf opened this issue Aug 13, 2020 · 19 comments
Labels
a: first hour The first hour of using Flutter a: quality A truly polished experience c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter 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

@YazeedAlKhalaf
Copy link
Contributor

I would like to propose adding official support for Flutter Installer, a tool I made using Flutter to install Flutter on any desktop OS.

Link to GitHub repo: https://github.com/yazeedalkhalaf/Flutter_Installer

@stuartmorgan
Copy link
Contributor

Officially recommending an installer built with Flutter prior to adding accessibility support to the desktop embeddings seems problematic.

@iapicca
Copy link
Contributor

iapicca commented Aug 13, 2020

my perspective as an Ubuntu user:
downloading an installer compared to
run in terminal sudo snap install flutter --classic is less than desirable.

The idea of simplifying the installation isn't new,
but I rather have a better command line installation for windows and mac
(on linux seems already easy enough)
using homebrew (I've never seen so many upvotes!) and chocolatey [source]
than having to download an application simply to install flutter

all the above strictly imho

@TahaTesser TahaTesser added a: first hour The first hour of using Flutter a: quality A truly polished experience c: proposal A detailed proposal for a change to Flutter c: new feature Nothing broken; request for a new capability tool Affects the "flutter" command-line tool. See also t: labels. labels Aug 13, 2020
@YazeedAlKhalaf
Copy link
Contributor Author

@iapicca
What I mean is:
As a beginner, you don't want to interact with the command-line. Especially the PATH, most beginners struggle with it. So this app solves the problem for beginners.
Btw, It also installs optionally apps that you need for developing with Flutter. Such as Android Studio, VS Code, IntelliJIDEA, and Git.
I believe it is a way-to-go for beginners.

@jonahwilliams
Copy link
Member

@csells

@jonahwilliams jonahwilliams added this to Awaiting triage in Tools - installer / upgrade review via automation Aug 18, 2020
@csells
Copy link
Contributor

csells commented Aug 18, 2020

I don't believe this is ready to endorse officially.

@YazeedAlKhalaf
Copy link
Contributor Author

@csells what are the points where you think need upgrades? Please point the out to them if you may. 🚀😇

P.S. For the Windows cmd, it is in Dart, Process.run(). I have no clue how to hide it.

@csells
Copy link
Contributor

csells commented Aug 18, 2020

The last time I looked, it was using a curl command and popping up command windows to down the downloads instead of downloading using the Dart package:http.

Also, as Stuart points out, the desktop stuff itself is not itself endorsed officially, e.g. it lacks a11y support. That isn't your fault but does slow us down in turns of endorsing it officially.

@stuartmorgan
Copy link
Contributor

P.S. For the Windows cmd, it is in Dart, Process.run(). I have no clue how to hide it.

That's dart-lang/sdk#39945

@YazeedAlKhalaf
Copy link
Contributor Author

YazeedAlKhalaf commented Aug 18, 2020

The last time I looked, it was using a curl command and popping up command windows to down the downloads instead of downloading using the Dart package:http.

Also, as Stuart points out, the desktop stuff itself is not itself endorsed officially, e.g. it lacks a11y support. That isn't your fault but does slow us down in turns of endorsing it officially.
Thanks 🙏

Just to be clear, we have till now two problems:

  • curl problem (will work on it, help is very welcome 😇😂), although not sure what are the benefits?
  • accessibility problem (needs time, not in our hands)

I would be happy if you could point to any other problems standing in officially endorsing the installer so I could solve.

And thanks for you guys for taking from your time.
@csells @stuartmorgan

@YazeedAlKhalaf
Copy link
Contributor Author

P.S. For the Windows cmd, it is in Dart, Process.run(). I have no clue how to hide it.

That's dart-lang/sdk#39945

Thanks, I see. It seems it has been 8 months. What are the limitations?

@jmagman jmagman added the P3 Issues that are less important to the Flutter project label Aug 18, 2020
@stuartmorgan
Copy link
Contributor

Glancing at some of the installer code, there's what I would consider to be a worrying anti-pattern of constantly shelling out using raw strings instead of the much safer argument-array-based approach, which is asking for subtle bugs. Also shelling out for reasons that aren't clear to me (like making a directory, which is trivial to do directly in Dart).

@YazeedAlKhalaf
Copy link
Contributor Author

@stuartmorgan @csells
So do you suggest changing the code to dart or staying on the current implementation?
And why?

@stuartmorgan
Copy link
Contributor

This probably isn't the most productive way to go about this. I would imagine (or at least hope) that before officially endorsing a project like this there would be some sort of review process, where issues like the ones raised above could be handled.

@YazeedAlKhalaf
Copy link
Contributor Author

This is a small update

@stuartmorgan @csells

  • Now all desktop platforms implementations are at the alpha stage.
  • a11y is still not supported for desktop, at least that's what I knew from here

there's what I would consider to be a worrying anti-pattern of constantly shelling out using raw strings instead of the much safer argument-array-based approach, which is asking for subtle bugs

  • I tried the safer argument-based approach but it raised bugs, such as adding ' at the beginning of the argument and at the end of it.

  • I have added dark mode support, there are now two buttons to change the theme between dark and light.

  • The cmd window in Windows popping issue is still not solved Hiding process console with no parent console to inherit from dart-lang/sdk#39945

  • Removed Terms of Service view, it was useless.

  • Refactored Windows script, other scripts are being too.

  • Made sure it works on the latest dev channel as of today, Flutter 1.23.0-4.0.pre

I am working on refactoring the code and making it better. The API I created to get download links for the products dynamically now uses a link for VS Code that redirects to the latest download link. API is here: http://flutter-installer-api.herokuapp.com/. I just need to get a link that gets the latest release of Android Studio and IntelliJIDEA so that they also become dynamic and I don't need to update them. The API is useful for the sake of getting the latest version of apps even if you use an old version of the Flutter Installer.

and overall the code is a lot cleaner 🙃🚀

@christopherfujino christopherfujino moved this from Awaiting triage to Engineer reviewed in Tools - installer / upgrade review Oct 6, 2020
@suesitran
Copy link

As MacOS user, I really prefer to have a click-to-install installer so it's easier to install Flutter on new laptop. I've done it 3 times since I started Flutter, and the steps are still the same after 2 years 😳

@Sunbreak

This comment has been minimized.

@stuartmorgan

This comment has been minimized.

@YazeedAlKhalaf
Copy link
Contributor Author

This is a small update 2

  • @csells The installer now works on windows and installs successfully without the cmd window popping up for the user, found a workaround in a StackOverflow answer. This is the commit, 5 months ago 🙃, YazeedAlKhalaf/Flutter_Installer@0ef7c69
    I am not experienced in windows development so not sure if this workaround is the best but I am sure it works! 🚀

Will be updating here so we know what is the stage of the app.

If you have any notes that are holding that pp back kindly mention me with them here.

@iapicca
Copy link
Contributor

iapicca commented May 20, 2021

sidekick seems to be a very solid alternative to flutter installer
if for whatever reason an official endorsement is being considered
I believe this (and other) alternative should be taken in account

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 a: quality A truly polished experience c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter 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
Development

No branches or pull requests

10 participants