Read these articles for insight into Dart programming topics.

See also: Dart Tutorials

Everyday Dart

Dart Style Guide
Bob Nystrom, October 2011 (updated February 2015)
Follow these guidelines for consistent, readable Dart code.

Lasse Nielsen, February 2015
Choose good names to make your API easier to understand.

Guidelines for Doc Comments
Kathy Walrath, November 2012 (updated September 2014)
How we write doc comments for the Dart APIs.

Idiomatic Dart
Bob Nystrom, October 2011 (updated March 2013)
Learn how to write code that looks and feels like Dart.


The Event Loop and Dart
Kathy Walrath, September 2013 (updated October 2013)
Learn how Dart handles the event queue and microtask queue, so you can write better asynchronous code with fewer surprises.

Numeric Computation
John McCutchan, May 2013
How you store and use numbers can have a big impact on your app's performance. This article focuses on the Dart VM, with additional tips for apps that are compiled to JavaScript.

Benchmarking the Dart VM
John McCutchan, October 2012 (updated November 2012)
Learn how to benchmark your applications

Language Details

Dart Language Asynchrony Support: Phase 2
Gilad Bracha, March 2015
Async*, sync*, yield, and yield* are now available as part of Dart's asynchrony support.

Dart Language Asynchrony Support: Phase 1
Gilad Bracha, October 2014
Async and await, two language features that support asynchronous programming, are now available in Dart.

Emulating Functions in Dart
Gilad Bracha, January 2012 (updated February 2014)
Learn how to define Dart classes that behave like functions.

Mixins in Dart
Gilad Bracha, December 2012 (updated November 2013)
Mixins let you implement functionality once and use it in multiple classes.

Snapshots in Dart
Siva Annamalai, February 2013
Learn how snapshots can help your apps start up faster.

Optional Types in Dart
Gilad Bracha, October 2011 (updated September 2012)
One of the Dart programming language's most innovative features is the use of optional types. This document seeks to explain how optional types work.

Libraries and APIs

Converters and Codecs
Florian Loitsch, February 2014 (updated March 2015)
Learn how to write efficient conversions.

Serialization in Dart
Nicolas Garnier, February 2015
Choose the serialization strategy that's right for your project.

Embedding Dart in HTML
Sigmund Cherem, Vijay Menon, Seth Ladd, October 2011 (updated December 2014)
Find out how you can embed Dart into HTML pages.

Florian Loitsch, March 2014
Manage your asynchronous code: handle uncaught errors, override behavior (such as printing and scheduling tasks), and more.

Single-Subscription vs. Broadcast Streams
Florian Loitsch, January 2014
Choose the kind of stream that's best for your application: single-subscription or broadcast.

Using JavaScript from Dart
Shailen Tuli, November 2013
An introduction to Dart-JavaScript interoperatibility using the dart:js library.

Reflection in Dart with Mirrors: An Introduction
Gilad Bracha, November 2012 (updated November 2013)
Use the dart:mirrors library for introspection: discovering and using your program's structure.

Using SIMD in Dart
John McCutchan, August 2013
Get more out of your CPU: operate on four numbers in parallel, using the Float32x4 class from the dart:typed_data library.

Unit Testing with Dart
Graham Wheeler, June 2012 (updated July 2013)
Using Dart's unit test library for synchronous and asynchronous tests.

Futures and Error Handling
Shailen Tuli, March 2013 (updated May 2013)
Everything you wanted to know about handling errors and exceptions when working with Futures (but were afraid to ask).

Creating Streams in Dart
Lasse Nielsen, April 2013
A stream is a sequence of results; learn how to create your own.

Mocking with Dart
Graham Wheeler, July 2012 (updated March 2013)
Using Dart's unit test library for mocking and spying.

Improving the DOM
Bob Nystrom, October 2011 (updated March 2013)
Learn how Dart's HTML library improves the browser programming experience.

An Introduction to the dart:io Library
Mads Ager, March 2012 (updated February 2013)
An introduction to the Dart I/O library, which is aimed at server-side code that runs on the standalone Dart VM.

Using Dart with JSON Web Services
Chris Buckett, April 2012 (updated February 2013)
Learn how to consume JSON-based web services with Dart.

Writing Unit Tests for Pub Packages
Shailen Tuli, November 2012
Learn how to write unit tests for your pub packages using the unittest library

Native Extensions for the Standalone Dart VM
William Hesse, May 2012
Learn how to enable command-line Dart apps to call C/C++ functions.

Design Decisions

Why Dart Types Are Optional and Unsound
Eli Brandt, December 2011
A review of why Dart has optional static type annotations.

Why Not a Bytecode VM?
Florian Loitsch, November 2011
This article discusses the trade-offs VMs have to make, and explains why we think that a language VM makes more sense for Dart.