fa
Feedback
sasan safari

sasan safari

رفتن به کانال در Telegram
777
مشترکین
-124 ساعت
-17 روز
+1130 روز
آرشیو پست ها
در رابطه با بوتکمپ

5.81 KB

میسن باز های فلاتری برای درک بهتر استفاده از clean architecture Riverpod و go router میتونن ریپو hello riverpod رو مطالعه کنن نحوه اینستال بریک و آدرس ریپو رو از صفحه بریک‌هاب میتونید ببینید https://brickhub.dev/bricks/hello_riverpod/1.0.0+9

بکند فصل جاری، فروشگاه ساعت دوره فلاتر جذاب شد, نه؟ 😊

✅دوره رایگان : ساخت API برای فروشگاه ساعت با استفاده از لاراول و لایووایر و سووگر 📍در این دوره قصد داریم با ایجاد یک وب سروی
دوره رایگان : ساخت API برای فروشگاه ساعت با استفاده از لاراول و لایووایر و سووگر 📍در این دوره قصد داریم با ایجاد یک وب سرویس در قالب پروژه فروشگاه ساعت بر پایه معماری REST با لاراول بپردازیم و API های تولید شده را در قالب رابط کاربری SWAGGER بررسی و به نمایش بگذاریم. ایجاد پروژه فروشگاهی ساده شامل بخش های زیر می شود 🔻مدیریت کاربران 🔻محصولات 🔻ثبت سفارش 🔻درگاه پرداخت 🔻کار با SWAGGER 💠پیش نیازهای این دوره چیست : برای اینکه بتوانید این دوره را مشاهده کنید پیش از هر چیز نیاز هست که با لاراول آشنایی داشته باشید و مفاهیم Api و نحوه ساخت آن در لاراول رو بلد باشید. همچنین از لایووایر توی این پروژه استفاده میکنیم و سورس پروژه رو روی GitHub میفرستیم 🔗لینک: https://codeyad.com/c/ac8

2_5267081788525645772.mp310.93 MB

با چت جی پی تی زبان تمرین کنید :) تصویر و مکالمه جنبه آموزشی برای شما داره که بدونید چطور میشه باهاش تمرین رو شروع کرد
با چت جی پی تی زبان تمرین کنید :) تصویر و مکالمه جنبه آموزشی برای شما داره که بدونید چطور میشه باهاش تمرین رو شروع کرد

https://github.com/rxlabz/flutter_ui_protos چالش رابط کاربری فلاتر برای کد رویو و یادگیری مناسبه

دلی :)

کلمات کلیدی بیشتر برای درک بهتر و یادگیری Bloc ❇️ Emit فرآیند ارسال وضعیت جدید بلاک به بخش‌های دیگر برنامه را emit گفته می‌شود. با فراخوانی این تابع، می‌توانید وضعیت جدید بلاک را به صورت رویدادی (event) به بخش‌های دیگر از جمله ویجت‌ها و بلاک‌های دیگری که به آن مشترک هستند، اعلام کنید. ❇️ Cubit Cubit یک نوع دیگر از الگوی مدیریت وضعیت در فلاتر است که برای مدیریت وضعیت ساده‌تر و کم‌حجم‌تر برنامه‌های فلاتر استفاده می‌شود. بر خلاف Bloc که برای پروژه‌های بزرگ و پیچیده استفاده می‌شود، Cubit برای پروژه‌های ساده‌تر و کوچک‌تر مورد استفاده قرار می‌گیرد. ❇️ Transition هر وضعیت (state) در یک بلاک شامل یک سری اطلاعات مختلف است. هنگامی که وضعیت بلاک تغییر می‌کند، یک Transition جدید به وجود می‌آید که شامل وضعیت جدید، وضعیت قبلی و رویدادی است که منجر به تغییر وضعیت شده است. ❇️ Repository Repository یک الگوی طراحی است که به شما اجازه می‌دهد داده‌ها را از منابع مختلفی مانند دیتابیس‌ها، سرویس‌های وب و فایل‌ها به دست آورید. Repository برای جلوگیری از ارتباط مستقیم بین لایه‌ی UI و منابع داده استفاده می‌شود. ❇️ Dependency Injection Dependency Injection یک الگوی طراحی است که به شما اجازه می‌دهد وابستگی‌های یک کلاس را با استفاده از مفهوم ابسترکشن (abstraction) و تزریق

بلاک در فلاتر (Flutter) یک الگوی طراحی (design pattern) است که به شما اجازه می‌دهد برنامه‌ را به چندین بخش کوچک تقسیم کنید و هر قسمت را به صورت مستقل پردازش کنید. به این صورت که هر قسمت از برنامه، یک بلاک مجزا (Bloc) خواهد داشت که وظیفه دارد اطلاعات و وضعیت آن قسمت را مدیریت کند. بلاک در فلاتر یک الگوی رویداد محور (event-driven) است که بر اساس رویدادهایی که در برنامه اتفاق می‌افتد، وضعیت (state) برنامه را به روزرسانی می‌کند. برای یادگیری بلاک در فلاتر بهتر است با مفاهیم کلیدی مانند State, Stream, Event و Sink آشنا شوید. کلمات کلیدی مهم در BloC ✅ State وضعیتی که برنامه در آن قرار دارد و به روزرسانی‌های بعدی وابسته به آن است. ✅ Stream داده‌ای است که به صورت پیوسته و آنی از یک منبع به دست می‌آید. ✅ Event یک عملیات یا رویداد که می‌تواند وضعیت برنامه را تغییر دهد. ✅ Sink یک منبع داده است که می‌تواند داده‌هایی را دریافت کند و به یک Stream بفرستد. ✅ BlocProvider یک کلاس که به عنوان یک ارائه‌دهنده بلاک‌ها عمل می‌کند. ✅ BlocBuilder یک کلاس که وضعیت بلاک را مشاهده می‌کند و در صورت تغییر آن، اجزایی را از جمله ویجت‌ها به‌روزرسانی می‌کند. ✅ BlocListener یک کلاس که به رویدادهایی که توسط بلاک تولید شده‌اند گوش می‌دهد و به وضعیت بلاک دسترسی ندارد. ✅ StreamSubscription یک شیء که با استفاده از آن می‌توانید به یک Stream مشترک شوید و هربار که داده جدیدی در Stream در دسترس است، از آن باخبر شوید. #bloc https://t.me/sasansafari_dev1400

#stream in dart توابع و خواص کلیدی استریم در دارت StreamController() یک متود سازنده برای ایجاد یک StreamController جدید است. add() برای ارسال داده های جدید به Stream استفاده می شود. Stream یک Getter است که یک Stream جدید باز می گرداند. Sink یک Getter است که Sink مربوط به StreamController را باز می گرداند. close() برای بستن StreamController استفاده می شود. این عمل باعث می شود تا دیگر نتوان داده ای به Stream فرستاد. addError() برای افزودن یک خطای خاص به Stream استفاده می شود. hasListener یک Getter است که بررسی می کند که آیا یک Listener فعال برای Stream وجود دارد یا خیر. isClosed یک Getter است که بررسی می کند که آیا StreamController بسته شده است یا خیر. isPaused یک Getter است که بررسی می کند که آیا StreamController متوقف شده است یا خیر. onPause یک Callback است که برای توقف Stream استفاده می شود. onResume یک Callback است که برای ادامه دادن Stream بعد از توقف استفاده می شود. با استفاده از این توابع، شما می توانید Stream خود را به راحتی مدیریت کنید و داده های جدید را به آن اضافه کنید، خطاها را به آن اضافه کنید و Stream را بسته و یا توقف کنید.

StreamController یک کلاس در زبان برنامه‌نویسی Dart است که برای کنترل جریان داده‌ها در برنامه‌هایی که از Stream و StreamBuilder استفاده می‌کنند، استفاده می‌شود. یک StreamController دارای دو متد sink و stream است. با استفاده از متد sink، می‌توان داده‌های جدید را به Stream ارسال کرد و با استفاده از متد stream می‌توان Stream را برای خواندن داده‌ها و دریافت اطلاعات از Stream بکار برد. استفاده از StreamController بسیار مفید است زیرا با استفاده از آن می‌توان داده‌های جدید را به Stream اضافه کرد و در همان زمان، از StreamBuilder برای بروزرسانی UI بر اساس داده‌های جدید استفاده کرد. به علاوه، با استفاده از StreamController می‌توان برنامه‌هایی با کارایی بالاتر و با مصرف منابع کمتر نوشت.

برای ترمینیت کردن اپ ، اگه از exit استفاده میکنید باید توجه کنید که اپل اپتون رو ساسپند میکنه، طبق این صفحه بهتره برای این کار حتما پلتفورم رو چک کنید.

در برنامه‌نویسی، کلاس های helper به عنوان کلاس های کمکی برای کلاس ها و توابع دیگر استفاده می‌شوند. این کلاس ها معمولا توابع کمکی را برای اجرای کارهای خاصی در اختیار قرار می‌دهند. به عبارت دیگر، کلاس های helper به برنامه نویسان کمک می‌کنند تا کد خود را به صورت ماژولار و سازمان‌یافته‌تری بنویسند. در معماری نرم‌افزار، ایده اصلی پشت helper class، جلوگیری از تکرار و تکمیل کد در برنامه نویسی است. یکی از مزیت‌های استفاده از helper class، می‌تواند افزایش قابلیت خواندن کد باشد. با استفاده از helper class، می‌توان کدهایی را که به صورت تکراری و یا خاص هستند جدا کرد. بدین ترتیب، با نگاه به نام‌های توابع و متغیرهای کلاس، می‌توان به راحتی درک کرد که کلاس چه کارهایی انجام می‌دهد و توابع آن چه معنایی دارند.

photo content

با این ریپازیتوری ها فلاتر رو یادبگیرید! 1. Fwitter یکی از بهترین راه ها برای یادگیری هر فناوری یا زبان برنامه نویسی جدید، ایجاد یک کلون از یک برنامه بزرگ است. همانطور که از اسمش حدس زدید این ریپازیتوری یک کلون از برنامه توییتر  هست. https://github.com/TheAlphamerc/flutter_twitter_clone 2. MovieLab سورس کد یک اپلیکشن فیلم و سریال که از api سایت IMDb برای دریافت اطلاعات خودش استفاده میکنه. https://github.com/ErfanRht/MovieLab 3. Flutter Weather یک اپلیکیشن هواشناسی که از api سایت OpenWeatherMap استفاده میکنه و قابلیت به دست آوردن خودکار مکان فعلی کاربر و پیش بینی اب و هوای 7 روز آینده رو داره. https://github.com/ArizArmeidi/FlutterWeather 4. Chillify یک موزیک پلیر با رابط کاربری جذاب و توسعه داده شده با الگوی Bloc. این برنامه قابلیت های بازیابی همه آهنگ ها، مکث، پخش،تکرار و جستجوی آهنگ ها رو داره. https://github.com/KarimElghamry/chillify 5. Timy messenger یک پیام رسان حرفه ای با 1.7 هزار ستاره در GitHub. این برنامه امکاناتی مثل ساخت گروه و کانال، اشتراک گذاری فیلم و عکس، واکنش نشون دادن به پیام با ایموجی رو داره. https://github.com/janoodleFTW/timy-messenger