ebook img

Dart Cookbook PDF

346 Pages·2014·3.354 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Dart Cookbook

Dart Cookbook Over 110 incredibly effective, useful, and hands-on recipes to design Dart web client and server applications Ivo Balbaert BIRMINGHAM - MUMBAI Dart Cookbook Copyright © 2014 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: October 2014 Production reference: 1171014 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78398-962-1 www.packtpub.com Credits Author Project Coordinator Ivo Balbaert Kinjal Bari Reviewers Proofreaders Sergey Akopkokhyants Simran Bhogal Claudio d'Angelis Maria Gould Joris Hermans Ameesha Green Acquisition Editor Indexer Sam Wood Monica Ajmera Mehta Content Development Editor Production Coordinator Azharuddin Sheikh Alwin Roy Technical Editor Cover Work Anand Singh Alwin Roy Copy Editors Sarang Chari Adithi Shetty About the Author Ivo Balbaert is currently a lecturer in (Web) Programming and Databases at CVO Antwerpen (www.cvoantwerpen.be), a community college in Belgium. He received a PhD in Applied Physics from the University of Antwerp in 1986. He worked for 20 years in the software industry as a developer and consultant for several companies, and for 10 years as a project manager at the Antwerp University Hospital. In 2000, he switched to partly teaching and partly developing software (KHM Mechelen, CVO Antwerp). Ivo also wrote an introductory book in Dutch about developing in Ruby and Rails called Programmeren met Ruby en Rails, Van Duuren Media, 2009. In 2012, he authored a book on the Go programming language called The Way To Go, iUniverse. Last year, in collaboration with Dzenan Ridzanovic, he also wrote Learning Dart, Packt Publishing. I would like to thank my wife, Christiane, for her support and patience during the development of this book. About the Reviewers Sergey Akopkokhyants is a software architect with more than 20 years of professional experience in designing and developing client- and server-side applications. He is also a certified Java developer and project manager. He has general knowledge of many tools, languages, and platforms. For the last 5 years, he has been responsible for customizing and producing web-oriented applications for wholesale business management solutions projects; he has been doing this for several worldwide mobile communication companies. Sergey's responsibilities include architecture design and guidance of client software development using Flex, ActionScript, HTML, JavaScript, and client-server integration with Java. He is also the founder of and an active contributor to several open source projects on GitHub, including the Dart Web Toolkit (DWT) and Angular Dart UI. He is passionate about web design and development and likes sharing his expertise with others, helping them to increase their skills and productivity. Also, he was one of the reviewers of Learning Dart, Packt Publishing. Claudio d'Angelis is an Italian programmer with 10 years of experience in document digitization, web development, and Linux administration. As an early adopter of Dart, he continues to contribute to the community. His contributions include writing articles, open source projects, speaking at conferences, and presenting episodes on Google Developers Live. Joris Hermans is a web developer enthusiast who works for Truvo, an online directory company. He is also the proud owner of lots of Dart packages, a real-time dart framework named force, a search engine named Bounty Hunter, a persistent abstraction layer named cargo, a dependency injection for Dart called wired, and so on. He also likes to speak about the Web and Dart, so it is possible that you will meet him at a conference. www.PacktPub.com Support files, eBooks, discount offers, and more You might want to visit www.PacktPub.com for support files and downloads related to your book. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks. TM http://PacktLib.PacktPub.com Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books. Why Subscribe? f Fully searchable across every book published by Packt f Copy and paste, print and bookmark content f On demand and accessible via web browser Free Access for Packt account holders If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access. Table of Contents Preface 1 Chapter 1: Working with Dart Tools 7 Introduction 7 Configuring the Dart environment 8 Setting up the checked and production modes 9 Rapid Dart Editor troubleshooting 12 Hosting your own private pub mirror 14 Using Sublime Text 2 as an IDE 15 Compiling your app to JavaScript 17 Debugging your app in JavaScript for Chrome 19 Using the command-line tools 21 Solving problems when pub get fails 23 Shrinking the size of your app 24 Making a system call 25 Using snapshotting 26 Getting information from the operating system 27 Chapter 2: Structuring, Testing, and Deploying an Application 31 Introduction 32 Exiting from an app 32 Parsing command-line arguments 33 Structuring an application 35 Using a library from within your app 38 Microtesting your code with assert 40 Unit testing a Polymer web app 41 Adding logging to your app 44 Documenting your app 47 Profiling and benchmarking your app 49 Table of Contents Publishing and deploying your app 51 Using different settings in the checked and production modes 52 Chapter 3: Working with Data Types 55 Introduction 56 Concatenating strings 56 Using regular expressions 57 Strings and Unicode 59 Using complex numbers 60 Creating an enum 64 Flattening a list 67 Generating a random number within a range 68 Getting a random element from a list 69 Working with dates and times 70 Improving performance in numerical computations 73 Using SIMD for enhanced performance 76 Chapter 4: Object Orientation 81 Introduction 81 Testing and converting types 82 Comparing two objects 84 Using a factory constructor 86 Building a singleton 90 Using reflection 91 Using mixins 95 Using annotations 97 Using the call method 99 Using noSuchMethod 100 Making toJSON and fromJSON methods in your class 103 Creating common classes for client and server apps 106 Chapter 5: Handling Web Applications 109 Introduction 110 Responsive design 110 Sanitizing HTML 111 Using a browser's local storage 113 Using application cache to work offline 116 Preventing an onSubmit event from reloading the page 119 Dynamically inserting rows in an HTML table 120 Using CORS headers 124 Using keyboard events 125 Enabling drag-and-drop 127 ii Table of Contents Enabling touch events 132 Creating a Chrome app 135 Structuring a game project 140 Using WebGL in your app 142 Authorizing OAuth2 to Google services 146 Talking with JavaScript 150 Using JavaScript libraries 154 Chapter 6: Working with Files and Streams 157 Introduction 157 Reading and processing a file line by line 158 Writing to a file 162 Searching in a file 163 Concatenating files 166 Downloading a file 169 Working with blobs 172 Transforming streams 174 Chapter 7: Working with Web Servers 179 Introduction 179 Creating a web server 180 Posting JSON-formatted data 183 Receiving data on the web server 186 Serving files with http_server 191 Using sockets 193 Using WebSockets 196 Using secure sockets and servers 202 Using a JSON web service 205 Chapter 8: Working with Futures, Tasks, and Isolates 209 Introduction 209 Writing a game loop 210 Error handling with Futures 212 Scheduling tasks using Futures 217 Running a recurring function 219 Using isolates in the Dart VM 222 Using isolates in web apps 228 Using multiple cores with isolates 231 Using the Worker Task framework 233 Chapter 9: Working with Databases 237 Introduction 237 Storing data locally with IndexedDB 238 iii

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.