
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.
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.
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.
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.
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.