
Learn how Dart 2 introduces a stricter type system with required type declarations, how breaking changes affect code and packages, and how to migrate using source code and GitHub resources.
Learn to use the platform object to detect OS and version, implement OS-specific Dart code for Windows, Linux, iOS, Android, macOS, and Fuchsia, and inspect execution path and environment variables.
Learn to run another program as a separate process in Dart using process run, capture standard output and exit codes, and understand standard input, output, error, and platform differences.
Start a process, decode its standard output with a utf-8 decoder, print output as it arrives, send input with right line, and terminate while handling exit codes.
Explore timers and callbacks in Dart by creating a periodic timer that prints the time each second, invokes a callback, and cancels after a set number of calls.
Explore asynchronous programming with futures in Dart, including opening files, handling then, catch error, and finally, and understanding how futures run concurrently and manage results.
Learn how to handle futures in synchronous Dart using await to pause until a file operation completes. See how to return a future, write to file, and manage pending states.
Explore gzip compression in the Dart advanced course. Learn how original data becomes compressed and is decompressed, and why encoding is not encryption for internet transfers and file systems.
Compare two compression algorithms in a Dart demo by importing dart:io and dart:convert, encoding data, compressing and decompressing, and printing metrics to compare compression ratio and speed.
Learn to create and extract zip archives in Dart with the archive package, including installation, importing necessary modules, and building and decoding zip content.
Learn how to use Pointy Castle for hashing in Dart, compare symmetric and asymmetric ciphers, and distinguish encoding from encryption, while generating and encoding a sha-256 digest.
Derive a secure key from a password using pbkdf2-like parameters, explain the role of salt, set iteration counts and key length, and display results in base64.
Explore how cryptographically secure random numbers differ from ordinary randomness, and learn to generate verifiably cryptographically secure random bytes for key creation and secure passwords using salts and initialization vectors.
Demonstrate implementing a stream cipher using salsa20, creating a key and initialization vector, and encrypting then decrypting data to show symmetric encryption with a Hello, world example.
Advanced encryption standard demonstrates a symmetric block cipher with a 16-byte block size, right-side padding, and encryption and decryption using the same key, noting mode variations.
Explore socket programming with a simple Dart TCP server that binds to 127.0.0.1:3000, listens for connections, decodes incoming data, and prints the remote address, port, and message.
Create a TCP client that connects to the server, sends data quickly, and closes the socket, while the operating system handles the data push.
Learn to fetch web pages with the Dart HTTP package by performing get requests, inspecting response status, and printing the response body, including handling 200 and 404 codes.
Post data using the http protocol in dart by sending a name and a color in the request body, receiving a 200 response with headers and echoed data.
Explore UDP sockets in Dart by sending and receiving datagrams without a connection, binding to localhost, and handling raw datagrams with a server and client.
Quick notes about the tables used in these videos
Learn to use the siecle tjokkie package in a Dart command-line setup to configure a connection pool to localhost:3306, perform select star from teachers, and print the resulting row count.
Learn to prepare reusable queries in Dart, insert data with prepared statements, execute inserts asynchronously, and verify inserted records by retrieving new IDs.
Learn to access query results by index or by name in Dart, fetch a row from the pool, and print it to demonstrate seamless, flexible data retrieval.
Learn how to use database transactions to chain inserts, updates, and deletes across multiple tables, commit on success, or roll back on failure.
This is NOT a beginners course!
To take this course you should have at least an intermediate level understanding of the Dart programming language. When in doubt please complete the dart for beginners and dart intermediate courses I have on Udemy.
Learn how to work with advanced concepts and code in dart, from working with processes, compression, encryption, sockets and databases.