Spelling (#15229)

* spelling: accommodate

* spelling: allotted

* spelling: anonymous

* spelling: artificial

* spelling: associated

* spelling: asset

* spelling: button

* spelling: canvas

* spelling: compatibility

* spelling: coverage

* spelling: condition

* spelling: decoration

* spelling: deferring

* spelling: diameter

* spelling: direction

* spelling: displacement

* spelling: dropdown

* spelling: needing

* spelling: environment

* spelling: exited

* spelling: expansion

* spelling: explore

* spelling: families

* spelling: horizontal

* spelling: increment

* spelling: indices

* spelling: internationalization

* spelling: labrador

* spelling: localizations

* spelling: midflight

* spelling: milliseconds

* spelling: minimum

* spelling: multiple

* spelling: multiplication

* spelling: navigator

* spelling: overridden

* spelling: package

* spelling: performance

* spelling: platform

* spelling: porsche

* spelling: position

* spelling: preceded

* spelling: precede

* spelling: precedence

* spelling: print

* spelling: property

* spelling: readily

* spelling: reproducibility

* spelling: rounded

* spelling: scroll

* spelling: separate

* spelling: separator

* spelling: services

* spelling: specific

* spelling: specify

* spelling: synchronously

* spelling: through

* spelling: timeout

* spelling: triangle

* spelling: trivial

* spelling: unusual

* spelling: then

* spelling: vertically

* spelling: visible

* spelling: visited

* spelling: voice
diff --git a/dev/integration_tests/channels/android/app/src/main/java/com/yourcompany/channels/MainActivity.java b/dev/integration_tests/channels/android/app/src/main/java/com/yourcompany/channels/MainActivity.java
index 83fae61..2921ff5 100644
--- a/dev/integration_tests/channels/android/app/src/main/java/com/yourcompany/channels/MainActivity.java
+++ b/dev/integration_tests/channels/android/app/src/main/java/com/yourcompany/channels/MainActivity.java
@@ -44,7 +44,7 @@
   }
 
   // Outgoing ByteBuffer messages must be direct-allocated and payload placed between
-  // positon 0 and current position.
+  // position 0 and current position.
   @SuppressWarnings("unchecked")
   private <T> T echo(T message) {
     if (message instanceof ByteBuffer) {
diff --git a/dev/manual_tests/lib/text.dart b/dev/manual_tests/lib/text.dart
index 64effdc..92212d8 100644
--- a/dev/manual_tests/lib/text.dart
+++ b/dev/manual_tests/lib/text.dart
@@ -124,7 +124,7 @@
   @override
   void initState() {
     super.initState();
-    _random = new math.Random(widget.seed); // providing a seed is important for reproducability
+    _random = new math.Random(widget.seed); // providing a seed is important for reproducibility
     _ticker = createTicker(_updateTextSpan)..start();
     _updateTextSpan(null);
   }
@@ -798,7 +798,7 @@
   @override
   void initState() {
     super.initState();
-    _random = new math.Random(widget.seed); // providing a seed is important for reproducability
+    _random = new math.Random(widget.seed); // providing a seed is important for reproducibility
     _ticker = createTicker(_update)..start();
     _update(null);
   }
@@ -865,7 +865,7 @@
                   onChanged: (bool value) {
                     setState(() {
                       _allowSpacing = value;
-                      _random = new math.Random(widget.seed); // reset for reproducability
+                      _random = new math.Random(widget.seed); // reset for reproducibility
                     });
                   },
                 ),
@@ -875,7 +875,7 @@
                   onChanged: (bool value) {
                     setState(() {
                       _varyBase = value;
-                      _random = new math.Random(widget.seed); // reset for reproducability
+                      _random = new math.Random(widget.seed); // reset for reproducibility
                     });
                   },
                 ),
@@ -905,7 +905,7 @@
   @override
   void initState() {
     super.initState();
-    _random = new math.Random(widget.seed); // providing a seed is important for reproducability
+    _random = new math.Random(widget.seed); // providing a seed is important for reproducibility
     _ticker = createTicker(_update)..start();
     _update(null);
   }
@@ -1027,7 +1027,7 @@
                   onChanged: (bool value) {
                     setState(() {
                       _ellipsize = value;
-                      _random = new math.Random(widget.seed); // reset for reproducability
+                      _random = new math.Random(widget.seed); // reset for reproducibility
                       if (!_ticker.isActive)
                         _update(null);
                     });
diff --git a/dev/missing_dependency_tests/trivial_test.dart b/dev/missing_dependency_tests/trivial_test.dart
index b7826d8..798a1e5 100644
--- a/dev/missing_dependency_tests/trivial_test.dart
+++ b/dev/missing_dependency_tests/trivial_test.dart
@@ -5,7 +5,7 @@
 import 'package:test/test.dart';
 
 void main() {
-  test('Trival test', () {
+  test('Trivial test', () {
     expect(42, 42);
   });
 }
diff --git a/dev/tools/dartdoc.dart b/dev/tools/dartdoc.dart
index d7bec53..79387b9 100644
--- a/dev/tools/dartdoc.dart
+++ b/dev/tools/dartdoc.dart
@@ -129,7 +129,7 @@
     '--exclude-packages',
 'analyzer,args,barback,cli_util,csslib,front_end,glob,html,http_multi_server,io,isolate,js,kernel,logging,mime,mockito,node_preamble,plugin,shelf,shelf_packages_handler,shelf_static,shelf_web_socket,utf,watcher,yaml',
     '--exclude',
-  'package:Flutter/temp_doc.dart,package:http/browser_client.dart,package:intl/intl_browser.dart,package:matcher/mirror_matchers.dart,package:quiver/mirrors.dart,pacakge:quiver/io.dart,package:vm_service_client/vm_service_client.dart,package:web_socket_channel/html.dart',
+  'package:Flutter/temp_doc.dart,package:http/browser_client.dart,package:intl/intl_browser.dart,package:matcher/mirror_matchers.dart,package:quiver/mirrors.dart,package:quiver/io.dart,package:vm_service_client/vm_service_client.dart,package:web_socket_channel/html.dart',
     '--favicon=favicon.ico',
     '--use-categories',
     '--category-order', 'flutter,Dart Core,flutter_test,flutter_driver',
diff --git a/dev/tools/lib/roll_dev.dart b/dev/tools/lib/roll_dev.dart
index b1e47fe..5196112 100644
--- a/dev/tools/lib/roll_dev.dart
+++ b/dev/tools/lib/roll_dev.dart
@@ -192,7 +192,7 @@
 
 void _reportGitFailureAndExit(ProcessResult result, String explanation) {
   if (result.exitCode != 0) {
-    print('Failed to $explanation. Git exitted with error code ${result.exitCode}.');
+    print('Failed to $explanation. Git exited with error code ${result.exitCode}.');
   } else {
     print('Failed to $explanation.');
   }
diff --git a/examples/catalog/lib/basic_app_bar.dart b/examples/catalog/lib/basic_app_bar.dart
index e098c0d..d2e5d3a 100644
--- a/examples/catalog/lib/basic_app_bar.dart
+++ b/examples/catalog/lib/basic_app_bar.dart
@@ -109,7 +109,7 @@
 Description:
 An app that displays one of a half dozen choices with an icon and a title.
 The two most common choices are available as action buttons and the remaining
-choices are included in the overflow dropdow menu.
+choices are included in the overflow dropdown menu.
 
 Classes: AppBar, IconButton, PopupMenuButton, Scaffold
 
diff --git a/examples/catalog/test/app_bar_bottom_test.dart b/examples/catalog/test/app_bar_bottom_test.dart
index 4ebffd9..857bbee 100644
--- a/examples/catalog/test/app_bar_bottom_test.dart
+++ b/examples/catalog/test/app_bar_bottom_test.dart
@@ -19,7 +19,7 @@
     app_bar_bottom_sample.main();
     await tester.pump();
 
-    // Cycle throught the choices using the forward and backwards arrows.
+    // Cycle through the choices using the forward and backwards arrows.
 
     final Finder nextChoice = find.byTooltip('Next choice');
     for (int i = 0; i < choiceCount; i += 1) {
diff --git a/examples/flutter_gallery/ios/Podfile b/examples/flutter_gallery/ios/Podfile
index 0bdc701..21aa3c9 100644
--- a/examples/flutter_gallery/ios/Podfile
+++ b/examples/flutter_gallery/ios/Podfile
@@ -4,7 +4,7 @@
 # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
 ENV['COCOAPODS_DISABLE_STATS'] = 'true'
 
-def parse_KV_file(file,seperator='=')
+def parse_KV_file(file,separator='=')
   file_abs_path = File.expand_path(file)
   if !File.exists? file_abs_path
     return [];
@@ -13,7 +13,7 @@
   skip_line_start_symbols = ["#", "/"]
   File.foreach(file_abs_path) { |line|
       next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
-      plugin = line.split(pattern=seperator)
+      plugin = line.split(pattern=separator)
       if plugin.length == 2
         podname = plugin[0].strip()
         path = plugin[1].strip()
diff --git a/examples/flutter_gallery/lib/demo/calculator/logic.dart b/examples/flutter_gallery/lib/demo/calculator/logic.dart
index 7e3f0fa..266f12f 100644
--- a/examples/flutter_gallery/lib/demo/calculator/logic.dart
+++ b/examples/flutter_gallery/lib/demo/calculator/logic.dart
@@ -284,7 +284,7 @@
     final List<ExpressionToken> list = _list.toList();
     // We obey order-of-operations by computing the sum of the 'terms',
     // where a "term" is defined to be a sequence of numbers separated by
-    // multiplcation or division symbols.
+    // multiplication or division symbols.
     num currentTermValue = removeNextTerm(list);
     while (list.isNotEmpty) {
       final OperationToken opToken = list.removeAt(0);
diff --git a/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart b/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart
index cac8020..20a74f4 100644
--- a/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart
+++ b/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart
@@ -24,7 +24,7 @@
 const List<String> coolColorNames = const <String>[
   'Sarcoline', 'Coquelicot', 'Smaragdine', 'Mikado', 'Glaucous', 'Wenge',
   'Fulvous', 'Xanadu', 'Falu', 'Eburnean', 'Amaranth', 'Australien',
-  'Banan', 'Falu', 'Gingerline', 'Incarnadine', 'Labrabor', 'Nattier',
+  'Banan', 'Falu', 'Gingerline', 'Incarnadine', 'Labrador', 'Nattier',
   'Pervenche', 'Sinoper', 'Verditer', 'Watchet', 'Zaffre',
 ];
 
@@ -678,7 +678,7 @@
         text: 'SJ',
         color: const Color(0xFF34CAD6),
       ),
-      text: "We'll send you our\nnewest Labrabor too!",
+      text: "We'll send you our\nnewest Labrador too!",
     ),
     const Tab2ConversationRow(
       text: 'Yay',
diff --git a/examples/flutter_gallery/lib/demo/material/cards_demo.dart b/examples/flutter_gallery/lib/demo/material/cards_demo.dart
index 34218d1..831d1fa 100644
--- a/examples/flutter_gallery/lib/demo/material/cards_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/cards_demo.dart
@@ -97,7 +97,7 @@
                   ],
                 ),
               ),
-              // description and share/expore buttons
+              // description and share/explore buttons
               new Expanded(
                 child: new Padding(
                   padding: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0),
diff --git a/examples/flutter_gallery/lib/demo/material/dialog_demo.dart b/examples/flutter_gallery/lib/demo/material/dialog_demo.dart
index e0331ba..2908a39 100644
--- a/examples/flutter_gallery/lib/demo/material/dialog_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/dialog_demo.dart
@@ -16,7 +16,7 @@
 const String _alertWithoutTitleText = 'Discard draft?';
 
 const String _alertWithTitleText =
-  'Let Google help apps determine location. This means sending anyonmous location '
+  'Let Google help apps determine location. This means sending anonymous location '
   'data to Google, even when no apps are running.';
 
 class DialogDemoItem extends StatelessWidget {
diff --git a/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart b/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
index ade4beb..7e70319 100644
--- a/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
@@ -172,14 +172,14 @@
   Widget build() => builder(this);
 }
 
-class ExpasionPanelsDemo extends StatefulWidget {
+class ExpansionPanelsDemo extends StatefulWidget {
   static const String routeName = '/material/expansion_panels';
 
   @override
   _ExpansionPanelsDemoState createState() => new _ExpansionPanelsDemoState();
 }
 
-class _ExpansionPanelsDemoState extends State<ExpasionPanelsDemo> {
+class _ExpansionPanelsDemoState extends State<ExpansionPanelsDemo> {
   List<DemoItem<dynamic>> _demoItems;
 
   @override
diff --git a/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart b/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart
index 5b19169..313dac2 100644
--- a/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart
+++ b/examples/flutter_gallery/lib/demo/material/leave_behind_demo.dart
@@ -147,7 +147,7 @@
               new CheckedPopupMenuItem<LeaveBehindDemoAction>(
                 value: LeaveBehindDemoAction.horizontalSwipe,
                 checked: _dismissDirection == DismissDirection.horizontal,
-                child: const Text('Hoizontal swipe')
+                child: const Text('Horizontal swipe')
               ),
               new CheckedPopupMenuItem<LeaveBehindDemoAction>(
                 value: LeaveBehindDemoAction.leftSwipe,
diff --git a/examples/flutter_gallery/lib/demo/shrine/shrine_data.dart b/examples/flutter_gallery/lib/demo/shrine/shrine_data.dart
index 46e2758..8da116d 100644
--- a/examples/flutter_gallery/lib/demo/shrine/shrine_data.dart
+++ b/examples/flutter_gallery/lib/demo/shrine/shrine_data.dart
@@ -279,7 +279,7 @@
     vendor: _stella,
     description:
       'Who says you can’t walk on water? With Surfboard, by Surfboard Supply, '
-      'you can fly on water. This beast is fast and handles like a porsche. '
+      'you can fly on water. This beast is fast and handles like a Porsche. '
       'Hang Ten Bro!'
   )
 ];
diff --git a/examples/flutter_gallery/lib/gallery/item.dart b/examples/flutter_gallery/lib/gallery/item.dart
index 9f39a80..18bdea7 100644
--- a/examples/flutter_gallery/lib/gallery/item.dart
+++ b/examples/flutter_gallery/lib/gallery/item.dart
@@ -148,8 +148,8 @@
       title: 'Expansion panels',
       subtitle: 'List of expanding panels',
       category: 'Material Components',
-      routeName: ExpasionPanelsDemo.routeName,
-      buildRoute: (BuildContext context) => new ExpasionPanelsDemo(),
+      routeName: ExpansionPanelsDemo.routeName,
+      buildRoute: (BuildContext context) => new ExpansionPanelsDemo(),
     ),
     new GalleryItem(
       title: 'Floating action button',
diff --git a/examples/flutter_gallery/test_driver/scroll_perf_test.dart b/examples/flutter_gallery/test_driver/scroll_perf_test.dart
index 4208573..67c05be 100644
--- a/examples/flutter_gallery/test_driver/scroll_perf_test.dart
+++ b/examples/flutter_gallery/test_driver/scroll_perf_test.dart
@@ -30,7 +30,7 @@
         await driver.tap(find.text('Components'));
         await driver.tap(find.text('Style'));
 
-        // TODO(eseidel): These are very artifical scrolls, we should use better
+        // TODO(eseidel): These are very artificial scrolls, we should use better
         // https://github.com/flutter/flutter/issues/3316
         // Scroll down
         for (int i = 0; i < 5; i++) {
diff --git a/examples/flutter_view/ios/Runner/Base.lproj/Main.storyboard b/examples/flutter_view/ios/Runner/Base.lproj/Main.storyboard
index 47077de..380dd14 100644
--- a/examples/flutter_view/ios/Runner/Base.lproj/Main.storyboard
+++ b/examples/flutter_view/ios/Runner/Base.lproj/Main.storyboard
@@ -90,7 +90,7 @@
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NLS-lx-anZ" userLabel="Top">
                                         <rect key="frame" x="0.0" y="0.0" width="375" height="264"/>
                                         <subviews>
-                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Flutter button tapped 0 times." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PJ2-AA-Riy" userLabel="IncremetLabel">
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Flutter button tapped 0 times." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PJ2-AA-Riy" userLabel="IncrementLabel">
                                                 <rect key="frame" x="73" y="122" width="229" height="21"/>
                                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
diff --git a/examples/layers/rendering/touch_input.dart b/examples/layers/rendering/touch_input.dart
index 22e2d63..6c4981a 100644
--- a/examples/layers/rendering/touch_input.dart
+++ b/examples/layers/rendering/touch_input.dart
@@ -86,7 +86,7 @@
   void paint(PaintingContext context, Offset offset) {
     final Canvas canvas = context.canvas;
     // The "size" property indicates the size of that this render box was
-    // alotted during layout. Here we paint our bounds white. Notice that we're
+    // allotted during layout. Here we paint our bounds white. Notice that we're
     // located at "offset" from the origin of the canvas' coordinate system.
     // Passing offset during the render tree's paint walk is an optimization to
     // avoid having to change the origin of the canvas's coordinate system too
diff --git a/examples/stocks/README.md b/examples/stocks/README.md
index 9fc6f61..f6d9357 100644
--- a/examples/stocks/README.md
+++ b/examples/stocks/README.md
@@ -20,7 +20,7 @@
 
 The `flutter run --release` command both builds and installs the Flutter app.
 
-## Interationalization
+## Internationalization
 
 This app has been internationalized (just enough to show how it's
 done). It's an example of how one can do so with the
@@ -30,7 +30,7 @@
 covers Flutter app internationalization in general.
 
 See [regenerate.md](lib/i18n/regenerate.md) for an explanation
-of how the Dart interationalization tools, like
+of how the Dart internationalization tools, like
 `intl_translation:generate_from_arb`, were used to generate
 localizations for this app.
 
diff --git a/packages/flutter/lib/src/material/animated_icons/animated_icons.dart b/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
index 786b8ef..89f9486 100644
--- a/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
+++ b/packages/flutter/lib/src/material/animated_icons/animated_icons.dart
@@ -92,7 +92,7 @@
   ///
   /// If this is null, the ambient [Directionality] is used instead.
   ///
-  /// If the text diection is [TextDirection.rtl], the icon will be mirrored
+  /// If the text direction is [TextDirection.rtl], the icon will be mirrored
   /// horizontally (e.g back arrow will point right).
   final TextDirection textDirection;
 
diff --git a/packages/flutter/lib/src/material/button_theme.dart b/packages/flutter/lib/src/material/button_theme.dart
index 16be95f..71d0d7e 100644
--- a/packages/flutter/lib/src/material/button_theme.dart
+++ b/packages/flutter/lib/src/material/button_theme.dart
@@ -29,7 +29,7 @@
 /// Used with [ButtonThemeData] to configure the color and geometry of buttons.
 ///
 /// A button theme can be specified as part of the overall Material theme
-/// using [ThemeData.buttomTheme]. The Material theme's button theme data
+/// using [ThemeData.buttonTheme]. The Material theme's button theme data
 /// can be overridden with [ButtonTheme].
 ///
 /// The actual appearance of buttons depends on the button theme, the
@@ -139,7 +139,7 @@
 /// Used with [ButtonTheme] to configure the color and geometry of buttons.
 ///
 /// A button theme can be specified as part of the overall Material theme
-/// using [ThemeData.buttomTheme]. The Material theme's button theme data
+/// using [ThemeData.buttonTheme]. The Material theme's button theme data
 /// can be overridden with [ButtonTheme].
 class ButtonThemeData extends Diagnosticable {
   /// Create a button theme object that can be used with [ButtonTheme]
diff --git a/packages/flutter/lib/src/material/ink_decoration.dart b/packages/flutter/lib/src/material/ink_decoration.dart
index ed5451b..0392fc4 100644
--- a/packages/flutter/lib/src/material/ink_decoration.dart
+++ b/packages/flutter/lib/src/material/ink_decoration.dart
@@ -99,7 +99,7 @@
 /// See also:
 ///
 ///  * [Container], a more generic form of this widget which paints itself,
-///    rather that defering to the nearest [Material] widget.
+///    rather that deferring to the nearest [Material] widget.
 ///  * [InkDecoration], the [InkFeature] subclass used by this widget to paint
 ///    on [Material] widgets.
 ///  * [InkWell] and [InkResponse], which also draw on [Material] widgets.
diff --git a/packages/flutter/lib/src/material/ink_ripple.dart b/packages/flutter/lib/src/material/ink_ripple.dart
index 45687b4..bdfce45 100644
--- a/packages/flutter/lib/src/material/ink_ripple.dart
+++ b/packages/flutter/lib/src/material/ink_ripple.dart
@@ -141,7 +141,7 @@
     _radiusController = new AnimationController(duration: _kUnconfirmedRippleDuration, vsync: controller.vsync)
       ..addListener(controller.markNeedsPaint)
       ..forward();
-     // Initial splash diamater is 60% of the target diameter, final
+     // Initial splash diameter is 60% of the target diameter, final
      // diameter is 10dps larger than the target diameter.
     _radius = new Tween<double>(
       begin: _targetRadius * 0.30,
@@ -190,7 +190,7 @@
     _radiusController
       ..duration = _kRadiusDuration
       ..forward();
-    // This confirm may have been preceeded by a cancel.
+    // This confirm may have been preceded by a cancel.
     _fadeInController.forward();
     _fadeOutController
       ..animateTo(1.0, duration: _kFadeOutDuration);
diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart
index b758e5e..bc02c33 100644
--- a/packages/flutter/lib/src/material/material.dart
+++ b/packages/flutter/lib/src/material/material.dart
@@ -315,13 +315,13 @@
       )
     );
 
-    // PhysicalModel has a temporary workaround for a perfomance issue that
+    // PhysicalModel has a temporary workaround for a performance issue that
     // speeds up rectangular non transparent material (the workaround is to
     // skip the call to ui.Canvas.saveLayer if the border radius is 0).
-    // Until the saveLayer perfomance issue is resolved, we're keeping this
+    // Until the saveLayer performance issue is resolved, we're keeping this
     // special case here for canvas material type that is using the default
     // shape (rectangle). We could go down this fast path for explicitly
-    // specified rectangles (e.g shape RoundeRectangleBorder with radius 0, but
+    // specified rectangles (e.g shape RoundedRectangleBorder with radius 0, but
     // we choose not to as we want the change from the fast-path to the
     // slow-path to be noticeable in the construction site of Material.
     if (widget.type == MaterialType.canvas && widget.shape == null && widget.borderRadius == null) {
diff --git a/packages/flutter/lib/src/material/material_localizations.dart b/packages/flutter/lib/src/material/material_localizations.dart
index 846aa5e..5f0d25a 100644
--- a/packages/flutter/lib/src/material/material_localizations.dart
+++ b/packages/flutter/lib/src/material/material_localizations.dart
@@ -30,7 +30,7 @@
 //    same directory), including a best guess as to the translation, e.g.
 //    obtained by optimistic use of Google Translate
 //    (https://translate.google.com/). After that you have to re-generate
-//    lib/src/l10n/localizaions.dart by running
+//    lib/src/l10n/localizations.dart by running
 //    `dart dev/tools/gen_localizations.dart --overwrite`. There is a README
 //    file with further information in the lib/src/l10n/ directory.
 //
@@ -137,7 +137,7 @@
   /// [showTimePicker] is set to the minute picker mode.
   String get timePickerMinuteModeAnnouncement;
 
-  /// Label read out by accessibility tools (TalkBack or VocieOver) for a modal
+  /// Label read out by accessibility tools (TalkBack or VoiceOver) for a modal
   /// barrier to indicate that a tap dismisses the barrier.
   ///
   /// A modal barrier can for example be found behind a alert or popup to block
diff --git a/packages/flutter/lib/src/material/progress_indicator.dart b/packages/flutter/lib/src/material/progress_indicator.dart
index 66329bf..853e4e6 100644
--- a/packages/flutter/lib/src/material/progress_indicator.dart
+++ b/packages/flutter/lib/src/material/progress_indicator.dart
@@ -238,7 +238,7 @@
 class _CircularProgressIndicatorPainter extends CustomPainter {
   static const double _kTwoPI = math.PI * 2.0;
   static const double _kEpsilon = .001;
-  // Canavs.drawArc(r, 0, 2*PI) doesn't draw anything, so just get close.
+  // Canvas.drawArc(r, 0, 2*PI) doesn't draw anything, so just get close.
   static const double _kSweep = _kTwoPI - _kEpsilon;
   static const double _kStartAngle = -math.PI / 2.0;
 
@@ -521,7 +521,7 @@
     return new Container(
       width: _kIndicatorSize,
       height: _kIndicatorSize,
-      margin: const EdgeInsets.all(4.0), // acommodate the shadow
+      margin: const EdgeInsets.all(4.0), // accommodate the shadow
       child: new Material(
         type: MaterialType.circle,
         color: widget.backgroundColor ?? Theme.of(context).canvasColor,
diff --git a/packages/flutter/lib/src/material/refresh_indicator.dart b/packages/flutter/lib/src/material/refresh_indicator.dart
index 391c46f..19792f4 100644
--- a/packages/flutter/lib/src/material/refresh_indicator.dart
+++ b/packages/flutter/lib/src/material/refresh_indicator.dart
@@ -20,7 +20,7 @@
 const double _kDragSizeFactorLimit = 1.5;
 
 // When the scroll ends, the duration of the refresh indicator's animation
-// to the RefreshIndicator's displacment.
+// to the RefreshIndicator's displacement.
 const Duration _kIndicatorSnapDuration = const Duration(milliseconds: 150);
 
 // The duration of the ScaleTransition that starts when the refresh action
diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart
index 692830e..9520849 100644
--- a/packages/flutter/lib/src/material/scaffold.dart
+++ b/packages/flutter/lib/src/material/scaffold.dart
@@ -769,7 +769,7 @@
   /// callback should then be invoked from [State.deactivate].
   ///
   /// If there was a previously set [ScaffoldGeometry.floatingActionButtonNotch]
-  /// it will be overriden.
+  /// it will be overridden.
   static VoidCallback setFloatingActionButtonNotchFor(BuildContext context, ComputeNotch computeNotch) {
     final _ScaffoldScope scaffoldScope = context.inheritFromWidgetOfExactType(_ScaffoldScope);
     if (scaffoldScope == null)
diff --git a/packages/flutter/lib/src/material/stepper.dart b/packages/flutter/lib/src/material/stepper.dart
index 1993a96..bab9429 100644
--- a/packages/flutter/lib/src/material/stepper.dart
+++ b/packages/flutter/lib/src/material/stepper.dart
@@ -65,7 +65,7 @@
 const Color _kDisabledLight = Colors.black38;
 const Color _kDisabledDark = Colors.white30;
 const double _kStepSize = 24.0;
-const double _kTriangleHeight = _kStepSize * 0.866025; // Traingle height. sqrt(3.0) / 2.0
+const double _kTriangleHeight = _kStepSize * 0.866025; // Triangle height. sqrt(3.0) / 2.0
 
 /// A material step used in [Stepper]. The step can have a title and subtitle,
 /// an icon within its circle, some content and a state that governs its
diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart
index d9dda73..32134be 100644
--- a/packages/flutter/lib/src/material/theme_data.dart
+++ b/packages/flutter/lib/src/material/theme_data.dart
@@ -360,7 +360,7 @@
 
   /// The default color of the [BottomAppBar].
   ///
-  /// This can be overriden by specifying [BottomAppBar.color].
+  /// This can be overridden by specifying [BottomAppBar.color].
   final Color bottomAppBarColor;
 
   /// The color of [Material] when it is used as a [Card].
diff --git a/packages/flutter/lib/src/rendering/sliver.dart b/packages/flutter/lib/src/rendering/sliver.dart
index 0d16be6..6efb6fe 100644
--- a/packages/flutter/lib/src/rendering/sliver.dart
+++ b/packages/flutter/lib/src/rendering/sliver.dart
@@ -71,7 +71,7 @@
 /// This function is useful in [RenderSliver] subclasses that are given both an
 /// [ScrollDirection] and a [GrowthDirection] and wish to compute the
 /// [ScrollDirection] in which growth will occur.
-ScrollDirection applyGrowthDirecitonToScrollDirection(ScrollDirection scrollDirection, GrowthDirection growthDirection) {
+ScrollDirection applyGrowthDirectionToScrollDirection(ScrollDirection scrollDirection, GrowthDirection growthDirection) {
   assert(scrollDirection != null);
   assert(growthDirection != null);
   switch (growthDirection) {
diff --git a/packages/flutter/lib/src/rendering/viewport.dart b/packages/flutter/lib/src/rendering/viewport.dart
index 8e4cebd..999cd70 100644
--- a/packages/flutter/lib/src/rendering/viewport.dart
+++ b/packages/flutter/lib/src/rendering/viewport.dart
@@ -277,7 +277,7 @@
     assert(scrollOffset >= 0.0);
     final double initialLayoutOffset = layoutOffset;
     final ScrollDirection adjustedUserScrollDirection =
-        applyGrowthDirecitonToScrollDirection(offset.userScrollDirection, growthDirection);
+        applyGrowthDirectionToScrollDirection(offset.userScrollDirection, growthDirection);
     assert(adjustedUserScrollDirection != null);
     double maxPaintOffset = layoutOffset + overlap;
     while (child != null) {
@@ -833,7 +833,7 @@
                 'If this widget is always nested in a scrollable widget there '
                 'is no need to use a viewport because there will always be enough '
                 'vertical space for the children. In this case, consider using a '
-                'Column instead. Otherwise, consider using the "shrinkWrap" propery '
+                'Column instead. Otherwise, consider using the "shrinkWrap" property '
                 '(or a ShrinkWrappingViewport) to size the height of the viewport '
                 'to the sum of the heights of its children.'
               );
@@ -859,7 +859,7 @@
                 'If this widget is always nested in a scrollable widget there '
                 'is no need to use a viewport because there will always be enough '
                 'horizontal space for the children. In this case, consider using a '
-                'Row instead. Otherwise, consider using the "shrinkWrap" propery '
+                'Row instead. Otherwise, consider using the "shrinkWrap" property '
                 '(or a ShrinkWrappingViewport) to size the width of the viewport '
                 'to the sum of the widths of its children.'
               );
diff --git a/packages/flutter/lib/src/semantics/semantics.dart b/packages/flutter/lib/src/semantics/semantics.dart
index 67fc9ae..1f4adc7 100644
--- a/packages/flutter/lib/src/semantics/semantics.dart
+++ b/packages/flutter/lib/src/semantics/semantics.dart
@@ -186,7 +186,7 @@
   ///  * [ScrollPosition.maxScrollExtent], from where this value is usually taken.
   final double scrollExtentMax;
 
-  /// Indicates the mimimum in-range value for [scrollPosition] if the node is
+  /// Indicates the minimum in-range value for [scrollPosition] if the node is
   /// scrollable.
   ///
   /// This value may be infinity if the scroll is unbound.
@@ -1147,7 +1147,7 @@
   double get scrollExtentMax => _scrollExtentMax;
   double _scrollExtentMax;
 
-  /// Indicates the mimimum in-range value for [scrollPosition] if the node is
+  /// Indicates the minimum in-range value for [scrollPosition] if the node is
   /// scrollable.
   ///
   /// This value may be infinity if the scroll is unbound.
diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart
index e94e60e..373a14e 100644
--- a/packages/flutter/lib/src/widgets/drag_target.dart
+++ b/packages/flutter/lib/src/widgets/drag_target.dart
@@ -467,7 +467,7 @@
 // The lifetime of this object is a little dubious right now. Specifically, it
 // lives as long as the pointer is down. Arguably it should self-immolate if the
 // overlay goes away. _DraggableState has some delicate logic to continue
-// eeding this object pointer events even after it has been disposed.
+// needing this object pointer events even after it has been disposed.
 class _DragAvatar<T> extends Drag {
   _DragAvatar({
     @required this.overlayState,
diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart
index 0adcff2..b9a80ec 100644
--- a/packages/flutter/lib/src/widgets/framework.dart
+++ b/packages/flutter/lib/src/widgets/framework.dart
@@ -3102,7 +3102,7 @@
         throw new FlutterError(
           'Cannot get size without a render object.\n'
           'In order for an element to have a valid size, the element must have '
-          'an assoicated render object. This element does not have an associated '
+          'an associated render object. This element does not have an associated '
           'render object, which typically means that the size getter was called '
           'too early in the pipeline (e.g., during the build phase) before the '
           'framework has created the render tree.\n'
diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart
index 0354bfe..a0f8844 100644
--- a/packages/flutter/lib/src/widgets/navigator.dart
+++ b/packages/flutter/lib/src/widgets/navigator.dart
@@ -433,7 +433,7 @@
 ///
 /// There are also widgets which create popup routes, like [PopupMenuButton] and
 /// [DropdownButton]. These widgets create internal subclasses of PopupRoute
-/// and use the Naviagator's push and pop methods to show and dismiss them.
+/// and use the Navigator's push and pop methods to show and dismiss them.
 ///
 /// ### Custom routes
 ///
diff --git a/packages/flutter/lib/src/widgets/orientation_builder.dart b/packages/flutter/lib/src/widgets/orientation_builder.dart
index a0688ce..1e07d00 100644
--- a/packages/flutter/lib/src/widgets/orientation_builder.dart
+++ b/packages/flutter/lib/src/widgets/orientation_builder.dart
@@ -45,7 +45,7 @@
   Widget _buildWithConstraints(BuildContext context, BoxConstraints constraints) {
     // If the constraints are fully unbounded (i.e., maxWidth and maxHeight are
     // both infinite), we prefer Orientation.portrait because its more common to
-    // scroll vertially than horizontally.
+    // scroll vertically then horizontally.
     final Orientation orientation = constraints.maxWidth > constraints.maxHeight ? Orientation.landscape : Orientation.portrait;
     return builder(context, orientation);
   }
diff --git a/packages/flutter/lib/src/widgets/scroll_simulation.dart b/packages/flutter/lib/src/widgets/scroll_simulation.dart
index f4b7ccb..e418b01 100644
--- a/packages/flutter/lib/src/widgets/scroll_simulation.dart
+++ b/packages/flutter/lib/src/widgets/scroll_simulation.dart
@@ -191,7 +191,7 @@
   //
   // Algebra courtesy of Wolfram Alpha.
   //
-  // f(x) = scrollOffset, x is time in millseconds
+  // f(x) = scrollOffset, x is time in milliseconds
   // f(x) = 3.60882×10^-6 x^3 - 0.00668009 x^2 + 4.29427 x - 3.15307
   // f(x) = 3.60882×10^-6 x^3 - 0.00668009 x^2 + 4.29427 x, so f(0) is 0
   // f(686ms) = 961 pixels
diff --git a/packages/flutter/test/cupertino/nav_bar_test.dart b/packages/flutter/test/cupertino/nav_bar_test.dart
index ece86e5..2ef502c 100644
--- a/packages/flutter/test/cupertino/nav_bar_test.dart
+++ b/packages/flutter/test/cupertino/nav_bar_test.dart
@@ -247,7 +247,7 @@
     });
 
     expect(opacities, <double> [
-        1.0, // Smaller font title now visiblee
+        1.0, // Smaller font title now visible
         0.0, // Larger font title invisible.
     ]);
 
@@ -260,7 +260,7 @@
     expect(tester.getSize(find.widgetWithText(OverflowBox, 'Title')).height, 0.0);
   });
 
-  testWidgets('Small title can be overriden', (WidgetTester tester) async {
+  testWidgets('Small title can be overridden', (WidgetTester tester) async {
     final ScrollController scrollController = new ScrollController();
     await tester.pumpWidget(
       new WidgetsApp(
diff --git a/packages/flutter/test/gestures/team_test.dart b/packages/flutter/test/gestures/team_test.dart
index 5fd7625..3916976 100644
--- a/packages/flutter/test/gestures/team_test.dart
+++ b/packages/flutter/test/gestures/team_test.dart
@@ -23,7 +23,7 @@
 
     final List<String> log = <String>[];
 
-    horizontalDrag.onStart = (DragStartDetails details) { log.add('hoizontal-drag-start'); };
+    horizontalDrag.onStart = (DragStartDetails details) { log.add('horizontal-drag-start'); };
     verticalDrag.onStart = (DragStartDetails details) { log.add('vertical-drag-start'); };
     tap.onTap = () { log.add('tap'); };
 
diff --git a/packages/flutter/test/material/dropdown_test.dart b/packages/flutter/test/material/dropdown_test.dart
index a0eebe3..966da83 100644
--- a/packages/flutter/test/material/dropdown_test.dart
+++ b/packages/flutter/test/material/dropdown_test.dart
@@ -450,7 +450,7 @@
 
   testWidgets('Dropdown menus must fit within the screen', (WidgetTester tester) async {
 
-    // The dropdown menu isn't readaily accessible. To find it we're assuming that it
+    // The dropdown menu isn't readily accessible. To find it we're assuming that it
     // contains a ListView and that it's an instance of _DropdownMenu.
     Rect getMenuRect() {
       Rect menuRect;
diff --git a/packages/flutter/test/material/mergeable_material_test.dart b/packages/flutter/test/material/mergeable_material_test.dart
index 5449008..74a5a4f 100644
--- a/packages/flutter/test/material/mergeable_material_test.dart
+++ b/packages/flutter/test/material/mergeable_material_test.dart
@@ -381,7 +381,7 @@
     matches(getBorderRadius(tester, 1), RadiusType.Round, RadiusType.Round);
   });
 
-  testWidgets('MergeableMaterial separate merge seaparate', (WidgetTester tester) async {
+  testWidgets('MergeableMaterial separate merge separate', (WidgetTester tester) async {
     await tester.pumpWidget(
       new MaterialApp(
         home: new Scaffold(
diff --git a/packages/flutter/test/material/text_field_splash_test.dart b/packages/flutter/test/material/text_field_splash_test.dart
index d0cb287..b3896af 100644
--- a/packages/flutter/test/material/text_field_splash_test.dart
+++ b/packages/flutter/test/material/text_field_splash_test.dart
@@ -179,8 +179,8 @@
     final TestGesture gesture1 = await tester.startGesture(tester.getCenter(find.text('label1')));
 
     // Splashes start on tapDown.
-    // If the timeout is less than kPressTimout the recognizer will just trigger
-    // the onTapCancel callback. If the timeout is greater or equal to kPressTimout
+    // If the timeout is less than kPressTimeout the recognizer will just trigger
+    // the onTapCancel callback. If the timeout is greater or equal to kPressTimeout
     // and less than kLongPressTimeout then onTapDown, onCancel will be called.
     await tester.pump(kPressTimeout);
 
diff --git a/packages/flutter/test/painting/decoration_test.dart b/packages/flutter/test/painting/decoration_test.dart
index 4ad6b91..6661fe1 100644
--- a/packages/flutter/test/painting/decoration_test.dart
+++ b/packages/flutter/test/painting/decoration_test.dart
@@ -182,11 +182,11 @@
         expect(onChangedCalled, isTrue);
         boxPainter.paint(canvas, Offset.zero, imageConfiguration);
 
-        // We expect a clip to preceed the drawImageRect call.
+        // We expect a clip to precede the drawImageRect call.
         final List<Invocation> commands = canvas.invocations.where((Invocation invocation) {
           return invocation.memberName == #clipPath || invocation.memberName == #drawImageRect;
         }).toList();
-        if (expectClip) { // We expect a clip to preceed the drawImageRect call.
+        if (expectClip) { // We expect a clip to precede the drawImageRect call.
           expect(commands.length, 2);
           expect(commands[0].memberName, equals(#clipPath));
           expect(commands[1].memberName, equals(#drawImageRect));
diff --git a/packages/flutter/test/rendering/stack_test.dart b/packages/flutter/test/rendering/stack_test.dart
index 4ce2e61..2e73e44 100644
--- a/packages/flutter/test/rendering/stack_test.dart
+++ b/packages/flutter/test/rendering/stack_test.dart
@@ -67,15 +67,15 @@
           children: <RenderBox>[child1, child2, child3],
       );
 
-      final List<RenderObject> vistedChildren = <RenderObject>[];
+      final List<RenderObject> visitedChildren = <RenderObject>[];
       final RenderObjectVisitor visitor = (RenderObject child) {
-        vistedChildren.add(child);
+        visitedChildren.add(child);
       };
 
       stack.visitChildrenForSemantics(visitor);
 
-      expect(vistedChildren, hasLength(1));
-      expect(vistedChildren.first, child2);
+      expect(visitedChildren, hasLength(1));
+      expect(visitedChildren.first, child2);
     });
 
   });
diff --git a/packages/flutter/test/widgets/dismissible_test.dart b/packages/flutter/test/widgets/dismissible_test.dart
index d9deb15..b8e2f97 100644
--- a/packages/flutter/test/widgets/dismissible_test.dart
+++ b/packages/flutter/test/widgets/dismissible_test.dart
@@ -123,7 +123,7 @@
 Future<Null> flingElementFromZero(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }) async {
   // This is a special case where we drag in one direction, then fling back so
   // that at the point of release, we're at exactly the point at which we
-  // started, but with velocity. This is needed to check a boundary coundition
+  // started, but with velocity. This is needed to check a boundary condition
   // in the flinging behavior.
   await flingElement(tester, finder, gestureDirection: gestureDirection, initialOffsetFactor: -1.0);
 }
diff --git a/packages/flutter/test/widgets/ensure_visible_test.dart b/packages/flutter/test/widgets/ensure_visible_test.dart
index bf2cf90..ee9e767 100644
--- a/packages/flutter/test/widgets/ensure_visible_test.dart
+++ b/packages/flutter/test/widgets/ensure_visible_test.dart
@@ -66,8 +66,8 @@
 
 void main() {
 
-  group('SingleChildScollView', () {
-    testWidgets('SingleChildScollView ensureVisible Axis.vertical', (WidgetTester tester) async {
+  group('SingleChildScrollView', () {
+    testWidgets('SingleChildScrollView ensureVisible Axis.vertical', (WidgetTester tester) async {
       BuildContext findContext(int i) => tester.element(findKey(i));
 
       await tester.pumpWidget(buildSingleChildScrollView(Axis.vertical));
@@ -94,7 +94,7 @@
       expect(tester.getTopLeft(findKey(3)).dy, equals(100.0));
     });
 
-    testWidgets('SingleChildScollView ensureVisible Axis.horizontal', (WidgetTester tester) async {
+    testWidgets('SingleChildScrollView ensureVisible Axis.horizontal', (WidgetTester tester) async {
       BuildContext findContext(int i) => tester.element(findKey(i));
 
       await tester.pumpWidget(buildSingleChildScrollView(Axis.horizontal));
@@ -121,7 +121,7 @@
       expect(tester.getTopLeft(findKey(3)).dx, equals(100.0));
     });
 
-    testWidgets('SingleChildScollView ensureVisible Axis.vertical reverse', (WidgetTester tester) async {
+    testWidgets('SingleChildScrollView ensureVisible Axis.vertical reverse', (WidgetTester tester) async {
       BuildContext findContext(int i) => tester.element(findKey(i));
 
       await tester.pumpWidget(buildSingleChildScrollView(Axis.vertical, reverse: true));
@@ -148,7 +148,7 @@
       expect(tester.getBottomRight(findKey(3)).dy, equals(500.0));
     });
 
-    testWidgets('SingleChildScollView ensureVisible Axis.horizontal reverse', (WidgetTester tester) async {
+    testWidgets('SingleChildScrollView ensureVisible Axis.horizontal reverse', (WidgetTester tester) async {
       BuildContext findContext(int i) => tester.element(findKey(i));
 
       await tester.pumpWidget(buildSingleChildScrollView(Axis.horizontal, reverse: true));
@@ -175,7 +175,7 @@
       expect(tester.getBottomRight(findKey(3)).dx, equals(700.0));
     });
 
-    testWidgets('SingleChildScollView ensureVisible rotated child', (WidgetTester tester) async {
+    testWidgets('SingleChildScrollView ensureVisible rotated child', (WidgetTester tester) async {
       BuildContext findContext(int i) => tester.element(findKey(i));
 
       await tester.pumpWidget(
diff --git a/packages/flutter/test/widgets/gesture_detector_test.dart b/packages/flutter/test/widgets/gesture_detector_test.dart
index a779bd9..e93d3d7 100644
--- a/packages/flutter/test/widgets/gesture_detector_test.dart
+++ b/packages/flutter/test/widgets/gesture_detector_test.dart
@@ -288,7 +288,7 @@
     // called; onTap should never be called.
     Future<Null> dragOut(Duration timeout) async {
       final TestGesture gesture = await tester.startGesture(const Offset(400.0, 50.0));
-      // If the timeout is less than kPressTimout the recognizer will just trigger
+      // If the timeout is less than kPressTimeout the recognizer will just trigger
       // the onTapCancel callback. If the timeout is greater than kLongPressTimeout
       // then onTapDown, onLongPress, and onCancel will be called.
       await tester.pump(timeout);
diff --git a/packages/flutter/test/widgets/heroes_test.dart b/packages/flutter/test/widgets/heroes_test.dart
index 52105e9..7bcbb32 100644
--- a/packages/flutter/test/widgets/heroes_test.dart
+++ b/packages/flutter/test/widgets/heroes_test.dart
@@ -677,7 +677,7 @@
     expect(midflightHeight, lessThan(finalHeight));
     expect(midflightHeight, greaterThan(100.0));
 
-    // Remove the destination hero midlfight
+    // Remove the destination hero midflight
     heroCardSetState(() {
       routeIncludesHero = false;
     });
diff --git a/packages/flutter/test/widgets/image_package_asset_test.dart b/packages/flutter/test/widgets/image_package_asset_test.dart
index 4383d2d..bd3f1e1 100644
--- a/packages/flutter/test/widgets/image_package_asset_test.dart
+++ b/packages/flutter/test/widgets/image_package_asset_test.dart
@@ -40,7 +40,7 @@
       package: 'test_package',
     );
     assert(imageWidget.image is ExactAssetImage);
-    final ExactAssetImage asssetImage = imageWidget.image;
-    expect(asssetImage.keyName, 'packages/test_package/assets/image.png');
+    final ExactAssetImage assetImage = imageWidget.image;
+    expect(assetImage.keyName, 'packages/test_package/assets/image.png');
   });
 }
diff --git a/packages/flutter/test/widgets/list_view_test.dart b/packages/flutter/test/widgets/list_view_test.dart
index 4562d5b..3836199 100644
--- a/packages/flutter/test/widgets/list_view_test.dart
+++ b/packages/flutter/test/widgets/list_view_test.dart
@@ -221,7 +221,7 @@
     expect(find.text('19'), findsOneWidget);
   });
 
-  testWidgets('didFinishLayout has correct indicies', (WidgetTester tester) async {
+  testWidgets('didFinishLayout has correct indices', (WidgetTester tester) async {
     final TestSliverChildListDelegate delegate = new TestSliverChildListDelegate(
       new List<Widget>.generate(20, (int i) {
         return new Container(
diff --git a/packages/flutter/test/widgets/list_view_viewporting_test.dart b/packages/flutter/test/widgets/list_view_viewporting_test.dart
index c76cf73..99498f1 100644
--- a/packages/flutter/test/widgets/list_view_viewporting_test.dart
+++ b/packages/flutter/test/widgets/list_view_viewporting_test.dart
@@ -235,8 +235,8 @@
     );
 
     DecoratedBox widget = tester.firstWidget(find.byType(DecoratedBox));
-    BoxDecoration decoraton = widget.decoration;
-    expect(decoraton.color, equals(Colors.blue[500]));
+    BoxDecoration decoration = widget.decoration;
+    expect(decoration.color, equals(Colors.blue[500]));
 
     setState(() {
       themeData = new ThemeData(primarySwatch: Colors.green);
@@ -245,8 +245,8 @@
     await tester.pump();
 
     widget = tester.firstWidget(find.byType(DecoratedBox));
-    decoraton = widget.decoration;
-    expect(decoraton.color, equals(Colors.green[500]));
+    decoration = widget.decoration;
+    expect(decoration.color, equals(Colors.green[500]));
   });
 
   testWidgets('ListView padding', (WidgetTester tester) async {
diff --git a/packages/flutter_driver/lib/src/driver/driver.dart b/packages/flutter_driver/lib/src/driver/driver.dart
index 88b5db2..f221752 100644
--- a/packages/flutter_driver/lib/src/driver/driver.dart
+++ b/packages/flutter_driver/lib/src/driver/driver.dart
@@ -158,7 +158,7 @@
       );
     }
 
-    // Connect to Dart VM servcies
+    // Connect to Dart VM services
     _log.info('Connecting to Flutter application at $dartVmServiceUrl');
     final VMServiceClientConnection connection = await vmServiceConnectFunction(dartVmServiceUrl);
     final VMServiceClient client = connection.client;
diff --git a/packages/flutter_localizations/lib/src/l10n/README.md b/packages/flutter_localizations/lib/src/l10n/README.md
index 69f61bc..e249072 100644
--- a/packages/flutter_localizations/lib/src/l10n/README.md
+++ b/packages/flutter_localizations/lib/src/l10n/README.md
@@ -31,7 +31,7 @@
 suffix. For example `material_en_GB.arb` contains additional English
 translations that are specific to Great Britain.
 
-There is one language-specifc .arb file for each supported locale. If
+There is one language-specific .arb file for each supported locale. If
 an additional file with a regional suffix is present, the regional
 localizations are automatically merged with the language-specific ones.
 
@@ -187,7 +187,7 @@
 ### See Also
 
 The [Internationalizing Flutter Apps](https://flutter.io/tutorials/internationalization/)
-tutorial describes how to use the internationlization APIs in an
+tutorial describes how to use the internationalization APIs in an
 ordinary Flutter app.
 
 [Application Resource Bundle](https://code.google.com/p/arb/wiki/ApplicationResourceBundleSpecification)
diff --git a/packages/flutter_localizations/test/date_picker_test.dart b/packages/flutter_localizations/test/date_picker_test.dart
index be22aff..81ab1f0 100644
--- a/packages/flutter_localizations/test/date_picker_test.dart
+++ b/packages/flutter_localizations/test/date_picker_test.dart
@@ -178,7 +178,7 @@
     await tester.tap(find.text('CANCEL'));
   });
 
-  testWidgets('textDirection parameter takes precendence over locale parameter', (WidgetTester tester) async {
+  testWidgets('textDirection parameter takes precedence over locale parameter', (WidgetTester tester) async {
     await tester.pumpWidget(new MaterialApp(
       locale: const Locale('en', 'US'),
       supportedLocales: const <Locale>[
diff --git a/packages/flutter_localizations/test/widgets_test.dart b/packages/flutter_localizations/test/widgets_test.dart
index 53e2e17..597341f 100644
--- a/packages/flutter_localizations/test/widgets_test.dart
+++ b/packages/flutter_localizations/test/widgets_test.dart
@@ -302,7 +302,7 @@
       )
     );
 
-    // All localizations were loaded synchonously
+    // All localizations were loaded synchronously
     expect(find.text('A: en_US'), findsOneWidget);
     expect(find.text('B: en_US'), findsOneWidget);
   });
@@ -337,7 +337,7 @@
     expect(find.text('B: en_US'), findsOneWidget);
   });
 
-  testWidgets('Muliple Localizations', (WidgetTester tester) async {
+  testWidgets('Multiple Localizations', (WidgetTester tester) async {
     await tester.pumpWidget(
       buildFrame(
         delegates: <LocalizationsDelegate<dynamic>>[
diff --git a/packages/flutter_tools/bin/xcode_backend.sh b/packages/flutter_tools/bin/xcode_backend.sh
index 2d0ae18..2dae766 100755
--- a/packages/flutter_tools/bin/xcode_backend.sh
+++ b/packages/flutter_tools/bin/xcode_backend.sh
@@ -244,7 +244,7 @@
 # TODO(cbracken) improve error handling, then enable set -e
 
 if [[ $# == 0 ]]; then
-  # Backwards-comptibility: if no args are provided, build.
+  # Backwards-compatibility: if no args are provided, build.
   BuildApp
 else
   case $1 in
diff --git a/packages/flutter_tools/ide_templates/intellij/.idea/runConfigurations/plaform_view.xml.copy.tmpl b/packages/flutter_tools/ide_templates/intellij/.idea/runConfigurations/plaform_view.xml.copy.tmpl
index bfe7a7d..e91126c 100644
--- a/packages/flutter_tools/ide_templates/intellij/.idea/runConfigurations/plaform_view.xml.copy.tmpl
+++ b/packages/flutter_tools/ide_templates/intellij/.idea/runConfigurations/plaform_view.xml.copy.tmpl
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="plaform_view" type="FlutterRunConfigurationType" factoryName="Flutter">
+  <configuration default="false" name="platform_view" type="FlutterRunConfigurationType" factoryName="Flutter">
     <option name="filePath" value="$PROJECT_DIR$/examples/platform_view/lib/main.dart" />
     <method />
   </configuration>
diff --git a/packages/flutter_tools/lib/src/commands/config.dart b/packages/flutter_tools/lib/src/commands/config.dart
index 8c6d6c4..decbb8c 100644
--- a/packages/flutter_tools/lib/src/commands/config.dart
+++ b/packages/flutter_tools/lib/src/commands/config.dart
@@ -25,7 +25,7 @@
     argParser.addFlag('machine',
       negatable: false,
       hide: !verboseHelp,
-      help: 'Pring config values as json.');
+      help: 'Print config values as json.');
   }
 
   @override
diff --git a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
index 0cb5807..2b1811d 100644
--- a/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
+++ b/packages/flutter_tools/lib/src/commands/fuchsia_reload.dart
@@ -50,7 +50,7 @@
       help: 'On-device name of the application binary.');
     argParser.addOption('isolate-number',
       abbr: 'i',
-      help: 'To reload only one instance, speficy the isolate number, e.g. '
+      help: 'To reload only one instance, specify the isolate number, e.g. '
             'the number in foo\$main-###### given by --list.');
     argParser.addOption('target',
       abbr: 't',
diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart
index 5e7b3bc..f6586b2 100644
--- a/packages/flutter_tools/lib/src/commands/test.dart
+++ b/packages/flutter_tools/lib/src/commands/test.dart
@@ -51,7 +51,7 @@
     argParser.addFlag('merge-coverage',
       defaultsTo: false,
       negatable: false,
-      help: 'Whether to merge converage data with "coverage/lcov.base.info".\n'
+      help: 'Whether to merge coverage data with "coverage/lcov.base.info".\n'
             'Implies collecting coverage data. (Requires lcov)'
     );
     argParser.addFlag('ipv6',
diff --git a/packages/flutter_tools/test/dart/pub_get_test.dart b/packages/flutter_tools/test/dart/pub_get_test.dart
index 0e6b90a..2dcbe6d 100644
--- a/packages/flutter_tools/test/dart/pub_get_test.dart
+++ b/packages/flutter_tools/test/dart/pub_get_test.dart
@@ -31,7 +31,7 @@
     final MockProcessManager processMock = context.getVariable(ProcessManager);
 
     new FakeAsync().run((FakeAsync time) {
-      expect(processMock.lastPubEnvironmment, isNull);
+      expect(processMock.lastPubEnvironment, isNull);
       expect(testLogger.statusText, '');
       pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) {
         error = 'test completed unexpectedly';
@@ -43,7 +43,7 @@
         'Running "flutter packages get" in /...\n'
         'pub get failed (69) -- attempting retry 1 in 1 second...\n'
       );
-      expect(processMock.lastPubEnvironmment, contains('flutter_cli:flutter_tests'));
+      expect(processMock.lastPubEnvironment, contains('flutter_cli:flutter_tests'));
       expect(processMock.lastPubCache, isNull);
       time.elapse(const Duration(milliseconds: 500));
       expect(testLogger.statusText,
@@ -101,7 +101,7 @@
 
     new FakeAsync().run((FakeAsync time) {
       MockDirectory.findCache = true;
-      expect(processMock.lastPubEnvironmment, isNull);
+      expect(processMock.lastPubEnvironment, isNull);
       expect(processMock.lastPubCache, isNull);
       pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) {
         error = 'test completed unexpectedly';
@@ -127,7 +127,7 @@
 
     new FakeAsync().run((FakeAsync time) {
       MockDirectory.findCache = true;
-      expect(processMock.lastPubEnvironmment, isNull);
+      expect(processMock.lastPubEnvironment, isNull);
       expect(processMock.lastPubCache, isNull);
       pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) {
         error = 'test completed unexpectedly';
@@ -154,7 +154,7 @@
 
   final int fakeExitCode;
 
-  String lastPubEnvironmment;
+  String lastPubEnvironment;
   String lastPubCache;
 
   @override
@@ -166,7 +166,7 @@
     bool runInShell: false,
     ProcessStartMode mode: ProcessStartMode.NORMAL,
   }) {
-    lastPubEnvironmment = environment['PUB_ENVIRONMENT'];
+    lastPubEnvironment = environment['PUB_ENVIRONMENT'];
     lastPubCache = environment['PUB_CACHE'];
     return new Future<Process>.value(new MockProcess(fakeExitCode));
   }
diff --git a/packages/flutter_tools/test/devfs_test.dart b/packages/flutter_tools/test/devfs_test.dart
index a4b413e..6252f45 100644
--- a/packages/flutter_tools/test/devfs_test.dart
+++ b/packages/flutter_tools/test/devfs_test.dart
@@ -123,9 +123,9 @@
       FileSystem: () => fs,
     });
 
-    testUsingContext('add new file to local file system and preserve unusal file name casing', () async {
-      final String filePathWithUnusalCasing = fs.path.join('FooBar', 'TEST.txt');
-      final File file = fs.file(fs.path.join(basePath, filePathWithUnusalCasing));
+    testUsingContext('add new file to local file system and preserve unusual file name casing', () async {
+      final String filePathWithUnusualCasing = fs.path.join('FooBar', 'TEST.txt');
+      final File file = fs.file(fs.path.join(basePath, filePathWithUnusualCasing));
       await file.parent.create(recursive: true);
       file.writeAsBytesSync(<int>[1, 2, 3, 4, 5, 6, 7]);
       final int bytes = await devFS.update();
diff --git a/packages/flutter_tools/test/flutter_manifest_test.dart b/packages/flutter_tools/test/flutter_manifest_test.dart
index 56e7a99..af988e3 100644
--- a/packages/flutter_tools/test/flutter_manifest_test.dart
+++ b/packages/flutter_tools/test/flutter_manifest_test.dart
@@ -240,7 +240,7 @@
       expect(barFontAsset1.style, 'italic');
     });
 
-    testUsingContext('has only one of two font familes when one declaration is missing the "family" option', () async {
+    testUsingContext('has only one of two font families when one declaration is missing the "family" option', () async {
       const String manifest = '''
 name: test
 dependencies:
@@ -285,7 +285,7 @@
       expect(fooFontAsset1.style, 'italic');
     });
 
-    testUsingContext('has only one of two font familes when one declaration is missing the "fonts" option', () async {
+    testUsingContext('has only one of two font families when one declaration is missing the "fonts" option', () async {
       const String manifest = '''
 name: test
 dependencies: