سالهای گذشته فریمورکهای زیادی با شعار Multi Platform و اینکه "یک بار بنویس و چند خروجی بگیر" معرفی شدند و من که سالهای زیادی با استفاده از جاوا، اپلیکیشنهای اندروید میساختم، دنبال یک راهحل خوب برای توسعه سریعتر و با Performance خوب میگشتم؛ ولی هر بار که سمت استفاده از این نوع فریمورکها (مثل React Native یا Xamarin و...) میرفتم، میفهمیدم که شعارهاشون فقط در حد حرف هستند و در واقعیت عملی نمیشوند.
من دیگه نسبت به همه این فریمورکها بدبین شده بودم و یک جورهایی امیدم رو از دست داده بودم. حتی خیلیها از من درباره فلاتر (Flutter) میپرسیدند و من میگفتم این هم حتما یکی مثل بقیه هست و فایده نداره. جالب اینجاست که همه میگفتن فلاتر، فوق العاده و یک شاهکاره هست و خیلی تعریفهای دیگه. ولی وقتی به اونها میگفتم نمونه کاری دارید؟ جوابشون نه بود (فقط شنیده بودن فلاتر خوبه). چون تجربه همین تعریف و تمجیدها رو از React Native هم داشتم، میگفتم پس دوباره این بچهها یه پروژه Hello World با فلاتر زدند، جو گرفتتشون و میگن عالیه!
تا اینکه یه روز که سرم خلوت شده بودم و وقت آزاد داشتم گفتم برم ببینم این فلاتر که همه میگن عالیه آیا واقعا میتونه به شعارهاش عمل کنه یا نه! من طبق تجربیاتم هیچوقت با توسعه یک اپلیکیشن ساده، یک فریمورک رو قضاوت نمیکنم و تا اپلیکیشن درست حسابی باهاش ننویسم، نمیتونم درباره ی مزیتها و معایبش نظر بدم.
اولین پروژه با فلاتر - جذاب و دوست داشتنی
خلاصه سرتون رو درد نیارم، چون شنیده بودم قدرت فلاتر در پیاده سازی رابط کاربری نهفته شده، رفتم و پیچیدهترین و زیباترین طرحی که توی Dribble پیدا کردم (عکسش رو پایین قرار دادم) رو شروع کردم به پیاده سازی و در حین پیاده سازی اینطوری ????? شدم! انگار که نیمهی گمشده ی خودم رو بعد از سالها پیدا کرده بودم.
همه کسانی که تجربه برنامه نویسی موبایل (IOS و Android) دارن، با دیدن طرح بالا متوجه میشن که چقدر پیادهسازی همچین طرحی سخت و دشوار هست. ولی جالبه بدونید یادگیری و پیاده سازی این طرح با فلاتر برای من که همزمان با پیاده سازی داشتم یاد میگرفتم فقط ۲ روز طول کشید!
پروژه تلوبیون با فلاتر - چالشی سنگین در ۳ هفته
بعد از این پروژه فهمیدم فلاتر (Flutter) با فریمورکهای معروف قبلی خیلی فرق داره و واقعا یک انقلاب در توسعه اپلیکیشنهای موبایل و وب و حتی دسکتاپ ایجاد میکنه. بنابراین شروع کردم به تحقیقهای بیشتر و عمیقتر که ببینم نحوه کارش چطور هست. در حال تحقیق و تفحص بودم که یک پیشنهاد کاری جذاب از تلوبیون دریافت کردم و عضوی از تیم اونجا شدم. اینکه میگم جذاب به این دلیل بود که ۱۴ میلیون نصب داشتند و رتبه الکسای ۳ در ایران که واقعا تجربه کاری بزرگی بوده و هست.
اونجا به مدیر فنی (CTO) پیشنهاد کردم از فلاتر استفاده کنیم و مزیتهاش رو که گفتم با استقبال روبرو شدم و در مدت تنها ۳ هفته کل برنامه رو با فلاتر بازنویسی کردم و در نهایت منتشرش کردیم. این پروژه چالش واقعا بزرگی برای من بود و از طرفی ریسک زیادی هم داشت، چون تا به حال هیچ برنامهای در ایران با ۱۴ میلیون نصب فعال، با فریمورک نوپایی مثل فلاتر پیاده سازی نشده بود.
و اما در ادامه با توجه به تجربیاتی که داشتم، همه چیز رو از اول و کامل توضیح میدم.
فلاتر (Flutter) چیست؟
فلاتر یک فریمورک مشهور برای توسعه اپلیکیشنهای موبایل، وب و دسکتاپ هست که در سال ۲۰۱۷ اولین نسخهاش توسط گوگل منتشر شد. اگر اولین صفحه از مستندات فلاتر رو مطالعه کرده باشید متوجه خواهید شد که شرکت گوگل، فلاتر رو یک Ui Toolkit معرفی کرده (ابزاری برای توسعه رابط کاربری).
چرا فلاتر ابزاری برای توسعه رابط کاربری معرفی شده؟
بر خلاف فریمورکهای مشهور دیگه در زمینه توسعه اپلیکیشنهای موبایل، فلاتر کدهای مربوط به پیاده سازی رابط کاربری شما رو تبدیل به کدهای پلتفرم Native نمیکنه بلکه تمامی اجزای تشکیل دهنده رابط کاربری رو خودشون از صفر پیاده سازی کردند و مستقیما توسط یک موتور گرافیکی ۲ بعدی به نام Skia رندر میشن. اما بقیه بخشهای تشکیل دهنده اپلیکیشن مثل کار با apiهای پلتفرم (مثلا بلوتوث، دوربین یا file manager) کاملا با زیرساخت نیتیو پیاده میشن. به همین دلیل گوگل، فلاتر رو یک فریمورک Ui معرفی میکنه. طبق تجربهای که من داشتم، سرعت رندر رابط کاربریهای پیچیده و انیمیشنها، سرعتی حتی بیشتر از native در اندروید داشت. دلیلش هم اینه که درصد بسیار زیادی عملیات رندرینگ توسط GPU و موتور گرافیک Skia انجام میشه.
اسکیا Skia چیست؟
اسکیا (Skia) یک کتابخانه متن باز (Open Source) ۲ بعدی است که روی پلتفرمهای مختلف که سخت افزار و نرم افزاهای مختلفی دارند، تونایی اجرا دارد. در واقع Skia مثل یک موتور گرافیکی (Graphic Engine) عمل میکنه و جالبه بدونید در نرم افزارهایی مثل Google Chrome، Firefox، Android، Flutter، Chrome Os و بسیاری از پلتفرمهای دیگه، برای اجرای انیمیشنها و رندرینگ از اسکیا استفاده میکنند.
زبان دارت (Dart) چیست؟
دارت زبانی هست که توسط گوگل برای توسعه نرم افزارهای سمت کلاینت طراحی شد ولی برای توسعه بک اند (Back End) وب و اپلیکیشنهای دسکتاپ هم قابل استفاده است. دارت یک زبان شی گرای کامپایلری با قابلیت Garbage Collection سریع با شیوه نگارش شبیه C هست. این زبان هم میتونه به زبان ماشین و هم جاوا اسکریپت کامپایل بشه.
زبان Dart قابلیتهای منحصر به فردی داره که بسیار برای من جذاب بودند، مثلا اینکه به دو روش JIT (JUST IN TIME) و AOT (Ahead Of Time) میتونه کامپایل بشه اونم مستقیما به زبان ماشین!
JIT: یعنی زمان اجرا. این کامپایلر رو موقع توسعه و تست اپ استفاده میکنید و به این شکل کار میکنه که یک ماشین مجازی (Virtual Machine) ساخته میشه و کدهای شما رو زمان اجرا به زبان ماشین کامپایل میکنه و از قابلیتهاش اینه که بعد از هر تغییر با ذخیره کدها، تغییرات روی پروژه لحاظ میشه. همچنین به راحتی میتونید debug کنید. سرعت اجرای نرم افزار در jit به دلیل کامپایل زمان اجرا بسیار پایینتر از AOT هست. به همین دلیل فقط مناسب فاز توسعه و تست نرم افزار هست.
AOT: این نوع کامپایل رو باید زمانی استفاده کنید که مرحله توسعه و تست نرم افزارتون به اتمام رسیده و میخواید اپلیکیشن یا کدهای بک اند خودتون رو منتشر کنید. این کامپایلر تمامی کدهای شما رو بازبینی و سپس در یک فاز مستقیما به زبان ماشین تبدیل میکنه. به همین دلیل بعد از کامپایل به روش AOT سرعت شروع و اجرای نرم افزارتون به شدت افزایش پیدا میکنه.
[info] دارت (Dart) فقط برای توسعه اپلیکیشنهای موبایل استفاده نمیشه بلکه برای توسعه بک اند و یا فرانت اند (جاوا اسکریپت) هم میشه ازش استفاده کرد که دیگه از توضیح بقیه روشهای کامپایل صرف نظر میکنم چون از حوصله بحث خارجه[/info]
مسیر یادگیری فلاتر (Flutter)
برای یادگیری فلاتر باید این مسیر رو دنبال کنید:
آشنایی به مبانی کامپیوتر: مفاهیمی مثل نحوه عملکرد و کاربرد کامپایلر یا مباحث سادهتر مثل آشنایی با نحوه عملکرد سیستم عامل، CPU، Memory و ...
تسلط به مفاهیم شی گرایی
زبان دارت (Dart)
آشنایی با نحوه عملکرد فریمورک Flutter
آشنایی با مفاهیم State Management و Widget
کسب تخصص در زمینههای مختلف فریمورک فلاتر مثل معماریهای نرم افزاری، مدیریت Stateها، پلاگینها و ...
چرا گوگل زبان Dart رو برای برنامه نویسی با فلاتر انتخاب کرد؟
برای جواب به این سوال بهتره که به مزیتهای این زبان بپردازیم، که در ادامه متن نوشتم.
مزایای زبان دارت (Dart)
قابلیت Hot Reload که سرعت توسعه نرم افزار رو به شکل قابل توجهی افزایش میده.
یادگیری آسان برای مبتدیها
طراحی، توسعه و پشتیبانی توسط شرکت گوگل و Community به دلیل Open Source بودن
Null safety و البته Type safe بودن
Object Allocation و Garbage Collection پرسرعت و قدرتمند، در حالی که یکی از مشکلات زبان جاوا سرعت پایین Garbage Collection اون بود که وقتی زیاد اجرا میشد، باعث پایین آمدن Frame Rate در اپلیکیشنهای اندرویدی هم میشد و کاربر اصطلاحا لگ رو احساس میکرد.
فلاتر (Flutter) بهتره یا نیتیو (Native)؟
میتونم بگم این سوال اساسا اشتباهه، چرا؟ چون فلاتر کاملا native هستش، یعنی هر آنچه که با زبان Dart بنویسید مستقیما به زبان ماشین تبدیل میشه و هر آنچه که نیاز به ارتباط با apiهای پلتفرم مثلا دوربین (Camera) یا بلوتوث داشته باشه، باید براش پلاگین نوشته بشه و اون پلاگین بر اساس پلتفرمی که روش اجرا میشه و یک کانال (Channel) به کدی که به زبان Native اون پلتفرم نوشته شده، ارتباط برقرار کنه. زبان native در سیستم عامل اندروید جاوا (Java) یا کاتلین (Kotlin) هستش و در IOS سوییفت (Swift) یا Objective c.
از لحاظ پرفورمنس (Perfromance) فلاتر بهتره یا نیتیو؟
سرعت رندر المانهای صفحه، افکتها و انیمیشنهای فلاتر خیلی بهتر از نیتیو هست (دلیلش رو در همین مقاله توضیح دادم). پرفورمنس بخشهای دیگه اپلیکیشن مثل apiهای پلتفرم (مثلا دوربین یا فایل منیجر) با نیتیو هیچ فرقی نداره چون عملا در پشت صحنه کدهای نیتیو این نوع عملیات رو انجام میدن.
من Native Developer هستم، آیا پیشنهاد میکنید به فلاتر سوئیچ کنم؟
بله، حتما! این فریمورک آینده روشنی داره و در حال حاضر بسیاری از شرکتهای خارجی و ایرانی از این تکنولوژی استفاده میکنند. ولی اینطور نیست که فکر کنید هر چی در برنامه نویسی native یاد گرفتین رو باید بریزین دور و زحماتتون به هدر رفته! داشتن مهارت کدنویسی native در فلاتر یه مزیت رقابتی بزرگ برای شما محسوب میشه.
آیا فلاتر جایگزین زبانهای native میشه؟
خیر، خیلی از افراد فکر میکنن که با یادگیری فلاتر دیگه اصلا نیازی به زبانهای native پلتفرمی که روش کار میکنن، ندارن. در حالی که اینطور نیست! مثلا برنامه نویس اندروید ممکنه بازهم به تواناییهای خودش در زبان جاوا یا کاتلین نیاز پیدا کنه. مثلا شما وقتی بخواین قابلیت دانلود فایل رو به اپ اضافه کنید، نیاز به چند api پلتفرم اندروید یا ios دارید که یکی قابلیت ذخیره سازی اطلاعات هست و دیگری قابلیت اجرای عملیات در بک گراند گوشی کاربر. در همچین سناریویی باید این قابلیت رو برای هر پلتفرم به صورت native پیاده سازی کنید. برای بسیاری از سناریوهای این چنینی، کدهای آماده و متن باز موجود هست که توسط افرادی قبل از شما پیاده سازی و به اشتراک گذاشته شده و حتی فلاتر پلاگینهای مختلفی برای سهولت کار شما پیاده سازی کرده که از آنها میتونید استفاده کنید. اما در شرایطی که نیاز به Customization زیادی داشته باشین دیگه باید خودتون دست به کد با زبان native بشین.
برای ساخت اپ با فلاتر باید زبانهای نیتیو رو هم بلد باشیم؟
خیر، در اکثر پروژههای سطح کوچک تا متوسط نیازی به استفاده از زبانهای نیتیو (مثل جاوا، کاتلین، سوئیفت و objective c) نیست و پلاگینهای بسیار زیادی در سطح اینترنت موجود هست که شما رو از نوشتن کدهای نیتیو بی نیاز میکنه. بنابراین ضروری نیست ولی مزیت محسوب میشه.
چقدر طول میکشه زبان دارت (Dart) رو یاد بگیریم؟
اگر تجربه برنامه نویسی با زبانهای جاوا، کاتلین، جاوا اسکریپت و یا ++C رو داشته باشین، نهایتا ۳ روز طول میکشه، ولی اگر تا بحال هیچ تجربه برنامه نویسی نداشتین ۱ ماه.
چقدر طول میکشه بتونیم برنامه نویس فلاتر (Flutter) بشیم؟
اگر تجربه برنامه نویسی موبایل مثل Android یا IOS داشته باشید یا با فریمورکهای وب مثل React Js، Vue Js، Angular کار کرده باشید، ۱ تا ۳ ماه زمان میبره تا برنامه نویس فلاتر بشید.
فلاتر چقدر آینده داره؟
به دلیل Community فعال و گسترده، سرعت توسعه این فریمورک به طرز باورنکردنی سریع هست و از طرف دیگه زیر ساخت فنی خوب و پشتیبانی گوگل، مطمئنا بخش زیادی از آینده برنامه نویسی موبایل و وب و حتی دسکتاپ به این فریمورک دوست داشتنی تعلق داره.
با فلاتر میشه وب سایت ساخت؟
بله میشه. نمونه وب سایتهای ساخته شده با فلاتر رو از لینک زیر میتونی ببینی. البته طبق تجربه من فعلا گزینه مناسبی نیست، به دلیل اینکه هنوز issueهای Performance مختلفی داره و از SSR (Server Side Rendering) پشتیبانی نمیکنه که برای وب سایتهایی که سئو براشون مهمه، عیب بزرگی محسوب میشه.
فلاتر (Flutter) از نظر من در حال حاضر یکی از بهترین روشهای توسعه اپلیکیشنهای موبایل هست. اگه علاقه مند به برنامه نویسی در این حوزه هستین حتما پیشنهادش میکنم?.
در مورد سوال بعضی از دوستان در مورد منابع فارسی یادگیری فلاتر باید بگم که متاسفانه منابع فارسی خوبی در حال حاضر نمیشناسم، اکثرا ناقص و یا قدیمی هستن ولی من براتون بهترین پیشنهاد رو دارم. دوره متخصص فلاتر رو چند وقتی هست شروع کردم و تمام تجربیاتم رو در اون تدریس کردم. حتما پیشنهاد میکنم ببین و شروع کن :
خوشحال میشم شما هم تجربیات، سوالات و یا نظرات خودتون رو برای ما بنویسید و با بقیه به اشتراک بگذارید. ?
۹۱ دیدگاه
علیرضا۱۸ آذر ۱۴۰۲، ۰۸:۰۲
سلام استاد میشه برای بک اند از لاراول هم استفاده کرد
ممنونم
نازنین کریمی مقدم۱۸ آذر ۱۴۰۲، ۱۲:۵۵
درود
بله میشه و بهتره که در کنارش به خود php هم مسلط باشید.
محمد مهدی۰۱ مهر ۱۴۰۲، ۲۳:۱۱
سلام استاد وقت بخیر جسارتا برای بک اند فلاتر چه زبانی مناسبتر هست انتخاب کنم من با دارت شروع کردم و هیچ زبان دیگه ای رو تا به حال مطالعه نکردم
نازنین کریمی مقدم۲۲ مهر ۱۴۰۲، ۱۰:۱۷
درود
برای فلاتر دارت کافیه. نگران نباشید.
فاطمه مظفری۱۳ تیر ۱۴۰۲، ۱۴:۴۶
سلام من سوالم اینه که با فلاتر میشه یه اپلیکیشن رو کامل پیاده سازی کرد یا فقط بخش ui رو میشه پیاده سازی کرد؟؟؟؟
نازنین کریمی مقدم۲۳ تیر ۱۴۰۲، ۱۸:۲۱
درود
خود اپ کامل قابل پیاده سازیه اما برای بک اند باید یک زبان مثل php، گو و... رو انتخاب کنید.
۱۲ تیر ۱۴۰۲، ۱۹:۴۹
سلام برای بک اند فلاتر با پایتون باید چه فریمورکی رو یاد بگیرم؟
نازنین کریمی مقدم۲۳ تیر ۱۴۰۲، ۱۷:۵۲
درود
فلاتر خودش یک فریمورک هست که با زبان دارت کار میکنه و پایتون هم یک زبان برنامه نویسی هست که در سمت بک اند از جنگو و فلسک کمک میگیره.
اول باید انتخاب کنید که میخواید فرانت رو بزنید یا بک اند رو و بر این اساس باید به ترتیب پیش برید.
۰۷ آبان ۱۴۰۱، ۰۵:۰۸
ببخشید من برای استفاده از بارکد اسکنر در فلاتر به این خطا میخورم
Error loading optional module com.google.android.gms.vision.barcode: com.google.android.gms.dynamite.dynamitemodule$loadingexception: no acceptable module found. Local version is 0.
از شکن استفاده میکنم و مانیفست هم هم گذاشتم این com.goole... رو
شما تجربشو داشتین میتونم ازتون کمک بگیرم هزینشم تقبل میکنم
بعصی نوشتن باگ گوگل بعضی low storage بعضی vpn
نازنین کریمی مقدم۰۹ آبان ۱۴۰۱، ۱۹:۴۷
درود
اگر اخیرا به این خطا میخورید احتمالا برای محدودیتهای نت هست. بهتره گوگل پلی و سرویسهای مربوط بهش آپدیت باشه و وی پی ان دیگری رو هم امتحان کنید.
فردین غلام زاده دیزجی۰۷ مرداد ۱۴۰۱، ۱۸:۲۰
پلتفرمهای کاربردی کمکد مانند Mendix، Quixy و Microsoft PowerApps جایگزینهایی برای ابزارهای پیچیده توسعه نرمافزار مدرن هستند.در وب و موبایل آیا بازار کار موبایل رو تحت الشعاع قرار نمیدن؟؟؟ و باعث افت شدید بازار کار برنامه نویسی نمیشه؟؟؟؟؟ چون شرکتها میتونن بدون یا با دانش کم برنامه نویسی نرم افزار مورد نیاز خود شرکت رو تولید کنند ؟؟؟؟؟؟
نازنین کریمی مقدم۰۸ مرداد ۱۴۰۱، ۰۳:۳۱
درود
نه واقعا.
شما وارد بازار کار بشید میبینید این پلتفرمها اصلا برای کارفرما انتخاب محسوب نمیشن و ترجیح میدن نیروی کار از پایه و با دست باز کدنویسی کنه و برنامه رو تولید کنه.
MohsenFaramarziyan۲۴ مهر ۱۴۰۰، ۰۸:۰۳
بسیار عالی و کاربردی بود استاد عزیز از اونجایی که فلاتر یه فریم ورکی هسش که کراس پلتفرم هسش خواستم بدونم آیا در طول دوره صرفا تمرکز روی سیستم عامل اندروید هستش یا خروجی ios و دکستاپ هم مد نظر گرفته شده ؟ بازم ممنونم
حانیه۱۶ مهر ۱۴۰۰، ۲۲:۳۳
خیلی ممنون از توضیحاتتون
من قبلا اندروید کار کردم و در حال حاضر دوره متخصص UI رو دنبال میکنم و قصد داشتم با توجه به علاقم تخصصی توی این زمینه کار کنم ، الان برام سوال شده که با توجه به پیشی گرفتن فلاتر از جاوا و کاتلین آیا بازار کار و در کل اهمیت طراحی UI هم کمتر میشود؟
با توجه به این که تجربه ی برنامه نویسی اندروید دارم آیا توصیه به یادگیری فلاتر به جای ادامه دادن طراحی IU میکنید؟
amir۲۴ شهریور ۱۴۰۰، ۱۸:۳۶
فیلمهای فلاتر بصورت فایلهای ویدئویی قرار میدید؟
Turaj Mokhtari۳۱ مرداد ۱۴۰۰، ۱۰:۲۶
چه جوری میتونم ثبت نام کنم برا دوره فلاتر
فائقه نامور۰۲ شهریور ۱۴۰۰، ۱۱:۳۰
سلام
ثبتنام دوره <a href="https://7learn.com/course/flutter-expert" rel="noopener" target="_blank">آموزش فریم ورک فلاتر</a> شروع شده است و میتوانید از لینک قرار داده شده اقدام نمایید.
نیما۱۳ مرداد ۱۴۰۰، ۱۵:۲۷
درود وقت بخیر
دوتا سوال داشتم از خدمتتون:
۱- با فلاتر پس میتونیم یک برنامه واحد رو برای اندروید و ios خروجی بگیریم؟
۲- اگر اپ وب را با لاراول پیاده کرده باشیم میشه اپ فلاتر رو به اون سایت وصل کنیم و ازش سرویس بگیریم؟
mr.mr4545۰۱ مرداد ۱۴۰۰، ۱۵:۲۶
سلام دوره حدودا كي قرار ميگيره ممنون
فائقه نامور۰۲ شهریور ۱۴۰۰، ۱۱:۳۱
سلام
ثبتنام دوره <a href="https://7learn.com/course/flutter-expert" rel="noopener" target="_blank">آموزش فلاتر</a> شروع شده است و میتوانید از لینک قرار داده شده اقدام نمایید.
محمد۲۸ تیر ۱۴۰۰، ۰۷:۱۲
سلام استاد نظر خودتون چیه دوره متخصص اندروید رو ببینیم یا فلاتر برای توسعه اپلیکیشن هامون
با فلاتر میشه اپلیکیشن هایی مثل اینستا یا یوتیوب و تلگرام به همون بزرگی زد؟
من یبار نظر دادم ولی تایید نشده هنوز، گفتم دوباره بپرسم، چون مهمه برام
محمد۲۸ تیر ۱۴۰۰، ۰۱:۰۲
سلام استاد امیدوارم حالتون خوب باشه
من به برنامه نویسی اپلیکیشن برای موبایل علاقه دارم ولی مشکلی پیش روم دارم اینه که نمیدونم با چه زبان یا فریمورکی کار کنم و یاد بگیرم. راستش بیشتر از شاید صدتا مقاله خودندم در مورد زبانهای مختلف و... کلی تو گوگل سرچ کردم ولی با اطلاعاتی بیشتری روبه رو شدم.
سوالی که برام هست اینه که با چه زبانی شروع کنم که بتونم اپلیکیشنهای خوبی طراحی کنم، هم اندروید و هم ios.بیام زبان جاوا یا کاتلین که native هستند رو یاد بگیرم و باهاش اندروید کد بزنم و برای ios هم جدا native کد نویسی کنم مثلا با سوئیفت یا بیام با فریمورکهای زیادی که هستند هم برای اندروید وهم ios کد نویسی کنم.
یا اصلا با زبانهای c# یا پایتون کار کنم. یه مسئله ای که هست من چون به <a href="https://7learn.com/blog/what-is-ai" rel="noopener" target="_blank">هوش مصنوعی</a> هم علاقه زیادی دارم، خوب گفتم من زبان پایتون رو که یاد میگیرم بیام در با همون پایتون و کتابخانه کیوی برنامم رو بزنم، ولی دیدم پایتون برا اپلیکیشن زیاد زبان خوبی نیست.
خلاصه اتقدر با اطلاعات زیادی روبرو شدم که نمیدونم دقیقا از کجا شروع کنم، اگر میشه لطفا راهنمایی کنید که با چه زبان و فریمورکی شروع کنم و یاد بگیرم و اینکه زبان یا فریمورکی باشه که بشه باهاش اپلیکیشنهای بزرگ رو طراحی کرد، نه فقط برای اپلیکیشنهای معمولی، مثلا بشه باهاش اپلیکیشنی مثل اینستا یا تلگرامو یوتیوب طراحی کرد. ببخشید که طولانی شد ممنون میشم راهنمایی کنید، خیلی وقته درگیر اینم?
mr.mr4545۲۴ تیر ۱۴۰۰، ۱۹:۱۶
سلام ايا از getx هم اسفاده ميكند اخه الان خيلي داره محبوب ميشخ و سرعت توسعه باهاش بالا . راحت تره
پوریا۲۴ تیر ۱۴۰۰، ۰۹:۴۵
ببخشید دوره ای که وعده دادین کی شروع میشه با توجه به اینکه از 15 تیر ما گذشته و نزدیک به انتهای تیر ماه هستیم.
فائقه نامور۰۲ شهریور ۱۴۰۰، ۱۱:۳۱
سلام
ثبتنام دوره <a href="https://7learn.com/course/flutter-expert" rel="noopener" target="_blank">آموزش برنامه نویسی فلاتر</a> شروع شده است و میتوانید از لینک قرار داده شده اقدام نمایید.
محمد جواد۲۱ تیر ۱۴۰۰، ۱۴:۵۲
دوره کی شروع میشه؟
فائقه نامور۰۲ شهریور ۱۴۰۰، ۱۱:۲۹
سلام
ثبتنام دوره شروع شده و برای ثبتنام میتونید از لینک زیر اقدام کنید
<a href="https://7learn.com/flutter/" rel="noopener" target="_blank">ثبتنام دوره متخصص فلاتر</a>
P۱۵ تیر ۱۴۰۰، ۲۲:۳۸
سلام به نظرتون دوره کی شروع میشه؟؟؟
فائقه نامور۰۲ شهریور ۱۴۰۰، ۱۱:۳۲
سلام
ثبتنام دوره <a href="https://7learn.com/course/flutter-expert" rel="noopener" target="_blank">آموزش فلاتر</a> شروع شده است و میتوانید همین حالا شرکت نمایید.
Mohammad Reza۰۶ تیر ۱۴۰۰، ۱۷:۰۶
برای من که سربازم و حدود ۳-۴ ماه دیگه تموم میکنم تخفیف ویژه میخوام بتونم با حقوق سربازیم شرکت کنم تو دوره?
نازنین کریمی مقدم۰۷ تیر ۱۴۰۰، ۰۹:۱۱
سلام
شما میتونید درخواست و شرایط تون رو در قسمت پشتیبانی سایت یا تلگرام مطرح کنید تا همکاران بهش رسیدگی کنند.
Mohammad Reza۰۵ تیر ۱۴۰۰، ۱۲:۳۸
سلام هدف من شرکتهای اروپایی دوس دارم دوره جوری باشه که بعد از گذروندنش هرشرکتی برم بالاترین حقوق بگیرم (یعنی چیزی نباشه شرکته بگه تو فلان قسمت بلد نیستی به معنای واقعی متخصص بشم)
تست نویسی باشه تو دوره عالیه
امیرحسین۰۳ تیر ۱۴۰۰، ۲۰:۲۵
سلام،فرق فلاتر با جاوا اینه که فلاتر مثل فرانت اند میمونه ولی با جاوا بک اند هم میشه کار کرد ؟
نازنین کریمی مقدم۰۵ تیر ۱۴۰۰، ۱۷:۱۹
سلام
تفاوت شون خیلی زیاده. فلاتر یک فریمورک هست اما جاوا یک زبان برنامه نویسیه. اما به طور کلی بله فلاتر برای فرانت اند استفاده میشه اما جاوا میتونه برای هم فرانت و هم بک اند استفاده شه.
توصیه میکنم مقاله <a href="https://7learn.com/tutorials/what-is-flutter" rel="noopener" target="_blank">فریم ورک flutter چیست و چه کاربردهایی دارد؟</a> رو حتما مطالعه کنید.
مهران عباسی۲۸ خرداد ۱۴۰۰، ۱۰:۰۶
سلام استاد مث همیشه عالی
. لطفا قابلیت خرید بخش بخش دوره امکان پذیر باشد. با تشکر
نیلوفر محمدی۲۷ خرداد ۱۴۰۰، ۱۱:۳۳
بسیار عالی امیدوارم به عنوان اولین تجربه ی یادگیریم بتونم دوره رو به خوبی تموم کنم و قطعا مفید هستش
احمد۲۶ خرداد ۱۴۰۰، ۱۶:۵۰
استاد بنظرتون زمان شروع دوره متخصص فلاتر چه موقع خواهد بود؟
سعید شاهینی۳۱ خرداد ۱۴۰۰، ۱۶:۳۲
سلام وقت بخیر، ۱۵ تیرماه
محمد۲۴ خرداد ۱۴۰۰، ۱۳:۳۱
ایا برای طراحان رابط کاربری هم پیشنهاد میشه ؟
چون طراحان رابط کاربری با خیلی از موارد درگیر هستند مثل کارهای گرافیکی و اصول تجربه کاربری. ( که خود همین تجربه کاربری یا حتی رابط کاربری طراحی کردنش خودش زیرشاخههای خودشو داره که بیشتر همون گرافیک دیزاین هست و اصول طراحی ) و حالا با یادگیری یک حرفه ی دیگر مثل برنامه نویسی یکم از این راه و مسیرشون دور میکنه.
شاید در نگاه اول بشه گفت"طرح رو روی فیگما بزن و چند روزه کد کن و منتشر کن و درامدتو زیاد کن" اما واقعا مسیرش سخته.
ین تجربه من بود .
اما بازم اگر شما ایده یا راه حلی دارید ؟ چون واقعا برنامه نویسی با گرافیک دنیاش فرق میکنه. هم باید خلاقیتت در سطحی باشه هم منطقت.
و فکر کنم در استخدام شرکتها نیز هر 2 رو یک شغل جدا میدونند اما بارها شنیدم که میگن فلاترم یاد بگیر درامدت و تخصصت را ارتقا بده .اما یک مدت تست کردم دیدم نتونستم.
سعید شاهینی۰۱ تیر ۱۴۰۰، ۲۱:۴۷
سلام وقت بخیر، طراحی رابط کاربری و Ux تخصصهای جداگانه هستند و برنامه نویسی هم یه تخصص دیگه. بنابراین شما فقط یک مسیر رو انتخاب کنی و ادامه بدی همش باهم نمیشه
احسان مرتضوی۲۳ خرداد ۱۴۰۰، ۱۱:۲۹
درود بر مهندس شاهینی عزیز
من یکم با فلاتر کار کردم. به نظرم برتری معماری bloc نسبت به provider این هست که یک structure خوب و تمیز به نرم افزار میده. البته قطعا با provider هم میشه structure خوبی داشت ولی فکر میکنم که در اون صورت بهتر باشه با یک مدل معماری مثل mvvm ترکیب شه.
به هر حال بی صبرانه منتظر دوره flutter هستم تا از معلومات شما بهره مند شم. فقط اگه امکانش هست مباحث تست نرم افزار رو هم بگنجونین. خیلی ممنون.
Mehdi azizi۲۲ خرداد ۱۴۰۰، ۲۱:۲۲
متخصص اندروید را شروع کنم یا منتظر متخصص فلاتر باشم با تشکر
سعید شاهینی۰۱ تیر ۱۴۰۰، ۲۱:۴۸
سلام، اگه تجربه ی اولتون هست برای برنامه نویسی موبایل، پیشنهاد من فلاتر هستش
فائزه۲۱ خرداد ۱۴۰۰، ۱۸:۰۸
مهندس بسیار عالی بود. بی صبرانه منتظرم همون طور که تو اولین دوره اندروید ازتون خیلی چیزا یاد گرفتم تو اولین دوره فلاتر اهم ز تجربه و دانشتون بهرهمند بشم .
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۳۹
سلام وقت بخیر، خیلی لطفا دارین، ایشالا
afshin۲۰ خرداد ۱۴۰۰، ۱۸:۴۶
تو این وضعیت اقتصادی امیدوارم قیمت مناسبی داشته باشه
بتونیم بخریمش
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۳۹
حتما همینطور خواهد بود
سولماز۲۰ خرداد ۱۴۰۰، ۱۱:۲۱
شاهین جان تبریک میگم. مرد سختکوش
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۴۰
خیلی متشکرم سولماز جان ? ممنونم از لطفت
Mehran۲۰ خرداد ۱۴۰۰، ۰۶:۴۰
استاد شاهینی عزیز چندتا سوال داشتم :
از چه معماری معمولا برای فلاتر استفاده میشه تو تلوبیون از چه معماری استفاده کردین
ایا یادگیری معماریهای نرم افزار سخته با فلاتر
از کدوم شیوه برای state management استفاده کردین
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۴۴
شناخته شدهترین معماری مورد استفاده در حال حاضر bloc هستش که توسط گوگل در سال ۲۰۱۹ معرفی شد ولی من ازش استفاده نکردم هنوز، چون یکی از دوستام گفته بود خیلی پیچیده اس و وقت گیر، ولی خودم دوس دارم تستش کنم و حتما راجع به مزایا و معایبش مینویسم. برای بحث state management از provider استفاده کردم و به نظرم خیلی خوب بود.
بهروز پهلوان۱۹ خرداد ۱۴۰۰، ۱۸:۱۷
مقاله جذاب و تاثیر گذاری به اشتراک گذاشتید.
سپاس از شما
پژمان۱۹ خرداد ۱۴۰۰، ۱۷:۳۳
درود بر شما استاد عزیز. بسیار جالب و مفید بود.
باید هر چه زودتر دوره متخصص اندروید جاوا-کاتلین رو تمام کنم
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۴۵
سلام پژمان جان خیلی متشکرم، ایشالا
Mehran۱۹ خرداد ۱۴۰۰، ۱۵:۰۸
چندتا سوال دارم ممنون میشم جواب بدین :
1. از چه معماریی استفاده کردین تو تلوبیون
2. دیتابیس آفلاین از orm خاصی استفاده کردین یا همون sqflite فلاتر
3. از کدوم شیوه برای state management استفاده کردین
4.ایا یادگیری معماریهای نرم افزار سخته با فلاتر
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۴۶
پاسخ سوال ۱: بدون معماری و با استفاده از provider استیت هارو منیج کردم
پاسخ سوال ۲: برای دیتابیس از <a href="https://pub.dev/packages/hive" rel="nofollow ugc">Hive</a> استفاده کردم و خیلی خوب بود
پاسخ سوال ۳: Provider
پاسخ سوال ۴: هنوز تجربه ش نکردم، به زودی ایشالا
Mahdi۱۹ خرداد ۱۴۰۰، ۱۵:۰۰
استاد من دانشجوی دوره متخصص اندروید هستم و وارده sqlite شدم. به نظر شما بیام سمته flutter یا که نه این مسیر رو ادامه بدم؟
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۰۹:۴۸
به نظرم فلاتر یادگیریش راحت تره و ورود به بازار کار به دلیل رقابت و نیروی متخصص کمتر سریعتر اتفاق میوفته
هادی طرفی۱۹ خرداد ۱۴۰۰، ۱۴:۰۲
بهتر بود اول دوره ی متخصص اندروید رو کامل کنید. این دوره خیلی وقته که آپدیت نشده و هنوز کامل نشده. از طریق منتور پیگیر شدیم پاسخی داده نشد.
لطفا در پاسخ نگید که دوره تموم شده فقط باید اشکالات اپ رو رفع کنیم، کافیه نگاهی به ویدئوی معرفی دوره بندازید که ببینید چه چیزهایی گفتید و هنوز تدریس نشده(پروژه ی فروشگاه نایک)
سعید شاهینی۲۲ خرداد ۱۴۰۰، ۱۰:۱۱
تمامی مواردی که داخل ویدیوی معرفی اعلام کردم رو حتما به آموزشها اضافه میکنم هادی جان
محمدمهدی۱۹ خرداد ۱۴۰۰، ۱۲:۳۷
ممنون استاد فوق العاده جامع و بی نظیر بود????
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۱۳:۲۵
خیلی متشکرم? ?
ساعد۱۹ خرداد ۱۴۰۰، ۰۸:۱۹
عالی بود
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۱۵
متشکرم
مهدی۱۹ خرداد ۱۴۰۰، ۰۷:۲۱
درود بر آقای شاهینی
فرانت اند کار هستم . سوالم اینه میتونم همزمان هم طراح وب کار کنم و هم فلاتر . منظورم اینه کار کردن در دو حوزه فرانت اند و فلاتر سنگین نیست ؟
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۱۶
مشکل اینه که هر کدوم از تکنولوژی هایی که کار میکنید، نیاز به زمان زیادی برای یادگیری و به روز بودن دارن، اصطلاحا هر کدوم دنیای خودشون رو دارن و یه نفر نمیتونه به هر دوی اونها کامل مسلط باشه
سعید پوریان۱۹ خرداد ۱۴۰۰، ۰۵:۳۵
خیلی جامع و کامل توضیح دادید ، عالی بود ، منتظر دوره شما استاد عزیز هستیم
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۱۷
خیلی متشکرم
ابوالفضل رضایی۱۹ خرداد ۱۴۰۰، ۰۴:۵۶
حیفه که دوره جدیدو شرکت نکنیم.. بی صبرانه منتظرم که شروع کنین استاد..
بلوتوثم یادتون نره بزاریدا:))
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۱۸
لطف داری ابولفضل جان، بله حتما
وحید گروسی۱۹ خرداد ۱۴۰۰، ۰۴:۳۸
عالی استاد جان
ممنونم که این تجربه ات رو به اشتراک گذاشتی
مخصوصاً بخش اول مقاله که تو نت نمیشه همچین چیزی پیدا کرد
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۱۷
خواهش میکنم وحید جان
حمیدرضا حسینخانی۱۸ خرداد ۱۴۰۰، ۲۳:۱۹
مرسی از به اشتراک گداشتن تجربه سعید جان.
بسیار مقالهی خوبی بود.
برای من هم جذابترین بخش Flutter دور زدن ماشین مجازی و اجرای مستقیم روی ماشینه
(و اینکه R قرمز نمیشه :دی)
یه موضوع دیگه اینکه با جایگزین شدن Android با Fuchsia احتمالا Flutter پلتفرم اصلی برنامه نویسی میشه.
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۷:۵۹
خیلی ممنونم حمیدرضا جان ??? بله همینطوره فلاتر آینده بسیار روشنی داره و به خاطر Open source بودنش و Community فعالش خیلی سریع داره رشد میکنه ?
ناصر۱۸ خرداد ۱۴۰۰، ۲۱:۲۳
خیلی دوس دارم هر چ زودتر دوره فلاتر استاد شاهینی رو ببینم چون مطمئنم بهترین دوره فلاتره بدون شک
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۸:۰۰
خیلی ممنونم ???
محمد کهکشانی۱۸ خرداد ۱۴۰۰، ۲۱:۲۱
استاد شما بی نظیر هستید و بی صبرانه منتظر آغاز دورهذفلاتر هستم
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۸:۰۰
نظر لطف شماس ??? خیلی متشکرم ⚘
سپهر۱۸ خرداد ۱۴۰۰، ۲۱:۱۱
خیلی خوب توضیح دادید.دارت ۲ خیلی قویتر شد.یک ویژگی فوق العاده sound null safty بهش اضافه شد که از بین زبانهای دیگه فکر کنم فقط سوئیفت این قابلیت رو داشت.الان هم که نسخه بتا فیوشا عرضه شد.
یک خبر خیلی جالب میخوندم که نسخه دسکتاب اوبونتو با فلاتر میخواهد کار بشه.
همه اینها بکنار آقای شاهینی عزیز.فلاتر یک انجین اختصاصی گیم داره به اسم flame.چقدر بازیهای دوبعدی سبک و روانی اجرا میشه.درسته یکم حال و هوای کد زنیش با اندروید فرق داره ولی خیلی سریع آدم رو دلباخته خودش میکنه...
واستون آرزو موفقیت میکنم.خوشحال شدم وقتی شنیدم تلوبیون رو با فلاتر زدید?
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۲۰
ممنون از توضیحاتت سپهر جان?، همچنین
Yusef Pasha۱۸ خرداد ۱۴۰۰، ۲۰:۵۴
واقعاً عالی و کامل بود خسته نباشید جناب شاهینی
اگر نمونه کد هم میزاشتین و یک مقایسه بین این فرم ورک و زبانهای نیتیو انجام میدادین به مراتب بهتر هم میشد
ممنون بابت وقتی ک گذاشتین
SinaPourmahdi۱۸ خرداد ۱۴۰۰، ۲۰:۴۱
خیلی عالی, جذاب و البته مفید! :)
ممنون از استاد
سعید شاهینی۱۹ خرداد ۱۴۰۰، ۰۹:۲۱
ممنونم سینا جان ?
PouriaShafiee۱۸ خرداد ۱۴۰۰، ۱۹:۵۲
خیلی عالی و مفید بود ، تشکر استاد
سعید شاهینی۱۸ خرداد ۱۴۰۰، ۱۹:۵۷
ممنونم پوریا جان ??
Parsa۱۸ خرداد ۱۴۰۰، ۱۹:۱۷
عالی بود ، ممنون
سعید شاهینی۱۸ خرداد ۱۴۰۰، ۱۹:۱۹
مرسی پارسا جان ??
ali naseri۱۸ خرداد ۱۴۰۰، ۱۹:۱۱
خیلی ممنون از انتشار این پست و تجربه هاتون
مطمئنا کسی که سالها تجربه در برنامه نویسی native داره و اینطور از فلاتر استقبال میکنه نشون میده که این تکنولوژی واقعا حرفی برای گفتن داره.
سعید شاهینی۱۸ خرداد ۱۴۰۰، ۱۹:۱۴
خیلی ممنونم علی جان ??
لقمان آوند۱۸ خرداد ۱۴۰۰، ۱۷:۴۷
عالی بود سعید جان
ممنون از به اشتراک گذاشتن تجربه ات ...
سعید شاهینی۱۸ خرداد ۱۴۰۰، ۱۹:۱۴
خیلی متشکرم ???
راهنمای مقاله
اولین پروژه با فلاتر - جذاب و دوست داشتنی
پروژه تلوبیون با فلاتر - چالشی سنگین در ۳ هفته
فلاتر (Flutter) چیست؟
اسکیا Skia چیست؟
زبان دارت (Dart) چیست؟
مسیر یادگیری فلاتر (Flutter)
چرا گوگل زبان Dart رو برای برنامه نویسی با فلاتر انتخاب کرد؟
فلاتر (Flutter) بهتره یا نیتیو (Native)؟
از لحاظ پرفورمنس (Perfromance) فلاتر بهتره یا نیتیو؟
من Native Developer هستم، آیا پیشنهاد میکنید به فلاتر سوئیچ کنم؟
آیا فلاتر جایگزین زبانهای native میشه؟
برای ساخت اپ با فلاتر باید زبانهای نیتیو رو هم بلد باشیم؟
چقدر طول میکشه زبان دارت (Dart) رو یاد بگیریم؟
چقدر طول میکشه بتونیم برنامه نویس فلاتر (Flutter) بشیم؟
فلاتر چقدر آینده داره؟
با فلاتر میشه وب سایت ساخت؟
آمادهای به زودی یادگیری فلاتر رو شروع کنی؟
راهنما و فهرست مقاله
اولین پروژه با فلاتر - جذاب و دوست داشتنی
پروژه تلوبیون با فلاتر - چالشی سنگین در ۳ هفته
فلاتر (Flutter) چیست؟
اسکیا Skia چیست؟
زبان دارت (Dart) چیست؟
مسیر یادگیری فلاتر (Flutter)
چرا گوگل زبان Dart رو برای برنامه نویسی با فلاتر انتخاب کرد؟
فلاتر (Flutter) بهتره یا نیتیو (Native)؟
از لحاظ پرفورمنس (Perfromance) فلاتر بهتره یا نیتیو؟
من Native Developer هستم، آیا پیشنهاد میکنید به فلاتر سوئیچ کنم؟
آیا فلاتر جایگزین زبانهای native میشه؟
برای ساخت اپ با فلاتر باید زبانهای نیتیو رو هم بلد باشیم؟
چقدر طول میکشه زبان دارت (Dart) رو یاد بگیریم؟
چقدر طول میکشه بتونیم برنامه نویس فلاتر (Flutter) بشیم؟