Forwarded from sasan safari
خب Sync Engine رِ بگیم
سینک انجین وظیفه داره تغییرات کاربر رو وقتی آفلاین بوده ذخیره کنیم و وقتی اینترنت وصل شد، این تغییرات رو به سرور بفرستیم. برای ذخیره لوکال معمولا از hive یا drift استفاده میکنیم. برای فهمیدن وضعیت اتصال اینترنت از connectivity_plus کمک میگیریم و برای ارسال داده به سرور هم http یا dio.
الگوریتم کار اینطوره که تغییرات تو یه صف ذخیره میکنیم و وقتی اینترنت وصل شد، یکییکی به سرور ارسال میکنیم. اگه موفق بود، وضعیتشون رو آپدیت میکنیم و اگه نه، دوباره تلاش میکنیم. تو این روند برای کنترل اینکه هر عملیات کامل شده یا نه، معمولا از completer استفاده میکنیم که یه ابزار توی دارته برای مدیریت عملیاتهای async، یعنی باهاش میتونیم بفهمیم چه زمانی هر فرایند sync تموم شده یا خطا داده.
برای اجرای این فرایند حتی تو پسزمینه هم میتونیم از workmanager استفاده کنیم تا دادهها همیشه هماهنگ بمونن و چیزی از دست نره :)
@sasansafari_dev1400
سینک انجین وظیفه داره تغییرات کاربر رو وقتی آفلاین بوده ذخیره کنیم و وقتی اینترنت وصل شد، این تغییرات رو به سرور بفرستیم. برای ذخیره لوکال معمولا از hive یا drift استفاده میکنیم. برای فهمیدن وضعیت اتصال اینترنت از connectivity_plus کمک میگیریم و برای ارسال داده به سرور هم http یا dio.
الگوریتم کار اینطوره که تغییرات تو یه صف ذخیره میکنیم و وقتی اینترنت وصل شد، یکییکی به سرور ارسال میکنیم. اگه موفق بود، وضعیتشون رو آپدیت میکنیم و اگه نه، دوباره تلاش میکنیم. تو این روند برای کنترل اینکه هر عملیات کامل شده یا نه، معمولا از completer استفاده میکنیم که یه ابزار توی دارته برای مدیریت عملیاتهای async، یعنی باهاش میتونیم بفهمیم چه زمانی هر فرایند sync تموم شده یا خطا داده.
برای اجرای این فرایند حتی تو پسزمینه هم میتونیم از workmanager استفاده کنیم تا دادهها همیشه هماهنگ بمونن و چیزی از دست نره :)
@sasansafari_dev1400
❤5
Forwarded from sasan safari
و نهایتا الگوی معماری مهم CQRS که یعنی Command Query Responsibility Segregation
یعنی اینکه مسئولیت نوشتن یا تغییر دادهها (Command) رو از مسئولیت خوندن دادهها (Query) جدا کنیم. یعنی یه مدل و مسیر جدا برای نوشتن داریم و یه مدل و مسیر جدا برای خوندن. اینجوری کد مرتبتر، راحتتر قابل نگهداری و بهتر مقیاسپذیر میشه.
تو معماری کلین معمولا بخش Command رو تو لایه دامنه (Domain) میذاریم که منطق تغییر دادهها و قوانین کسبوکار رو اجرا میکنه، ولی بخش Query رو میتونیم تو لایه دیتا یا حتی لایه UI مدیریت کنیم تا خواندن دادهها بهینهتر باشه. این تقسیمبندی کمک میکنه خواندن و نوشتن دادهها مستقل باشن و هر کدوم به بهترین شکل کنترل بشن
یعنی اینکه مسئولیت نوشتن یا تغییر دادهها (Command) رو از مسئولیت خوندن دادهها (Query) جدا کنیم. یعنی یه مدل و مسیر جدا برای نوشتن داریم و یه مدل و مسیر جدا برای خوندن. اینجوری کد مرتبتر، راحتتر قابل نگهداری و بهتر مقیاسپذیر میشه.
تو معماری کلین معمولا بخش Command رو تو لایه دامنه (Domain) میذاریم که منطق تغییر دادهها و قوانین کسبوکار رو اجرا میکنه، ولی بخش Query رو میتونیم تو لایه دیتا یا حتی لایه UI مدیریت کنیم تا خواندن دادهها بهینهتر باشه. این تقسیمبندی کمک میکنه خواندن و نوشتن دادهها مستقل باشن و هر کدوم به بهترین شکل کنترل بشن
❤4👍1
Forwarded from آموزش برنامه نویسی فلاتر Flutter
آموزش ساخت کتابخانه ویندوز از کد گولنگ و اتصال به فلاتر دسکتاپ + ویدیو
▫️ در این راستا، زبان Go (گو) به عنوان یک ابزار عالی برای برنامهنویسی سیستمی و ساخت کتابخانههای بومی، و فلاتر دسکتاپ به عنوان یک فریمورک چندسکویی قدرتمند، میتوانند ترکیبی بسیار موثر باشند.
در این مقاله، به طور کامل به این پرسش پاسخ میدهیم که چگونه یک کد نوشته شده به زبان Go را به یک کتابخانه DLL ویندوز تبدیل کنیم و آن را در یک پروژه فلاتر دسکتاپ فراخوانی کنیم.
🌐 آموزش ساخت کتابخانه ویندوز از کد گولنگ و اتصال به فلاتر دسکتاپ
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️ در این راستا، زبان Go (گو) به عنوان یک ابزار عالی برای برنامهنویسی سیستمی و ساخت کتابخانههای بومی، و فلاتر دسکتاپ به عنوان یک فریمورک چندسکویی قدرتمند، میتوانند ترکیبی بسیار موثر باشند.
در این مقاله، به طور کامل به این پرسش پاسخ میدهیم که چگونه یک کد نوشته شده به زبان Go را به یک کتابخانه DLL ویندوز تبدیل کنیم و آن را در یک پروژه فلاتر دسکتاپ فراخوانی کنیم.
🌐 آموزش ساخت کتابخانه ویندوز از کد گولنگ و اتصال به فلاتر دسکتاپ
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
👍5
Forwarded from آموزش برنامه نویسی فلاتر Flutter
معماری Server Driven UI در فلاتر
▫️تصور کنید که بتوانید آپدیتها را در لحظه ارسال کرده و رابط کاربری را مستقیماً از سرور کنترل کنید؛ بدون تأخیر و بدون نیاز به تأیید.
این دقیقاً همان چیزی است که رابط کاربری سمت سرور (Server-Driven UI) به دنبال آن است.
🌐 پیاده سازی معماری Server Driven UI در فلاتر: طراحی رابط کاربری از سرور
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
▫️تصور کنید که بتوانید آپدیتها را در لحظه ارسال کرده و رابط کاربری را مستقیماً از سرور کنترل کنید؛ بدون تأخیر و بدون نیاز به تأیید.
این دقیقاً همان چیزی است که رابط کاربری سمت سرور (Server-Driven UI) به دنبال آن است.
🌐 پیاده سازی معماری Server Driven UI در فلاتر: طراحی رابط کاربری از سرور
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
👍5
Forwarded from Pure Coder (Mohammad Taheri)
⛔️ترجمه ممنوع
💡فانکشن که مشخصه چیه.
🔥متد هم نوع خاصی از فانکشنه. متد، فانکشنیه که توی یه کلاس قرار میگیره و فقط روی ابجکت های ساخته شده از اون کلاس قابل کال شدنه.
البته دو نوع متد وجود داره: instance و static.
✅پس اگه مستقل بود و به هیچ ابجکت یا کلاسی گره نخورده بود بهشون میگیم فانکشن و اگه به یه ابجکت یا کلاس گره خورده بود، میگیم متد. (Instance Method یا Static Method )
تروخدا به اینا تابع نگید🤦♂🤦♂ بگید فانکشن یا متد.
مدرس های عزیز مخصوصن شماها به اینا تابع نگید. شما بگید هزار نفر یاد میگیرن میگن🤦♂🤦♂😂
وقتی شروع کردی به ترجمه ی این ها و به فانکشن گفتی تابع، اون موقع دیگه برای متد واژه ی مستقل پیدا نمیکنی و گیر میوفتی.
اینا واژگان تخصصی ان، نباید ترجمه بشن.
موارد دیگه که باید رعایت کنید:
✅کانستراکتور نه سازنده.
✅ابجکت نه شی.
✅ابجکت ارینتد نه شی گرا.
✅فانکشنال پروگرمینگ نه برنامه نویسی تابع محور 🤦♂🤦♂😭
✅یونیت تست نه تست واحد.
✅ترد نه نخ🤦♂ مگه سیگاره😂
✅و ... .
خیلی زیادن.
💡فانکشن که مشخصه چیه.
🔥متد هم نوع خاصی از فانکشنه. متد، فانکشنیه که توی یه کلاس قرار میگیره و فقط روی ابجکت های ساخته شده از اون کلاس قابل کال شدنه.
البته دو نوع متد وجود داره: instance و static.
✅پس اگه مستقل بود و به هیچ ابجکت یا کلاسی گره نخورده بود بهشون میگیم فانکشن و اگه به یه ابجکت یا کلاس گره خورده بود، میگیم متد. (Instance Method یا Static Method )
تروخدا به اینا تابع نگید🤦♂🤦♂ بگید فانکشن یا متد.
مدرس های عزیز مخصوصن شماها به اینا تابع نگید. شما بگید هزار نفر یاد میگیرن میگن🤦♂🤦♂😂
وقتی شروع کردی به ترجمه ی این ها و به فانکشن گفتی تابع، اون موقع دیگه برای متد واژه ی مستقل پیدا نمیکنی و گیر میوفتی.
اینا واژگان تخصصی ان، نباید ترجمه بشن.
موارد دیگه که باید رعایت کنید:
✅کانستراکتور نه سازنده.
✅ابجکت نه شی.
✅ابجکت ارینتد نه شی گرا.
✅فانکشنال پروگرمینگ نه برنامه نویسی تابع محور 🤦♂🤦♂😭
✅یونیت تست نه تست واحد.
✅ترد نه نخ🤦♂ مگه سیگاره😂
✅و ... .
خیلی زیادن.
@purecoder_ir
👍4👎1
Primary Constructors ??...!!
https://github.com/dart-lang/language/blob/main/accepted/future-releases/primary-constructors/feature-specification.md
https://github.com/dart-lang/language/blob/main/accepted/future-releases/primary-constructors/feature-specification.md
❤1👍1
Dart 3.10
Dart static access shorthand
https://github.com/dart-lang/language/blob/main/accepted/3.10/dot-shorthands/feature-specification.md
Dart static access shorthand
https://github.com/dart-lang/language/blob/main/accepted/3.10/dot-shorthands/feature-specification.md
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
با سرعت لاکپشت در حال توسعه...😜
https://github.com/H3mnz/skull_player
https://github.com/H3mnz/skull_player
👍5
Forwarded from DevTwitter | توییت برنامه نویسی
شرق/ سطح دسترسی به اینترنت در ایران به ۸ سطح تقسیم میشود که سطح ۸ به معنی قطع کامل و است و سطح ۱ یعنی دسترسی عادی به اینترنت.
شورای عالی امنیت ملی وعده داده تا ظهر امروز دسترسی به اینترنت که حالا در سطح ۵ است، بیشتر خواهد شد و به سطح دو یعنی یک قدم تا اینترنت عادی میرسد، با این حال پیامرسانهای خارجی از جمله واتس اپ که ۴ دی ۱۴۰۳ از فیلترینگ خارج شد، محدود باقی خواهد ماند.
* جا داره بگم سطح یک که گفتن دسترسی عادی، منظور بدون فیلتر نیست، یعنی سطح عادیای که خودشون میگن.
@DevTwitter
شورای عالی امنیت ملی وعده داده تا ظهر امروز دسترسی به اینترنت که حالا در سطح ۵ است، بیشتر خواهد شد و به سطح دو یعنی یک قدم تا اینترنت عادی میرسد، با این حال پیامرسانهای خارجی از جمله واتس اپ که ۴ دی ۱۴۰۳ از فیلترینگ خارج شد، محدود باقی خواهد ماند.
* جا داره بگم سطح یک که گفتن دسترسی عادی، منظور بدون فیلتر نیست، یعنی سطح عادیای که خودشون میگن.
@DevTwitter
🤣3❤1
DevTwitter | توییت برنامه نویسی
شرق/ سطح دسترسی به اینترنت در ایران به ۸ سطح تقسیم میشود که سطح ۸ به معنی قطع کامل و است و سطح ۱ یعنی دسترسی عادی به اینترنت. شورای عالی امنیت ملی وعده داده تا ظهر امروز دسترسی به اینترنت که حالا در سطح ۵ است، بیشتر خواهد شد و به سطح دو یعنی یک قدم تا اینترنت…
به قول پیرمردِ خیاطِ اصفهانی کسی که این طرح رو داد پیدا کنم آااا همین ....
Forwarded from Pure Coder (Mohammad Taheri)
🔥شیائومی توی HyperOS 4 از فلاتر برای توسعه ی اپلیکیشن های بومی خودش استفاده میکنه.
لینک مبنع:
https://www.gizmochina.com/2026/02/05/xiaomi-hyperos-4-self-developed-os-ai-framework/
لینک مبنع:
https://www.gizmochina.com/2026/02/05/xiaomi-hyperos-4-self-developed-os-ai-framework/
Xiaomi is also experimenting with rewriting core system apps using Google’s Flutter framework and the Rust programming language.
@purecoder_ir
❤8👏3
Forwarded from sasan safari
یک لیک درباره HyperOS 4 این روزها دارد دستبهدست میشود که ادعا میکند شیائومی در حال حرکت به سمت بازنویسی بخشی از اپهای سیستمی با Flutter است.
هدف این است که Flutter engine رندر UI و ساختار منطق را یکپارچه کند و بهمرور جایگزین معماری پراکنده مبتنی بر Java/Kotlin شود. همچنین گفته میشود این تغییرات همزمان با پیشرفت HyperOS 4 مرحلهبهمرحله رولاوت میشود.
در بعضی بازنشرها اشارههایی به استفاده ترکیبی Flutter (برای UI) و Rust (برای بخشهایی از زیرساخت/منطق سطح پایینتر) هم دیده میشود که یک روایت نسبتاً منسجم از «تغییر معماری» میسازد.
با این حال، فعلاً این ادعا بر پایه لیکها و بازنشرهاست و هنوز یک اعلام رسمی شفاف از سمت خود Xiaomi درباره «بازنویسی اپهای سیستمی با Flutter» به شکل قطعی دیده نمیشود.
لینکها:
https://xiaomitime.com/why-hyperos-4-will-be-the-most-stable-update-in-xiaomi-history-88033/
https://www.gizmochina.com/2026/02/05/xiaomi-hyperos-4-self-developed-os-ai-framework/
https://mobile.twstalker.com/tikhomirovi
هدف این است که Flutter engine رندر UI و ساختار منطق را یکپارچه کند و بهمرور جایگزین معماری پراکنده مبتنی بر Java/Kotlin شود. همچنین گفته میشود این تغییرات همزمان با پیشرفت HyperOS 4 مرحلهبهمرحله رولاوت میشود.
در بعضی بازنشرها اشارههایی به استفاده ترکیبی Flutter (برای UI) و Rust (برای بخشهایی از زیرساخت/منطق سطح پایینتر) هم دیده میشود که یک روایت نسبتاً منسجم از «تغییر معماری» میسازد.
با این حال، فعلاً این ادعا بر پایه لیکها و بازنشرهاست و هنوز یک اعلام رسمی شفاف از سمت خود Xiaomi درباره «بازنویسی اپهای سیستمی با Flutter» به شکل قطعی دیده نمیشود.
لینکها:
https://xiaomitime.com/why-hyperos-4-will-be-the-most-stable-update-in-xiaomi-history-88033/
https://www.gizmochina.com/2026/02/05/xiaomi-hyperos-4-self-developed-os-ai-framework/
https://mobile.twstalker.com/tikhomirovi
❤5🤣2
Forwarded from sasan safari
رودمپ رسمی فلاتر در سال ۲۰۲۶
https://blog.flutter.dev/flutter-darts-2026-roadmap-89378f17ebbd
۱) تکمیل و تثبیت ایمپلر Impeller روی اندروید Android برای کاهش لگ و روانتر شدن UI
۲) وب Web: حرکت به سمت پیشفرض شدن واسِم WebAssembly (Wasm) برای پرفورمنس بهتر
۳) جنیوآی GenUI و اپهای ایجنتمحور Agentic apps: UI پویا بر اساس نیت کاربر + پروتکل A2UI
۴) فولاستک دارت Full-stack Dart: بهبود اجرای سمتسرور Server-side، مخصوصاً کلاد فانکشنز فایربیس Cloud Functions for Firebase و مسیرهای Cloud/AI (Genkit)
۵) تجربه توسعهدهنده Developer Experience (DevEx) با محوریت ایجنتهای AI: ابزارهای AI agents و MCP servers + اتصال بهتر به analyzer
۶) بستهبندی/معماری Open-source governance: جدا شدن Material و Cupertino به پکیج Package مستقل + بازتر شدن موتور Engine extensibility برای توسعه out-of-tree
۷) زبان دارت Dart language: Primary constructors و Augmentations + بهبود build_runner و analyzer performanceزبان Dart: Primary constructors و augmentations + بهبودهای build/analyzer.
https://blog.flutter.dev/flutter-darts-2026-roadmap-89378f17ebbd
۱) تکمیل و تثبیت ایمپلر Impeller روی اندروید Android برای کاهش لگ و روانتر شدن UI
۲) وب Web: حرکت به سمت پیشفرض شدن واسِم WebAssembly (Wasm) برای پرفورمنس بهتر
۳) جنیوآی GenUI و اپهای ایجنتمحور Agentic apps: UI پویا بر اساس نیت کاربر + پروتکل A2UI
۴) فولاستک دارت Full-stack Dart: بهبود اجرای سمتسرور Server-side، مخصوصاً کلاد فانکشنز فایربیس Cloud Functions for Firebase و مسیرهای Cloud/AI (Genkit)
۵) تجربه توسعهدهنده Developer Experience (DevEx) با محوریت ایجنتهای AI: ابزارهای AI agents و MCP servers + اتصال بهتر به analyzer
۶) بستهبندی/معماری Open-source governance: جدا شدن Material و Cupertino به پکیج Package مستقل + بازتر شدن موتور Engine extensibility برای توسعه out-of-tree
۷) زبان دارت Dart language: Primary constructors و Augmentations + بهبود build_runner و analyzer performanceزبان Dart: Primary constructors و augmentations + بهبودهای build/analyzer.
❤3👍1