آموزش پیاده سازی معماری MVVM در فلاتر
▫️امروزه معماری های مورد استفاده در زمینه برنامه نویسی موبایل و غیره محدود هستند که یکی از محبوب ترین آنها معماری MVVM میباشد.
در این مقاله خیلی درباره مباحث تئوری الگوی MVVM ریز نخواهیم و هدف بررسی و پیاده سازی عملی آن در فریمورک فلاتر میباشد.
به طور کلی در این معماری هدف جداسازی بخش نمایش اطلاعات از قسمت منطقی برنامه است. برای view به هیچ عنوان نباید مهم باشد که اطلاعات از چه مکانی و به چه صورتی دریافت میشود.
🌐 مطالعه مقاله
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️امروزه معماری های مورد استفاده در زمینه برنامه نویسی موبایل و غیره محدود هستند که یکی از محبوب ترین آنها معماری MVVM میباشد.
در این مقاله خیلی درباره مباحث تئوری الگوی MVVM ریز نخواهیم و هدف بررسی و پیاده سازی عملی آن در فریمورک فلاتر میباشد.
به طور کلی در این معماری هدف جداسازی بخش نمایش اطلاعات از قسمت منطقی برنامه است. برای view به هیچ عنوان نباید مهم باشد که اطلاعات از چه مکانی و به چه صورتی دریافت میشود.
🌐 مطالعه مقاله
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
آزمایشگاه تست اپلیکیشن شرکت اوبر
▪️نکته جالب استفاده از دستگاه های فیزیکی برای انجام تست برنامه میباشد و از سیستم های ابری استفاده نمیکنن.
این تصاویر بخش کوچکی از آزمایشگاه تست اوبر هست و برای نسخه ios هم تجهیزات مشابهی وجود داره.
▪️مزایا این روش:
-کاهش هزینه
-دسترسی به هر دو روش تست دستی و خودکار
-بررسی قابلیت های به خصوص هر دستگاه و باگهای گزارش شده برای آن
▪️چه تستهایی انجام میشود:
-تست عملکرد
-تستهای دستی
-تست های end to end
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️نکته جالب استفاده از دستگاه های فیزیکی برای انجام تست برنامه میباشد و از سیستم های ابری استفاده نمیکنن.
این تصاویر بخش کوچکی از آزمایشگاه تست اوبر هست و برای نسخه ios هم تجهیزات مشابهی وجود داره.
▪️مزایا این روش:
-کاهش هزینه
-دسترسی به هر دو روش تست دستی و خودکار
-بررسی قابلیت های به خصوص هر دستگاه و باگهای گزارش شده برای آن
▪️چه تستهایی انجام میشود:
-تست عملکرد
-تستهای دستی
-تست های end to end
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
داکیومنت سازی فایل ها
▫️ به احتمال زیاد تا به حال با چنین صفحات مستنداتی در صفحات کتابخانه ها و منابع دیگر برخورد داشته اید.
برای ایجاد چنین صفحه ای از قابلیت dartdoc نیاز است تا استفاده کنید.
به همین منظور ابتدا دستورات زیر را در ترمینال بنویسید.
در ادامه یک دایرکتوری به نام doc در پروژه ایجاد میشود که شامل یک صفحه index.html است و میتوانید به شکل دلخواه آن را تغییر دهید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️ به احتمال زیاد تا به حال با چنین صفحات مستنداتی در صفحات کتابخانه ها و منابع دیگر برخورد داشته اید.
برای ایجاد چنین صفحه ای از قابلیت dartdoc نیاز است تا استفاده کنید.
به همین منظور ابتدا دستورات زیر را در ترمینال بنویسید.
flutter pub global activate dartdocدر خط دوم اگر فایل خاصی مدنظرتان هست نام آن را نوشته در غیر اینصورت با قرار دادن یک نقطه تمام فایل ها انتخاب میشوند.
flutter pub global run dartdoc .
در ادامه یک دایرکتوری به نام doc در پروژه ایجاد میشود که شامل یک صفحه index.html است و میتوانید به شکل دلخواه آن را تغییر دهید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
آشنایی با مفهوم Mixin در زبان برنامه نویسی دارت
▫️ویژگی Mixin یکی از قابلیت های کاربردی زبان برنامه نویسی دارت است که به عنوان یک توسعه دهنده فلاتر پیشنهاد میکنم حتما در پروژه های خود از آن استفاده کنید.
علت کاربردی بودن Mixin حل یک سری از مشکلات و پیچیدگی های ارث بری در برنامه نویسی شی گرایی میباشد.
🌐 مشاهده کامل آموزش
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️ویژگی Mixin یکی از قابلیت های کاربردی زبان برنامه نویسی دارت است که به عنوان یک توسعه دهنده فلاتر پیشنهاد میکنم حتما در پروژه های خود از آن استفاده کنید.
علت کاربردی بودن Mixin حل یک سری از مشکلات و پیچیدگی های ارث بری در برنامه نویسی شی گرایی میباشد.
🌐 مشاهده کامل آموزش
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
This media is not supported in your browser
VIEW IN TELEGRAM
معرفی ویجت SelectableArea
▫️ یکی از مشکلات نسخه وب اپلیکیشن فلاتر عدم امکان انتخاب متون به شکل صحیح بود.
به تازگی در نسخه فلاتر 3.3 ویجت جدیدی به نام SelectableArea معرفی شده است که با قرار دادن عناصر مختلف در آن امکان انتخاب کامل تمام متن را برای کاربر فراهم میکند.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️ یکی از مشکلات نسخه وب اپلیکیشن فلاتر عدم امکان انتخاب متون به شکل صحیح بود.
به تازگی در نسخه فلاتر 3.3 ویجت جدیدی به نام SelectableArea معرفی شده است که با قرار دادن عناصر مختلف در آن امکان انتخاب کامل تمام متن را برای کاربر فراهم میکند.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
طراحی صفحات واکنشگرا
▪️ یکی از چالشهای طراحی رابط کاربری در اپلیکیشن های موبایل بحث بهینه سازی برنامه برای صفحات مختلف با سایز های گوناگون میباشد.
برای حل این مشکل راه های متفاوتی وجود دارد که میتوانید از آنها استفاده کنید.
یکی از این روشها کار با پکیج Sizer میباشد.
در این پکیج واحدهای اندازه گیری متنوعی قرار دارد که براساس سایز صفحه نمایش موبایل یا تبلت تغییر میکند و دیگر نیازی به استفاده از واحد عددی double براساس پیکسل نیست.
برای نمونه:
.sp برای مقداردهی عناصر تکست
.h - .w محاسبه طول و عرض براساس اندازه صفحه نمایش
🔗 Sizer Package
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️ یکی از چالشهای طراحی رابط کاربری در اپلیکیشن های موبایل بحث بهینه سازی برنامه برای صفحات مختلف با سایز های گوناگون میباشد.
برای حل این مشکل راه های متفاوتی وجود دارد که میتوانید از آنها استفاده کنید.
یکی از این روشها کار با پکیج Sizer میباشد.
در این پکیج واحدهای اندازه گیری متنوعی قرار دارد که براساس سایز صفحه نمایش موبایل یا تبلت تغییر میکند و دیگر نیازی به استفاده از واحد عددی double براساس پیکسل نیست.
برای نمونه:
.sp برای مقداردهی عناصر تکست
.h - .w محاسبه طول و عرض براساس اندازه صفحه نمایش
🔗 Sizer Package
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
This media is not supported in your browser
VIEW IN TELEGRAM
▪️اجرای اپلیکیشن طراحی شده با استفاده از فریمورک فلاتر بروی صفحه نمایشی انعطاف پذیر.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
معرفی وبسایت Deepcode
▪️ وبسایت Deepcode که مبتنی بر هوش مصنوعی است به شما کمک میکند تا از طریق بارگذاری کدهایتان و بررسی آنها باگهای مهم و امنیتی را شناسایی کنید و همچنین نحوه حل آنها را به شما نمایش میدهد.
🔗 Deepcode.ai
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️ وبسایت Deepcode که مبتنی بر هوش مصنوعی است به شما کمک میکند تا از طریق بارگذاری کدهایتان و بررسی آنها باگهای مهم و امنیتی را شناسایی کنید و همچنین نحوه حل آنها را به شما نمایش میدهد.
🔗 Deepcode.ai
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
پیاده سازی دیتابیس Objectbox در فلاتر
▪️در روند توسعه اپلیکیشن های موبایلی به علت محدودیتهای موجود معمولا گزینههای زیادی برای انتخاب یک دیتابیس وجود ندارد.
در این بین پایگاه داده Objectbox یک دیتابیس غیررابطهای یا Nosql میباشد که در کنار امکانات مختلف از سرعت ۱۰برابری در انجام عملیات های CRUD نسبت Sqlite بهره میبرد و به یک گزینه بسیار عالی برای استفاده در پروژه های موبایل و اینترنت اشیا تبدیل شده است.
حجم این دیتابیس کمتر از ۱ مگابایت میباشد و قابلیت استفاده همزمان چندین دستگاه از یک دیتابیس را نیز دارد.
🔗 مشاهده آموزش Objectbox
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️در روند توسعه اپلیکیشن های موبایلی به علت محدودیتهای موجود معمولا گزینههای زیادی برای انتخاب یک دیتابیس وجود ندارد.
در این بین پایگاه داده Objectbox یک دیتابیس غیررابطهای یا Nosql میباشد که در کنار امکانات مختلف از سرعت ۱۰برابری در انجام عملیات های CRUD نسبت Sqlite بهره میبرد و به یک گزینه بسیار عالی برای استفاده در پروژه های موبایل و اینترنت اشیا تبدیل شده است.
حجم این دیتابیس کمتر از ۱ مگابایت میباشد و قابلیت استفاده همزمان چندین دستگاه از یک دیتابیس را نیز دارد.
🔗 مشاهده آموزش Objectbox
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️یکی از مواردی که تاثیر منفی روی عملکرد برنامه داره استفاده از Opacity در حالتهای مختلف میباشد اگر نیاز به پیاده سازی این بخش دارید بجای ویجت Opacity از AnimatedOpacity استفاده کنید.
اگر میخواهید برروی یک تصویر کار کنید ویجت FadeInImage مناسب هست.
اگر هم برای رنگها نیاز به انجام این عمل دارید مستقیما بروی رنگ این خصیصه را اعمال کنید.
مثال اشتباه ❌
Opacity(opacity: 0.5, child: Container(color: Colors.red))
مثال صحیح ✅
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
اگر میخواهید برروی یک تصویر کار کنید ویجت FadeInImage مناسب هست.
اگر هم برای رنگها نیاز به انجام این عمل دارید مستقیما بروی رنگ این خصیصه را اعمال کنید.
مثال اشتباه ❌
Opacity(opacity: 0.5, child: Container(color: Colors.red))
مثال صحیح ✅
Container( color: Color.fromRGBO(255,0,0,0.5))
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
This media is not supported in your browser
VIEW IN TELEGRAM
برنامه نویسی با هوش مصنوعی
▪️ربات هوش مصنوعی ChatGBT که چند وقتی هست کاربران را شگفت زده کرده است طی درخواست یکی از کاربران اپلیکیشن ماشین حسابی به زبان دارت و فلاتر را در چند ثانیه به شکل کاملا خودکار طراحی میکند.
به روزهای جایگزینی هوش مصنوعی با انسانها نزدیک میشویم؟
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️ربات هوش مصنوعی ChatGBT که چند وقتی هست کاربران را شگفت زده کرده است طی درخواست یکی از کاربران اپلیکیشن ماشین حسابی به زبان دارت و فلاتر را در چند ثانیه به شکل کاملا خودکار طراحی میکند.
به روزهای جایگزینی هوش مصنوعی با انسانها نزدیک میشویم؟
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
اندروید استودیو Giraffe منتشر شد
▪️ این نسخه در حال حاضر در بخش Canary channel در دسترس میباشد میباشد.
برای آپدیت اگر از channel دیگری استفاده میکنید وارد بخش Appearance & Behaviour -> System settings -> Updates شوید و از قسمت automatically check updates گزینه مورد نظر را انتخاب کنید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️ این نسخه در حال حاضر در بخش Canary channel در دسترس میباشد میباشد.
برای آپدیت اگر از channel دیگری استفاده میکنید وارد بخش Appearance & Behaviour -> System settings -> Updates شوید و از قسمت automatically check updates گزینه مورد نظر را انتخاب کنید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
نسخه ۳.۷ فلاتر بصورت آلفا منتشر شد
▪️رویداد Flutter forward با هدف نمایش بروزرسانی های مورد انتظار در سال ۲۰۲۳ برگزار شد و در این بین ویژگیهایی از فلاتر ۳.۷ نیز نمایش داده شد.
یکی از هیجان انگیز ترین قابلیتهای معرفی شده امکان استفاده از عناصر فلاتر در صفحات عمومی وب میباشد.
بدین ترتیب عناصر مورد نظر را میتوانید داخل تگ <div> قرار دهید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️رویداد Flutter forward با هدف نمایش بروزرسانی های مورد انتظار در سال ۲۰۲۳ برگزار شد و در این بین ویژگیهایی از فلاتر ۳.۷ نیز نمایش داده شد.
یکی از هیجان انگیز ترین قابلیتهای معرفی شده امکان استفاده از عناصر فلاتر در صفحات عمومی وب میباشد.
بدین ترتیب عناصر مورد نظر را میتوانید داخل تگ <div> قرار دهید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
نمایش شبیه سازی فیزیکی در اندروید استودیو
▪️خیلی اوقات بجای استفاده از شبیهسازهای اندرویدی به دلیل محدودیتهایی که داره و کاهش سرعت سیستم ترجیح میدیم تا از گوشی هوشمند خودمون به عنوان شبیه ساز استفاده کنیم.
یکی از معایب این روش چک کردن مداوم گوشی هست که با قابلیت Device mirroring میتونید صفحه نمایش گوشی خودتون و در کنار اندروید استودیو یکجا قرار دهید.
این قابلیت هنوز در مرحله آزمایشی هست و ممکن روی بعضی از سیستمها مشکل رزولوشن داشته باشید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▪️خیلی اوقات بجای استفاده از شبیهسازهای اندرویدی به دلیل محدودیتهایی که داره و کاهش سرعت سیستم ترجیح میدیم تا از گوشی هوشمند خودمون به عنوان شبیه ساز استفاده کنیم.
یکی از معایب این روش چک کردن مداوم گوشی هست که با قابلیت Device mirroring میتونید صفحه نمایش گوشی خودتون و در کنار اندروید استودیو یکجا قرار دهید.
این قابلیت هنوز در مرحله آزمایشی هست و ممکن روی بعضی از سیستمها مشکل رزولوشن داشته باشید.
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
تغییر نحوه نمایش لاگ ها
▫️ با استفاده از پکیج Logger میتوانید محتویات نمایش داده شده در بخش لاگ ها را به شکل متفاوتی شخصی سازی کنید.
🌐 Logger package
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️ با استفاده از پکیج Logger میتوانید محتویات نمایش داده شده در بخش لاگ ها را به شکل متفاوتی شخصی سازی کنید.
🌐 Logger package
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
⚜ دوره جدید آموزش فلاتر منتشر ⚜
▪️ بعد از یک سال توقف فروش دورههای آموزشی با پکیج جامع استادی فلاتر بازگشتیم.
▪️این دوره بصورت کاملا پروژه محور و از پایه تا پیشرفته میباشد.
▪️بخشی از سرفصلها:
▫️ پروژه طراحی شبکه اجتماعی
▫️ پیاده سازی درگاه پرداخت آنلاین
▫️فلاتر وب
▫️سوکت نویسی
▫️مدیریت State
▫️پکیج gets
▫️ساخت مرورگر
و دهها محتویات دیگر که برای مشاهده کامل سرفصلهای دوره میتوانید ازلینک زیر استفاده کنید.
🌐 مشاهده دوره آموزشی
▪️ بعد از یک سال توقف فروش دورههای آموزشی با پکیج جامع استادی فلاتر بازگشتیم.
▪️این دوره بصورت کاملا پروژه محور و از پایه تا پیشرفته میباشد.
▪️بخشی از سرفصلها:
▫️ پروژه طراحی شبکه اجتماعی
▫️ پیاده سازی درگاه پرداخت آنلاین
▫️فلاتر وب
▫️سوکت نویسی
▫️مدیریت State
▫️پکیج gets
▫️ساخت مرورگر
و دهها محتویات دیگر که برای مشاهده کامل سرفصلهای دوره میتوانید ازلینک زیر استفاده کنید.
🌐 مشاهده دوره آموزشی