توسعه نرمافزارها هر روز آسانتر میشود. قدرتمند شدن پردازندهها باعث شد تا برنامههای چند سکویی راحتتر از همیشه اجرا شوند و بتوان تنها با فراگیری یک زبان سطح بالا برنامههای خلاقانه طراحی کرد. یکی از جدیدترین فریمورکهای ساخته شده برای توسعه نرمافزارهای دسکتاپ، فریمورک NativePHP نیتیوپیاچپی است. این خبر خوبی برای توسعه دهنگان PHP است. از این پس تنها با فراگیری 4 زبان PHP ،HTML ،CSS و Javascript شما قادر خواهید بود نرمافزارهای دسکتاپ را توسعه دهید. البته باید دید این فریمورک تا چه حد درمقابل فریمورکهای دیگری همچون Flutter میتواند بازی را به نفع خود تغییر دهد. در ادامه به بررسی فریمورک NativePHP خواهیم پرداخت:
ساختار فریمورک NativePHP
این فریمورک دقیقاً همان PHP است که بر روی سرور اجرا میشد. با این تفاوت که حالا به صورت زندهتر و مستقیم درون هسته برنامه اجرا میشود. درست همانند Java و Python که هم بر روی سرور اجرا میشوند و هم برای دسکتاپ فریمورک UI دارند. اگر بخواهیم دقیقتر بگوییم، در NativePHP مجموعهای از کلاسها افزوده شده که برای نمایش پنجرهها و کنترل وضعیت برنامه در سیستمعامل استفاده میشود. البته NativePHP یک بسته مکمل است که بر روی فریمورکهای دیگر همچون الکترون Electron و تاوری Tauri نصب و اجرا میشود.
سوألی که این در اینجا مطرح میشود این است که با وجود فریمهای قدرتمند و متعدد، واقعاً چه نیازی به وجود چنین فریمورکی است؟ میتوان اینگونه پاسخ داد افرادی که به زبان PHP مسلط هستند، بدون نیاز به فراگیری فریمورکهای دیگر میتوانند با همان دانش قبلی به توسعه نرمافزارهای دسکتاپ بپردازند. NativePHP اساساً یک فریمورک برای رابط کاربری نیست اما میتواند با دیگر فریمورکها برای ایجاد رابط کاربری استفاده شود.
NativePHP یک سکو بالای بالاتر از سکوی Electron و Tauri قرار میگیرد تا به جای آنها عمل کند و با پشتیبانی از هر دو فریمورک، یک سری کلاس واحد را ایجاد کند. این کار کمک میکند تا برنامه خیلی سریعتر آماده شود. البته نکته اینجاست که باید دید این نوع برنامهها چقدر جای پیشرفت دارند. معمولا زمانی که از چندین فریمورک همزمان استفاده میکنیم، این دغدغه وجود دارد که یکی از فریمورکها به مرور زمان از دور خارج شود و برنامه نویس مجبور باشد برنامه را از نو بازنویسی کند. بنابراین پیشنهاد میشود که از همان ابتدا یک فریمورک خوب را برای کار انتخاب کنیم تا در ادامه به مشکل برنخوریم. به علاوه هرچه تعداد سکوها در پسزمینه برنامه زیاد شود، به همان میزان سرعت پردازش برنامه کاهش مییابد که البته در پردازندههای جدید کاهش سرعت حس نمیشود.
مزیتهای NativePHP چه مواردی هستند؟
NativePHP توانسته با هسته فریمورکها ارتباط خوبی برقرار کند و با آن میتوان تقریباً هر نوع برنامهای را توسعه داد. کلاسهای این فریمورک کار را برای برنامه نویسی بسیار سادهتر میکند و برای توسعه یک نرمافزار آنلاین، دیگر نیازی نیست تا هم در لاراول و هم در الکترون از دو زبان مجزا استفاده کنیم. تنها کافی است تا NativePHP را درون هر دو فریمورک نصب کنیم و سپس به توسعه نرمافزار خود بپردازیم. البته منظور یکدست بودن کدهای بکاند در پسزمینه برنامه است. زیرا کدهای فرانتاند کمی متفاوتتر هستند؛ ولی با این حال باز هم از بازنویسی کل کدها بهتر است. جالب است بدانیم که NativePHP میتواند پروژههای تحت وب که با PHP توسعه یافتهاند را به پروژههای دسکتاپ تبدیل کند. در کل مزیتهای اصلی فریمورک NativePHP را میتوان موارد زیر دانست:
مدیریت پنجره
مدیریت منو
مدیریت فایل
پشتیبانی از پایگاه داده (SQLite)
اعلان های بومی
چه چیزی می توانم با NativePHP بسازم؟
انصافا هر چی بخوای ما معتقدیم NativePHP هزاران توسعه دهنده را برای ساخت انواع برنامه ها توانمند می کند. تنها محدودیت تخیل شما است.
می توانید یک برنامه منوبار بسازید که به شما امکان می دهد کارهای cron خود را مدیریت کنید، یا یک برنامه لانچر جدید جالب، یا یک ضبط کننده صفحه که کلاه های گاوچران را روی هر شکلک صورتک که می بیند قرار می دهد.
(شما باید آن آخرین مورد را کاملاً بسازید.)
چیزی که NativePHP نیست
NativePHP روشی خاص برای ساخت برنامه های بومی نیست. در حال حاضر، ما فقط از یک درایور لاراول پشتیبانی میکنیم، اما در حال حاضر روی آن کار میکنیم که از هر فریمورکی که استفاده میکنید کار کند - و حتی اگر اصلاً از یک فریمورک استفاده نمیکنید.
NativePHP یک چارچوب رابط کاربری گرافیکی نیست. ما نمی خواهیم به شما بگوییم که چگونه برنامه خود را بسازید. میتوانید هر مجموعه ابزار رابط کاربری را انتخاب کنید که به شما و تیمتان احساس بهرهوری بیشتری بدهد.
ساخت یک React front-end؟ مشکلی نیست Vue؟ مطمئن. لایو وایر یا اینرسی؟ مهم نیست! HTML و CSS قدیمی ساده؟ فهمیدی. باد دم؟ بوت استرپ؟ رابط کاربری مواد؟ هر چی بخوای
NativePHP یک فورک سفارشی جدید PHP نیست. این همان پی اچ پی است .
NativePHP بر روی زبان PHP و فریمورکهای زیرمجموعه آن قابل استفاده است:
الزامات استفاده از NativePHP چیست؟
قبل از هر چیز نصب NativePHP نیاز به نصب موارد زیر دارد تا برای اجرا آماده شود:
PHP 8.1
لاراول 9 یا بالاتر
NPM
Composer
چرخه عمر برنامه NativePHP
در همان ابتدا که برنامه شروع به کار میکند، یک سری دستورات جهت اطمینان از اجرای صحیح برنامه، به صورت پیشفرض اجرا میشوند که شامل موارد زیر هستند:
فریمورک الکترون یا تاوری برای نمایش پنجره ویندوز اجرا میشود.
NativePHP php artisan migrate برای اطمینان از به روز بودن پایگاه داده برنامه اجرا میشود.
NativePHP php artisan serve برای راه اندازی سرور توسعه PHP اجرا می شود.
NativePHP برنامه شما را با اجرای boot()متد بر روی شما بوت می کند NativeAppServiceProvider.
علاوه بر متود boot()، هسته NativePHP یک رویداد NativeLaravelEventsAppApplicationBooted را نیز ارسال میکند.
سخن پایانی
امروزه بیشتر اپلیکیشنها استراتژی اجرای آنلاین را پیش گرفتهاند و برنامههای PWA و تحت وب هر روز درحال گسترش هستند. با این وجود گاهی نیاز است که برخی برنامهها به صورت مستقیم و مستقل بر روی سیستمعامل کاربران اجرا شوند و همین امر موجب شده تا فریمورکهای نظیر Electron و Tauri توسعه پیدا کنند. از آنجا که کار با این فریمفرکها بین توسعه دهندگان بسیار محبوب شده، پیشبینی میشود که فریمورک NativePHP نیز بتواند به همان اندازه محبوب شود و بخش قابل توجهی از سهم بازار را به خود اختصاص دهد. اگر به قدرت Electron و Tauri در توسعه برنامههای دسکتاپ شک دارید، کافی است بدانید که محیط توسعه VSCode با Electron توسعه داده شده است و امروز تبدیل به قدرتمندترین و سبکترین IDE در جهان شده که در همه سیستمعاملهای دسکتاپ قابل اجرا است و تاکنون میلیونها بار دانلود و استفاده شده و جایگزین IDE های قدیمی شده است.