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 analyzevadart rundan toza o'tadi.
Qanday o'qish kerak¶
- 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.
- Har bir kod misolini o'zingiz yozib, ishga tushiring. Mobil dasturlashni faqat o'qib o'rganib bo'lmaydi β qo'l bilan yoziladi.
- Har bob oxiridagi Mashqlarni o'zingiz yeching, keyin
<details>ichidagi yechimga qarang. - 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.