توسعه اپلیکیشن موبایل برای یک فرانت اند کار

به عنوان یه برنامه نویس فرانت همیشه دنبال این بودم که همین مهارت رو توی نوشتن اپ‌های موبایل هم به دست بیارم. راستش همیشه و مثل همین الان در مورد این که آیا وب از موبایل پیشی میگیره یا برعکس مردد بودم واسه همین تصمیم گرفتم یه کاری بکنم از دور عقب نمونم.

چند تا راه داشتم:

  • یاد گرفتن زبان‌های نتیو مثل Swift و Java
  • توسعه اپلیکشن‌های وب با استفاده از PWA
  • توسعه اپلیکیشن‌های موبایل با استفاده از یک فریم ورک که به سیستم عامل‌های مختلف خروجی بده و فقط یکبار کدبزنم

خوب برای گزینه اول به شدت تنبل و بی علاقه بودم. راستش فکر میکردم که چه کاری کلی وقت بزارم و فقط روی یه پلتفرم بتونم توسعه بدم؟

به سرعت رفتم سروقت PWA و بحث شیرین سرویس ورکرها . همین که داشتم یاد میگرفتم و توسعه میدادم متوجه یه سری ضعف‌ها و کمبود‌ها توی این روش شدم. مثلا عدم پشتیبانی دقیق توسط تمام مرورگرها، نداشتن خیلی فیچرهای اپلیکیشن‌های نتیو مثل پوش نوتیفیکشن و ...

همین روال رو داشتم ادامه میدادم که برای توسعه یه وب اپلیکیشن فروشگاهی که قرار بود اپ اندروید هم داشته باشه گیر افتادم. قرار شد که اپلیکشن اندرویدش رو TWA کار کنیم. این TWA همون PWA با این فرق که میشه یه خروجی برای اندروید گرفت و نصبش کرد و روی همون موتور کروم اجرا میشه ولی باز یه سری محدودیت مثل خود PWA داره و از همه بدتر این که هنوز خیلی مارکت‌ها پشتیبانی نمیکن. البته خود گوگل پلی مشکلی نداره باهاش و میشه اونجا منتشر کرد.

تو گیر و دار همین بدبختی‌های این سیستم بودم که همکارم پیشنهاد داد که آقا برو React Native یادبگیر و خودت رو خلاص کن. من که Vue کار میکردم و تو سطح بالایی ازش بودم برام سخت اومد که باز برم یه فریم ورک دیگه یادبگیرم. گشتم و به چهار تا انتخاب رسیدم:

  • framework7
  • Ionic
  • Apache Cordova
  • NativeScript

مورد اول که اصلا یه فریم ورک کاملا فرانتی و بهت بیلد‌های نتیو نمیده. فقط ظاهر مطابق با اپلیکیشن‌های نتیو رو میتونی داشته باشی. به نظرم برای توسعه PWA میشه ازش خیلی راحت استفاده کرد و خروجی خوبی داشت.

فریم ورک Ionic هم که خیلی قوی تر از NativeScript اما متاسفانه هنوز ورژن Vue رو منتشر نکرده پس بی خیالش شدم.

مورد سوم Apache Cordova بود که بازم جذبش نشدم. اول این که کلی در موردش نظر خوندم و دیدم هم قدیمی هم فیچرهای زیادی نداره و کلی درد سر داره با Vue.


این شد که رفتم سراغ یادگرفتن NativeScript. تو این فریم ورک یه سری ویژگی‌های مهم دیدم منو مجاب به استفاده کرده:

  • پشتیبانی عالی و قابل اتکا از Vue
  • ویجت‌ها و کامپوننت‌های آماده
  • خروجی کدها و عملکرد نتیو روی Android و IOS
  • سیستم ادیتور آنلاین پیشرفته و مشاهده زنده نتیجه کد توی شبیه ساز آنلاین!
  • پشتیبانی از فونت‌های فارسی و RTL
  • جامعه توسعه دهنده قوی و پاسخگو

حالا توی قسمت‌های بعدی میریم سراغ تجارب من در استفاده از این فریم ورک و چالش ‌هایی که داشتم.

البته من هنوز در حال یادگیری هستم و واسه همین سعی میکنم قدم به قدم که جلو میرم مطلب منتشر کنم و تجاربم رو با شما به اشتراک بزارم.

-------------------------

بعد از کمی کار کردن با این فریم ورک همراه برخی دوستان مثل آقای حسین حبیبیان به این نتیجه رسیدیم که این فریم ورک فعلا جامعه پشتیبانی خوبی نداره و بخش اعظمی از کامپوننت هاش هنوز بومی سازی نشده و کلی درد سر دیگه سر موارد جزعی که توی کد نویسی نتیو راهی براش وجود داره اینجا هنوز فکری در موردش نشده که مختصری از این موارد رو توی کامنت ها میتونید مشاهده کنید.

خودم که حسابی دلسرد شدم فعلا دوباره به همون PWA پناه بردم برای پروژه فعلیم.