Tarkibga o'tish

Flutter & Dart β€” 0 dan Expertgacha (o'zbek tilida)

Bu qo'llanma sizni mutlaqo noldan β€” hech qachon kod yozmagan bo'lsangiz ham β€” professional mobil dasturchi darajasiga olib chiqadi. Birinchi qism Dart dasturlash tilini asoslaridan o'rgatadi, keyin Flutter bilan haqiqiy, do'konga joylasa bo'ladigan ilovalar quramiz.

πŸ“± Kitob butunlay Flutter 3.44 va Dart 3.12 (2026, eng so'nggi turg'un versiyalar) asosida. Bu juda muhim: Dart 3 (records, pattern matching, sealed klasslar, sound null safety) va Flutter 3.44 (Material 3 standart, Impeller dvigateli) zamonaviy kodni eski darslardan butunlay farqli qiladi.

🎨 Har bob SVG diagramlar bilan boyitilgan β€” widget daraxti, layout cheklovlari (constraints), event loop, state oqimi, navigatsiya steki, Riverpod/Bloc ma'lumot oqimi kabi tushunchalar ko'z bilan ko'rib o'rganiladi. Jami 30 bob, 90 diagramma.

βœ… Kitobdagi kod jonli Flutter 3.44.1 / Dart 3.12.1 bilan tekshirilgan β€” misollar flutter analyze va dart run dan toza o'tadi.


Qanday o'qish kerak

  1. Boblarni tartib bilan o'qing (01 β†’ 02 β†’ ...). Bu kitob bir-biriga zanjir bo'lib bog'langan β€” Dart'ni o'rganmasdan Flutter'ga o'tib bo'lmaydi.
  2. Har bir kod misolini o'zingiz yozib, ishga tushiring. Mobil dasturlashni faqat o'qib o'rganib bo'lmaydi β€” qo'l bilan yoziladi.
  3. Har bob oxiridagi Mashqlarni o'zingiz yeching, keyin <details> ichidagi yechimga qarang.
  4. Hot reload β€” sizning eng yaqin do'stingiz. O'zgartiring, saqlang, natijani darhol ko'ring.

Talab

Kerak Daraja
Kompyuter (Windows / macOS / Linux) Shart
Oldingi dasturlash tajribasi Shart emas β€” 0 dan boshlaymiz
Flutter SDK + editor (VS Code yoki Android Studio) Shart (01-bobda o'rnatamiz)
Emulyator yoki haqiqiy telefon (Android/iOS) Shart (01-bobda sozlaymiz)

πŸ’‘ iOS ilovasini qurish va do'konga joylash uchun Mac kerak. Lekin Dart'ni va Flutter'ni o'rganish hamda Android'ga qurish uchun istalgan OS yetarli.


I qism β€” Dart tili (0 dan)

# Bob Nima o'rganasiz
01 Kirish va muhitni o'rnatish mobil dasturlash nima, Flutter va Dart bilan tanishuv, SDK o'rnatish, editor, emulyator va birinchi dart run.
02 Dart asoslari: o'zgaruvchi va tiplar var/final/const, asosiy tiplar (int, double, String, bool), operatorlar, string interpolation, print.
03 Boshqaruv oqimi if/else, switch (expression va patternlarga kirish), for/while/for-in sikllari, break/continue.
04 Funksiyalar parametrlar (positional, named, optional, default), arrow, anonim funksiyalar, closure, yuqori-tartibli funksiyalar.
05 To'plamlar: List, Set, Map ro'yxatlar, to'plamlar, lug'atlar, spread ..., collection-if/for, iterable metodlari (map/where/fold).
06 Null safety sound null safety (Dart 3 standart), nullable ?, !, ??/??=, ?., late β€” "null xatosi"ni butunlay yo'qotish.
07 OOP β€” obyektga yo'naltirilgan dasturlash klass, konstruktor (named/factory), getter/setter, inheritance, abstract, interface, mixin, enhanced enum.
08 Dart 3 zamonaviy imkoniyatlari records, pattern matching va destructuring, sealed klasslar, class modifiers (base/interface/final/sealed), exhaustive switch, generics, exceptions.
09 Asinxron Dart Future, async/await, Stream, xatolarni boshqarish, isolate (kirish) β€” Flutter'dan oldin shart.

II qism β€” Flutter UI asoslari

# Bob Nima o'rganasiz
10 Flutter bilan tanishuv Flutter qanday ishlaydi (widget daraxti, deklarativ UI, hot reload), birinchi ilova anatomiyasi (runApp, MaterialApp, Scaffold).
11 Hamma narsa widget StatelessWidget, build, BuildContext, Text/Icon/Image/Container va asosiy ko'rinish widgetlari.
12 Layout I: Row, Column, Flex Row/Column, main/cross o'qlar, MainAxisAlignment, Expanded/Flexible/Spacer, SizedBox.
13 Layout II: Stack va Constraints Stack/Positioned, Align/Center/Padding, Flutter layout qoidalari (constraints), Wrap, responsive'ga kirish.
14 Material 3, Cupertino va theming Material 3 (standart), ThemeData/ColorScheme.fromSeed, dark mode, tipografiya, Cupertino (iOS uslubi) widgetlari.
15 Asosiy UI widgetlar tugmalar (ElevatedButton/FilledButton/...), TextField, Checkbox/Switch/Slider, Card, ListTile.

III qism β€” Interaktivlik va holat (state)

# Bob Nima o'rganasiz
16 StatefulWidget va setState holat (state) nima, StatefulWidget, setState, lifecycle (initState/dispose/didUpdateWidget).
17 Formalar va foydalanuvchi kiritmasi Form/TextFormField, validatsiya, TextEditingController, FocusNode, klaviatura va kiritma turlari.
18 Ro'yxatlar va scroll ListView (builder/separated), GridView, SingleChildScrollView, sliver'larga kirish, pull-to-refresh.

IV qism β€” Navigatsiya

# Bob Nima o'rganasiz
19 Navigatsiya: Navigator 1.0 Navigator.push/pop, ekranlar orasida o'tish, argument uzatish, dialog/bottom sheet/snackbar.
20 go_router bilan deklarativ navigatsiya marshrutlar, path/query parametrlar, redirect, nested/shell routes, deep linking β€” zamonaviy yondashuv.

V qism β€” Ma'lumotlar va tarmoq

# Bob Nima o'rganasiz
21 Tarmoq (networking) va API http/dio, REST API chaqiruvi, JSON serializatsiya (qo'lda + json_serializable), FutureBuilder.
22 Mahalliy ma'lumotlarni saqlash shared_preferences, sqflite/drift (mahalliy baza), fayl tizimi, path_provider.
23 Stream va reaktiv UI StreamBuilder, real-vaqt ma'lumot, Firebase'ga qisqa kirish (Firestore/Auth tushunchasi).

VI qism β€” State management (professional)

# Bob Nima o'rganasiz
24 Provider va InheritedWidget nega global state kerak, InheritedWidget, Provider/ChangeNotifier, Consumer/context.watch.
25 Riverpod (3.x) providerlar, Notifier/AsyncNotifier, codegen (riverpod_generator), dependency injection va test.
26 Bloc va Cubit hodisa→holat oqimi, flutter_bloc, Cubit, BlocProvider/BlocBuilder — va qaysi yondashuvni tanlash.

VII qism β€” Pro daraja va ishlab chiqarish

# Bob Nima o'rganasiz
27 Animatsiya implicit (AnimatedContainer/Hero), explicit (AnimationController/Tween), curve'lar, Lottie/Rive (qisqa).
28 Platforma, paketlar va moslashuv pub.dev, platform channels (kirish), kamera/joylashuv/ruxsatlar, responsive/adaptive (LayoutBuilder/MediaQuery), i18n, accessibility.
29 Testing, debugging va ishlab chiqarish unit/widget/integration test, DevTools, performance (Impeller, rebuild profiling), build/release (APK/AAB/iOS), signing, do'konga joylash.

VIII qism β€” Kapston

# Bob Nima o'rganasiz
30 Yakuniy loyiha: to'liq ilova o'rgangan hammasini birlashtirib β€” navigatsiya + state management (Riverpod) + REST API + mahalliy baza + test β€” noldan to'liq, professional mobil ilova quramiz.

Flutter va Dart β€” bir og'iz (kontekst uchun)

Dart β€” Google yaratgan, mijozga (client) yo'naltirilgan zamonaviy dasturlash tili. U tez (AOT kompilyatsiya), xavfsiz (sound null safety) va o'rganish oson. Flutter β€” shu Dart tilida yozilgan UI freymvorki: bitta kod bazasidan Android, iOS, web va desktop uchun ilova quradi. Flutter'ning yuragida bitta g'oya yotadi: "hamma narsa β€” widget". Tugma ham, oraliq ham, butun ekran ham β€” hammasi widget, va siz ularni Lego kabi birlashtirib interfeys quryapsiz.

Nega Flutter? Chunki bitta jamoa, bitta til, bitta kod β€” va u haqiqiy native tezlikda ishlaydi (Impeller dvigateli to'g'ridan-to'g'ri GPU bilan chizadi). Bugun Flutter mobil bozorda eng tez o'sayotgan texnologiyalardan biri.

Bu kitob Flutter'ni "tayyor kod ko'chirish" sifatida emas, balki har bir widget nega shunday ishlashini tushunib quradigan dasturchi sifatida o'rgatadi.


Muallif

Oqil Imomnazarov β€” ioqil.uz Β· Telegram Β· YouTube

Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.