[#53] Add Flutter setup option and modernize Apple mobile tooling#54
Open
ducbm051291 wants to merge 1 commit into
Open
Conversation
- Add Flutter prompt installing the Flutter SDK and CocoaPods, plus a post-install note pointing users at `flutter doctor -v` and `flutter doctor --android-licenses`. - Rename the iOS cask `xcodes` to its current canonical token `xcodes-app` and drop the stale `cask "xcode"` reference. - Print iOS post-install guidance covering `xcode-select`, `xcodebuild -license accept`, `-runFirstLaunch`, and `xcodebuild -downloadPlatform iOS` for platform support and Simulator runtimes. - Update README: tagline to "software development", reorder platform sections to match prompt order (Web, iOS, Android, Flutter), rename "M1 incompatible dependecies" to "Apple Silicon incompatible dependencies" (also fixes the typo), and remove the unused [xcode] link reference. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
Modernizes the mobile setup in
mac/README.mdso a fresh macOS machine is closer to being fully ready for Apple-platform and Flutter development after running Laptop. Resolves #53.Do you want to install Flutter's dependencies? [y|N]prompt that installs the Flutter SDK cask pluscocoapods(needed for Flutter iOS builds). Prints a post-install note pointing teammates atflutter doctor -vandflutter doctor --android-licenses.xcodesto the current canonical tokenxcodes-app(Homebrew renamed this cask;xcodesis now a former token).cask "xcode"reference from the README — Xcode isn't installable via Homebrew and should come from the App Store or the Xcodes app.xcode-select,xcodebuild -license accept,xcodebuild -runFirstLaunch, andxcodebuild -downloadPlatform iOSto fetch platform support and Simulator runtimes.### M1 incompatible dependecies→### Apple Silicon incompatible dependencies(also fixes the typo and aligns with the existing "Both Apple Silicon and Intel are supported" note).[xcode]link reference.Out of scope but worth flagging as a follow-up:
brew bundle checkemitsWarning: docker was renamed to docker-desktopfor the pre-existing Web block. Same modernization pattern asxcodes → xcodes-app. Happy to do it here in a follow-up commit or a separate issue — whichever the team prefers.Insight
How to test
Static checks (no side effects):
Dry-run the generated Brewfile (validates cask/formula tokens without installing):
Expect
cask "xcodes-app",cask "flutter", andbrew "cocoapods"to be present, andbrew bundle checkto report only "needs to be installed" — never "unknown cask/formula".End-to-end on a clean machine — the real test. Options:
bash mac 2>&1 | tee ~/laptop.log.Things to eyeball during the real run:
~/.Brewfilecontainscask "xcodes-app"and the# Flutterblock.brew bundle --globalcompletes without "unknown cask" errors.which flutter/flutter --versionwork on a Flutter install.append_general_intel_dependenciesis skipped (matches the renamed "Apple Silicon incompatible dependencies" README section).Alternatives considered
cask "xcodes"— Homebrew redirects the former token, so it "works" today, but the cask has been renamed andbrew bundlealready emits rename warnings for other casks in this file. Using the canonicalxcodes-appkeeps us future-proof and consistent withformulae.brew.sh/cask/xcodes-app(Former tokens: xcodes).sudo xcodebuild -runFirstLaunchinside the script — rejected because it requiressudoand an already-installed Xcode.app, neither of which Laptop can guarantee when the iOS option runs. Surfacing the commands in a post-install note is lower risk and matches Apple's documented bring-up flow.brew bundlede-dupes if the iOS option is also selected, so there's no cost to including it unconditionally.### M1 incompatible dependeciesheading — replaced with### Apple Silicon incompatible dependenciesto match Apple's current naming, fix the typo, and align with the existing note near the top of the README (Both Apple Silicon and Intel are supported).References
xcodes-app: https://formulae.brew.sh/cask/xcodes-appflutter: https://formulae.brew.sh/cask/flutterxcodebuild -downloadPlatform iOS(Xcode 15+)Proof Of Work
Verification table
bash -n mac(syntax)shellcheck mac(v0.11.0)# Flutterwithcask "flutter"+brew "cocoapods"brew bundle check --verbosebrew info --cask xcodes-appbrew info --cask flutterbrew info cocoapodsprint_ios_setup_notesrenderxcode-select,xcodebuild -license accept,-runFirstLaunch,xcodebuild -downloadPlatform iOSprint_flutter_setup_notesrenderflutter doctor -vandflutter doctor --android-licensesy/y/y/yappend_*_dependenciesfireinstall()post-install wiringprint_*_setup_notesgated on their*_depanswersM1, nodependecies, no[XCode], no barecask "xcodes"New prompt flow
Generated Brewfile — new/changed blocks
iOS post-install note
Flutter post-install note
Homebrew token resolution
Logs: