گذار به برنامههای وب در دسکتاپ، با استفاده از ابزارهایی مانند Electron که در سال 2013 معرفی شد، امکان پذیر است.
به گزارش تکناک، این فریمورک جاوا اسکریپت به توسعهدهندگان امکان میدهد تا برنامههای دسکتاپ را با استفاده از فناوریهای وب مانند HTML، جاوااسکریپت و CSS بسازند.
از اواسط دهه 2010، شاهد افزایش شرکتهای کوچک و بزرگ بودهایم. این شرکت ها به فناوریهای وب روی آوردهاند تا برنامههایی بسازند که به طور سنتی روی دسکتاپ شما قرار میگیرند. کسب و کارها حتی در برخی از تنظیمات سازمانی، مشتریان قدیمی را به استفاده از تجربیات نرم افزاری مبتنی بر جاوا اسکریپت در دسکتاپ ترغیب میکنند. همه چیز از Slack گرفته تا Outlook جدید و Discord قربانی شده اند.
سوالی که مطرح میشود این است که چگونه این اتفاق افتاد؟ آیا اجرای برنامه های وب روی دسکتاپ فایده ای دارد؟
فهرست مطالب
Electron چیست؟
چه نام Electron را شنیده یا نشنیده باشید، مطمئناً از آن استفاده کرده اید. Electron یک چارچوب جاوا اسکریپت است که در سال 2013 توسط بنیاد OpenJS منتشر شد. این چارچوب منتشر شد تا ایجاد برنامه های دسکتاپ با استفاده از منبع وب سنتی مانند HTML، جاوا اسکریپت، CSS و حتی Web Assembly را امکان پذیر کند. خود Electron به طور موثر مرورگر Chromium را با زمان اجرای Node.js میسازد و سپس برنامه شما را به عنوان یک صفحه وب در داخل این مرورگر اجرا می کند.
Electron به این مرورگر وب، دسترسی به مجموعهای از APIها را می دهد. این دسترسی به برنامه شما در مرورگر امکان میدهد تا تماسهای سیستمی را مانند استفاده از سیستم فایل یا دسترسی به دستگاهها، انجام دهد. این موضوع به چیزی که اساساً یک وبسایت است، این توانایی را میدهد که به نظر برسد مانند یک برنامه در حال اجرا به صورت بومی عمل میکند.
شما در این حالت متوجه نمیشوید که در یک مرورگر کار میکنید. Electron باعث میشود برنامه ها بتوانند تمام نوارهای منو، کنسولهای توسعهدهنده و گزینههای داخل مرورگر را مخفی کنند. همچنین ظاهر و احساس برنامه شما را تا حد ممکن نزدیک به حالت قدیمی نگه دارند.
Electron توجه بسیاری را به سوی خود جلب کرده است.
Electron عالی است. ساخت اپلیکیشنهای دسکتاپ، بهویژه برنامههای چند پلتفرمی، بهطور سنتی دشوار بوده است. هر سیستم عامل مجموعه ای از API ها و تماس های سیستمی خاص خود را دارد و گرافیک های پیشرفته تر برای شروع به دانش عمیق نیاز دارند. Electron به توسعه دهندگان این امکان را می دهد تا یک برنامه کاربردی را برای وب بنویسند و سپس آن را به راحتی در لینوکس، macOS و ویندوز 11 بدون تغییرات قابل توجه قرار دهند. این امر توسعه سریع، اعمال سریع تغییرات و نمونهسازی سریع را برای توسعهدهندگان امکان پذیر میکند؛ زیرا میتوانند بهجای پشتیبانی صریح از نسخهای متفاوت از برنامه برای هر پلتفرم، یک پایگاه کد واحد را بهروزرسانی کنند.
Electron همچنین اجرای یک نسخه درون مرورگر از برنامه شما را آسان می کند. متوجه خواهید شد که discord.com یک نسخه تقریباً کامل از سرویس دسکتاپ است. همچنین توسعه دهندگان این امکان را دارند از همان کتابخانه ها، اسناد و نمونه هایی استفاده کنند که قبلاً داشته اند. آن ها همچنین می توانند از آن ها برای نوشتن برنامه های تعاملی و پاسخگویی در وب استفاده کنند. توسعه دهندگان می توانند چارچوب های موجود مورد علاقه خود مانند React.js یا Vue را بیاورند. علاوه بر این از پشتیبانی کتابخانه گسترده جاوا اسکریپت برای همه چیز، از دسترسی به API ها تا توسعه UI ها، بهره ببرند.
آیا برای Electron جایگزینی هست؟
Electron تنها ابزاری نیست که بتواند این کار را انجام دهد؛ اما در طول سالها محبوبیت و انعطافپذیری خود را ثابت کرده است. یک صفحه Github با فهرستی از گزینه های جایگزین در دسترس است. مرور بخش Javascript/Node.js میتواند به شما ایده خوبی درباره برخی از ایرادات Electron مانند ساخت یک نسخه کامل از Chromium بدهد.
ما انتخاب کردهایم که Electron را در اینجا مورد بررسی قرار دهیم؛ زیرا مسلماً بزرگ تربن پايگاه فعال کاربر را در بین کتابخانههای دسکتاپ قابل مشاهده وب دارد. برنامههایی مانند Slack، Discord و Visual Studio Code در میلیونها رایانه شخصی در سراسر جهان رایج هستند. محبوبیت آن ها در دهه گذشته در بین مشاغل و توسعه دهندگان افزایش یافته است.
برنامه های وب دسکتاپ چه معایبی دارند؟
یکی از معایب کلیدی برنامههای Electron این است که آنها به Chromium و Node.js برای همگام شدن با هر برنامه نیاز دارند. این مشکل از زمان اولین راهاندازی Electron تا حدودی برطرف شده است؛ زیرا فضای دیسک موجود افزایش یافته است. با این حال هنوز برای بسیاری از توسعهدهندگان دردسرساز است. یک برنامه ساده Hello World با استفاده از Electron به راحتی می تواند بیش از 50 مگابایت و بسیاری از برنامه های رایج مانند Slack، Discord یا Visual Studio Code به راحتی می توانند صدها مگابایت باشند. برخی از برنامه های اجرایی جایگزین سعی کردهاند این مشکل را با ترکیب کردن اجزای مرورگر کوچکتر با سرورهای مینیمالیستی به جای Node.js (مانند neutralino.js) کاهش دهند؛ اما این برنامههای نوپا در به دست آوردن شتاب مورد نیاز برای ساخت برنامههای بزرگ با مشکل مواجه شدهاند.
آیا برنامه های وب ذاتاً ناکارآمد هستند؟
سیستم عامل دسکتاپ شما کاملاً به تنهایی قادر به باز کردن یک پنجره و برخی اشکال، ارائه کردن برخی از متن ها و تصاویر است. در واقع، تلاش های زیادی برای توسعه این قابلیت از طرف توسعه دهندگان سیستم عامل انجام شده است. این تلاش ها باعث می شود این ایده که ما به یک مرورگر کامل نیاز داریم تا این موارد روی دسکتاپ ارائه کند، کمی مبهم شود.
این بحث به گذر زمان وابسته است. برخی از توسعه دهندگان عملکرد و کارایی را قربانی می کنند تا محصولات را به سرعت و منتشر کنند؛ در حالی که برخی دیگر استدلال می کنند نوشتن یک کد یک بار برای همیشه می تواند در درازمدت موثر باشد. ما در اینجا به این بحث نمی پردازیم؛ اما این بحثی است که صدها بار به صورت آنلاین با مزایا و معایب هر دو طرف مطرح شده است.
الکترون آمده است که بماند!
تفاوتی ندارد که از طرفداران برنامه های وب روی دسکتاپ خود باشید یا نباشید. در هر صورت آن ها اینجا هستند که بمانند. مزایای ارائه شده به کسب و کارها و توسعه دهندگان، یعنی ایجاد و استقرار آسان یک نسخه تقریباً یکسان از یک برنامه بسیار زیاد بوده است. در حالی که برخی از کاربران همیشه شکایت میکنند که به اندازه کافی از برنامههای دسکتاپ رضایت ندارند و برخی از توسعهدهندگان از ناکارآمدی اجرای برنامههای وب روی دسکتاپ ابراز تاسف میکنند، آن ها ارزش خود را در برخی از نرمافزارهای بازار ثابت کردهاند.