novice programmer

چکیده ای از لحظات و آموخته های یک برنامه نویس تازه کار

novice programmer

چکیده ای از لحظات و آموخته های یک برنامه نویس تازه کار

novice programmer

وبلاگ پیش روی شما موضوعات مختلفی داره ولی بیشتر سعی کردم موضوعات مطالب رو نزدیک به هم نگه دارم و برای شروع از عنوان هایی با موضوعات UI/UX تا FrontEnd و در اینده اگر خدا بخواد به سمت BackEnd میرم. بیشتر مطالب با تجربه چند مدته خودم نوشته شده و اگر مطالبی ترجمه شده باشه با حفظ حقوق نویسنده ش حتما منبع ش ذکر میشه. معمولا وبلاگ رو در اواخر هفته که وقت آزاد تری دارم به روز میکنم.
برا آشنایی بیشتر به صفحه "درباره من" یک نگاه بندازین

  • ۰
  • ۰

توسعه دهنده frontEnd کیست

بسم الله الرحمن الرحیم

توسعه دهنده frontEnd کیست

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

1- Native App

2- Web App

3- Hybrid App

دسته اول یا Native App ها به اون دسته از اپلیکیشن هایی گفته میشه که ما برای برنامه نویسیشون از امکانات خود سیستم عامل یا دستگاه هایی که داریم براش برنامه نویسی میکنید استفاده میکنیم. مثلا دوربین گوشی یا سیستم GPS و قطب نما یا حتی استفاده از لیست مخاطبین در گوشی 

دسته دوم یا Mobile Web App ها در واقع یک اپلیکیشن واقعی نیستن در واقع وب سایت هایی هستن که به صورت ریسپانسیو یا واکنش گرا درست شدن و توسط وب ویو (WebView) ها نشون داده میشن. 

توسعه دهنده frontEnd کیست

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

در وب اپ های حرفه ای توی نگاه اول هم شاید با NativeApps ها نشه تفاوتی قائل شد ، چون درسته که داره مثل یک مرورگر یک وب سایت رو نشون میدن ولی نوار آدرس و دکمه های معمول که داخل یک مرورگ میبینم رو ندارن و حتی برای مثال میشه بخش های مشاهده شده اون وب سایت رو به صورت آفلاین هم دوباره مشاهده کرد.

با این مدل اپلیکیشن ها خیلی از شرکتها تونستن با مشتری ها شون ارتبط بیشتری داشته باشن چون در نهایت هزینه تمام شده براشون خیلی کمتر میشه در واقع همون یک وب سایت رو لازم دارن که باید خوب طراحی و ساخته بشه. هر چند که بعضی ویژگی های Native غیر قابل دسترس هستش.

البته در همه اپلیکیشن ها مخصوصا نوع Natvie ما از هه امکانات دستگاه یا سیستم عامل قرار نیست استفاده کنیم ، ولی اگر حتی یکی از امکانات و ویژگی ها رو بخوایم که در WebApp ها نباشند باید یک  NativeApp یا حداقل HybridApp رو درست کنیم.

دسته سوم از app ها تحت عنوان HybridApp ،در واقع یک قسمت از اون ها Native هستش وبخش دیگر اون ها WebApp (البته خیلی ها هم به اشتباه این جور اپلیکیشن ها رو همون WebApp میگن)

خیلی از شرکت ها میان تحت پوشش یک HybridApp وب سایتشون رو در معرض مشتری ها قرار میدن به امید اینکه مشتری بیشتری رو برای وب سایتشون یا فروشگاه آنلاینشون جذب کنن اونم بدون هزینه و تلاش اضافی برای ساخت یک اپلیکشن جداگونه

یکی دیگه از مزیت های HybridApp ها که اون رو خیلی محبوب کرده به خاطر multi-Platform بودنشه و اونم به خاطر کد های HTML هستش که روی همه سیستم عامل ها و مرورگ ها کار میکنه و این یعنی کد نویسی کم تر

برای مثال به دو تصویر پایین نگاه کنید.

 توسعه دهنده frontEnd کیست     توسعه دهنده frontEnd کیست

یک HybridApp هست برای دو نسخه اندروید و IOS فرقشون فقط بین اون قسمت ها Native هستش (نوار عنوان قرمز رنگ). هر دو برنامه قسمت های مختلف Native رو دارن که کد نویسیی هاشون 100% با هم فرق میکنه ولی قسمت WebApp ش همونجور که می بنید تفاوت آنچنانی ندارن که اونم به خاطر تفاوت WebView های توی اندروید و iOs هستش هر چند که تو طراحی UI برنامه های خودتون مختار هستین به عنوان مثال دیگه از HybridApp ها به دو عکس پایین توجه کنید که طراحی های تقریبا یکسانی هم دارن

توسعه دهنده frontEnd کیست     توسعه دهنده frontEnd کیست

بین NativeApp، WebApp و HybridApp کدارم یکی رو انتخاب کنیم ؟!

همونجور که خوندین هر کدوم از این مدل اپ ها ویزگی های خودشون رو دارن که با توجه به اون ویژگی ها و پروژه خودتون باید یکی رو انتخاب کنین

درسته که با webApp ها به یک سری امکانات HTML5 میتونید دسترسی داشته باشین ولی در NativeApp ها و Native Component های یک HybridApp دسترسی به کل امکانات یک دستگاه و سیستم عامل اون دارین.

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

مورد بعدی اینکه به نظر من WebApp ها سریع تر میتونن معروف بشن و دیده بشن به خاطر اینکه در وب مطالب خیلی زیادی وجود داره و اکثر مردم در موتور های جستجو سرچ میکنن و وب سایت های مورد نظرشون رو چک میکنن تا اینکه داخل اپ استور ها بگردن و یک اپ رو رو دانلود کنن شما میتونید به جای تولید یک اپ یک وب سایت بزنین و اون مطالبی رو که میخواید در اختیار کاربرا بذارین رو اون تو بذارین و برای سایت خودون یک WebApp هم درست کنین (البته این مورد برای همه ایده ها کاربرد نداره)

از نظر سرعت باید گفت بدون هیچ استثنایی NativeApp ها حرف اول رو میزنن

تعمیر و نگهداری و آپدیت : از این لحاظ خب NativeApp ها دردسر زیادی دارن مخصوصا اگر چند نسخه از اپ هم چه برای سیستم عالم های مختلف چه ورژن های مختلف یک سیستم عامل درست کرده باشین

از نظر رابط کاربری یا UI کم دردسر ترینش WebApp ها هستن و آخرینش هم NativeApp ها نه اینکه نشه برای nativeApp ها گرافیک و رابط کاربری خوبی طراحی کرد، میشه ولی خب دردسر و کار بیشتری داره

و در نهایت از نظر هزینه WebApp ها کم هزینه تر هستن با توجه به اینکه منابع آموزشی خیلی خوب و رایگانی برای HTML و css و JS میشه تو اینترنت پیدا کرد خیلی های میتونن برنامه های خودشون رو داشته باشن و شروع ب اپ نویسی کنن

اگر شماهم میتونید مقایسه ای بین اپ های مختلف داشته باشید در قسمت نظرات بگین تا بقیه دوستان هم استفاده ببرن

نظرات (۱)

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

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی