
Change is hard at first, messy in the middle, and gorgeous at the end.—Robin Sharma PHP Architect is going through change, and we hope you follow us for the adventure. The post Decrypting Cryptography appeared first on php[architect].

Learn how to use the Flutter TabBar widget to take the user through a sequence of pages, and disable user interaction on the tabs themselves. https://codewithandrea.com/articles/flutter-tab-bar-navigation/

Tutorial showing how to switch between Material and Cupertino widgets, and increase code reuse by building a platform-aware abstract base class with concrete sub-classes. Includes an overview of dialogs and their platform-specific differences. https://codewithandrea.com/videos/flutter-platform-aware-widgets-dialogs/

Controversial article with some history and a detailed comparison between Flutter and native iOS development. Includes an example showing how to build a contact list in Flutter and iOS. https://codewithandrea.com/articles/flutter-will-change-everything/

Clarifications and apologies following my previous article. https://codewithandrea.com/articles/flutter-on-ios-a-follow-up/

Detailed side-by-side comparison of language features between Dart 2.1 and Swift 4.2. https://codewithandrea.com/articles/dart-vs-swift-a-comparison/

Dart introduction showing how to write a simple program in Dartpad. Includes variable declaration and initialization, string interpolation, type inference, var, final and dynamic. https://codewithandrea.com/videos/intro-to-dart-part1-variables-types/

Dart introduction covering functions, including return types, optional parameters, nullability and default values, named parameters and the arrow operator. https://codewithandrea.com/videos/intro-to-dart-part2-functions/

Dart introduction covering classes, including class & super constructors, instance methods, inheritance, base Object classes and the toString() method, abstract classes and computed properties. https://codewithandrea.com/videos/intro-to-dart-part3-classes/

Dart introduction covering list, maps and generics with type annotations. https://codewithandrea.com/videos/intro-to-dart-part4-collections-generics/

Dart introduction covering if & else statements, the ternary operator, while and for loops, closures and the fold method, enumerations and switch statements. https://codewithandrea.com/videos/intro-to-dart-part5-control-flow/

Continuation on my video series on how to build a login flow with Firebase. It shows how to use StreamBuilder with the onAuthStateChanged stream to simplify authentication state logic in Flutter apps. https://codewithandrea.com/videos/flutter-firebase-auth-streams-streambuilder/

This article introduces a new architectural pattern that I often use in my Flutter Apps. It is inspired by BLoCs and RxVMS. https://codewithandrea.com/articles/wabs-practical-architecture-flutter-apps/

In this article we implement a simple authentication flow in Flutter, in less than 100 lines of code. https://codewithandrea.com/articles/simple-authentication-flow-with-flutter/

This article shows how to use scoped access with Provider when using service classes in our Flutter apps. https://codewithandrea.com/articles/global-access-vs-scoped-access/

Introducing my reference authentication demo with Flutter & Firebase on GitHub, supporting multiple authentication methods and best coding practices. https://codewithandrea.com/videos/flutter-firebase-reference-demo/

Let's see how use service classes to encapsulate 3rd party libraries and APIs, and decouple them from the rest of the application. We will use authentication as a concrete example of this. https://codewithandrea.com/articles/designing-an-authentication-service-api/

Code walkthrough for the authentication code in my Flutter & Firebase reference authentication demo on GitHub. https://codewithandrea.com/videos/flutter-firebase-auth-service-provider-valuenotifier/

A comparison of different state management techniques, using a simple authentication flow as an example. https://codewithandrea.com/videos/state-management-setstate-bloc-valuenotifier/

Overview and practical use cases of type inference, final & const, named & positional parameters, @required & default values. https://codewithandrea.com/videos/dart-features-part1-types-params/

Overview of the 'Dart as UI' features introduced in Dart 2.3. Uses a fitness tracker custom UI as an example. https://codewithandrea.com/videos/dart-features-part2-spreads-collectionif-collectionfor/

In-depth overview of Slivers and how to use them (part 1). Includes a demo app showing how to use SliverAppBar and SliverPersistentHeader. https://codewithandrea.com/videos/flutter-slivers-overview-sliverappbar-sliverpersistentheader/

In-depth overview of Slivers and how to use them (part 2). Includes a demo app showing how to use SliverList, SliverGrid, SliverToBoxAdapter, SliverFillRemaining. https://codewithandrea.com/videos/flutter-slivers-overview-sliverlist-slivergrid/

Overview of the tools I use in my Flutter app development workflow. Including Sketch, Supernova, VS Code, GitUp, GitHub, Firebase, Codemagic. https://codewithandrea.com/videos/design-develop-deliver/

Introduction to Provider, a popular package used for dependency injection and state management in Flutter. This tutorial shows how to use it to enable flavors in your Flutter apps. https://codewithandrea.com/videos/flutter-provider-introduction/

Essential guide to Provider for state management in Flutter. This tutorial shows how to refactor the counter app with Provider, and includes in-depth explanations about ChangeNotifier, ChangeNotifierProvider, Provider.of, Consumer and ValueNotifier. https://codewithandrea.com/videos/flutter-provider-essential-guide/

Multi-part tutorial on how to choose and upload an avatar image to Firestore. Part 1 is an overview of initial project setup, and shows how to connect things together with Provider. https://codewithandrea.com/videos/advanced-provider-tutorial-part1/

Let's see how to write integration tests with Flutter Driver, how they differ from widget tests, and how to run them with Codemagic. https://codewithandrea.com/articles/integration-tests-codemagic/

Multi-part tutorial on how to choose and upload an avatar image to Firestore. Part 2 shows how to use MultiProvider to create multiple services, and how to deal with stream dependencies. https://codewithandrea.com/videos/advanced-provider-tutorial-part2/

Multi-part tutorial on how to choose and upload an avatar image to Firestore. Part 3 shows more advanced use cases of Provider to reduce boilerplate code, deal with navigation, and minimise unwanted widget rebuilds. https://codewithandrea.com/videos/advanced-provider-tutorial-part3/

Dart extensions unlock a few interesting use cases in Flutter apps. This tutorial shows how to enable them, what they are, when to use them, and when not to. https://codewithandrea.com/videos/dart-extensions-full-introduction/

Evaluating Flutter from various criteria: Portability, Language Tooling and Features, Documentation, Performance, Testing, Community, Package Ecosystem, Maintainer Commitment and many more. https://codewithandrea.com/videos/whats-great-about-flutter/

How to make your ListViews feel native on iOS by adding top and bottom separators. https://codewithandrea.com/tips/list-view-separated-top-bottom/

How to remove some noise in your Dart code by using underscores for unused function arguments. https://codewithandrea.com/tips/using-underscores-builder-arguments/

How to implement Apple Sign In with Flutter & Firebase Authentication (from scratch), and give your iOS users a convenient way of signing into your app. https://codewithandrea.com/videos/apple-sign-in-flutter-firebase/

FocusScopeNode provides a simpler way of move the focus between text fields in your Flutter forms. https://codewithandrea.com/tips/easily-move-focus-scope-node/

This tutorial shows how to use Flutter custom painters to draw a happy face on screen with Dartpad, starting from scratch. Included: drawing custom shapes with Canvas and Paint, and layout considerations when using CustomPainter. https://codewithandrea.com/videos/flutter-custom-painting-do-not-fear-canvas/

A detailed overview of a production-ready architecture that I've fine-tuned over the last two years. You can use the included starter project as the foundation for your Flutter & Firebase apps. https://codewithandrea.com/videos/starter-architecture-flutter-firebase/

Take-home projects are a task often given to candidates during the interview process. This article shows a hypothetical assignment that I would give to candidates interviewing for a Flutter developer role. https://codewithandrea.com/videos/take-home-job-interview-flutter-firebase/

Master the basics of REST APIs and the Dart http package. Build a Coronavirus tracking application following best practices. https://codewithandrea.com/videos/flutter-rest-api-crash-course-launch/

First chapter of my course about building a Coronavirus Tracker App with the nCoV 2019 REST API. https://codewithandrea.com/videos/flutter-rest-api-crash-course-part1/

Second chapter of my course about building a Coronavirus Tracker App with the nCoV 2019 REST API. https://codewithandrea.com/videos/flutter-rest-api-crash-course-part2/

Master the basics of REST APIs and the Dart http package. Build a Coronavirus tracking application following best practices. https://codewithandrea.com/videos/complete-flutter-rest-api-course/

A useful tip to hide your Firebase config from git in your Flutter web projects. https://codewithandrea.com/tips/flutter-firebase-web-config-gitignore/

In-depth tutorial explaning combineLatest and data modeling with movie favourite example Flutter app. https://codewithandrea.com/videos/rx-dart-by-example-combine-latest/

Best practices for implementing search with RxDart in Flutter, using the GitHub Search REST API as an example. https://codewithandrea.com/videos/rxdart-by-example-github-search/

Case study showing how I have built a backend REST API and Admin Dashboard with Cloud Functions and Flutter web. https://codewithandrea.com/videos/flutter-web-cloud-functions-case-study/

8 top tips that will save you time in your Flutter web projects. https://codewithandrea.com/videos/top-8-tips-for-flutter-web-firebase/

How to create your own Dart packages from existing apps, and other things you need to know. https://codewithandrea.com/videos/how-to-create-dart-packages-flutter-apps/

Introduction to Flutter: the widget tree, stateless and stateful widgets, hot reload and hot restart, and a detailed explanation of the default counter app. https://codewithandrea.com/videos/flutter-for-beginners-introduction/

Learn about Flutter layout basics with over 2 hours of in-depth content (free sample from my Flutter & Firebase course) https://codewithandrea.com/videos/flutter-for-beginners-layout-basics/

How to improve your coding skills and become a better software engineer. https://codewithandrea.com/videos/top-tips-software-engineers/

How to use the precompiled Firestore iOS SDKs to speed-up Xcode builds on your Flutter apps. https://codewithandrea.com/tips/speed-up-cloud-firestore-xcode-builds/

What implicit downcasts are, why they make your code unsafe, and how to avoid them. https://codewithandrea.com/articles/implicit-downcast-no-longer-allowed/

A complete tour of Null Safety & non-nullable types, the syntax changes they introduce in Dart 2.12, and how to use them in practice. https://codewithandrea.com/videos/dart-null-safety-ultimate-guide-non-nullable-types/

Easy ways to improve your Dart & Flutter code. Published weekly. https://codewithandrea.com/tips/dart-flutter-easy-wins-1-7/

Easy ways to improve your Dart & Flutter code. Published weekly. https://codewithandrea.com/tips/dart-flutter-easy-wins-8-14/

Easy ways to improve your Dart & Flutter code. Published weekly. https://codewithandrea.com/tips/dart-flutter-easy-wins-15-21/

Easy ways to improve your Dart & Flutter code. Published weekly. https://codewithandrea.com/tips/dart-flutter-easy-wins-22-28/

Easy ways to improve your Dart & Flutter code. Published weekly. https://codewithandrea.com/tips/dart-flutter-easy-wins-29-35/

Easy ways to improve your Dart & Flutter code. Published weekly. https://codewithandrea.com/tips/dart-flutter-easy-wins-36-42/

I'm launching a Complete Dart Course for beginners with over 8 hours of content, exercises, practical projects and more! https://codewithandrea.com/videos/complete-dart-course-launch/

This is the first chapter of my Complete Dart Course. https://codewithandrea.com/videos/dart-beginners-course-01-introduction/

This is the second chapter of my Complete Dart Course, covering the basics of the Dart Language. https://codewithandrea.com/videos/dart-beginners-course-02-dart-basics/

This is the third chapter of my Complete Dart Course, covering the Dart Type System, and how to use var, final, const and dynamic. https://codewithandrea.com/videos/dart-beginners-course-03-dart-type-system/

This is the fourth chapter of my Complete Dart Course, covering control flow directives such as if/else, while/for loops, switch and enumerations. https://codewithandrea.com/videos/dart-beginners-course-04-control-flow/

This is the fifth chapter of my Complete Dart Course, showing how to build a command line app in Dart to play a game of Rock, Paper and Scissors. https://codewithandrea.com/videos/dart-beginners-course-05-command-line-app/

This is the sixth chapter of my Complete Dart Course, showing how to use collections in Dart (lists, sets, maps). https://codewithandrea.com/videos/dart-beginners-course-06-collections/

This is the seventh chapter of my Complete Dart Course, showing how to process CSV files in Dart. https://codewithandrea.com/videos/dart-beginners-course-07-data-processing/

This is the eigth chapter of my Complete Dart Course, featuring a full overview of Null Safety in Dart. https://codewithandrea.com/videos/dart-beginners-course-08-null-safety/

A curated list of useful Dart tips that will improve your coding style as a Flutter developer. https://codewithandrea.com/videos/top-dart-tips-and-tricks-for-flutter-devs/

This step-by-step guide shows how to install keytool and add it to your system PATH on Windows and macOS. https://codewithandrea.com/articles/keytool-command-not-found-how-to-fix-windows-macos/

I published a directory of all my open source Flutter apps and projects on GitHub. Here's where to find it. https://codewithandrea.com/videos/flutter-example-apps-github/

Should you choose Flutter or React Native for your next app? This article offers an in-depth overview of the two frameworks, along with their pros and cons. https://codewithandrea.com/articles/flutter-vs-react-native/

Two effective techniques for reducing code generation times for Flutter apps that use build_runner. https://codewithandrea.com/tips/speed-up-code-generation-build-runner-dart-flutter/

An overview of Flutter's built-in widgets for managing state, along with links to the best resources from the official Flutter documentation. https://codewithandrea.com/videos/flutter-state-management-basics/

Mixing UI and logic inside Flutter widgets is bad. Here's how to refactor a simple app for better separation of concerns, immutability, and type safety using Freezed & State Notifier. https://codewithandrea.com/videos/flutter-state-management-setstate-freezed-state-notifier-provider/

A complete guide to the Riverpod package for Flutter state management. Included: core concepts & how to use all the available providers. Updated to Riverpod 1.0. https://codewithandrea.com/videos/flutter-state-management-riverpod/

Many Material widgets such as InkWell, ElevatedButton, and ListTile show a splash effect when selected. Here's how to disable this. https://codewithandrea.com/tips/disable-widget-splash-effect-flutter/

How to build an interactive page flip widget using Flutter's AnimationController, AnimationBuilder, gesture detectors and custom 3D matrix transforms (part 1). https://codewithandrea.com/videos/flutter-animations-page-flip-widget-part1/
![Flutter Animations: Interactive Page Flip Widget [Part 2]](https://www.cdn5.niftycent.com/d/k/z/3/N/v/O/flutter-animations-interactive-page-flip-widget-part-2.webp)
How to build an interactive page flip widget using Flutter's AnimationController, AnimationBuilder, gesture detectors and custom 3D matrix transforms (part 2). https://codewithandrea.com/videos/flutter-animations-page-flip-widget-part2/