<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mohammad abdi</title>
        <link>https://virgool.io/feed/@mabdipor</link>
        <description>حدودا 9سال است برنامه نویسی می کنم  و با جاوا  شروع کردم (و هنوز هم علاقه زیادی به آن دارم) و با جاوا و کاتلین و با همچنین فلاتر  و unity به صورت حرفه ای به توسعه اپلیکیشن ها و بازی ها می پردازم</description>
        <language>fa</language>
        <pubDate>2026-06-07 02:43:36</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/385686/avatar/C4Obuh.png?height=120&amp;width=120</url>
            <title>mohammad abdi</title>
            <link>https://virgool.io/@mabdipor</link>
        </image>

                    <item>
                <title>سورس پروژه موزیک پلیرحرفه ای</title>
                <link>https://virgool.io/@mabdipor/%D9%85%D9%88%D8%B2%DB%8C%DA%A9-%D9%BE%D9%84%DB%8C%D8%B1-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-veggpe8bepn9</link>
                <description>بایک مقاله دیگر از دنیای برنامه نویسی فصل اندروید برگشتیم?خوب این بار بایک سوپرایز برگشتیم سورس کامل موزیک پلیر نوتریکا با قابلیت های بسیار زیاد و کدنویسی اصولی (لینک گیتهاب در انتهای مقاله قرار دارد)تکنولولژی های :MVVM و Dagger و room و coroutines و ...از این سورس میتوانید برای انتشار یک موزیک پلیر چه افلاین و چه آنلاین استفاده کنید به جرعت یکی از کامل ترین ها هست اعلاوه بر مورد فوق میتوانید برای ارتقای برنامه نویسی به سطح حرفه ای استفاده کنیداین سورس برای سال2019 است اما اپدیت جدیدش را تا یک یا دو ماه آیند قرار خواهیم داد تا از لحاظ فنی نیز کاملا به روز باشدنکته این سورس دارای قابلیت های منحصر به فردی است که یقینا به شما در ساخت اپلیکیشن تان کمک میکندلینک در گوگل پلیقابلیت ها جذابقاابلیت رانندگی امنصفحه قفل گوشی که دارای دیزاین منحصر به فردی است برای سهولت در هنگام استفاده  
دارای 10 نوع دیزاین مختلف برای پلی لیست که خود کاربر میتواند آن را انتخاب نماید
به کاربر اجازه سفارشی سازی اپ تا حد زیادی را میدهد مثال میتواند میزان radius را برای card ها خود کاربر انتخاب کند+ چهار نوع مختلف نمایش card هاتنظیم رنگ المان های براساس کاورو کلی قابلیت باحال دیگه مثل 3 تم اصلی و تنظیم رنگه ثانویه و ...سورس کامل در GitHub: ((لینک سورس کامل))اگر نیاز به سورس یا آموزشی دارید در نظرات به ما بگویید تا آن را برای شما آماده کنیمما در مقالت دنیای برنامه نویسی سعی داریم تا: &lt;&lt;هر هفته یک مقاله و یک سورس آموزشی از تکنولوژی های جدید&gt;&gt; را برای شما آماده میکنیم و در Medium (البته بعضی از مقاله هایمان فقط در medium منتشر میشود )و بعد در ویرگول قرار میدیم تا باهم پیشرفت کنیم??با معماری flux بیشتر آشنا شو: https://vrgl.ir/p0Iioبرای فهم بهتر پیشنهاد میدم که این مقاله را در اینجا مطالعه کنید:https://mohammadabdipour.medium.com/source-music-player-767960f8a14eلینک medium ما: لینک</description>
                <category>mohammad abdi</category>
                <author>mohammad abdi</author>
                <pubDate>Sat, 19 Dec 2020 10:47:20 +0330</pubDate>
            </item>
                    <item>
                <title>معماری آینده دار Flux در فلاتر</title>
                <link>https://virgool.io/flutter-community/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D8%AF%D8%A7%D8%B1-flux-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-cse42ahooote</link>
                <description>بایک مقاله دیگر از دنیای برنامه نویسی فصل اندروید برگشتیم?خوب در پست قبلی با این معماری جذاب کمی آشنا شدیم و مثال هایی در کاتلین برای ان زدیم، به درخواست تعداد زیادی از دوستان تصمیم گرفتیم برای فلاتر (این فریمورک جوان و جذاب) هم یک سری توضیح درباره flux و یک سورس در جهت یادگیری آن قرار بدیمپست قبلی معماری جدید و متفاوت در اندرویدسورس کامل این آموزش در GitHub: ((در انتهای مقاله قرار داده شده است))یک کتابخانه معماری برنامه دارت با جریان داده یک جهته با الهام از RefluxJS و Facebook’s Fluxاین یک پکیچ آزمایشی است و پشتیبانی رسمی تیم Flutter را ندارد. با این حال ، استقبال فراوانی از این معماری جذاب شده!خب این مقاله ما به این موارد تقسیم میشود:    توضیح اجمالی  موارد گنجانده شده: Action، Store، FluxComponent     مثال ها     مصرف خارجیتوضیح اجمالیدر واقع flutter_fluxیک الگوی جریان داده یک جهته را اجرا می کند که از Actions، Storesو StoreWatchersتشکیل شده است. این مبتنی بر w_flux است ، اما برای استفاده از Flutter به جای React اصلاح شده است.یک Actionsجهش داده های برنامه را که در Stores قرار دارند آغاز می کند.دو جهش داده ها در Stores باعث بازآفرینی نمای برنامه (تعریف شده در StoreWatcher) می شود.سوم Widgets های Flutter و سایر منابع تعامل Actionsرا در پاسخ به تعامل کاربر ارسال می کنند.چهارم و چرخه ادامه دارد ...Flux شامل چه مواردی استActionدرواقع Actionفرماني است كه مي تواند ارسال شود (با بارگذاري اطلاعاتي اختياري) و گوش داده شود.در flutter_flux،مورد Actionsتنها عامل اصلی تغییر وضعیت برنامه هستند. اWidgets و اشیا other دیگر Actionsرا در پاسخ به تعامل کاربر با نمای ارائه شده ارسال می کنند. Stores برای این اعزام های Action گوش می دهند و داده های داخلی خود را در پاسخ با استفاده از محموله Actionبه طور مناسب تغییر می دهند.import &#039;package:flutter_flux/flutter_flux.dart&#039;;

// define an action
final Action&lt;String&gt; displayString = new Action&lt;String&gt;();

// dispatch the action with a payload
displayString(&#039;somePayload&#039;);

// listen for action dispatches
displayString.listen(_displayAlert);

_displayAlert&#40;String payload&#41; {
  print(payload);
}BONUS: Actions منتظر هستند!آنها آینده ای را پس از اتمام تمام شنوندگان Actionثبت شده ، برمی گردانند. معمولاً توصیه نمی شود از این ویژگی در کد نرمال برنامه استفاده کنید ، اما در unit test کاملاً مفید است.Store یک Storeیک مخزن و مدیر حالت برنامه است. کلاس پایه Storeارائه شده توسط flutter_fluxباید متناسب با نیازهای برنامه و داده های آن گسترش یابد. بسته به پیچیدگی برنامه و معماری برنامه مورد نظر شما ، حالت برنامه ممکن است در بسیاری از فروشگاههای مستقل پخش شود.طبق قرارداد ، داده های داخلی Storeمستقیماً قابل تغییر نیست. در عوض ، داده های Storeدر پاسخ به response های Action، تغییر شکل داخلی می دهند. در غیر این صورت باید Storeها فقط خواندنی تلقی شوند ، و داده های مربوطه را فقط از طریق روش های گیرنده در معرض دید عموم قرار می دهند. این دسترسی محدود به داده ها تضمین می کند که یکپارچگی جریان داده های یک جهته حفظ می شود.3یک Storeرا می توان برای دریافت notification خارجی جهش های داده خود گوش داد. هر زمان داده های درون Storeتغییر داده شود ، از روش triggerبرای آگاه سازی شنوندگان ثبت شده از در دسترس بودن داده های به روز استفاده می شود. در flutter_flux، StoreWatchersبه Storeها گوش می دهند ، به طور معمول رندر مجدد عناصر UI را براساس داده های به روز شده Storeآغاز می کند.import &#039;package:flutter_flux/flutter_flux.dart&#039;;

class RandomColorStore extends Store { 

 // Public data is only available via getter method
  String _backgroundColor = &#039;gray&#039;;
  String get backgroundColor =&gt; _backgroundColor; 

 // Actions relevant to the store are passed in during instantiation
  RandomColorActions _actions;

  RandomColorStore(RandomColorActions this._actions) {
    // listen for relevant action dispatches
    _actions.changeBackgroundColor.listen(_changeBackgroundColor);
  }  

_changeBackgroundColor(_) {
    // action dispatches trigger internal data mutations
    _backgroundColor = &#039;#&#039; + (new Random().nextDouble() * 16777215).floor().toRadixString(16); 

   // trigger to notify external listeners that new data is available
    trigger();
  }
}BONUS: Stores یک ترکیب مختصر اختیاری برای action-&gt;و data mutation(جهش داده ها) -&gt; trigger operations. فراهم می کنند.// verbose syntax
actions.incrementCounter.listen(_handleAction);_handleAction(payload) {

    // perform data mutation
    counter += payload;
    trigger();

  }// equivalent terse syntax
triggerOnAction(actions.incrementCounter, (payload) =&gt; counter += payload);مثال هانمونه های ساده استفاده از flutter_flux را می توان در دایرکتوری مثال یافت. مثال README شامل دستورالعمل هایی برای ساخت / راه اندازی آنهاست.مصرف خارجیدر flutter_fluxیک جریان داده یک جهته را در یک برنامه یا ماژول کد جداگانه پیاده سازی می کند. اگر از flutter_fluxبه عنوان معماری داخلی کتابخانه استفاده می شود ، هنگام تعریف API خارجی باید این جریان داده داخلی در نظر گرفته شود.     روش های خارجی API که هدف آن تغییر وضعیت داخلی است ، باید Actionsرا ارسال کند ، دقیقاً مانند هر تعامل کاربر داخلی.     روشهای API خارجی که برای پرس و جو از حالت داخلی در نظر گرفته شده اند ، باید از روشهای موجود فقط در حالت خواندن Storeاستفاده کنند.     جریانهای خارجی API که برای اطلاع رسانی به مصرف کننده در مورد تغییرات وضعیت داخلی در نظر گرفته شده اند ، باید مشابه راه اندازهای آنها از Storesداخلی ارسال شوند.سورس کامل این آموزش در GitHub: ((لینک سورس کامل این آموزش))اگر دوست دارید بیشتر با این معماری جذاب آشنا شوید در نظرات به من بگویید تا آن را به طور کامل آموزش دهم??‍?با معماری فلاکس بیشتر آشنا شوhttps://vrgl.ir/p0Iioبرای فهم بهتر پیشنهاد میدم که این مقاله را در اینجا مطالعه کنید:https://mohammadabdipour.medium.com/flux-and-flutter-c7483cef8e39</description>
                <category>mohammad abdi</category>
                <author>mohammad abdi</author>
                <pubDate>Sun, 13 Dec 2020 12:35:10 +0330</pubDate>
            </item>
                    <item>
                <title>معماری جدید و متفاوت در اندروید</title>
                <link>https://virgool.io/@mabdipor/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%88-%D9%85%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-pzyotrqca67s</link>
                <description>بایک مقاله دیگر از دنیای برنامه نویسی فصل اندروید برگشتیم?بیش از 9 سال است که در زمینه توسعه برنامه و بازی های اندرویدی فعالیت میکنم در محیط هایی مثل Eclipse ، Android Studio ، Unity و Flutter تجربه کار حرفه ای را کسب کردم. وحالا دیگر بسیاری از الگوهای طراحی و معماری در مجموعه ای از برنامه های مختلف خودم استفاده کردم. MVC ، MVP ، MVVM ، VIPER ، MVI ، CLEAN. همه آنها با فرض آسان کردن زندگی شما شروع می شوند به طوری که دیگر هرگز نمی خواهید زیر دوش گریه کنید ... ? اما این کار همیشه به همین روش تمام می شود ، یک برنامه یکپارچه که تغییر یک چیز باعث می شود کل برنامه از کار بیفتد. دیباگ کردن و پیدا کردن مشکل که گاها تا یک هفته نیز ممکن است طول بکشد. اما یک روز توسط یکی از دوستانم با flux و گروه توسعه ان آشنا شدم و سعی کردم هرچند کم اما در توسعه این معماری به دوستان جدیدم  کمک کنم. جریان Flux (و Redux) چیست؟من توضیح مفصلی در مورد این الگوها نمی دهم ، اطلاعات زیادی در مورد این موارد وجود دارد. این الگوهای معماری یک چیز مشترک دارد (مهمترین موارد برای من):Create a single source of truthCreate a unidirectional information flowمورد اول دسته ای از مشکلات مشترک در برنامه های تلفن همراه را برطرف می کند و این که اطلاعات نشان داده شده در یک صفحه نمی تواند مانند صفحه دیگر باشد. برای حل این مسئله معمولاً باید اطلاعات را بار دیگر بارگیری کنیم تا از صحت آنها اطمینان حاصل کنیم.مورد دوم به ما کمک می کند تا در هنگام اشکال زدایی ایمن خود را حفظ کنیم. شما آن اشکالی را به خاطر می آورید که باعث ایجاد برخی اوقات به صورت تصادفی شده است؟ و شما نمی دانید کجا صدا شده است؟ داشتن اطلاعات یک طرفه از جریان به شما کمک می کند تا domain flow خود را درک کنید ، باعث می شود برنامه شما انعطاف پذیرتر باشد و به راحتی بتوانید علت آن اشکال آزار دهنده را پیدا کنید.و یک نکته مهم دیگر نیز وجود دارد: واکنش پذیریاین برچسب برای دو نقطه اول است. واکنش پذیر بودن کد شما به صورت درست باعث می شود برنامه شما همیشه آخرین اطلاعات را نشان دهد.المان ها در fluxبرنامه های من و Fluxمن در دو برنامه (در حال حاضر در دو برنامه دیگر کار می کنم) با استفاده از flux کار می کنم. ;که بیش از  800 هزار کاربر داریم. رتبه بندی برنامه های ما 4.5 ستاره است و نرخ crash free 99،99٪ است (Firebase اعشار دیگری ندارد). من می دانم که دستیابی به این اعداد بدون داشتن یک تیم عالی و معماری مستحکم دشوار است.کامپوننت های معماری ما چیست:Stores: حاوی state تغییرناپذیری است. مشترک اشتراک Actions است. وقتی عملی به Stores می رسد ، وضعیت او تغییر می کند. با تغییر وضعیت ، به نمای مشترک شده در آن منتقل می شود.Actions: یک مورد استفاده را نشان دهید. یک اقدام می تواند این باشد: LoginAction ، RequestInfoAction.Dispatcher: شیئی که مراقبت از اعزام اقدامات ارسال شده به هر Storesرا به عهده دارد https://gist.github.com/mr36069/f150ca759d2bafc43ef2d8a0f552e134  https://gist.github.com/mr36069/b478255d613c7f51981b66e3f682130b  https://virgool.io/p/pzyotrqca67s/%D8%A7%DA%AF%D8%B1%D8%AF%D9%88%D8%B3%D8%AA%D8%AF%D8%A7%D8%B1%DB%8C%D8%AF%D8%A8%D8%B7%D9%88%D8%B1%DA%A9%D8%A7%D9%85%D9%84Flux%D8%B1%D8%A7%D8%A2%D9%85%D9%88%D8%B2%D8%B4%D8%AF%D9%87%D9%85%D8%8C%D8%AF%D8%B1%D9%86%D8%B8%D8%B1%D8%A7%D8%AA%D8%A8%D9%87%D9%85%D9%86%D8%A8%DA%AF%D9%88%DB%8C%DB%8C%D8%AF%F0%9F%98%89 اگر دوست دارید بیشتر با این معماری جذاب آشنا شوید در نظرات به من بگویید تا آن را به طور کامل آموزش دهم??‍?واقعاً از تغییرات وحشتناک اندروید 11 مطلع هستید؟https://vrgl.ir/LuyJgبرای فهم بهتر پیشنهاد میدم که این مقاله را در اینجا مطالعه کنید:https://mohammadabdipour.medium.com/new-and-effective-architecture-in-android-cfc5d8f2af9e</description>
                <category>mohammad abdi</category>
                <author>mohammad abdi</author>
                <pubDate>Sat, 05 Dec 2020 12:07:57 +0330</pubDate>
            </item>
                    <item>
                <title>اندروید 11 یک پیشرفت یا</title>
                <link>https://virgool.io/@mabdipor/%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-11-%DB%8C%DA%A9-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA-%DB%8C%D8%A7-t1ccr6h5m5sn</link>
                <description>اندروید 11 یک پیشرفت یا .... با یکی دیگر از مقالات، جهان برنامه نویسی فصل اندروید برگشتیمزمانی که اندروید 10 منتشر شد یعنی در 9 سپتامبر انقدر سر و صدا به پا کرد که تعداد زیادی از مردم برای استفاده از این ورژن حاظر به خریدن موبایل هایی با اندروید 10 شدند این قضیه برای اندروید 11 نیز صادق است مطمئنن این اپدیت برروی خدمات توسعه اپلیکیشن نیز تاثیر به سزایی خواهد داشتنظر شما در این خصوص چیست؟ باید منتظر انتشار نسخه پایدار و نهایی آن باشیم. (ژوئن)برای بهتر درک کردن این مقاله تصمیم گرفتم ان را در سه بخش ارائه کنم New Features, API &amp; SecurityMigration &amp; CompatibilityTestingدرخواست: برای پیشرفت بیشتر و درک کامل، از لینک های که میگذارم حتما استفاده نمایید تا در اندروید 11 به مشکل برخورد نکنید1. New Features, API &amp; Security:Display Cutout API: بر اساس نوآوری مداوم در صفحات ، API جدید  برای صفحه های منحنی و Waterfall ساخته شده است.Bubbles API: خوب Bubbles روشی برای مشاهده و دسترسی مکالمات در هنگام انجام چندین کار روی تلفن است. برنامه های پیام و گپ برای فعال سازی این مورد در Android 11 باید از این مورد در اعلان ها استفاده کنند.Scoped Storage: همانطور که همه چیز از Android 10 شروع شد ، اکنون ویژگی ها مانند دسترسی به مسیر پرونده خام برای رسانه ها ، UI اسناد به روز شده و عملیات ویرایش دسته ای در MediaStore بهبود یافته اند.بحث دسترسی ها که تنها گزینه فقط در این زمان را نشان میدهدPermissions:اندروید 11 با مجوزها شفاف تر شده و برای آن ویژگی های جدیدی به عنوان Data Access Auditing اضافه می شود. با استفاده از این ویژگی ، کاربران نهایی دسترسی داده های بالقوه غیر منتظره را بهتر شناسایی و اصلاح می کنند.  مورد دیگر Dialog Visibility است که می گوید ، با دو بار ضربه زدن روی“Deny” برای اجازه خاص ، بعداً “don’t ask again” در نظر گرفته می شود. همچنین ، مجوز یکبار مصرف جدید شامل گزینه ای به نام “Only this time” برای مجوز یکبار مصرف موقت است. علاوه بر این ، اگر برنامه Android 11 را هدف قرار دهد ، نمی توانید مستقیماً درخواست تمام وقت را انجام دهیدBio-metric Authentication Strength:اندروید 11 رابط BiometricManager.Authenticators را معرفی می کند. همچنین AuthenticationResultAPI به شما امکان می دهد بررسی کنید آیا کاربر با استفاده از اعتبار سنجی یا اعتبار سنجی دستگاه احراز هویت کرده است.Neural Networks API 1.3:خوب کم کم داره جالب میشه (Neural Networks API (NNAPI برای اجرای عملیات فشرده محاسباتی برای یادگیری ماشین در دستگاه های Android طراحی شده است. در Android 11 ، عملیات و کنترل ها توسعه یافته و در دسترس توسعه دهندگان است. در این نسخه ، برخی از عملیات جدید و کنترل های اجرا برای کمک به بهینه سازی موارد استفاده معمول اضافه شده است:Quality of Service APIs: از اولویت و مهلت زمانی برای اجرای مدل پشتیبانی کنیدMemory Domain API : کپی و تحول حافظه را برای اجرای مداوم مدل کاهش دهیدExpanded quantization support: برای ایجاد مدل های کوچکتر و استنتاج سریع تر ، signed integer asymmetric quantization  اضافه شده که در آن از اعداد signed integers به جای float numbers استفاده می شود.2. Migration &amp;amp;amp; Compatibility:ظاهرا Android 11 Preview SDK شامل تغییراتی است که با بعضی نسخه های قدیمی Android Studio سازگار نیست. بنابراین ، برای داشتن بهترین تجربه توسعه با SDK Android 11 Preview ، توصیه می کنم که آخرین نسخه پیش نمایش Android Studio 4.0 Preview را نصب کنید. اگرچه می توانید با استفاده از Android Studio 3.3 و بالاتر برنامه های Android 11 را کامپایل و آزمایش کنید. 3. Testing:اندروید 11 ابزارهای جدیدی را برای testing و debugging برنامه شما در برابر تغییرات رفتاری در آخرین نسخه سیستم عامل معرفی می کند. هدف اصلی چارچوب سازگاری این است که هنگام آزمایش برنامه خود با نسخه جدید Android ، کنترل و انعطاف پذیری را در اختیار شما قرار دهد. برای توضیح بیشتر میتوانید از لینک زیر استفاده کنید When to toggle changesنکته:پیاده سازی Android 11 در پروژه های خوتان در این زمان می تواند بر رفتارهای کل اپلیکیشن  تأثیر بگذارد.مشکلات شناخته شده ای در هنگام استفاده از: android studio and tools, android auto یافت می شوندویژگی های جدید  بسیار زیادی با Android 11 در دسترس هستند ، اما این مقاله برای کسانی است که می خواهند با اندروید 11 برخی از کارهای عملی خود را شروع کنند.سایر ویژگی های اصلی:Performant graphics debug layer injectionBatch operations for media filesRich media in quick repliesAccess to media files using raw file pathsSecure sharing of large data setsRequesting and checking for low latency supportLow-latency decoding in MediaCodecNDK image decoderResource loadersUpdates to the ICU librariesCallScreeningService updatesWi-Fi Suggestion APIMute notification sounds and vibrations during active captureدر انتهای این مقاله برای درک بهتر پیشنهاد میکنم به مقاله اصلی مراجعه کنید چون توضیح و کنار هم قرار دادن لغات تخصصی انگیلیسی با توضیح فارسی کار را برای من کمی سخت میکرد(تا الان شده چیزی را بدونی اما توضیح فارسی ان برای شما سخت باشه؟??) https://mohammadabdipour.medium.com/android-11-is-an-improvement-or-79651065a129برای کسب اطلاعات بیشتر ، به https://developer.android.com/preview مراجعه کنیدراستی نظراتون دررابطه به قراردادن پادکست های آموزشی در هر مقاله چیه؟ براتون جالبه؟ لطفا نظرات خودتان را برای من کامنت کنید?</description>
                <category>mohammad abdi</category>
                <author>mohammad abdi</author>
                <pubDate>Sat, 28 Nov 2020 11:45:12 +0330</pubDate>
            </item>
            </channel>
</rss>