Flutter, انقلابی در برنامه نویسی اندروید
یدر سال ۲۰۱۷, شرکت Google در کنفرانس Google I/O یک ابزار جدید open source برنامه نویسی موبایل به نام Flutter را معرفی کرد.
در ابتدا ممکن است Flutter را در کنار باقی ابزار مشابه مانند React Native, Xamarin, Ionic, PhoneGap قرار دهیم. استفاده از هریک از این ابزار مزایا و معایبی دارد. اما در این مقاله قصد داریم تا قدرت Flutter نسبت به ابزار مشابه آن را بررسی کنیم. Flutter امکانات بسیار خوبی دارد که در نگاه اول برای برنامه نویسان اندروید ممکن است بسیار جذاب باشد.
Flutter چیست؟
Flutter یک Software Development Kit و یا به اختصار SDK است که فرآیند تولید نرم افزار هایی با کارایی بالا و ظاهری زیبا را تسهیل مینماید. این SDK هم برای سیستم عامل های IOS و اندروید قابل استفاده است. Flutter ابزاری برای برنامه نویسان موبایل است تا بتوانند برنامه هایی با ظاهر زیبا و به صورت Cross platform ایجاد کنند. پروژه هایی که خروجی آنها بر روی انواع platform ها قابل اجرا باشد را Cross platform گویند.
در Flutter از زبان برنامه نویسی Dart که توسط شرکت Google توسعه یافته است, استفاده میکند. اگر تا پیش از این از زبان جاوا برای برنامه نویسی اندروید استفاده میکردید, این زبان بسیار به زبان جاوا نزدیک است. همچنین بجای استفاده از XML, از Layout Tree در Flutter استفاده میشود. Layout Tree ها با استفاده از Widget ها شکل میگیرند و برای پیاده سازی اجزای ظاهری باید آنها را در Widget ها پیاده سازی کنیم.
اکنون به ویژگی های کدنویسی آن میپردازیم.
Hot Reload
یکی از ویژیگی های بسیار کاربردی در برنامه نویسی اندروید, امکان Instance Run است که وقتی یک برنامه را Build میکنیم تنها کد هایی که نسبت به نسخه قبل تغییر یافته اند, در برنامه اعمال میشوند. به این ترتیب اجرای کد نوشته شده بالاتر میرود. در Flutter نیز این امکان وجود دارد. Instance run در Flutter به اندازه بارگذاری مجدد یک صفحه وب سریع است. اما Hot Reload محدود به سرعت اجرا نمیشود. اگر برنامه شما یکسری تغییرات در ظاهر خود داشته باشد که توسط کاربر استفاده کننده ایجاد شده است, Hot Reload این تغییرات را نگهداری میکند. برای مثال فرض کنید یک Label داریم و با کلیک بر روی یک دکمه رنگ آن به رنگ سبز تغییر کرده است. حال اگر برنامه را مجددا اجرا کنیم, رنگ Label در آخرین وضعیت خود, یعنی رنگ سبز باقی میماند.
مجموعه ای از آیتم های Material
از دیگر ویژگی های این Framework این است که مجموعه ای از آیتم های Material را در خود دارد. دو دسته آیتم ظاهری در این Framework قرار دارد که Material Design برای اندروید و Cupertino برای IOS استفاده میشود. انتخاب و پیاده سازی هریک از این اجزا ظاهری بسیار آسان است و به این ترتیب به برنامه نویسان کمک میکند تا در زمان کد نویسی صرفه جویی کنند. نکته قابل توجه در آیتم های ظاهری Flutter این است که دیگر نگرانی بابت تغییر ابعاد صفحات در گوشی های گوناگون نیستیم و کد های نوشته شده در ابعاد مختلف تغییر نمیکنند.
گاهی برنامه نویسان نیاز دارند تا Theme برنامه های IOS با Theme برنامه های اندروید متفاوت باشد. این امکان نیز در Flutter قرار داده شده است که بتوانیم برای یک کد مشخص, Theme های گوناگونی را تنظیم کنیم.
Package ها
یکی از مواردی که برنامه نویسان برای شروع یک زبان برنامه نویسی به آن اهمیت میدهند, تعداد Package هایی است که در آن زبان قابل استفاده است. Flutter تعداد زیادی از package ها مانند Firebase, Http Request و تصاویر را پشتیبانی میکند.
در این مقاله سعی بر این شد تا با Flutter آشنا شویم. در آینده بیشتر به این ابزار برای برنامه نویسی موبایل میپردازیم.
مطالب زیر را حتما مطالعه کنید
حل معادلات در MATLAB – بخش اول (معادلات معمولی)
ساختمان داده درخت
Open/Closed Principle در قوانین Solid
احراز هویت توسط JWT
توابع در زبان برنامه نویسی Kotlin
Becoming a better designer
4 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
فکر کنم اشتباه متوجه شده بودم
منظورم بجای native برنامه های Hybrid بود
منظورم این هست که برنامه خروجی که میده کارایش مثل برنامه های که با جاوا و swift نوشته میشه هست؟
سلام دوست عزیز. ممنون از همراهیتون. برنامه های hybrid یکی از مزیت هاش همونطور که خودتون گفتین همینه که میشه با یک کد خروجی های مختلفی گرفت. مطمعنا توی پیشرفت پروژه ها خیلی تاثیر داره. تقریبا هم دارن خوب میشن و از لحاظ کارایی توی بعضی از کار ها هم سطح native هستند. اما خب مطمعنا native جای خودش رو همیشه داره و این بستگی به مدیر پروژه و تیم اجرایی و هزینه های نگهداری نرم افزار داره که بخوان انتخاب کنن که روی native کار کنن یا hybrid. یکی از مزایایی خیلی خیلی خوب flutter اینه که برای پیاده سازی UI های پیچیده خیلی کاربردیه و سرعت بالا میبره. دقیقا همون چیزی که توی خود پروژه flutter بهش اشاره شده. خیلی از library ها هم داره که میتونه برای پروژه ها استفاده بشه. فعلا که نسخه اصلی اون ارائه نشده که بشه کامل روش تصمیم گرفت و همینطور باید یه مدتی باهاش کار بشه و پروژه های سطح بالایی باهاش پیاده سازی بشه که تا بتونیم راجبش قضاوت کنیم. اما چیزی که از کلیت اون و مقالاتی که راجع بهش هست میشه براورد کرد اینه که میتونه ابزار قدرتمند و خوبی باشه.
بازم اگر جایی ابهامی داشت بفرمایید.
ممنون که نظرتون با ما درمیون گذاشتین
سپاس فراوان
منتظر مقاله های آیندتون در مورد این مبحث هستم
درود
خسته نباشید
خیلی عالی بود
میخواستم بدونم به نظرتون سویچ کنم روی Flutter ؟
شنیدم که کارایی برنامه های native پایینه اما خب مزیت فوق العادش اینه که روی اندروید و ios اجرا میشه اپ (یکی از معظل های اصلیم همینه)
و آیا واقعا کارایی برنامه های native پایینه ؟؟؟ چون شنیدم اینستاگرام هم native هست.
پیشاپیش ممنون از توجهتون.