معماری MVP چیست؟
هر برنامه نویسی دوست دارد تا از انجام کارهای تکراری و غیرضروری جلوگیر کند و وقت خود را روی حل مشکلات و چالشهای جدید بگذارد. همینطور توسعه و نگهداری نرم افزارهایی که از یک الگو یا معماری خاص پیروی نمیکنند، مشکل است. وجود معماریهای مختلفی مثل MVC، MVP یا MVVP کمک میکنند پیچیدگیهای برنامه تا حد ممکن کم شوند و فرآیند توسعه نرم افزار افزایش پیدا کند. در این صفحه به مغرفی mvp architecture می پردازیم.
مخفف MVP چیست؟
مدل مدل-ویو-کنترلر یا MVP Model–view–presenter (MVP) یکی از معماری های نرم افزاری است که در طراحی و ساخت اپلیکیشنها و سرویسهای مختلف مورد استفاده قرار میگیرد و بیشتر برای ساخت رابط کاربری (UI) مورد استفاده قرار میگیرد.

معماری نرم افزار چیست؟
معماری یک نرم افزار به تعریف ساختار بندی کلی سیستم و ارتباط آن با سایر بخشها اشاره دارد. هر معماری شامل الگوهای (Pattern) مختلفی است که با توجه به نوع پیاده سازی نرم افزار انتخاب میشوند. پترن هایی مانند MVP به نوعی زیرشاخه معماری نرم افزار محسوب میشوند. این الگوها مانند یک نقشه راه برای توسعه دهنده عمل میکنند و اجازه نمیدهند که او گرفتار تکرار شود. انتخاب معماری نرم افزاری که قصد پیاده سازی آن را دارید باید به گونه ای باشد که نیازمندیهای فنی و عملیاتی سیستم را به خوبی تامین کند.
معماری نرم افزاری MVP چیست؟
معماری MVP الگوی معماری جداگانه ای برای پیاده سازی رابط کاربری نرم افزار دارد که مدل-ویو-پرزنتر (Model-View-Presenter) نام دارد. در این معماری، بخش ارائه دهنده (Presenter) مسئولیت ارائه منطق را به عهده دارد و به دلیل دخاالت داشتن در سازماندهی عملیات سطح بالای سیستمی، فارغ از یک الگوی طراحی، یک الگوی معماری محسوب میشود. به طور کلی این الگوی معماری به کاهش پیچیدگیهای پیاده سازی بخش رابط کاربری نرم افزارها کمک زیادی میکند. مدل MVP به ۳ بخش کلی زیر تقسیم میشود:
- Model: در نقش یک واسط عمل میکند و داده هایی که باید در رابط کاربری نمایش داده شوند را تعریف میکند. این لایه همه داده های اپلیکیشن را درون کلاس های ساده نگهداری میکند. همه دیتایی که در نرم افزار ما استفاده میشود باید در لایه Model مدیریت شود. مانند داده هایی که از شبکه، دیتابیس، حافظه های مختلف و منابع دیگر می آیند. در حقیقت فرق زیادی بین لایه Model در این معماری و MVC وجود ندارد. وظیفه لایه Model بصورت کلی استفاده از API، کش کردن داده ها، مدیریت دیتابیس و غیره است.
- View: دادهها را نمایش میدهد و دستورات کاربر را به Presenter ارسال میکند. این لایه شامل همه اجزای سازنده رابط کاربری اپلیکیشن ما است. یعنی همه اکتیویتی ها و فرگمنت ها در لایه View قرار میگیرند. وظیفه این لایه نمایش داده های مختلف و تغییرات آن ها به کاربر است. در معماری MVP، لایه View بصورت مستقیم با لایه Presenter در ارتباط است. یعنی همه اکشن های کاربر را به اطلاع Presenter میرساند و از همان لایه دستور میگیرد که چه داده هایی را باید به کاربر نمایش بدهد.
- Presenter: مثل یک پل بین Model و View است. Presenter دادههای مختلف را از مخازن (Model) بازیابی میکند و آنها را برای نمایش در View آماده میکند. لایه Presenter: لایه Presenter در این معماری واسط بین لایه های View و Model است. یعنی لایه View همه اتفاقات را به این لایه خبر میدهد و از آن دستور میگیرد که چه داده هایی را باید نمایش بدهد. از طرفی هم لایه Presenter به لایه View دستور میدهد که کدام داده ها را باید ذخیره کند و چه داده هایی را باید در اختیار آن قرار بدهد. در این معماری، لایه Presenter برای اتفاقاتی که در جواب تعاملات کاربر رخ میدهد (یعنی در لایه View) تصمیم گیری میکند.
۳ بخش بالا به زبان ساده این کار را انجام میدهند:
- Model: چه چیزی را نشان دهم؟
- View: چطور آن را نمایش دهم؟
- Presenter: به مدل چه فرمتی برای نمایش بدهم و رویدادهای کاربر مثل ورودی دادن را چطور مدیریت کنم؟
کاربردهای معماری نرم افزاری MVP چیست؟
کاربرد معماری mvp برای توسعه اپلیکیشنهای مبتنی بر اندروید امکان استفاده از معماری و الگوهای زیادی وجود دارد اما MVP کمک میکند پروژههای بزرگتر را با دردسر کمتری به اتمام برسانید. در این معماری بخش Model وظیفه مدیریت منطق برنامه و کار با داده را به عهده دارد. این بخش در اپلیکیشنهای اندروید توسط لایه دسترسی به داده مانند APIهای پایگاه داده اجرا میشود.
View نیز رابط اتصالی یبن کاربران و Presenter است. بخش P که عامل متمایز کننده این معماری از معماری MVC است رابطی بین بخش ویو و کاربر میباشد. این قسمت وظیفه دارد با دریافت درخواست کاربر و ارائه آن به بخش مدل، قسمت ویو را آپدیت کرده و نتایج درخواست را به کاربر نشان بدهد.
کاربرد معماری mvp در اندروید قابلیت نگهداری و تست پذیری را فراهم میکند.
همچنین کاربرد معماری mvp برای توسعه دهندگانی است که با جداسازی بخش ویو بتوانند تست واحد (Unit Testing) را به آسانی انجام دهند.
همچنین بخوانید: روش های درامدزایی از برنامه نویسی
پیاده سازی معماری MVP در زبانهای برنامه نویسی مختلف
زبانهای مختلفی وجود دارند که به شما اجازه میدهند معماری MVP را در برنامههای خود استفاده کنید. برای مثال در زبان PHP، فریم ورک Nette از معماری MVP پشتیبانی میکند. در جاوا هم فریم ورک هایی مثل JFace و Vaadin این قابلیت را دارند. همینطور در تکنولوژی دات نت، میتوان معماری MVP را به کار گرفت. MVP محبوبیت زیادی در اندروید دارد و بسیاری از برنامه نویسان اندروید از این الگو استفاده میکنند.
چرا باید از معماری MVP استفاده کنیم؟
در برنامه نویسی اندروید و ساخت اپلیکیشن های اندرویدی، اکتیویتی ها رابط کاربری و مکانیزم های دسترسی به داده را بصورت خیلی نزدیک در کنار یکدیگر نگه داری میکنند که این مسئله باعث به وجود آمدن مشکل های زیادی میشود. برای اینکه یک اپلیکیشن بتواند مراحل نگهداری و توسعه راحت تری داشته باشد، باید لایه های جداگانه ای در پروژه داشته باشیم.
دلیل جداسازی لایه ها این است که فرض کنید ما تا امروز داده های اپلیکیشن را از دیتابیس داخلی تامین میکردیم، اما از فردا باید این اطلاعات را از سرور های آنلاین بگیریم. اگر لایه ها جداسازی نشده باشند چجوری باید این کار را انجام بدهیم؟ در اینصورت باید همه کارها را دوباره از اول انجام بدهیم.
معماری MVP لایه View را از منبع داده جدا میکند. همچنین تقسیم پروژه به سه لایه مختلف به ما کمک میکند که بتوانیم هرکدام از آنها را جداگانه تست کنیم. زیرا با استفاده از معماری MVP میتوانیم منطق اپلیکیشن را از اکتیویتی خارج کنیم و اینکار تست کردن آنها را راحت تر میکند.
مزایا و معایب معماری ام وی پی چیست؟
مزایای معماری MVP چیست؟
مزایایی که با پیاده سازی معماری MVP (یا معماری های مشابه مانند MVC، MVVM، MVVC) در پروژه به وجو می آیند این موارد هستند:
- جداسازی واضح مسئولیت ها بین کامپوننت های مختلف. این جداسازی باعث درک بهتر کدها و نگهداری راحت تر آنها میشود.
- ماژولار شدن پروژه. ماژولار بودن به ما اجازه میدهد که مثلا پیاده سازی لایه View را به کلی تغییر بدهیم و رابط کاربری اپلیکیشن را تعویض کنیم، بدون اینکه به بقیه قسمت های اپلیکیشن کاری داشته باشیم.
- تست پذیری راحت تر. از آنجایی که مرز های مشخصی بین کامپوننت های مختلف وجود دارد، تست کردن هر کامپوننت بصورت ایزوله راحت تر میشود (مثلا با Mock کردن بقیه کامپوننت ها).
معایب معماری MVP چیست؟
یکی از ریسک هایی که هنگام استفاده از معماری MVP وجود دارد، این است که معمولا فراموش میکنیم که Presenter همیشه به لایه View چسبیده است. لایه View هم معمولا یک اکتیویتی است، پس اتفاقات زیر ممکن است رخ بدهد:
- اکتیویتی میتواند در تسک هایی طولانی Leak شود.
- ممکن است اقدام به آپدیت اکتیویتی هایی کنیم که قبلا از بین رفته اند.
برای نکته اول، اگر مطمئن باشید که تسک های پس زمینه شما در مدت زمانی کوتاهی تمام میشوند نگرانی زیادی وجود نخواهد داشت. اما دومین مورد شاید دردسر های بیشتری ایجاد کند. یعنی فرض کنید یک درخواست به سرور فرستادید که ۱۰ ثانیه طول میکشد تا کامل شود و کاربر در ثانیه ۵ اکتیویتی را ببندد. این مسئله باعث Crash شدن اپلیکیشن میشود. راه حل این مسئله از بین بردن همه تسک های پس زمینه در مرحله onDestroy است.
نتیجه گیری از معماری ام وی پی اندروید
MVP یک Pattern یا الگو از معماری MVC بوده و تفاوت اصلی آن در نحوه کار Controller و Presenter است. زمانی که به کمک یک معماری مثل MVC یا MVP منطق و نمایش برنامه را از هم جدا میکنیم، تمرکز ما روی اجزای مختلف پروژه بیشتر میشود. شاید در پروژههای کوچک استفاده از ساختاری مثل MVP چندان به صرفه نباشد اما وقتی پروژه ما بزرگتر شده و اعضای تیم، قابلیتهای محصول، حجم کدها و غیره بیشتر میشوند منطقی است از یک معماری مثل MVP استفاده کنیم. با این کار زمان زیادی برای خود و اعضای تیم میخریم و فرآیند توسعه، خطایابی و حل مشکلات پروژه کاهش مییابد.
سوالات متداول در زمینه الگوی MVP
تاریخچه معماری ام وی پی چیست؟
الگوی نرم افزار MVP در اوایل دهه ۱۹۹۰ در Taligent، سرمایه گذاری مشترک اپل، IBM، و Hewlett-Packard سرچشمه گرفت.
MVP مدل برنامه نویسی اساسی برای توسعه برنامه کاربردی در محیط CommonPoint مبتنی بر C ++ Taligent است. این الگو بعدها توسط Taligent به جاوا منتقل شد و در مجله برنامه نویسی ای توسط Taligent CTO Mike Potel رایج شد.
پس از توقف Taligent در سال ۱۹۹۸، اندی بوئر و بلر مک گلاشان از Dolphin Smalltalk الگوی MVP را برای ایجاد مبنایی برای چارچوب رابط کاربری Smalltalk خود تطبیق دادند. در سال ۲۰۰۶، مایکروسافت شروع به استفاده از MVP در مستندات و نمونههایی برای برنامهنویسی رابط کاربری در داتنت فریمورک کرد.
تکامل و انواع مختلف الگوی MVP، از جمله رابطه MVP با سایر الگوهای طراحی مانند MVC، در مقاله برنامه نویسی توسط مارتین فاولر و مقاله دیگری توسط درک گریر به تفصیل مورد بحث قرار گرفته است.
تفاوت بین MVP و MVC چیست؟
اول باید به این نکته فکر کنید که این معماری ها چیزی به جز یک سری قوانین که برنامه نویس باید آن ها رو رعایت کند نیستند. این دو معماری هم شباهت زیادی به هم دارند و می توانیم بگیم یک سری اشکالاتی که در معماری MVC وجود داشت، در MVP سعی شده که برطرف شود.
تفاوتی که بین معماری MVP و MVC وجود دارد این است که به جای مدیریت کردن هر دو لایه Controller و View درون کلاس های اکتیویتی مانند چیزی که در معماری MVC دیدیم، در این معماری لایه های View و Presenter کاملا از هم جدا هستند و هر دو این لایه سبک تر از قبل شده اند.
تفاوت بین MVP و MVVM چیست؟
معماری MVVM یا همون Model-View-Viewmodel همانند mvc یا mvp یکی از الگو های معماری نرم افزار است. استفاده از آن به ما کمک میکند کدی تمیز، قابل نگهداری ، قابل تست و با خوانایی بالا داشته باشیم.
به طور کلی MVVM از سه بخش تشکیل شده
- ویو (view): وظیفه نمایش اطلاعات و گرفتن داده های ورودی از کاربر را دارد. اطلاعات گرفته شده از کاربر به viewmodel فرستاده می شود.
- ویو مدل (viewmodel): داده های دریافت شده از مدل را مدریت می کند و به view می فرستد.
- مدل (model): وظیفه مدیریت داده ها را بر عهده دارد.
در نگاه اول، به نظر می رسد شباهت بسیار زیادی بین معماری MVP و MVVM وجود دارد. انگار presenter به viewmodel تبدیل شده است. اما تفاوت آنها چیزی فراتر از تغییر نام presenter به viewmodel است. همانطور که در شکل زیر می بینید یک سری اینترفیس هم برای پیاده سازی MVP لازم است. اینترفیس IView بعد ها در presenter استفاده می شود و به طور مستقیم view را تغییر می دهد. در صورتی که در معماری MVVM این اتفاق به طور مستقیم نمی افتد یعنی viewmodel به صورت غیر مستقیم view را تغییر می دهد. نکته دیگر این است که ارتباط بین view و presenter در mvp یک به یک است، اما ارتباط بین view و viewmodel یک به چند است.
اینکه در معماری MVP ، ویو به صورت مستقیم توسط presenter تغییر می کند یک سری مشکلات و پیچیدگی ها را به کد اضافه می کند. زیرا ما مجبوریم حواسمان باشد که ویو در چه وضعیتی قرار دارد و اگر در وضعیت یا onDestroy نبود اجازه به روز رسانی ویو را داریم. به همین دلیل ما مجبوریم در presenter وضعیت view را گزارش دهیم. همین باعث می شود تست کردن کد ها، نگهداری و پیچیدگی کدمان افزایش یابد.
چند راه حل برای به روز رسانی view توسط viewmodel پیشنهاد می شود.
- دیتا بایندینگ(DataBinding)
- لایو دیتا (LiveData)
- ار ایکس جاوا(RxJava)
در همه راه حل های پیشنهاد شده هدف این است که یه سری observable (شی هایی هستند که زمانی که تغییر می کنند تغییرشان را به کسانی که آنها را observe (مشاهده) می کنند اعلام میکنند.) در viewmodel داشته باشیم که در view آنها را observe(مشاهده) کنیم.
دوره آموزش الگوی MVP پروژه محور هستند؟
بله تمامی دوره های برنامه نویسی سایت آموزش برنامه نویسی الکامکو پروژه محور هستند و همه مباحث در پروژه های واقعی به شما نشان داده خواهد شد.
چرا خرید دوره اموزش معماری mvp در اندروید از سایت آموزش برنامه نویسی الکامکو؟
- آموزشگاه برنامه نویسی الکامکو یک مرجع رسمی تولید کننده دوره های برنامه نویسی اعم از دوره اموزش معماری mvp اندروید است.
- منابع آموزشی دوره اموزش معماری mvp اندروید سرفصل های اصلی را شامل می شود.
- صدای مدرس برای تدریس دوره اموزش معماری mvp کاملا رسا است و تصویر نیز کاملا واضح است.
- بروزرسانی های دوره اموزش معماری mvp مدام توسط مدرس بررسی و پیاده سازی می شوند.
- دانلود فیلم دوره آموزش معماری mvp از سرورهای پرسرعت برای شما قابل دانلود هستند.
- دوره آموزش معماری mvp با بیانی ساده و قابل فهم توضیح داده می شود.
- دوره آموزش معماری mvp اندروید صفر تا صدی را تحت پوشش قرار می دهد.
- دوره آموزش معماری mvp اندروید از پایه ابتدایی گفته شده طوری که فرض شده شما چیزی بلد نیستید.
- در پکیج برنامه نویسی اموزش معماری ام وی پی اندروید تمامی نکات بین آموزش بررسی و گفته شده است و تجربیات برنامه نویس با شما اشتراک گذاشته می شود.
- چند جلسه از کل جلسات با قابلیت دانلود فیلم اموزش معماری ام وی پی در اندروید به صورت رایگان برای شما در دسترس است تا در صورت تمایل اقدام به دانلود بقیه جلسات نمایید.
- تعداد فیلم های آموزش معماری ام وی پی در اندروید تهیه شده متناسب با آموزش ها می باشد.
- قیمت برنامه نویسی دوره آموزش معماری mvp در اندروید ، با تخفیف برای شما محاسبه می شود. یعنی شما با همین مبلغ می توانید برنامه نویس حرفه ای شوید.
- دانشجویان پس از مشاهده جلسات دوره آموزش معماری mvp در اندروید امکان پرسش و پاسخ، رفع اشکال، انجام تمرین را خواهند داشت.
- و…
بازار کار بعد از یادگیری معماری ام وی پی اندروید چگونه است؟
آموزش از طریق فیلم معماری ام وی پی اندروید یکی از جدیدترین اموزش ها برای افرادی که نیاز به ساخت برنامه های اندروید حرفه ای دارند است. در نتیجه چون معماری ام وی پی اندروید یک معماری جدید است و از با روی کار آمد طرفداران زیادی را نسبت به خودش جلب کرده و متخصص زیادی در این حوزه وجود ندارد، اگر شما بتوانید معماری ام وی پی اندروید را خوب یاد بگیرید صد در صد بازار کار خوبی در انتظار شماست و می توانید درآمد خیلی خوبی از این بازار کار MVP داشته باشید و کسب درآمد کنید.
فیلم اموزش معماری MVP اندروید برای من کافی است؟
بله با فیلم اموزش معماری MVP اندروید شما دیگر نیاز به هیچ دوره دیگری نخواهید داشت ولی این به این معنی نیست که برای حرفه ای کار کردن فقط به ویدیو بسنده کنید، بلکه باید همیشه در حال یادگیری باشید و از ترندها روز باخبر باشید.
با فیلم اموزش اموزش معماری MVP در اندروید می توانم وارد بازار کار شوم؟
بله – فیلم اموزش MVP اندروید فروشگاه برنامه نویسی الکامکو چون از پایه تا پیشرفته توضیح داده شده شما را برای ورود به بازار کار آماده می کند.
یادگیری با فیلم اموزش MVP اندروید بهتر است یا کتاب یا روش های دیگر؟
صدر درصد یادگیری با فیلم اموزش MVP اندروید خیلی بهتر از کتاب است و دلایل زیادی برای این کار وجود دارد. مهمترین دلیل این است که دوره ها همیشه اپدیت می شوند.
بعد از دیدن اموزش MVP اندروید چگونه پروژه بگیریم؟
شما میتوانید بعد از مشاهده اموزش MVP اندروید به روشهای مختلفی می توانید پروژه بگیرید که در این قسمت شما را برخی از آنها آشنا می کنیم:
روش درامدزایی بعد از مشاهده اموزش MVP اندروید و مسلط شدن با این الگو این است که در یک شرکت استخدام شوید و روی پروژههای شرکتی کار کنید. در این روش ساعت کاری مشخص و معمولا بیمه خواهید شد.
یکی دیگر از روشها بعد از اموزش MVP اندروید این است که به صورت فریلنسری کار کنید. در حالت فریلنسری شما میتوانید خودتان از وبسایتهای پروژه یابی، با کارفرما لینک شده و پروژه بگیرید. همچنین در فضای مجازی، گروه ها و کانال هایی وجود دارند که این کار را انجام میدهند. در نهایت شما میتوانید یک سایت معرفی هم برای خود طراحی کنید و لینک آن را در شبکههای مختلف بفرستید.
روش سوم این است که یک ایده را پیاده سازی کنید و از آن کسب درآمد کنید. به این شکل میتوانید با پیاده سازی یک ایده موفق نظر کارفرماهای مختلف را هم به خود جذب کنید و از این طریق هم استارتاپ خود را داشته باشید و هم با تاسیس یک شرکت و گرفتن نیرو پروژه های مختلفی را انجام دهید. ولی این مورد برای شروع شاید زیاد مناسب نباشد.
روش چهارم بعد از اموزش MVP اندروید این است که می توانید به صورت انلاین تدریس کنید با در اموزشگاه ها و دانشگاه ها تدریس کنید.
روش پنجم بعد از اموزش MVP اندروید این است که می توانید دوره های آموزشی درست کنید و انها را در سایت یا کانالهای تلگرام یا اینستاگرام و دیگر فضاهای مجازی بفروشید.
همچنین بخوانید: آموزش اندروید استودیو پروژه محور
چرا فیلم آموزش MVP اندروید نسبت به کلاسهای حضوری توصیه می شود؟
- با مشاهده فیلم آموزش MVP اندروید می توانید هزینه کمتری را نسب به کلاسهای برنامه نویسی حضوری پرداخت کنید.
- بعد یا در حین مشاهده فیلم آموزش MVP اندروید می توانید مشکلات خود را آنلاین در فضای مجازی و انجمن ها و کانالها و غیره و حتی از استاد مربوطه مطرح کنید و سریع به نتیجه برسید.
- با مشاهده فیلم آموزش MVP اندروید می توانید در سایت های مسابقه ای شرکت کنید و برنده شوید.
- با مشاهده فیلم آموزش MVP در اندروید می توانید سرفرصت و با در اختیار داشتن وقت کافی از کلاسها یادداشت برداری کنید.
- با مشاهده فیلم آموزش MVP در اندروید می توانید آموزش ها را با کیفیت بالا با جدیدترین تکنولوژی ها مشاهده کنید.
- با مشاهده فیلم آموزش MVP در اندروید می توانید از آخرین ورژن های نصب شده نرم افزارها آشنا شوید.
- با اموزش معماری mvp اندروید می توانید از آخرین ترفندها و تکنیک هایی که میان کار بدرد شما خواهد خورد استفاده کنید.
- با اموزش MVP در اندروید می توانید از تمامی وقت خود برای هر اموری که می خواهید در این زمینه قوی تر باشید استفاده کنید.
- با اموزش MVP اندروید می توانید وارد بازار کار حرفه ای ها شوید چون تقریبا هر شرکت خصوصی یا هر ارگان سازمانی به نیروهای انسانی برای انجام دادن مهارت های این زبان برنامه نویسی نیاز دارند.
- با اموزش MVP اندروید می توانید سواد کامپیوتری خودتان را بالا ببرید و کارهای روزمره و یا کاریتان را بصورت حرفه ای تر، با سرعت بیشتر و زمان کمتری انجام دهید.
- با اموزش MVP اندروید می توانید این زبان برنامه نویسی را بر حسب استانداردها و سرفصل های مورد نیاز فنی حرفه ای یاد بگیرید و جلو روید.
- با اموزش معماری mvp در اندروید می توانید این زبان برنامه نویسی را پروژه محور یاد بگیرید.
- با آموزش معماری mvp در اندروید می توانید از رقبای خود بخاطر یادگیری خیلی از ترفندها و تجربه های اساتید برتر پیشی بگیرید.
- با آموزش معماری mvp در اندروید می توانید مهارتهای برنامه نویسی خود را افزایش دهید.
- با آموزش معماری mvp در اندروید می توانید در سایت های برنامه نویسی گواهینامه هایی دریافت کنید و از آن در رزومه خود استفاده کنید.
- با مشاهده آموزش معماری mvp اندروید می توانید شهریه ای خیلی کمتر از خرید کتاب های گران پرداخت کنید.
- بعد از آموزش معماری mvp اندروید و تسلط بر دوره های دیگر بخصوص دوره متخصص برنامه نویسی اندروید بازار کار خوبی پیش روی شماست.
- بعد از آموزش معماری mvp اندروید می توانید پروژه های مختلفی را بصورت دورکاری قبول کنید.
- و…
مقالات برنامه نویسی موبایل، مقالات برنامه نویسی اندروید، مقالات اندروید استودیو، دوره های برنامه نویسی جاوا برای اندروید،
امکان خرید این دوره وجود داره؟
بله . میتونید خرید کنید
مرسی عالی. منتظر این دورتون بودم.