Skip to content

Repository files navigation

nativeapi-flutter

Flutter bindings for nativeapi — unified access to native system APIs: windows, tray icons, menus, displays, keyboard, dialogs, storage and more.

Android iOS Linux macOS Windows

🚧 Work in Progress: this package is under active development.

English | 简体中文

Installation

flutter pub add nativeapi

Quick Start

import 'package:nativeapi/nativeapi.dart';

for (final display in DisplayManager.instance.getAll()) {
  print('${display.name ?? ''}: ${display.size.width}x${display.size.height}');
}

Custom window chrome

Wrap a custom title bar in DragToMoveArea to move the window by dragging (double tap to maximize/restore), and the window content in DragToResizeArea to resize from its edges and corners:

DragToResizeArea(
  resizeEdgeSize: 8,
  child: Column(
    children: [
      DragToMoveArea(
        child: SizedBox(height: 40, child: Center(child: Text('My window'))),
      ),
      Expanded(child: MyContent()),
    ],
  ),
)

Both widgets use WindowManager.instance.getCurrent() unless a window is passed. Moving via DragToMoveArea is not yet implemented on Linux.

Examples

See examples/. Each directory is a Flutter app for one module:

flutter pub get
cd examples/display_example
flutter run

Contributing

This repository is developed from the workspace, which checks out the core library, every binding and the code generator together:

git clone --recursive https://github.com/libnativeapi/workspace.git

Files marked AUTO-GENERATED. DO NOT EDIT. are generated from the C++ headers in nativeapi. To change the API, send a pull request there; maintainers regenerate the bindings.

License

MIT

About

Flutter bindings for nativeapi - providing seamless, unified access to native system APIs.

Topics

Resources

Stars

137 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages