
You can download the project source code from below link
Create a Flutter macOS app and add dependencies for native macOS UI, Hive database, and code generation with build_runner; enable macOS in the Flutter config and update pubspec.yaml.
Create a separate macOS main file and macOS UI for the Flutter macOS app, enabling a native look for the Mac voice setup and refactoring the homepage.
Create a macOS Flutter app interface by adding a user screen to a macOS scaffold, configuring a toolbar with items and tooltips, and enabling navigation to save or delete actions.
Design a reusable base form text field widget for macOS, Flutter apps, using a form with a global key and text editing controllers for inputs.
Refactor the Flutter macOS app form by organizing fields into rows for first name, last name, gender, email, phone, and address, fix layout, and plan Hive database setup.
Create a user model in a flutter macos app using Hive: define fields, apply Hive annotations, generate a type adapter, and prepare to register the Hive database.
Save a user to Hive in a Flutter macOS app by creating an add user function, collecting first name, last name, gender, email, phone, and address, and validating the form.
Create a home screen that displays a scrollable list of users using a hive box, a list view builder, and a toolbar with an add button.
Learn how to add a gender dropdown in a Flutter macOS app by building a dropdown button with mapped menu items, and managing selection state.
Enhance the Flutter macOS app by customizing a dropdown button style, adjusting width and alignment, and applying padding and decoration to achieve a clean, full-width user interface.
Copy a vscode launch.json for flutter macOS from the VS Code docs into a .vscode folder and run it from the launch button.
Add a macOS search field to the Flutter macOS app, with a placeholder and a mapped results list. Handle result selection by printing the chosen value.
Enable editing in the data grid by implementing a user model and overriding editing, navigation, and selection properties. Save edits with on cell submit to update values.
Edit cell values in a Flutter macOS app by wiring a user model grid, duplicating data sources, and updating the Hive box on submit.
Add swipe to delete functionality for rows in the macOS Flutter app, enabling a right-to-left swipe to reveal a delete action, update the data source, and refresh the data grid.
Create a macOS dmg installer for your Flutter app by building a release, configuring an installer with an icns icon, and packaging the macOS demo app into a draggable dmg.
In this Flutter course we are going to learn to build a macOS app and a local data storage using Hive package which help us to create NoSQL database, it internally make use of key-value and work well both with Android, iOS, Desktop and Web.
We will build a native looking macOS app with flutter using the flutter library macos_ui and we will use a Hive for local storage. We will also lean about flutter DataGrid and create a DataTable
macos_ui
Flutter widgets and themes implementing the current macOS design language.
Flutter DataGrid (DataTable) library
The Flutter DataTable or DataGrid is used to display and manipulate data in a tabular view. It is built from the ground up to achieve the best possible performance, even when loading large amounts data.
Hive
Hive is a lightweight and blazing fast key-value database written in pure Dart. Inspired by Bitcask.
Features
Cross platform: mobile, desktop, browser
Great performance (see benchmark)
Simple, powerful, & intuitive API
Strong encryption built in
NO native dependencies
Batteries included
Hive is also one of the best options when it comes to cross-platform support. You don't have to include binaries, and it works in the browser using IndexedDB.
Hive is very performant because it has little overhead compared to relational databases. The API is very close to how the data is stored on the disk.
Key-value databases can be used to store almost any kind of data. For example:
User profiles
Session information
Article/blog comments
Messages
Shopping cart contents
Product categories
Binary data
etc.