Dart: Scalable Application Development

Master the art of designing web client and server with Google’s bold and productive language – Dart
Preview in Mapt

Dart: Scalable Application Development

Davy Mitchell, Sergey Akopkokhyants, Ivo Balbaert

Master the art of designing web client and server with Google’s bold and productive language – Dart
Mapt Subscription
FREE
$29.99/m after trial
eBook
$49.00
RRP $69.99
Save 29%
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$49.00
$29.99p/m after trial
RRP $69.99
Subscription
eBook
Start 30 Day Trial

Frequently bought together


Dart: Scalable Application Development Book Cover
Dart: Scalable Application Development
$ 69.99
$ 49.00
Elixir: Scalable and Efficient Application Development Book Cover
Elixir: Scalable and Efficient Application Development
$ 124.99
$ 106.25
Buy 2 for $35.00
Save $159.98
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781787288027
Paperback873 pages

Book Description

Designed to create next generation apps, Google’s Dart offers a much more robust framework and also supersedes JavaScript in several aspects. Familiar yet innovative, compact yet scalable, it blows away the accumulated JavaScript legacy limitations. Dart was designed for great tool-ability and developer productivity, allowing you to create better application faster than before. Google chose it for their billion dollar advertising business and you have its power for your projects too.
The first module will introduce you the Dart language starting from its conception to its current form, and where it headed is through engaging substantial practical projects. You will be taken through building typical applications and exploring the exciting new technologies of HTML5.

The second module will show you how to add internalization support to your web applications and how i18n and i10n access can be embedded into your code to design applications that can be localized easily. You will be shown how to organize client-to-server communication and how different HTML5 features can be used in Dart. Finally, this module will show you how you can store data locally, break the storage limit, and prevent security issues in your web application.

The third module is a pragmatic guide that will increase your expertise in writing all kinds of applications, including web apps, scripts, and server-side apps. It provides rich insights on how to extend your Dart programming skills.

Altogether, this course provides you the power to create powerful applications with Dart, without worrying about your knowledge leading to you having to make compromises to the end product!

This Learning Path has been curated from three Packt products:

Table of Contents

Chapter 1: Starting the Text Editor
Defining Dart
History of Web scripting
The origins of Dart
Downloading the tools
Building your first application
Debugging a Dart application
Summary
Chapter 2: Advancing the Editor
The next steps for the text editor
Building the dialog package
The command-line app for source code statistics
Building web interfaces with Dart
Compiling to JavaScript
Summary
Chapter 3: Slideshow Presentations
Building a presentation application
Accessing private fields
Mixin' it up
Changing the colors
Adding a date
Timing the presentation
An overview of slides
Handout notes
Summary
Chapter 4: Language, Motion, and Sound
Going fullscreen
Adding metadata
Exploring the intl package
Working with dates
Animating slides
Playing sound in the browser
Summary
Chapter 5: A Blog Server
The Hello World server example
A blog server
Introducing Dart's server frameworks
Deployment
Load testing
Summary
Chapter 6: Blog Server Advanced
Logging
A blog editor
Caching
Watching the filesystem
XML feed generation
The JSON feed generation
Static generation
Introducing the await and async keywords
Load testing revisited
Summary
Chapter 7: Live Data Collection
Kicking off the earthquake monitoring system
Introducing the data source
Exploring the GeoJSON format
Logging
Saving to the database
Introducing the pgAdmin GUI
Observing the Dart VM internals
Unit testing
Summary
Chapter 8: Live Data and a Web Service
Freeing the data
Creating the web service
Recapping the system so far
Consuming application
Summary
Chapter 9: A Real-Time Visualization
Iteration overview
Application overview
Notifying the user of an update
Plotting the user's location
Sorting the feature list
Documenting Dart code with dartdoc
Summary
Chapter 10: Reports and an API
Recapping the earthquake system
Advancing the REST API
Passing parameters to the API
Posting on the API
Summary
Chapter 11: Beyond Dart's Basics
Modularity and a namespace
Functions and closures in different scopes
Classes and mixins
Methods and operators
Summary
Chapter 12: Advanced Techniques and Reflection
Generics
Errors versus exceptions
Annotations
Reflection
Summary
Chapter 13: Object Creation
Creating an object
Summary
Chapter 14: Asynchronous Programming
Call-stack architectures versus event-driven architectures
Future
Zones
Isolates
Summary
Chapter 15: The Stream Framework
Why you should use streams
Single-subscription streams versus broadcast streams
An overview of the stream framework API
Summary
Chapter 16: The Collection Framework
A Dart collection framework
Ordering of elements
Collections and generics
The collection class hierarchy
The Iterable interface
The Iterable interface
BidirectionalIterator
The collection classes
Unmodifiable collections
Choosing the right collection
Summary
Chapter 17: Dart and JavaScript Interoperation
Interoperation at a glance
The dart:js library
Type conversion
JsObject and instantiation
JsFunction and the this keyword
Dart with jQuery
Summary
Chapter 18: Internalization and Localization
The key principles
The Intl library
Internationalizing your web application
Extracting messages
Using Google Translator Toolkit
Using translated messages
Summary
Chapter 19: Client-to-server Communication
Communication at a glance
Hypertext Transfer Protocol
AJAX polling request
AJAX long polling request
WebSocket
Summary
Chapter 20: Advanced Storage
Cookies
Web Storage
Web SQL
IndexedDB
Summary
Chapter 21: Supporting Other HTML5 Features
The notification APIs
The native drag-and-drop APIs
The geolocation APIs
Canvas
Summary
Chapter 22: Security Aspects
Web security
Securing a server
Securing a client
Security best practices
Summary
Chapter 23: Working with Dart Tools
Introduction
Configuring the Dart environment
Setting up the checked and production modes
Rapid Dart Editor troubleshooting
Hosting your own private pub mirror
Using Sublime Text 2 as an IDE
Compiling your app to JavaScript
Debugging your app in JavaScript for Chrome
Using the command-line tools
Solving problems when pub get fails
Shrinking the size of your app
Making a system call
Using snapshotting
Getting information from the operating system
Chapter 24: Structuring, Testing, and Deploying an Application
Introduction
Exiting from an app
Parsing command-line arguments
Structuring an application
Using a library from within your app
Microtesting your code with assert
Unit testing a Polymer web app
Adding logging to your app
Documenting your app
Profiling and benchmarking your app
Publishing and deploying your app
Using different settings in the checked and production modes
Chapter 25: Working with Data Types
Introduction
Concatenating strings
Using regular expressions
Strings and Unicode
Using complex numbers
Creating an enum
Flattening a list
Generating a random number within a range
Getting a random element from a list
Working with dates and times
Improving performance in numerical computations
Using SIMD for enhanced performance
Chapter 26: Object Orientation
Introduction
Testing and converting types
Comparing two objects
Using a factory constructor
Building a singleton
Using reflection
Using mixins
Using annotations
Using the call method
Using noSuchMethod
Making toJSON and fromJSON methods in your class
Creating common classes for client and server apps
Chapter 27: Handling Web Applications
Introduction
Responsive design
Sanitizing HTML
Using a browser's local storage
Using application cache to work offline
Preventing an onSubmit event from reloading the page
Dynamically inserting rows in an HTML table
Using CORS headers
Using keyboard events
Enabling drag-and-drop
Enabling touch events
Creating a Chrome app
Structuring a game project
Using WebGL in your app
Authorizing OAuth2 to Google services
Talking with JavaScript
Using JavaScript libraries
Chapter 28: Working with Files and Streams
Introduction
Reading and processing a file line by line
Writing to a file
Searching in a file
Concatenating files
Downloading a file
Working with blobs
Transforming streams
Chapter 29: Working with Web Servers
Introduction
Creating a web server
Posting JSON-formatted data
Receiving data on the web server
Serving files with http_server
Using sockets
Using WebSockets
Using secure sockets and servers
Using a JSON web service
Chapter 30: Working with Futures, Tasks, and Isolates
Introduction
Writing a game loop
Error handling with Futures
Scheduling tasks using Futures
Running a recurring function
Using isolates in the Dart VM
Using isolates in web apps
Using multiple cores with isolates
Using the Worker Task framework
Chapter 31: Working with Databases
Introduction
Storing data locally with IndexedDB
Using Lawndart to write offline web apps
Storing data in MySQL
Storing data in PostgreSQL
Storing data in Oracle
Storing data in MongoDB
Storing data in RethinkDB
Chapter 32: Polymer Dart Recipes
Introduction
Data binding with polymer.dart
Binding and repeating over a list
Binding to a map
Using custom attributes and template conditionals
Binding to an input text field or a text area
Binding to a checkbox
Binding to radio buttons
Binding to a selected field
Event handling
Polymer elements with JavaScript interop
Extending DOM elements
Working with custom elements
Automatic node finding
Internationalizing a Polymer app
Chapter 33: Working with Angular Dart
Introduction
Setting up an Angular app
Using a controller
Using a component
Using formatters as filters
Creating a view
Using a service
Deploying your app

What You Will Learn

  • Handle form data and encryption
  • Set up your Dart environment to achieve the highest productivity
  • Run and debug the Dart server and web applications and compile them in JavaScript
  • Work with PostgreSQL—an industry standard relational database system
  • Create robust applications with unit tests, documentation, and diagnostic logging
  • Develop command-line applications, and explore the key data structures and libraries
  • Detect and use HTML5 features that will help you deliver rich, cross-platform content
  • Demonstrate the power of Polymer web components for binding data and structuring your web pages

Authors

Table of Contents

Chapter 1: Starting the Text Editor
Defining Dart
History of Web scripting
The origins of Dart
Downloading the tools
Building your first application
Debugging a Dart application
Summary
Chapter 2: Advancing the Editor
The next steps for the text editor
Building the dialog package
The command-line app for source code statistics
Building web interfaces with Dart
Compiling to JavaScript
Summary
Chapter 3: Slideshow Presentations
Building a presentation application
Accessing private fields
Mixin' it up
Changing the colors
Adding a date
Timing the presentation
An overview of slides
Handout notes
Summary
Chapter 4: Language, Motion, and Sound
Going fullscreen
Adding metadata
Exploring the intl package
Working with dates
Animating slides
Playing sound in the browser
Summary
Chapter 5: A Blog Server
The Hello World server example
A blog server
Introducing Dart's server frameworks
Deployment
Load testing
Summary
Chapter 6: Blog Server Advanced
Logging
A blog editor
Caching
Watching the filesystem
XML feed generation
The JSON feed generation
Static generation
Introducing the await and async keywords
Load testing revisited
Summary
Chapter 7: Live Data Collection
Kicking off the earthquake monitoring system
Introducing the data source
Exploring the GeoJSON format
Logging
Saving to the database
Introducing the pgAdmin GUI
Observing the Dart VM internals
Unit testing
Summary
Chapter 8: Live Data and a Web Service
Freeing the data
Creating the web service
Recapping the system so far
Consuming application
Summary
Chapter 9: A Real-Time Visualization
Iteration overview
Application overview
Notifying the user of an update
Plotting the user's location
Sorting the feature list
Documenting Dart code with dartdoc
Summary
Chapter 10: Reports and an API
Recapping the earthquake system
Advancing the REST API
Passing parameters to the API
Posting on the API
Summary
Chapter 11: Beyond Dart's Basics
Modularity and a namespace
Functions and closures in different scopes
Classes and mixins
Methods and operators
Summary
Chapter 12: Advanced Techniques and Reflection
Generics
Errors versus exceptions
Annotations
Reflection
Summary
Chapter 13: Object Creation
Creating an object
Summary
Chapter 14: Asynchronous Programming
Call-stack architectures versus event-driven architectures
Future
Zones
Isolates
Summary
Chapter 15: The Stream Framework
Why you should use streams
Single-subscription streams versus broadcast streams
An overview of the stream framework API
Summary
Chapter 16: The Collection Framework
A Dart collection framework
Ordering of elements
Collections and generics
The collection class hierarchy
The Iterable interface
The Iterable interface
BidirectionalIterator
The collection classes
Unmodifiable collections
Choosing the right collection
Summary
Chapter 17: Dart and JavaScript Interoperation
Interoperation at a glance
The dart:js library
Type conversion
JsObject and instantiation
JsFunction and the this keyword
Dart with jQuery
Summary
Chapter 18: Internalization and Localization
The key principles
The Intl library
Internationalizing your web application
Extracting messages
Using Google Translator Toolkit
Using translated messages
Summary
Chapter 19: Client-to-server Communication
Communication at a glance
Hypertext Transfer Protocol
AJAX polling request
AJAX long polling request
WebSocket
Summary
Chapter 20: Advanced Storage
Cookies
Web Storage
Web SQL
IndexedDB
Summary
Chapter 21: Supporting Other HTML5 Features
The notification APIs
The native drag-and-drop APIs
The geolocation APIs
Canvas
Summary
Chapter 22: Security Aspects
Web security
Securing a server
Securing a client
Security best practices
Summary
Chapter 23: Working with Dart Tools
Introduction
Configuring the Dart environment
Setting up the checked and production modes
Rapid Dart Editor troubleshooting
Hosting your own private pub mirror
Using Sublime Text 2 as an IDE
Compiling your app to JavaScript
Debugging your app in JavaScript for Chrome
Using the command-line tools
Solving problems when pub get fails
Shrinking the size of your app
Making a system call
Using snapshotting
Getting information from the operating system
Chapter 24: Structuring, Testing, and Deploying an Application
Introduction
Exiting from an app
Parsing command-line arguments
Structuring an application
Using a library from within your app
Microtesting your code with assert
Unit testing a Polymer web app
Adding logging to your app
Documenting your app
Profiling and benchmarking your app
Publishing and deploying your app
Using different settings in the checked and production modes
Chapter 25: Working with Data Types
Introduction
Concatenating strings
Using regular expressions
Strings and Unicode
Using complex numbers
Creating an enum
Flattening a list
Generating a random number within a range
Getting a random element from a list
Working with dates and times
Improving performance in numerical computations
Using SIMD for enhanced performance
Chapter 26: Object Orientation
Introduction
Testing and converting types
Comparing two objects
Using a factory constructor
Building a singleton
Using reflection
Using mixins
Using annotations
Using the call method
Using noSuchMethod
Making toJSON and fromJSON methods in your class
Creating common classes for client and server apps
Chapter 27: Handling Web Applications
Introduction
Responsive design
Sanitizing HTML
Using a browser's local storage
Using application cache to work offline
Preventing an onSubmit event from reloading the page
Dynamically inserting rows in an HTML table
Using CORS headers
Using keyboard events
Enabling drag-and-drop
Enabling touch events
Creating a Chrome app
Structuring a game project
Using WebGL in your app
Authorizing OAuth2 to Google services
Talking with JavaScript
Using JavaScript libraries
Chapter 28: Working with Files and Streams
Introduction
Reading and processing a file line by line
Writing to a file
Searching in a file
Concatenating files
Downloading a file
Working with blobs
Transforming streams
Chapter 29: Working with Web Servers
Introduction
Creating a web server
Posting JSON-formatted data
Receiving data on the web server
Serving files with http_server
Using sockets
Using WebSockets
Using secure sockets and servers
Using a JSON web service
Chapter 30: Working with Futures, Tasks, and Isolates
Introduction
Writing a game loop
Error handling with Futures
Scheduling tasks using Futures
Running a recurring function
Using isolates in the Dart VM
Using isolates in web apps
Using multiple cores with isolates
Using the Worker Task framework
Chapter 31: Working with Databases
Introduction
Storing data locally with IndexedDB
Using Lawndart to write offline web apps
Storing data in MySQL
Storing data in PostgreSQL
Storing data in Oracle
Storing data in MongoDB
Storing data in RethinkDB
Chapter 32: Polymer Dart Recipes
Introduction
Data binding with polymer.dart
Binding and repeating over a list
Binding to a map
Using custom attributes and template conditionals
Binding to an input text field or a text area
Binding to a checkbox
Binding to radio buttons
Binding to a selected field
Event handling
Polymer elements with JavaScript interop
Extending DOM elements
Working with custom elements
Automatic node finding
Internationalizing a Polymer app
Chapter 33: Working with Angular Dart
Introduction
Setting up an Angular app
Using a controller
Using a component
Using formatters as filters
Creating a view
Using a service
Deploying your app

Book Details

ISBN 139781787288027
Paperback873 pages
Read More

Read More Reviews

Recommended for You

Elixir: Scalable and Efficient Application Development Book Cover
Elixir: Scalable and Efficient Application Development
$ 124.99
$ 106.25
Architecting Scalable Python Applications Book Cover
Architecting Scalable Python Applications
$ 124.99
$ 106.25
Build scalable applications with Apache Kafka [Video] Book Cover
Build scalable applications with Apache Kafka [Video]
$ 124.99
$ 106.25
Zen Cart: E-commerce Application Development Book Cover
Zen Cart: E-commerce Application Development
$ 29.99
$ 21.00
Cross-platform Desktop Application Development: Electron, Node, NW.js, and React Book Cover
Cross-platform Desktop Application Development: Electron, Node, NW.js, and React
$ 35.99
$ 25.20
Mobile Application Development: JavaScript Frameworks Book Cover
Mobile Application Development: JavaScript Frameworks
$ 59.99
$ 42.00