Skip to content

Commit 8ad613d

Browse files
committed
Remove codelab and cookbook index in favor of learning resource index
1 parent 0eb8999 commit 8ad613d

File tree

18 files changed

+41
-478
lines changed

18 files changed

+41
-478
lines changed

firebase.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,14 @@
104104
{ "source": "/accessibility-and-localization", "destination": "/ui/accessibility-and-internationalization", "type": 301 },
105105
{ "source": "/accessibility-and-localization/:rest*", "destination": "/ui/accessibility-and-internationalization/:rest*", "type": 301 },
106106
{ "source": "/add-to-app/android/add-splash-screen", "destination": "/platform-integration/android/splash-screen", "type": 301 },
107+
{ "source": "/codelabs", "destination": "/reference/learning-resources", "type": 301 },
107108
{ "source": "/codelabs/layout-basics", "destination": "/ui/layout", "type": 301 },
108109
{ "source": "/codelabs/explicit-animations", "destination": "/ui/animations/tutorial", "type": 301 },
110+
{ "source": "/cookbook", "destination": "/reference/learning-resources", "type": 301 },
109111
{ "source": "/cookbook/games/google-mobile-ads", "destination": "/cookbook/plugins/google-mobile-ads", "type": 301 },
110112
{ "source": "/cookbook/images/cached-images", "destination": "/cookbook/images/network-image", "type": 301 },
111-
{ "source": "/cookbook/effects/photo-filter-carousel", "destination": "/cookbook", "type": 301 },
112-
{ "source": "/cookbook/effects/gradient-bubbles", "destination": "/cookbook", "type": 301 },
113+
{ "source": "/cookbook/effects/photo-filter-carousel", "destination": "/reference/learning-resources", "type": 301 },
114+
{ "source": "/cookbook/effects/gradient-bubbles", "destination": "/reference/learning-resources", "type": 301 },
113115
{ "source": "/cookbook/networking/named-routes", "destination": "/cookbook/navigation/named-routes", "type": 301 },
114116
{ "source": "/cookbook/testing/integration-test-introduction", "destination": "/cookbook/testing/integration", "type": 301 },
115117
{ "source": "/cookbook/testing/integration-test-profiling", "destination": "/cookbook/testing/integration/profiling", "type": 301 },

src/content/codelabs/implicit-animations.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,13 +418,13 @@ To learn more, check out these suggestions:
418418
- Try the [animations tutorial][].
419419
- Learn about [hero animations][] and [staggered animations][].
420420
- Checkout the [animation library][].
421-
- Try another [codelab][].
421+
- Explore other [Flutter learning resources][].
422422

423423
[`AnimatedContainer`]: {{site.api}}/flutter/widgets/AnimatedContainer-class.html
424424
[AnimatedOpacity]: {{site.api}}/flutter/widgets/AnimatedOpacity-class.html
425425
[animation library]: {{site.api}}/flutter/animation/animation-library.html
426426
[animations tutorial]: /ui/animations/tutorial
427-
[codelab]: /codelabs
427+
[Flutter learning resources]: /reference/learning-resources
428428
[`Curve`]: {{site.api}}/flutter/animation/Curve-class.html
429429
[`Curves`]: {{site.api}}/flutter/animation/Curves-class.html
430430
[duration]: {{site.api}}/flutter/widgets/ImplicitlyAnimatedWidget/duration.html

src/content/codelabs/index.md

Lines changed: 4 additions & 313 deletions
Original file line numberDiff line numberDiff line change
@@ -2,318 +2,9 @@
22
title: Codelabs
33
description: >-
44
Codelabs to help you quickly get started programming Flutter.
5+
sitemap: false
6+
# This is a placeholder page (Firebase redirects this page's URL to another);
7+
# it is necessary to allow breadcrumbs to work.
58
---
69

7-
The Flutter codelabs provide a guided,
8-
hands-on coding experience. Some codelabs
9-
run in DartPad—no downloads required!
10-
11-
## Good for beginners
12-
13-
If you're new to Flutter, we recommend starting with
14-
one of the following codelabs:
15-
16-
* [Building your first Flutter app][] (workshop)<br>
17-
An instructor-led version of our very popular
18-
"Write your first Flutter app" codelab
19-
(listed below).
20-
21-
* [Your first Flutter app][]<br>
22-
Create a simple app that automatically generates cool-sounding names,
23-
such as "newstay", "lightstream", "mainbrake", or "graypine".
24-
This app is responsive and runs on mobile, desktop, and web.
25-
26-
[Building your first Flutter app]: {{site.yt.watch}}?v=8sAyPDLorek
27-
[Your first Flutter app]: {{site.codelabs}}/codelabs/flutter-codelab-first
28-
29-
## Next steps
30-
31-
* [Records and Patterns in Dart 3][]<br>
32-
Discover Dart 3's new records and patterns features.
33-
Learn how you can use them in a Flutter app to help you
34-
write more readable and maintainable Dart code.
35-
36-
* [Building scrolling experiences in Flutter][] (workshop)<br>
37-
Start with an app that performs simple, straightforward scrolling
38-
and enhance it to create fancy and custom scrolling effects
39-
by using slivers.
40-
41-
* [Dart null safety in Action][] (workshop)<br>
42-
An instructor-led workshop introducing the features
43-
that enable Dart's null-safe type system.
44-
45-
* [How to manage application states using inherited widgets][inherited-widget-ws] (workshop)<br>
46-
Learn how to manage the state of your app's data by
47-
using the `InheritedWidget` class, one of the
48-
[low-level state management][] classes provided
49-
by Flutter.
50-
51-
[Records and Patterns in Dart 3]: {{site.codelabs}}/codelabs/dart-patterns-records
52-
[Dart null safety in Action]: {{site.yt.watch}}?v=HdKwuHQvArY
53-
[inherited-widget-ws]: {{site.yt.watch}}?v=LFcGPS6cGrY
54-
[low-level state management]: /data-and-backend/state-mgmt/options#inheritedwidget-inheritedmodel
55-
56-
## Designing a Flutter UI
57-
58-
Learn about Material Design and basic Flutter concepts,
59-
like layout and animations:
60-
61-
* [How to debug layout issues with the Flutter Inspector][]<br>
62-
Not an official codelab, but step-by-step instructions on
63-
how to debug common layout problems using the Flutter
64-
Inspector and Layout Explorer.
65-
66-
* [Animations in Flutter][]<br>
67-
Learn everything you need to know to build animated effects
68-
using Flutter. This codelab covers implicitly animated widgets,
69-
explicitly animated widgets, animation controllers,
70-
how to use components from the Material [animations][] package,
71-
and how to set up [Predictive Back][] on Android.
72-
73-
* [Implicit animations][]<br>
74-
Use DartPad (no downloads required!) to learn how to use
75-
implicit animations to add motion and create
76-
visual effects for the widgets in your UI.
77-
78-
* [Building Beautiful Transitions with Material Motion for Flutter][]<br>
79-
Learn how to use the Material [animations][] package to
80-
add pre-built transitions to a Material app called Reply.
81-
82-
* [Take your Flutter app from boring to beautiful][]<br>
83-
Learn how to use some of the features in Material 3
84-
to make your app more beautiful _and_ more responsive.
85-
86-
* [MDC-101 Flutter: Material Components (MDC) Basics][]<br>
87-
Learn the basics of using Material Components by building
88-
a simple app with core components. The four MDC codelabs
89-
guide you through building an e-commerce app called Shrine.
90-
You'll start by building a login page using several of MDC
91-
Flutter's components.
92-
93-
* [MDC-102 Flutter: Material Structure and Layout][]<br>
94-
Learn how to use Material for structure and layout in Flutter.
95-
Continue building the e-commerce app, introduced in MDC-101,
96-
by adding navigation, structure, and data.
97-
98-
* [MDC-103 Flutter: Material Theming with Color, Shape, Elevation, and Type][]<br>
99-
Discover how Material Components for Flutter make it
100-
easy to differentiate your product, and express your
101-
brand through design. Continue building your e-commerce
102-
app by adding a home screen that displays products.
103-
104-
* [MDC-104 Flutter: Material Advanced Components][]<br>
105-
Improve your design and learn to use our advanced
106-
component backdrop menu. Finish your e-commerce app
107-
by adding a backdrop with a menu that filters
108-
products by the selected category.
109-
110-
* [Adaptive Apps in Flutter][]<br>
111-
Learn how to build a Flutter app that adapts to the
112-
platform that it's running on, be that Android, iOS,
113-
the web, Windows, macOS, or Linux.
114-
115-
* [Building next generation UIs in Flutter][]<br>
116-
Learn how to build a Flutter app that uses the power of `flutter_animate`,
117-
fragment shaders, and particle fields. You will craft a user interface that
118-
evokes those science fiction movies and TV shows we all love
119-
watching when we aren't coding.
120-
121-
[Building next generation UIs in Flutter]: {{site.codelabs}}/codelabs/flutter-next-gen-uis
122-
[Adaptive Apps in Flutter]: {{site.codelabs}}/codelabs/flutter-adaptive-app
123-
[animations]: {{site.pub}}/packages/animations
124-
[Building Beautiful Transitions with Material Motion for Flutter]: {{site.codelabs}}/codelabs/material-motion-flutter
125-
[Building scrolling experiences in Flutter]: {{site.yt.watch}}?v=YY-_yrZdjGc
126-
[How to debug layout issues with the Flutter Inspector]: {{site.flutter-medium}}/how-to-debug-layout-issues-with-the-flutter-inspector-87460a7b9db
127-
[Animations in Flutter]: {{site.codelabs}}/advanced-flutter-animations
128-
[Predictive Back]: {{site.docs}}/release/breaking-changes/android-predictive-back
129-
[Implicit animations]: /codelabs/implicit-animations
130-
[MDC-101 Flutter: Material Components (MDC) Basics]: {{site.codelabs}}/codelabs/mdc-101-flutter
131-
[MDC-102 Flutter: Material Structure and Layout]: {{site.codelabs}}/codelabs/mdc-102-flutter
132-
[MDC-103 Flutter: Material Theming with Color, Shape, Elevation, and Type]: {{site.codelabs}}/codelabs/mdc-103-flutter
133-
[MDC-104 Flutter: Material Advanced Components]: {{site.codelabs}}/codelabs/mdc-104-flutter
134-
[Take your Flutter app from boring to beautiful]: {{site.codelabs}}/codelabs/flutter-boring-to-beautiful
135-
136-
## Using Flutter with ...
137-
138-
Learn how to use Flutter with other technologies.
139-
140-
{% comment %}
141-
Once we get at least 3 codelabs on a specific topic,
142-
add a subheader for that topic.
143-
{% endcomment %}
144-
145-
### Monetizing Flutter
146-
147-
* [Adding AdMob Ads to a Flutter app][]<br>
148-
Learn how to add an AdMob banner, an interstitial ad,
149-
and a rewarded ad to an app called Awesome Drawing Quiz,
150-
a game that lets players guess the name of the drawing.
151-
152-
* [Adding an AdMob banner and native inline ads to a Flutter app][]<br>
153-
Learn how to implement inline banner and native ads
154-
to a travel booking app that lists possible
155-
flight destinations.
156-
157-
* [Adding in-app purchases to your Flutter app][]<br>
158-
Extend a simple gaming app that uses the Dash mascot as
159-
currency to offer three types of in-app purchases:
160-
consumable, non-consumable, and subscription.
161-
162-
[Adding AdMob Ads to a Flutter app]: {{site.codelabs}}/codelabs/admob-ads-in-flutter
163-
[Adding an AdMob banner and native inline ads to a Flutter app]: {{site.codelabs}}/codelabs/admob-inline-ads-in-flutter
164-
[Adding in-app purchases to your Flutter app]: {{site.codelabs}}/codelabs/flutter-in-app-purchases
165-
166-
### Flutter and Firebase
167-
168-
* [Build a Gemini powered Flutter app][]**NEW**<br>
169-
In this codelab, you’ll learn how to integrate Gemini into your Flutter
170-
app using Vertex AI in Firebase.
171-
172-
* [Add a user authentication flow to a Flutter app using FirebaseUI][]<br>
173-
Learn how to add Firebase authentication to a Flutter app
174-
with only a few lines of code.
175-
176-
* [Get to know Firebase for Flutter][firebase-ws] (workshop)<br>
177-
An instructor-led version of our popular
178-
"Get to know Firebase for Flutter" codelab
179-
(listed below).
180-
181-
* [Get to know Firebase for Flutter][]<br>
182-
Build an event RSVP and guestbook chat app on both Android
183-
and iOS using Flutter, authenticating users with Firebase
184-
Authentication, and sync data using Cloud Firestore.
185-
186-
* [Local development for your Flutter apps using the Firebase Emulator Suite][]<br>
187-
Learn how to use the Firebase Emulator Suite when
188-
developing with Flutter. You will also learn to use
189-
the Auth and Firestore emulators.
190-
191-
* [Send and receive notifications for a Flutter app using Firebase Cloud Messaging][]<br>
192-
Learn how to develop a multi-platform app with Flutter
193-
and Firebase Cloud Messaging, integrating FCM to send and
194-
receive messages on Android, iOS, and web.
195-
196-
[Build a Gemini powered Flutter app]: {{site.codelabs}}/codelabs/flutter-gemini-colorist
197-
[Add a user authentication flow to a Flutter app using FirebaseUI]: {{site.firebase}}/codelabs/firebase-auth-in-flutter-apps
198-
[firebase-ws]: {{site.yt.watch}}?v=wUSkeTaBonA
199-
[Get to know Firebase for Flutter]: {{site.firebase}}/codelabs/firebase-get-to-know-flutter
200-
[Local development for your Flutter apps using the Firebase Emulator Suite]: {{site.firebase}}/codelabs/get-started-firebase-emulators-and-flutter
201-
[Send and receive notifications for a Flutter app using Firebase Cloud Messaging]: {{site.firebase}}/codelabs/firebase-fcm-flutter
202-
203-
### Build games with Flutter
204-
205-
* [Add sound and music to your Flutter game with SoLoud][]**NEW**<br>
206-
The [SoLoud][] package, a free and portable engine,
207-
delivers the low-latency and high-performance sound that's
208-
essential for many games.
209-
In this codelab, learn how to add SoLoud to your game.
210-
211-
* [Build a 2D physics game with Flutter and Flame][]**NEW**<br>
212-
This codelab guides you through crafting game mechanics in a
213-
Flutter and Flame game using a 2D physics simulation along
214-
the lines of Box2D, called [Forge2D][].
215-
216-
* [Build a word puzzle with Flutter][]**NEW**<br>
217-
This codelab focuses on building word puzzle games,
218-
and dives into using Flutter's background processing
219-
to generate expansive crossword-style grids of interlocking words.
220-
221-
* [Introduction to Flame with Flutter][]<br>
222-
Build a Breakout clone using the Flame 2D game engine and
223-
embed it in a Flutter wrapper. You will use Flame's Effects
224-
to animate and remove components, along with the `google_fonts` and
225-
`flutter_animate` packages, to make the whole game look well designed.
226-
227-
[Add sound and music to your Flutter game with SoLoud]: {{site.codelabs}}/codelabs/flutter-codelab-soloud
228-
[Build a 2D physics game with Flutter and Flame]: {{site.codelabs}}/codelabs/flutter-flame-forge2d
229-
[Build a word puzzle with Flutter]: {{site.codelabs}}/codelabs/flutter-word-puzzle
230-
[Forge2D]: {{site.pub-pkg}}/forge2d
231-
[Introduction to Flame with Flutter]: {{site.codelabs}}/codelabs/flutter-flame-brick-breaker
232-
[SoLoud]: {{site.pub-pkg}}/flutter_soloud
233-
234-
### Flutter and TensorFlow
235-
236-
* [Create a custom text-classification model with TensorFlow Lite Model Maker][]<br>
237-
238-
* [Create a Flutter app to classify texts with TensorFlow][]<br>
239-
Learn how to run a text-classification inference from a Flutter
240-
app with TensorFlow Serving through REST and gRPC.
241-
242-
* [Train a comment-spam detection model with TensorFlow Lite Model Maker][]<br>
243-
Learn how to install the TensorFlow Lite Model Maker with Colab,
244-
how to use a data loader, and how to build a model.
245-
246-
[Create a custom text-classification model with TensorFlow Lite Model Maker]: {{site.developers}}/codelabs/classify-text-update-tensorflow-serving
247-
[Create a Flutter app to classify texts with TensorFlow]: {{site.developers}}/codelabs/classify-texts-flutter-tensorflow-serving
248-
[Train a comment-spam detection model with TensorFlow Lite Model Maker]: {{site.developers}}/codelabs/classify-text-tensorflow-serving
249-
250-
### Flutter and other technologies
251-
252-
* [Adding Google Maps to a Flutter app][]<br>
253-
Display a Google map in an app, retrieve data from a
254-
web service, and display the data as markers on the map.
255-
256-
* [Adding WebView to your Flutter app][]<br>
257-
With the WebView Flutter plugin you can add a WebView
258-
widget to your Android or iOS Flutter app.
259-
260-
* [Build voice bots for mobile with Dialogflow and Flutter][] (workshop)<br>
261-
An instructor-led version of the Dialogflow
262-
and Flutter codelab (listed below).
263-
264-
* [Build voice bots for Android with Dialogflow and Flutter][]<br>
265-
Learn how to build a mobile FAQ bot that can answer most
266-
common questions about the tool Dialogflow. End users
267-
can interact with the text interface or stream a voice
268-
interaction via the built-in microphone of a mobile device.
269-
270-
* [Using FFI in a Flutter plugin][]<br>
271-
Learn how to use Dart's FFI (foreign function interface)
272-
library, ffigen, allowing you to leverage
273-
existing native libraries that provide a
274-
C interface.
275-
276-
* [Create haikus about Google products with the PaLM API and Flutter][]<br>
277-
Learn how to build an app that uses the PaLM API to
278-
generate haikus based on Google product names. The
279-
PaLM API gives you access to Google's
280-
state-of-the-art large language models.
281-
282-
[Adding Google Maps to a Flutter app]: {{site.codelabs}}/codelabs/google-maps-in-flutter
283-
[Adding WebView to your Flutter app]: {{site.codelabs}}/codelabs/flutter-webview
284-
[Build voice bots for Android with Dialogflow and Flutter]: {{site.codelabs}}/codelabs/dialogflow-flutter
285-
[Build voice bots for mobile with Dialogflow and Flutter]: {{site.yt.watch}}?v=O7JfSF3CJ84
286-
[Create haikus about Google products with the PaLM API and Flutter]: {{site.codelabs}}/haiku-generator
287-
[Using FFI in a Flutter plugin]: {{site.codelabs}}/codelabs/flutter-ffigen
288-
289-
## Testing
290-
291-
Learn how to test your Flutter application.
292-
293-
* [How to test a Flutter app][]<br>
294-
Start with a simple app that manages state with the Provider package.
295-
Unit test the provider package. Write widget tests for two of the
296-
widgets. Use Flutter Driver to create an integration test.
297-
298-
[How to test a Flutter app]: {{site.codelabs}}/codelabs/flutter-app-testing/
299-
300-
## Writing platform-specific code
301-
302-
Learn how to write code that's targeted for specific platforms,
303-
like iOS, Android, desktop, or the web.
304-
305-
* [Write a Flutter desktop application][]<br>
306-
Build a Flutter desktop app (Windows, Linux, or macOS)
307-
that accesses GitHub APIs to retrieve your repositories,
308-
assigned issues, and pull requests. As part of this task,
309-
create and use plugins to interact with native APIs and desktop applications,
310-
and use code generation to build type-safe client libraries for GitHub's APIs.
311-
312-
* [Adding a Home Screen widget to your Flutter app][home-screen]<br>
313-
Learn how to add a Home Screen widget to your Flutter app
314-
on iOS. This applies to your home screen, lock screen, or the
315-
today view.
316-
317-
[home-screen]: {{site.codelabs}}/flutter-home-screen-widgets
318-
[provider]: {{site.pub-pkg}}/provider
319-
[Write a Flutter desktop application]: {{site.codelabs}}/codelabs/flutter-github-client
10+
The Flutter codelabs provide a guided, hands-on coding experience with Flutter!

src/content/cookbook/animation/opacity-animation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,6 @@ class _MyHomePageState extends State<MyHomePage> {
205205
</noscript>
206206

207207
[`AnimatedOpacity`]: {{site.api}}/flutter/widgets/AnimatedOpacity-class.html
208-
[Gestures]: /cookbook#gestures
208+
[Gestures]: /cookbook/gestures
209209
[`StatefulWidget`]: {{site.api}}/flutter/widgets/StatefulWidget-class.html
210210
[`setState()`]: {{site.api}}/flutter/widgets/State/setState.html

src/content/cookbook/design/drawer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,10 +288,10 @@ class _MyHomePageState extends State<MyHomePage> {
288288

289289
[`Drawer`]: {{site.api}}/flutter/material/Drawer-class.html
290290
[`DrawerHeader`]: {{site.api}}/flutter/material/DrawerHeader-class.html
291-
[list recipes]: /cookbook#lists
291+
[list recipes]: /cookbook/lists
292292
[`ListTile`]: {{site.api}}/flutter/material/ListTile-class.html
293293
[`ListView`]: {{site.api}}/flutter/widgets/ListView-class.html
294294
[material library]: {{site.api}}/flutter/material/material-library.html
295295
[`Navigator`]: {{site.api}}/flutter/widgets/Navigator-class.html
296296
[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html
297-
[Navigation]: /cookbook#navigation
297+
[Navigation]: /cookbook/navigation

src/content/cookbook/design/snackbars.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ class SnackBarPage extends StatelessWidget {
150150
<img src="/assets/images/docs/cookbook/snackbar.webp" alt="SnackBar Demo" class="site-mobile-screenshot" />
151151
</noscript>
152152

153-
[Gestures]: /cookbook#gestures
153+
[Gestures]: /cookbook/gestures
154154
[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html
155155
[`SnackBar`]: {{site.api}}/flutter/material/SnackBar-class.html
156156
[material library]: {{site.api}}/flutter/material/material-library.html

src/content/cookbook/forms/focus.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ class _MyCustomFormState extends State<MyCustomForm> {
214214

215215
[fix has landed]: {{site.repo.flutter}}/pull/50372
216216
[`FocusNode`]: {{site.api}}/flutter/widgets/FocusNode-class.html
217-
[Forms]: /cookbook#forms
217+
[Forms]: /cookbook/forms
218218
[flutter/flutter@bf551a3]: {{site.repo.flutter}}/commit/bf551a31fe7ef45c854a219686b6837400bfd94c
219219
[Issue 52221]: {{site.repo.flutter}}/issues/52221
220220
[`requestFocus()`]: {{site.api}}/flutter/widgets/FocusNode/requestFocus.html

0 commit comments

Comments
 (0)