1.2. A look at the Dart language
1.2.2. Optional types in action
1.2.3. Traditional class-based structure
1.2.4. Implied interface definitions
1.2.5. Factory constructors to provide default implementations
1.3. Web programming with Dart
Chapter 2. “Hello World” with Dart tools
2.2. “Hello World” with the Dart Editor
2.2.1. Exploring the Dart Editor tools
2.2.2. The relationship between Dart and HTML files
2.2.3. Running “Hello World” with Dartium
2.2.4. Using dart2js to convert to JavaScript
2.3. Importing libraries to update the browser UI
2.3.1. Importing Dart libraries
Chapter 3. Building and testing your own Dart app
3.1. Building a UI with dart:html
3.1.2. Creating dart:html elements
3.1.3. Creating a new Element from HTML snippets
3.2. Building interactivity with browser events
3.2.1. Adding the PackList item from a button click
3.2.2. Event handling with Dart’s flexible function syntax
3.2.3. Responding to dart:html browser events
3.3. Wrapping structure and functionality with classes
3.3.1. Dart classes are familiar
3.3.2. Constructing the PackItem class
3.3.3. Wrapping functionality with property getters and setters
Chapter 4. Functional first-class functions and closures
4.2. Using first-class functions
Chapter 5. Understanding libraries and privacy
5.1. Defining and importing libraries in your code
5.2. Hiding functionality with library privacy
5.3. Organizing library source code
Chapter 6. Constructing classes and interfaces
6.1.1. Coding against a class’s interface
6.1.2. Formalizing interfaces with explicit interface definitions
6.2. Constructing classes and interfaces
6.2.1. Constructing class instances
6.2.2. Designing and using classes with multiple constructors
6.2.3. Using factory constructors to create instances of abstract classes
6.2.4. Reusing objects with factory constructors
6.2.5. Using static methods and properties with factory constructors
6.3. Creating constant classes with final, unchanging variables
6.3.1. Final values and properties
6.3.2. The constructor initialization block
6.3.3. Using the const keyword to create a const constructor
Chapter 7. Extending classes and interfaces
7.1. Extending classes with inheritance
7.1.2. Inheriting constructors
7.2.1. Testing the “is-an” relationship with Object
7.2.2. Using the “is-an” Object relationship
7.2.3. Using toString() functionality inherited from the base Object class
7.3. Introducing the dynamic type
Chapter 8. Collections of richer classes
8.1. Working with collections of data
8.1.2. Using the concrete implementations of the Collection interface
8.2. Building your own generic classes
8.2.1. Defining a generic class
8.2.2. Using your custom generic class
8.2.3. Restricting the types that can be used as placeholders
8.3.1. Overloading comparison operators
Chapter 9. Asynchronous programming with callbacks and futures
9.1. Why web apps should be asynchronous
9.2. Using callbacks with async programming
9.2.1. Adding async callbacks to Dart Lottery
9.2.2. Ensuring that all async callbacks are complete before continuing
9.3. Introducing the Future and Completer pair
9.3.1. Passing around future values
9.3.2. Ordering async calls by chaining futures
Chapter 10. Building a Dart web app
10.1. A single-page web app design
10.1.1. Introducing DartExpense
10.2. Building a UI with dart:html
10.2.1. Understanding the Element interface
10.2.2. Element constructors in action
10.3. Handling browser events with dart:html
Chapter 11. Navigating offline data
11.1. Integrating navigation with the browser
11.1.1. Using pushState() to add items to the browser history
11.2. Using browser cookies to enhance user experience
11.3. Persisting data offline with Web Storage
11.3.1. Converting Dart objects to JSON strings
Chapter 12. Communicating with other systems and languages
12.1. Communicating with JavaScript
12.1.1. Sending data from Dart to JavaScript
12.2. Communicating with external servers
12.3. Building installable, server-less browser apps
Chapter 13. Server interaction with files and HTTP
13.1. Running server-side Dart scripts
13.2. Serving browser HTTP requests
13.3. Serving clients with a RESTful API
13.3.1. Sending a directory list as JSON data
Chapter 14. Sending, syncing, and storing data
14.1. Serving DartExpense from the server
14.2. Using web sockets for two-way communication
14.2.1. Connecting web sockets on the client side
14.3. Storing data with HttpClient and CouchDB
14.3.1. A quick CouchDB primer
14.3.2. Sharing the Expense model class between client and server
Chapter 15. Concurrency with isolates
15.1. Using isolates as units of work
15.2. Loading code dynamically
Appendix A. Core language reference
A.1.1. Declaring variables with the var keyword or type name
A.1.2. Declaring final (read-only) variables
A.2.1. Longhand function syntax
A.3. Flow control and iterating
Appendix B. Defining classes and libraries
3.137.223.190