nativemind_deals
Handmade DealApp (Dilap) UI by Eugene Tretiakov: onboarding, phone / OTP / PIN screens, interest and location
selectors, tiles, pulse avatar, read-more, reviews, the specialist swiper and cards, call screens, charts. Services are
behind nine ports — the widgets never call Appwrite, LiveKit, DaData, GigaChat or OneSignal. Part of the NativeMind
framework, on nativemind_core (his buttons and dialogs live there).
Install
dependencies:
nativemind_deals: ^1.1.0
import 'package:nativemind_deals/nativemind_deals.dart';
NmDealsScope( // above the Navigator
auth: myAuthPort, pin: myPinPort, call: myCallPort, favorites: myFavorites,
specialistActions: myActions, interests: myInterests, session: mySession,
specialists: swiperStack, topSpecialists: homeCards, favouriteExperts: liked,
child: MaterialApp(
localizationsDelegates: const [NmL10n.delegate, NmDealsL10n.delegate],
routes: {
'/onboarding2': (_) => NmOnboarding2(), '/onboarding3': (_) => NmOnboarding3(),
'/login': (_) => const NmPhoneNumberScreenView(), '/specfilter': (_) => const MyFilter(),
},
home: NmOnboarding1(),
),
)
- The carried screens keep Eugene's code (GetX shape) through a private shim;
NmDealsScopebuilds his controllers as adapters over the ports. Routes pushed by the screens:/onboarding2,/onboarding3,/login,/specfilter. - Call the app's
initializeDateFormatting(<locale>)(intl) beforeNmSingleReview(Eugene's date format). - LiveKit:
import 'package:nativemind_deals/livekit.dart'—NmLiveKitCallPort(room: …)givesNmCallPort.videoTileover a room the app connects;localFit/remoteFit(andNmParticipantWidget.widgetFor(…, fit:)) choose cover or contain (default cover). A P2P call on Andrey Bekhtold's native media layer:NmNativeCallPortofnativemind_call. - Call cards
NmIncomingCall/NmOutgoingCallfollow the app locale withNmDealsL10n.delegate(en / ru / zh / hi / th; Russian without it);audioOnly:adds the «Аудиозвонок» / «Видеозвонок» subtitle. - Moving an app's copies of Eugene's files to the package, and the 1.1 additions: doc/migration-1.0.md.
Handmade authors
85 % of lib/ is code of people (3 955 of 4 683 lines: 2 686 Eugene's, 1 269 adapted by him from upstream examples);
the rest are ports and adapters by Claude Code. Every class, function and method carries its author line; 80 values
were replaced by Figma values (figma-fix blocks keep both).
| Author | Role | In this package |
|---|---|---|
| Eugene Tretiakov | Flutter developer of the DealApp (Dilap) MVP, 2023-09 – 2024-12; possibly copiloted by GigaCode | all screens and widgets; adapted the LiveKit example (call tiles) and the fl_chart samples (charts) |
| Andrey Bekhtold | DealApp team lead; network, VPN, video calls, native Kotlin / Swift / KMP | the PIN model behind the PIN screens (in nativemind_core) |
| Elvira Krasnova | UI/UX + design, Figma «MVP Dilap» | the figma-fix values (OTP cells, PIN keypad, onboarding, swiper, cards, call buttons) |
Upstream code: LiveKit Flutter SDK example (Apache-2.0) and fl_chart samples (MIT) — see NOTICE.
Links
- pub.dev: nativemind_deals · publisher framework.nativemind.net
- Source: gitlab.com/nativemind/widgets.nativemind.net,
flutter/nativemind_deals· used by the DealApp web / mobile client (refactoring.nativemind.net) - CHANGELOG.md · doc/migration-1.0.md · PROVENANCE.md · NOTICE
License
NativeMindNONC (see LICENSE), as the whole NativeMind framework. The adapted upstream parts keep their notices:
Apache License 2.0 (LICENSE-Apache-2.0-livekit) and MIT (LICENSE-MIT-fl_chart). Assets in assets/images/ come
from DealApp (MVP Dilap); NativeMind's rights were confirmed by the owner on 2026-10-14 (see NOTICE).
Libraries
- livekit
- LiveKit bindings of the DealApp call (adapted by Eugene Tretiakov from the LiveKit Flutter example, Apache-2.0):
participant video tiles, call controls, call dialogs, and NmLiveKitCallPort — an NmCallPort over a LiveKit
Roomthat the app connects (token server, room options and secrets stay in the app). - nativemind_deals
- DealApp (Dilap) UI by Eugene Tretiakov, carried with minimal changes (SDD flow sdd-widgets-handmade, tasks 2.30–2.40).