Skip to content

"Getting started with Flutter" codelab/tutorial#798

Merged
Sfshaza merged 17 commits intomasterfrom
get-started
Feb 24, 2018
Merged

"Getting started with Flutter" codelab/tutorial#798
Sfshaza merged 17 commits intomasterfrom
get-started

Conversation

@Sfshaza
Copy link
Copy Markdown
Contributor

@Sfshaza Sfshaza commented Feb 14, 2018

Staged: https://sz-flutter.firebaseapp.com/tutorials/get-started/

Yes, I will be removing that eyeball. LOL It makes the TOC creepy.

Here's a start, @mjohnsullivan. I'll pick it up again tomorrow.

@googlebot googlebot added the cla: yes Contributor has signed the Contributor License Agreement label Feb 14, 2018
@mit-mit
Copy link
Copy Markdown
Member

mit-mit commented Feb 14, 2018

Most excellent to see this coming together.

You do not need to start with the project creation part. That will be done in the previous getting started / install step, see this in progress work: #800

@Sfshaza
Copy link
Copy Markdown
Contributor Author

Sfshaza commented Feb 14, 2018

I see, @mit-mit, thx.

@Sfshaza
Copy link
Copy Markdown
Contributor Author

Sfshaza commented Feb 15, 2018

I've also updated the staged version to today's edits.
https://sz-flutter.firebaseapp.com/tutorials/get-started/

I realized that we need to get the final example app reviewed by engineering. Filip and Matt are putting some final touches on it. It should be ready for engineering review by tomorrow morning.

@Sfshaza
Copy link
Copy Markdown
Contributor Author

Sfshaza commented Feb 22, 2018

Please feel feel free to review, @InMatrix and @sethladd! It's still in process, but we're coming down to the wire.

Staged: https://sz-flutter.firebaseapp.com/tutorials/get-started/

@FlutterBot
Copy link
Copy Markdown

Staging URL Generated At https://flutter-io-deploy-six.firebaseapp.com . Please allow Travis Build to finish to view the URL.

@Sfshaza
Copy link
Copy Markdown
Contributor Author

Sfshaza commented Feb 22, 2018

I'd appreciate any feedback, @mit-mit, now that I've updated the lab.

Comment thread _includes/code/get-started/main.dart Outdated

final _saved = new Set<WordPair>();

final TextStyle _biggerFont = new TextStyle(fontSize: 18.0);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we drop the TextStyle annotation here? it's inferred.

(also, could we use const for the constructor?)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread _includes/code/get-started/main.dart Outdated
return new ListView.builder(
padding: const EdgeInsets.all(16.0),
itemBuilder: (context, i) {
if (i.isOdd) return new Divider();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this recommended styling for Dart, having if -> return on the same line for one-liners?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If so, then the if (alreadySaved) else ... statement in previous method can be tidied up to match this style

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'd like to table this sort of code change for now.

Comment thread _includes/code/get-started/main.dart Outdated
pair.asPascalCase,
style: _biggerFont,
));
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Could use simpler function syntax here: _saved.map((pair) => new ListTile(....

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'd like to table this code change for now.

Comment thread tutorials/get-started/index.md Outdated
---

This is a guide to creating your first Flutter app. If you know
how to program, you can complete this tutorial. You don’t need
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

"know how to program" seems vague.

Maybe more specifically: familiar with object-oriented code and basic programming concepts such as variables, loops, and conditionals.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

"If you're familiar with mobile or web development" ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I went with Seth's more specific recommendations.

Comment thread tutorials/get-started/index.md Outdated

### What are Flutter and Dart?

_Flutter_ is a mobile app SDK to help developers and designers
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is now:

Flutter is Google’s mobile UI framework for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code, is used by organizations around the world, and is free and open source.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I wonder if we can skip this intro section entirely, and get into the tutorial quicker. I would assume the developer is coming to this from the front page, or in some other way has heard what Flutter is.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread tutorials/get-started/index.md Outdated
* How to implement a stateful widget.
* How to create an infinite, lazily loaded list.
* How to create and navigate to a second screen.
* .
Copy link
Copy Markdown
Contributor

@sethladd sethladd Feb 22, 2018

Choose a reason for hiding this comment

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

extra line?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I was keeping in to remind me to reevaluate later.

Comment thread tutorials/get-started/index.md Outdated

_Flutter_ is a mobile app SDK to help developers and designers
build modern mobile apps for iOS and Android.

Copy link
Copy Markdown
Contributor

@mjohnsullivan mjohnsullivan Feb 22, 2018

Choose a reason for hiding this comment

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

Not a request to change, but as FYI this is how our current website etc puts it "Flutter is Google's new mobile UI toolkit,
helping developers craft high-quality native experiences across mobile platforms
in record time."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, changed as per Seth. I was out of date. :)

Comment thread tutorials/get-started/index.md Outdated
<b> <a id="whats-the-point" class="anchor" href="#whats-the-point" aria-hidden="true"><span class="octicon octicon-link"></span></a>What you'll use:</b>

This tutorial requires version xxx or later of the Flutter SDK.
When you install Flutter, you get the correct version of the
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

what does "correct version" mean?

maybe "The Flutter SDK includes Flutter's engine, framework, widgets, tools, and a Dart SDK."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I meant the version of Dart that works with this version of Flutter, but your suggested wording is better.

Comment thread tutorials/get-started/index.md Outdated

The following video shows how the finished app works:

[PENDING: Matt is making the video]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Video is made; did you get the link? Ping me if not.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Got it and done! :D

Comment thread tutorials/get-started/index.md Outdated
Dart SDK as part of the install. You also get a Flutter Simulator,
which you can use instead of a physical mobile device.

These instructions feature the Android Studio IDE, but you can use whichever
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we then mention that installing the Flutter SDK does not install IDE plugins ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done.

Comment thread tutorials/get-started/index.md Outdated

<div class="whats-the-point" markdown="1">

<b> <a id="whats-the-point" class="anchor" href="#whats-the-point" aria-hidden="true"><span class="octicon octicon-link"></span></a>What you'll use:</b>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should this section tell me how to install Flutter, or just what to install?

I think we can collapse this all down to more simply: "You'll need the following installed: link, link, link"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread tutorials/get-started/index.md Outdated

This tutorial requires version xxx or later of the Flutter SDK.
When you install Flutter, you get the correct version of the
Dart SDK as part of the install. You also get a Flutter Simulator,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Technically it's the iOS Simulator, which you don't automatically get when installing Flutter. Maybe better to reference the Android emulator, as this works cross platform and can be set up through Android Studio.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

However, the screenshot above was clearly taken from the iOS Simulator.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I did not realize that the iOS emulator comes only when you install XCode. Thanks! And done.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

You are right, Tao. I'd like to put off re-taking the screenshots for now.

Comment thread tutorials/get-started/index.md Outdated
Create a basic Flutter app, using the instructions in
[Mit’s new page, preferably linked to a specific anchor for
creating the templated app]().
Name the project startup_namer. You’ll be modifying this starter
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

How do I name the project?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done.

Comment thread tutorials/get-started/index.md Outdated

These instructions feature the Android Studio IDE, but you can use whichever
tools you prefer—Flutter and Dart plugins are also available for
VSCode and JetBrains products.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

VSCode is a Microsoft product. Better to say "VSCode and IntelliJ IDEs"? Maybe link to their websites from here as well?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done.

Comment thread tutorials/get-started/index.md Outdated
VSCode and JetBrains products.

See [Mit's new setup page]() for information on how to set up
your environment and create your first simple Flutter app.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Let's link to the existing setup page to begin with

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

See comment below, I added a redirect for now so we can safely link to /get-started/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread tutorials/get-started/index.md Outdated
Create a basic Flutter app, using the instructions in
[Mit’s new page, preferably linked to a specific anchor for
creating the templated app]().
Name the project startup_namer. You’ll be modifying this starter
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Emphasize startup_namer

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Copy link
Copy Markdown
Member

@mit-mit mit-mit left a comment

Choose a reason for hiding this comment

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

Some initial comments. Overall looks great!

Comment thread tutorials/get-started/index.md Outdated
---
layout: tutorial
title: Write Your First Flutter App
permalink: /tutorials/get-started/
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we make this /get-started/tutorials/? I attend to put all the future pages for get-started under that

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@mit-mit, the other tutorials are /tutorials/. I'd like to not move things around until after Flutter Beta.

Comment thread tutorials/get-started/index.md Outdated
* How to implement a stateful widget.
* How to create an infinite, lazily loaded list.
* How to create and navigate to a second screen.
* .
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What is that last bullet with just the period for?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Removed. It was a reminder for me.

Comment thread tutorials/get-started/index.md Outdated
<b> <a id="whats-the-point" class="anchor" href="#whats-the-point" aria-hidden="true"><span class="octicon octicon-link"></span></a>What you'll use:</b>

This tutorial requires version xxx or later of the Flutter SDK.
When you install Flutter, you get the correct version of the
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would leave out the Dart SDK part

Comment thread tutorials/get-started/index.md Outdated

This tutorial requires version xxx or later of the Flutter SDK.
When you install Flutter, you get the correct version of the
Dart SDK as part of the install. You also get a Flutter Simulator,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What is the Flutter Simulator?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I had the same question.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Delete.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deleted that line.

Comment thread tutorials/get-started/index.md Outdated
tools you prefer—Flutter and Dart plugins are also available for
VSCode and JetBrains products.

See [Mit's new setup page]() for information on how to set up
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

You should link to /get-started/. That is the "future home", but we already have a redirect there so the link works with the existing setup flow.

Copy link
Copy Markdown
Contributor Author

@Sfshaza Sfshaza Feb 23, 2018

Choose a reason for hiding this comment

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

Matt told me earlier today that your page is coming after next week. Yes?

Comment thread tutorials/get-started/index.md Outdated

<b> <a id="whats-the-point" class="anchor" href="#whats-the-point" aria-hidden="true"><span class="octicon octicon-link"></span></a>What you'll use:</b>

This tutorial requires version xxx or later of the Flutter SDK.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

s/version xxx/v0.1.4/ ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we just ask the user to do a flutter upgrade without asking them to check the version number?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Updating is not enough if you are on the wrong channel

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done.

Comment thread tutorials/get-started/index.md Outdated
<aside class="alert alert-success" markdown="1">
<i class="fa fa-lightbulb-o"> </i> **Tip:**
When pasting code into your app, indentation can
become skewed. You can fix this in Android Studio by right-clicking the
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would make this section a bit more general, like this:

You can fix this automatically with our tools:
  * Android Studio / IntelliJ IDEA: right-click the dart code and select  **Reformat Code with dartfmt**
  * VS Code: right-click the code and select **Format Document**
  * Terminal: run `flutter format <filename>`

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread tutorials/get-started/index.md Outdated
</li>

<li markdown="1">
Run the app. You should see the following screen.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Here, and generally after each change, can we tell the developer to hot reload rather than run? Would need to check that all the changes actually do reload, though!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

OK, I just changed all instances to hot reload instead of run. But I need to go back and check because I think at least one of them requires a restart. But I noticed that AS TELLS you when you need to restart. Nice!

Comment thread tutorials/get-started/index.md Outdated
You can find the
[english_words](https://pub.dartlang.org/packages/english_words)
package, as well as many other open source packages, on
[pub.dartlang.org](https://pub.dartlang.org/).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I suggest we for the second link use https://pub.dartlang.org/flutter to get the flutter landing page and not the general front page.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread tutorials/get-started/index.md Outdated
## Step 1: Create the starting Flutter app

Create a basic Flutter app, using the instructions in
[Mit’s new page, preferably linked to a specific anchor for
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Let me get back to you on this shortly!

Copy link
Copy Markdown
Contributor Author

@Sfshaza Sfshaza Feb 23, 2018

Choose a reason for hiding this comment

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

After talking to Matt this morning, I am just telling them to paste in a Hello World. Until after next week when things are more settled.

Comment thread tutorials/get-started/index.md Outdated
lower level widgets.
</li>
<li markdown="1"> Moving the “hello world” text into a separate widget,
HelloWorld, results in an identical widget tree as the code abovr.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Typo: abovr -> above

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread tutorials/get-started/index.md Outdated
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Center(child: new Text('Hello World')),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

child: new Center should be on a new line?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'd like to table this change for now.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

OK, fixed.

Comment thread tutorials/get-started/index.md Outdated
),
);
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should this code show hello world moved into a new widget?

Copy link
Copy Markdown
Contributor Author

@Sfshaza Sfshaza Feb 23, 2018

Choose a reason for hiding this comment

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

Yes, not sure how that happened. I'm removing this for now. I also worry that it might be confusing to have 2 versions of Hello World.

Comment thread tutorials/get-started/index.md Outdated
</li>

<li markdown="1">
Run the app. You should now see open hearts on each row, but they aren't yet
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe we should clarify when the user needs to "run/restart" the app vs "hot reload" their app.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yup. See comment below.

Comment thread tutorials/get-started/index.md Outdated
</li>
</ol>

Run the app. You should be able to tap the hearts to favorite, or unfavorite,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hot reload will work fine for the above changes. We should encourage users to hot reload whenever it's applicable and explain why they need to restart their app after making certain types of changes. Cc: @mit-mit

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Makes sense. My assumption was that "Run" was clear enough. It doesn't say "Restart". But I changed all instructions to "Hot reload" and I need to re-test to make sure what needs run. That will take me awhile. :)

@InMatrix
Copy link
Copy Markdown
Contributor

InMatrix commented Feb 22, 2018

I just went through what's been written so far. Overall, I found it a great first tutorial which covers a lot of ground. My only concern is that many users might not be able to finish the tutorial in one sitting. So we need to help them get back to the tutorial after interruptions. We can do this by linking to the tutorial from the code and linking to different sections from relevant pages on flutter.io and related API docs.

In addition, splitting the tutorial into several pages might enable us to track completion rate.


SZ: @InMatrix, we should discuss this in person. In the past, when I broke these tutorials into multiple pages, I got pushback. When I convert this to codelabs.google.com for Google I/O, it will be different pages. I like your idea of cross linking, but it requires some thought.

Comment thread tutorials/get-started/index.md Outdated
</li>

<li markdown="1">
When the user taps the list icon in the app bar, build a Material route
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need to say something about the "Material" in "Material route" here? If it's not important, we can just say "route".

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good point. I deleted "Material".

Comment thread tutorials/get-started/index.md Outdated
<!-- skip -->
{% prettify dart %}
void _pushSaved() {
Navigator.of(context).push([[/highlight]]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should this [[/highlight]] be removed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch!

Comment thread tutorials/get-started/index.md Outdated
previous experience with Dart or mobile programming.

* TOC
{:toc}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is it possible to not show the sub-section titles, many of which are "Problems?", in the TOC?

image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The autogenerated TOC only goes to level 3 headers. So I popped everything up a level.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Btw, it doesn't help. The doc doesn't use headers for the steps. This needs a different solution, for after it lands.

@Sfshaza Sfshaza changed the title The start of the "getting started with Flutter" codelab/tutorial. "Getting started with Flutter" codelab/tutorial Feb 23, 2018
Copy link
Copy Markdown
Contributor

@redbrogdon redbrogdon left a comment

Choose a reason for hiding this comment

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

LGTM with one highlighting change to a code snippet. Also added some small suggestions.

Comment thread get-started/codelab/index.md Outdated

## What you'll build

You’ll implement a simple mobile app that proposes names for a
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I might go with "generates" for this first one, even though you're using "proposes" later in the doc.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

# Step 1: Create the starting Flutter app

Create a simple, templated Flutter app, using the instructions in
[Getting Started with your first Flutter app.](/getting-started/)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I know you have no choice here, but the fact that you have to direct people away to a step-by-step guide bums me out. Has there been any discussion about whether it'd be simpler to pick either CLI/Text Editor or IntelliJ as a default and run with it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, in the end, we want a new flow. We want a smooth flow from Mit's new setup pages to my codelab. It's not idea right now.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we can assume that the developer came into this flow from https://flutter-website-staging.firebaseapp.com/get-started/create-and-run/, and thus just learned how to create an app.

So mayby rephrase to: Create a simple, templated Flutter app, as you just learned in the previous [test drive](/get-started/test-drive/) step ?

Note that the link was also corrected

Comment thread get-started/codelab/index.md Outdated
## Observations

<ul markdown="1">
<li markdown="1"> This example creates a Material app.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Were I new to Flutter, I wouldn't understand the term "Material app." Consider adding a clause explaining what makes a material app different from any other.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread get-started/codelab/index.md Outdated

</ol>

Restart the app. If you try to hot reload, you might see an error:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this something the reader should be concerned about, or is it no big deal? Either way, I'd consider adding a sentence to say "just ignore it," or "fix it by doing a full restart"."

Comment thread get-started/codelab/index.md Outdated
{% endprettify %}
</li>

<li markdown="1"> Add a `biggerFont` variable for making the font size larger:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Consider doing this earlier, to bring the more complicated and interrelated #2 and #4 next to each other in the flow of the codelab (e.g. it becomes step 2, step 2 becomes step 3).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I kept moving this step around. For now, I've coalesced it with the step where they add the _suggestions variable.

Comment thread get-started/codelab/index.md Outdated
<li markdown="1"> Make the hearts tappable in the `_buildRow` method.
If a word entry has already been added to favorites, tapping it again
removes it from favorites. When the heart has been tapped, the method
calls `setState()`. Calling this method signals the build system that
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It may not be clear to someone unfamiliar with reactive apps that this means the Widgets get redrawn. Consider highlighting the fact that calling setState will trigger a call to the build method of the State object, and an update of the UI.

[[highlight]]tiles: tiles,[[/highlight]]
[[highlight]])[[/highlight]]
[[highlight]].toList();[[/highlight]]
);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You're missing a couple closing brackets/parens on this method here. They show up in lines 1098 and 1099 without ever getting a highlighted "this is where you add these" step.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for catching!

Comment thread get-started/codelab/index.md Outdated
Tap the back button to return to the home route.
</li>

<li markdown="1"> You can easily change an app's theme by configuring
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should changing the theme be a separate section, something that's on an equal footing with stuff like "Add Interactivity?"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, I can see done. Done.

Comment thread get-started/codelab/index.md Outdated
</li>

<li markdown="1"> Hot reload the app. You'll notice that the background is white,
even the app bar.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This might be a good time to suggest they play around with hot reload. Something like "Try changing the color again (Colors has a lot of constants!) and saving the code to trigger a hot reload. You can quickly experiment with a lot of UI details this way."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I added it as an exercise for the reader. Thanks so much!

* [Building Layouts in Flutter](/tutorials/layout/) tutorial
* [Add Interactivity](/tutorials/interactive/) tutorial
* [Flutter Cookbook](/cookbook/)
* [From Java to Dart](https://codelabs.developers.google.com/codelabs/from-java-to-dart/#0) codelab
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is the gitter channel (https://gitter.im/flutter/flutter) considered an official source for help?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I believe so, but Filip doesn't want me adding community links. They will be added to the footer soon.

sfshaza2 and others added 2 commits February 23, 2018 17:04
* Put gif of final app to the right of TOC

* Remove “Problems?” from TOC

* Remove unnecessary text from top
@googlebot
Copy link
Copy Markdown

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this State. It's up to you to confirm consent of the commit author(s) and merge this pull request when appropriate.

@googlebot googlebot added cla: no Contributor has not signed the Contributor License Agreement and removed cla: yes Contributor has signed the Contributor License Agreement labels Feb 24, 2018
@mit-mit
Copy link
Copy Markdown
Member

mit-mit commented Feb 24, 2018

@filiph as per the cla bot, can you add a statement that you "are ok with their commits being contributed to this project." ?

@filiph
Copy link
Copy Markdown
Contributor

filiph commented Feb 24, 2018

I am ok with my commits being contributed to this project.

(Weird that I need to do this here. Welp.)

@Sfshaza Sfshaza merged commit fdc3a47 into master Feb 24, 2018
@Sfshaza Sfshaza deleted the get-started branch February 24, 2018 21:38

<figure class="right-figure" style="max-width: 250px">
<img src="images/startup-namer-app.gif"
alt="Animated GIF of the app that you will be building."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this is not good alternative text. See https://html.spec.whatwg.org/multipage/images.html#alt for advice.

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

Labels

cla: no Contributor has not signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.