Skip to content

FWE pt 1 #12035

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

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Open

FWE pt 1 #12035

wants to merge 15 commits into from

Conversation

ericwindmill
Copy link
Contributor

@ericwindmill ericwindmill commented May 19, 2025

Description of what this PR is changing or adding, and why:

This silently adds the "UI 101" pages of the upcoming FWE tutorial. This PR does not include any changes the side nav.

Part of #12063

Pages

  • introduction
  • create an app
  • widgets
  • layout
  • devtools
  • user interaction
  • stateful widget
  • implicit animations

Presubmit checklist

  • This PR is marked as draft with an explanation if not meant to land until a future stable release.
  • This PR doesn’t contain automatically generated corrections (Grammarly or similar).
  • This PR follows the Google Developer Documentation Style Guidelines — for example, it doesn’t use i.e. or e.g., and it avoids I and we (first person).
  • This PR uses semantic line breaks of 80 characters or fewer.

@ericwindmill ericwindmill requested review from sfshaza2, antfitch, parlough and a team as code owners May 19, 2025 17:49
@ericwindmill ericwindmill changed the title start adding part one content FWE part 1 May 19, 2025
@ericwindmill ericwindmill changed the title FWE part 1 FWE May 19, 2025
@ericwindmill ericwindmill marked this pull request as draft May 19, 2025 17:50
@flutter-website-bot
Copy link
Collaborator

flutter-website-bot commented May 19, 2025

Visit the preview URL for this PR (updated for commit 346fd6d):

https://flutter-docs-prod--pr12035-flutter-tutorial-p25mm14a.web.app

@ericwindmill
Copy link
Contributor Author

@Sfshaza @antfitch @parlough

For now, my goal is to get reviews on the text, and thus I haven't included images or diagrams, nor have I added the full code to CI. I think all of those things will need to be considered holistically once we know what the page is going to look like.

@ericwindmill ericwindmill marked this pull request as ready for review May 23, 2025 21:35
@ericwindmill ericwindmill changed the title FWE FWE pt 1 May 27, 2025
@ericwindmill
Copy link
Contributor Author

@Sfshaza @parlough @antfitch I just finished the text on this PR, and it's ready for review. I'm holding off on making images until we know what the page layout will look like.

Copy link
Contributor

@sfshaza2 sfshaza2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tutorial feels realllly loooong. Do we want it this long? I don't know the answer, but some newbies to Flutter should test it out.

Comment on lines +48 to +51
If you prefer to run Flutter apps on Android,
iOS, MacOS, or any other supported platform, you’ll have no problem following the tutorial.
But some features, like resizing a window to see how UI renders
on different screen sizes, aren’t available on mobile simulators.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a lot of words here and it's rather confusing. At the end, you mention a limitation of simulators, but the earlier text doesn't even mention simulators. I'd tighten this up, hence the more opinionated. ;)


**Stateful hot reload**, if you haven't heard of it, allows a running Flutter
app to re-render updated business logic or UI code in less than a second - all
without losing your place in the app. This is the part that hooks most Flutter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
without losing your place in the app. This is the part that hooks most Flutter
without losing your place in the app. This is the feature that hooks most Flutter


### Constructor

It has a [`constructor`][], which defines
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It has a [`constructor`][], which defines
The `Tile` class has a [`constructor`][] that defines

### Constructor

It has a [`constructor`][], which defines
what data needs to be passed into the widget to render the widget. Here,a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
what data needs to be passed into the widget to render the widget. Here,a
what data needs to be passed into the widget to render the widget. Here, a

### `Build` method

Finally, there’s the all important `build` method, which must be defined on
every widget, and will always return another widget.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
every widget, and will always return another widget.
every visible widget, and will always return another widget.

??


:::tip Quick assists

The Flutter plugin for VSCode and Intellij provides ["quick assists"][], which will do this conversion for you.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A HA! Why not just use THIS???

Comment on lines +125 to +128
To implement this, update the callback function passed to the
`GuessInput`. The function needs to call `setState`, and within
`setState` it needs to execute the logic to determin if the users
guess was correct.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To implement this, update the callback function passed to the
`GuessInput`. The function needs to call `setState`, and within
`setState` it needs to execute the logic to determin if the users
guess was correct.
To implement this, update the callback function passed to
`GuessInput`. The function needs to call `setState` and, within
`setState`, it needs to execute the logic to determine whether the users
guess was correct.

title: Simple animations
description: Learn the simplest way to implement animations in Flutter.
permalink: /tutorial/animations/
---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How long should this lesson take? Cause it feels SOOOO LOOONG.

In this lesson, you'll learn about one of the most common and
versatile implicit animation widgets: [`AnimatedContainer`][]. With
just two additional lines of code, the background color of each `Tile`
will change over half a second.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
will change over half a second.
animates to a new color in about half a second.

There are many different curves defined by the Flutter SDK, so feel
free to try them out by passing different types to the
`AnimatedContainer.curve` property.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need to do this in a beginning lesson?

@ericwindmill
Copy link
Contributor Author

ericwindmill commented May 29, 2025

This tutorial feels realllly loooong. Do we want it this long? I don't know the answer, but some newbies to Flutter should test it out.

It's definitely long, and its going to get longer! There are going to be 2 more sections :) (edit: I think this section is going to be the longest by a fair amount.)

But really, Andrew called this project "first week experience" because it was supposed to be all-encompassing and take a week. But I'm very interested in cutting it down where it makes sense. I'm happy to cut out any fluff.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants