یکی از مسائلی که کسب و کارها اغلب با اون مواجه بودن،و نوشتن کد و قابلیت های یکسان برای سیستم عامل های مختلف بوده و درواقع مسئله ای که فلاتر و توسعه دهنده های flutter قصد حل اون رو دارن سالیان درازی در این صنعت وجود داشته و کسب و کارها با اون گلاویز بودن، و میتونیم این موضوع رو در توسعه نرم افزار های ویندوز و مک هم اغلب ببینیم.

رقبای دیرین فلاتر

قبل از اینکه flutter این نوزاد تازه متولد شده‌ی گوگل پا به میدان نبرد بذاره ، شرکت های بزرگی مثل فیسبوک با react-native و Ionic ، Cordova و … در این زمینه تلاش کردن و تا حدی هم میشه گفت موفق بودن و سهمی از بازار توسعه نرم افزار رو گرفتن ، برای فهم عمیق تر از اینکه تفاوت اصلی این ابزار ها از کجا داره بوجود میاد لازمه با چند مفهوم در ابتدا آشنا بشیم:

 

برنامه نویسی Native یا نیتیو

به نوعی منظور از نیتیو رو اینجا میشه به زبان مادری هم تشبیه کرد، مثلا یک تهرانی احتمالا زبان مادریش فارسی هست و این باعث میشه که این زبان رو بصورت کامل تر و با جزییات خیلی عمیقی که شاید ریشه در فرهنگ و آداب و رسوم این زبان و منطقه داره، آشنا بشه و در نتیجه بتونه ارتباط بهتری با مردم اون منطقه بگیره. در برنامه نویسی هم تا حد زیادی این مفهوم وجود داره برای مثال اگر برنامه نویسی موبایل برای سیستم عامل اندروید بصورت نیتیو با جاوا یا کاتلین انجام میگیره به این معنی  هست که شرکت سازنده این سیستم عامل (گوگل) همه ی ابزار های توسعه مورد نیاز برای این سیستم عامل رو بوسیله این زبان ارائه داده و به همین شکل شرکت اپل برای IOS بوسیله‌ی زبان سوئیفت یا Objective-c 

cross platform یا کراس پلتفرم

به این معنی که کد نوشته شده بدون نیاز به تغییر زیاد قابلیت اجرا در سیستم عامل های مختلف رو داشته باشه ، در واقعا این همون آرزو همیشگی کسب و کارهاست که بتونن ویژگی ای که در حال کسب درآمد ازش هستن رو بدون دردسر زیاد در همه ی سیستم عامل ها داشته باشن و شاید بتونیم زبان جاوا و ماشین مجازی ای که توسط شرکت اوراکل توسعه پیدا کرد JVM (JAVA VIRTUAL MACHINE) رو یکی از قدیمی های این ایده بدونیم و فلاتر ، ری اکت نیتیو، KMM و ابزار های از این دست هم در تلاش برای تحقق همین ایده هستن

 

تفاوت فلاتر با  نیتیو و ری‌اکت‌نیتیو  از کجا شروع میشه

همونطور که در بالا گفته شد، در برنامه نویسی نیتیو، همه‌ی اونچه که شما باهاش سروکار دارید زبانی هست که خالق اون سیستم عامل معرفی کرده ، توسعه داده و به برنامه نویس های خودش پیشنهاد داده و اگر یک سازمان یا فرد قصد داشته باشه برای اندروید و Ios هم زمان اپلکیشن داشته باشه چاره ای نداره جز اینکه یکبار اپلیکیشن خودش رو با زبان جاوا یا کاتلین توسعه بده و یکبار هم بصورت کامل این کارو با سوئیفت انجام بده. 

در اینجا فیسبوک با معرفی react-native سعی کرد این مسئله رو به روش خودش حل کنه، به این صورت که برنامه نویس ها بدون اینکه لازم باشه دو زبان رو برای داشتن دو خروجی یادبگیرن ، صرفا زبان جاوا اسکریپت رو یادبگیرن و اونچه که با اون انجام میدن توسط فریمورک react native تبدیل بشه به زبان های نتیتیو اون سیستم عامل که در اینجا میتونید چندتا از پروژه هایی که از این تکنولوژی استفاده کردن رو ببینید.

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

 

 

 

2 پاسخ

  1. تو فلاتر باید زبان دارت یاد گرفت درسته؟
    خیلیا میگن دارت حتی از جاوا سخت تره و کلا استفاده از فلاتر رو رد میکنن
    به عنوان کسی که تجربه استفاده ازش رو داشتید تاییدش میکنید؟

    1. اره همینطوره و بایستی زبان دارت رو یاد گرفت، در مورد اینکه دارت نسبت به جاوا سخت تر هست یا نه نمیتونم حرف قطعی ای بزنم ، توی جاوا معمولا برای اینکه به ماشین توضیح بدیم چی میخوایم مجبوریم کد نسبتا بیشتری بنویسیم و حتما یکسری قواعد رو بدونیم و رعایت کنیم که توی زبان دارت این سخت گیری ها به نسبت خیلی کمتره و خیلی خودمونی تر میشه به ماشین فهموند چی میخوایم ، از طرفی جاوا قدمت چندین ساله داره و خیلی لایبراری های خفن و کاربری داره که توی مسیر پروژه ادم رو جلو میندازه ، در کل این دوتا رو نباید کنار هم بذاری هرکدومش یه ابزاره که در جای خودش فقط میتونه مفید باشه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *