nativemind_core

The light base of the NativeMind framework:

  • theme, tokens and primitives;
  • editions from configuration (NmConfigs: one edition map sets palette, texts and features);
  • the handmade DealApp button family and dialogs of Eugene Tretiakov, and the PIN keypad on Andrey Bekhtold's model (who wrote what: PROVENANCE.md);
  • composites, tables, navigation and charts;
  • localization infrastructure, including Wishyut's run-time string service;
  • the icon API with the essential Fugue icons.

It has no plugins and ships about 0.9 MB of assets. nativemind_copilot, nativemind_vpn, nativemind_sound and nativemind_deals build on it.

Install

dependencies:
  nativemind_core: ^1.2.0
import 'package:nativemind_core/nativemind_core.dart';

final edition = const NmConfigs({
  'android/net.example.blue': {'title': 'Example', 'palette': 'blue'},
}).current();                                               // --dart-define=NM_EDITION=net.example.blue

MaterialApp(
  theme: edition.theme.toThemeData(Brightness.light),
  localizationsDelegates: const [NmL10n.delegate],          // dialogs and buttons in the app's language
  home: Center(child: NmWideActionButtonNoIcon(() => nmSuccessDialog('Saved'), 'Save')),
);
  • Need every Fugue icon? Add nativemind_icons_fugue.
  • Need more than English, Russian, Thai, Hindi and Chinese? Add nativemind_translations and call NmTranslations.install().
  • Eugene's dialogs (nmErrorDialog … nmYesNoDialogDelayed) speak the app's language when the app adds NmL10n.delegate (Russian without it, as written); NmDialogOptions.shape / NmDialogOptions.enterSubmits set the dialog shape and Enter-to-submit app-wide. The buttons have a click cursor and a hover / pressed state.
  • Strings from JSON files at run time: NmLocalizationService (Wishyut) — await NmLocalizationService.load(locale, package: 'my_package'), then NmLocalizationService.to('key').
  • Need everything (the domain widgets, payment marks, persistence on shared_preferences)? Use nativemind_widgets; it re-exports this package.

Upgrading from 0.1.x, and the 1.1 / 1.2 additions: doc/migration-1.0.md. The deprecated AI-written NmButton(), NmButton.destructive and NmConfirmDialog point to the handmade replacements there.

Handmade authors

About 9 % of lib/ is code of NativeMind people (1 379 of 14 722 lines; the rest is the 0.1 library, written with AI); every handmade class, function and method carries its author line.

Author Role In this package
Eugene Tretiakov Flutter developer of the DealApp (Dilap) MVP, 2024; possibly copiloted by GigaCode 22 buttons NmWideActionButton … NmDialogRedButton, dialogs nmErrorDialog … nmYesNoDialogDelayed, NmTimerButton, NmColorsRes
Andrey Bekhtold DealApp team lead; network, VPN, video calls, native Kotlin / Swift / KMP; without AI the PIN model (Kotlin, ported to Dart) behind NmPinCodeModel / NmPinCodeKeypad
Wishyut front-end developer and team lead of the TH branch, VPNclient-app 2025; without AI NmLocalizationService
Anton Dodonov founder and CTO; iScillator 2021–22, without AI the editions mechanism and its keys (NmConfigs generalises it; written by Claude Code)
Elvira Krasnova UI/UX + design, Figma «MVP Dilap» the button and PIN values of the figma-fix blocks (40 lines; the author's value stays in the comment)

Adapters, NmDialogOptions and the editions API are written by Claude Code and marked as such.

License

NativeMindNONC (see LICENSE), as the whole NativeMind framework. Bundled Fugue icons © Yusuke Kamiyamane, CC BY 3.0 (see NOTICE).

Libraries

nativemind_core
The light base of the NativeMind widgets: theme, tokens, icons (API + essential Fugue icons), localization infrastructure, app wiring, primitives, composites, navigation, charts, input, panels. No plugins.