NativePHP β PHP bilan Desktop va Mobil ilovalar¶
Bu kitob Laravel biladigan PHP dasturchini NativePHP bo'yicha desktop va mobil ilova yozadigan darajaga olib chiqadi. NativePHP β Laravel asosida qurilgan freymvork: bitta PHP/Laravel kod bazasidan desktop (Windows/macOS/Linux, Electron orqali) va mobil (iOS/Android) ilovalar yasaladi. Asosiy g'oya β ilova ichida webview ishlaydi, unga PHP runtime'i bundled (desktop) yoki on-device (mobil) tarzda biriktiriladi; siz odatdagidek Blade/Livewire bilan UI yozasiz, NativePHP esa oynalar, menyu, bildirishnoma, kamera, GPS, biometrika kabi native imkoniyatlarni PHP fasadlari orqali ochib beradi.
ποΈ Arxitektura: webview + bundled/on-device PHP. Desktop'da Electron oynasi Laravel ilovangizni mahalliy server orqali ko'rsatadi va PHP binari ilova ichiga joylanadi; mobil'da PHP qurilmaning o'zida ishlaydi. Natijada β bitta kod bazasi, ko'p platforma.
βΉοΈ Bu kitob siz Laravel asoslarini (routing, Blade, Eloquent, fasadlar, service container, Artisan) bilasiz deb hisoblaydi. Laravel yangi bo'lsa, avval Laravel kitobini o'qing.
β οΈ HALOL eslatma. Kitobdagi Laravel/PHP kodi tekshirilgan va ishonchli. Ammo GUI, qurilma (kamera/GPS/biometrika) va build/packaging bloklari illustrativ β ularni real ishga tushirish uchun haqiqiy muhit kerak: desktop uchun Node.js + Electron, iOS uchun macOS + Xcode, Android uchun Android SDK. NativePHP versiyalari tez o'zgaradi, shuning uchun har doim rasmiy hujjat bilan solishtirib boring. Bu yerdagi maqsad β tushuncha va PHP tarafdagi to'g'ri yondashuvni berish.
Qanday o'qish kerak¶
- Boblarni tartib bilan o'qing (01 β 02 β ...). Har biri oldingisiga tayanadi.
- Avval Asoslar (I qism) va Desktop (II qism) ni puxta o'zlashtiring β mobil qism shu poydevorga quriladi.
- PHP/Laravel kodini o'z muhitingizda yozing; native va build bloklarini esa rasmiy NativePHP hujjati bilan birga ko'ring.
- Kamida bitta loyihani (kapston, 18-bob) boshidan oxirigacha o'zingiz yig'ing.
Talab¶
| Kerak | Daraja |
|---|---|
| Laravel asoslari (Blade, Eloquent, fasad, Artisan) | Shart |
| PHP 8.2+ va Composer | Shart |
| Kompyuter (Windows / macOS / Linux) | Shart |
| Node.js + Electron (desktop build uchun) | Desktop bobiga |
| macOS + Xcode (iOS) / Android SDK (Android) | Mobil bobiga |
| Terminal bilan tanishlik | Foydali |
Mundarija¶
I qism β Asoslar¶
| # | Bob | Nima o'rganasiz |
|---|---|---|
| 01 | NativePHP nima | NativePHP falsafasi β bitta Laravel kod bazasidan desktop va mobil ilova; webview + bundled/on-device PHP arxitekturasi; Electron tarafi va mobil tarafi farqi; nima uchun va qachon ishlatish kerak. |
| 02 | Muhit va Laravel asos | Loyiha muhitini tayyorlash: PHP/Composer/Laravel, NativePHP paketini o'rnatish; desktop uchun Node/Electron, mobil uchun talablar; toza Laravel skeletini NativePHP uchun moslash. |
| 03 | Birinchi desktop ilova | "Salom dunyo" desktop ilovasi: NativePHP service provider, ilovani ishga tushirish, birinchi oynani ochish; dev oqimi (native:run / composer native:dev) va ilova hayot tsikli. |
II qism β Desktop chuqur¶
| # | Bob | Nima o'rganasiz |
|---|---|---|
| 04 | Window management | Oynalar bilan ishlash: Window fasadi, bir nechta oyna, o'lcham/joylashuv, modal va frameless oynalar, oyna hodisalari va oynalararo aloqa. |
| 05 | Menyu, tray va shortcut | Ilova menyusi (menu bar), kontekst menyu, tizim tray ikonkasi va uning menyusi, global klaviatura shortcut'lari; native his beradigan desktop UX. |
| 06 | Native UI: notification va dialog | Tizim bildirishnomalari (Notification), fayl tanlash/saqlash dialoglari, ogohlantirish/tasdiq oynalari, clipboard bilan ishlash β operatsion tizimning native elementlari. |
| 07 | System, child process va fayl | Tizim bilan ishlash: tashqi jarayonlarni ishga tushirish (child process), fon vazifalari, foydalanuvchi fayl tizimiga kirish, ilova ma'lumotlari uchun papkalar. |
| 08 | Local data: SQLite va settings | Ilova ichida mahalliy ma'lumot saqlash: bundled SQLite bazasi va Eloquent, NativePHP Settings bilan sozlamalar, migratsiyalar va data joylashuvi. |
| 09 | Desktop UI: Blade va Livewire | Desktop UI'ni Blade va Livewire bilan qurish; reaktiv komponentlar, native imkoniyatlarni UI bilan bog'lash, desktop'ga mos dizayn va navigatsiya. |
III qism β Mobil¶
| # | Bob | Nima o'rganasiz |
|---|---|---|
| 10 | Mobil asoslari | NativePHP mobil tomoni: on-device PHP runtime, iOS/Android farqi, mobil loyiha tuzilishi, emulyator/simulyatorda ishga tushirish va dev oqimi. |
| 11 | Mobil UI va navigatsiya | Mobil UI: ekran o'lchamlariga moslash, sahifalararo navigatsiya, native his beradigan komponentlar, gesture va mobil UX pattern'lari. |
| 12 | Qurilma: camera, geo, scanner | Qurilma imkoniyatlari: kamera va galereya, geolokatsiya (GPS), QR/barcode skaner; ruxsatlar (permissions) bilan ishlash va ma'lumotni Laravel'ga uzatish. |
| 13 | Qurilma: biometrics, secure storage, push | Biometrik autentifikatsiya (Face ID / barmoq izi), maxfiy ma'lumotni xavfsiz saqlash (secure storage), push bildirishnomalar; mobil xavfsizlik asoslari. |
| 14 | Mobil offline data | Internetsiz ishlash: on-device SQLite, mahalliy keshlash, offline-first yondashuv, ulanish tiklanganda server bilan sinxronlash strategiyalari. |
IV qism β Sifat, build va deploy¶
| # | Bob | Nima o'rganasiz |
|---|---|---|
| 15 | Testlash va debugging | NativePHP ilovani testlash: Laravel testlari (Pest/PHPUnit), native qatlamni mock qilish, desktop/mobil debug usullari, log va xatolarni kuzatish. |
| 16 | Desktop build va packaging | Desktop ilovani yig'ish: native:build, Windows/macOS/Linux uchun paketlash, ikonka va metadata, kod imzolash (code signing) va distributsiya asoslari. |
| 17 | Mobil build va deploy | Mobil ilovani yig'ish va tarqatish: iOS uchun Xcode/App Store, Android uchun APK/AAB va Play Store, imzolash sertifikatlari, versiyalash va relizga tayyorlash. |
| 18 | Kapston loyiha | Butun kitobni bog'laydigan to'liq loyiha: bitta Laravel kod bazasidan desktop va mobil ilova β local data, native imkoniyatlar, offline, test va build β boshidan oxirigacha. |
Muallif¶
Oqil Imomnazarov β ioqil.uz Β· Telegram Β· YouTube
Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.