tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            معماری mvp در اندروید با کاتلین

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش اندروید
            • معماری mvp در اندروید با کاتلین
            سورس ربات تلگرام جذب بازدید و جذب ممبر
            سورس ربات تلگرام جذب بازدید و جذب ممبر
            26 اسفند 1397
            آموزش گام به گام عملیات CRUD با لاراول 5.8
            آموزش گام به گام عملیات CRUD با لاراول 5.8
            2 فروردین 1398
            منتشر شده توسط مدیر سایت
            معماری mvp در اندروید با کاتلین

            معماری mvp در اندروید با کاتلین

            معماری mvp در اندروید با کاتلین ، نحوه استفاده از معماری MVP ، همیشه برای برنامه نویسی با هر زبانی و برای هر پلتفرمی نیاز به رعایت اصول و قوانینی می باشد.تمیز نویسی و کوتاه نویسی همیشه به برنامه نویس لذت می بخشد. کدهای اصولی به راحتی قابل تغییر و منعطف هستند و قابلیت تست راحتری دارند و خود مستند هستند.

            اولین موردی که توسعه دهنده اندروید برای بهبود موارد فنی در نظر میگیرد معماری می باشد.انتخاب معماری برای برنامه نویسان تازه کار می تواند مشکل باشد.ما در این آموزش شما را با یک معماری در اندروید برای تمیز نویسی کد آشنا میکنیم.این معماری mvp  نام دارد که از کلمات زیر مشتق شده است.

            Model–View–Presenter

            در ادامه آموزش یاد خواهید گرفت که چگونه معماری mvp را در اکوسیستم اندروید پیاده سازی کنید. ما یک مثال برای پیاده سازی با کاتلین ارائه میدهیم که الگوی مناسبی برای یادگیری شما خواهد بود.

            معماری mvp (Model-View-Presenter) در اندروید با کاتلین

            وقتی که میخواهیم معماری برای پیاده سازی نرم افزار خود انتخاب کنیم اولین اصلی که باید به آن توجه کنیم جدا کردن لایه ها از یک دیگر می باشد. تا نرم افزار ما منعطف شود و تغییرات درآن ساده باشد و زمانبر نباشد.

            معماری MVP یکی از بهترین معماری جدا کردن لایه نمایشی از لایه منطق تجاری یا Business Logic Layer می باشد.
            معماری MVP به ما این امکان را می دهد تا به راحتی الگویی از معماری پیشرفته را پیاده سازی و اجرا کنیم. مانند الگوی کامل Clean Architecture.

            ما در این مقاله بررسی میکنیم که نحوه استفاده از معماری MVP چگونه است؟ و ما چگونه می توانیم با استفاده از کاتلین آن را اجرا کنیم

            معماری mvp در اندروید با کاتلین
            معماری mvp در اندروید با کاتلین

            View

            همان بخشی است که کاربر با نصب اپلیکیشن آن را می بیند و با آن ارتباط برقرار میکند در واقع در معماری mvp عملیات کاربر را به  presenter منتقل میکند. و ترکیبی از Activity/Fragment/View و رابط کاربری می باشد. و هر زمان که نیاز به انجام عملی باشد عملکردی متفاوت از presenter را برای شی انجام میدهد و دارای منطق تجاری نمی باشد و به صورت مستقیم با مدل ارتباطی ندارد.
            Xml فایل ها یک بخش از لایه view هستند و همچنین Adapter ها هم یک بخش از view می باشد.

            نمونه ای از کدهای لایه view با کاتلین

            //Activity/Fragment/View implements interface
            class MainActivity : AppCompatActivity(), MainView {
            // Initialize Presenter (also Model in the constructor of Presenter) & has object of Presenter
            private lateinit var mainPresenter: MainPresenter
            override fun onCreate(savedInstanceState: Bundle?) {
            //...
            mainPresenter = MainPresenter(this, MainInteractor())
            mainPresenter.getData()
            }
            
            //...
            override fun setData(arrUpdates: List<DataItem>) {
            // Show data on UI
            }
            override fun setDataError(strError: String) {
            // Show error on UI
            }
            override fun onDestroy() {
            // Destroy View
            mainPresenter.onDestroy()
            super.onDestroy()
            }
            }
            ===================================
            // Interface (acts as a contract between View and Presenter)
            interface MainView {
            fun showProgress()
            fun hideProgress()
            fun setData(arrUpdates: List<DataItem>)
            fun setDataError(strError: String)
            }

            Presenter

            به زبان ساده میتوان گفت در معماری mvp لایه Presenter به عنوان واسط بین model و view عمل میکند.و یک کلاس جداگانه است که نباید Android context داشته باشد.
            Presenter در واقع شامل منطق های اپلیکیشن از جمله رفتارها یا رویدادها و هر عملیاتی که صورت میگیرد هست و به بروزرسانی مدل پاسخ میدهد و وضعیت ارائه در لایه view  را کنترل می کند.
            Presenter دارای آبجکت View و Model است و دسترسی مستقیم به عناصر ui برنامه را ندارد.
            Presenter بر اساس view ساخته می شود یعنی پیاده سازی کد های Presenter به لایه view  محدود میگردد ، این گفته به صورت رایج قابل قبول می باشد ، به این دلیل که view یک کلاس ساده است و نیازی نیست که تست شود.همچنین Presenter احتمال تغییر کدهایش کم می باشد.
            زمانی که presenter مجموعه ای از اطلاعات را در view قرار می دهد یا یک رویدادی توسط کاربر اتفاق می افتد، view تغییر می کند.
            Presenter مدل را دریافت و نمایش می دهد در واقع بخش model را در view  نمایش میدهد.

            نمونه ای از کدهای لایه Presenter با کاتلین

            // Presenter has the object of both View and Model(Interactor)
            // Implements OnFinishedListener to listen for Interactor response
            class MainPresenter(private var mainView: MainView?, private val mainInteractor: MainInteractor):
            MainInteractor.OnFinishedListener {
            fun getData() {
            mainView?.showProgress()
            mainInteractor.requestGetDataAPI(this)
            }
            override fun onResultSuccess(arrUpdates: List<DataItem>) {
            mainView?.hideProgress()
            mainView?.setData(arrUpdates)
            override fun onResultFail(strError: String) {
            mainView?.hideProgress()
            mainView?.setDataError(strError)
            }
            // Destroy View when Activity destroyed
            fun onDestroy() {
            mainView = null
            }
            }

            Model

            بخواهیم مدل را به زبان ساده بیان کنیم می توانیم بگوییم که مدل وظیفه اش ارتباط بین برنامه و دیتا است.در واقع میتوان گفت یک منبع اطلاعات قابل نمایش در view می باشد.مدل تنها لایه ای هست که منطق تجاری یا business logic را به خوبی اجرا می کند و به صورت جداگانه بدون view قابل تست می باشد.
            مدل از وجود view و Presenter هیچ آگاهی ندارد.اگر تغییری در مدل ایجا شود باید Presenter حتما از آن تغییر آگاه شود.

            نمونه ای از کدهای لایه Model  در کاتلین

            class MainInteractor {
            interface OnFinishedListener {
            fun onResultSuccess(arrUpdates: List<DataItem>)
            fun onResultFail(strError: String)
            }
            fun requestGetDataAPI(onFinishedListener: OnFinishedListener) {
            // Get data from server
            }
            }

            نتیجه کلی از نحوه ی کار معماری mvp

            به طور خلاصه قابل ذکر است که لایه view با توابع و کلاس Presenter ارتباط برقرار میکند. مثلا اگر کاربر در اپلیکیشن بر روی دکمه ثبت اطلاعات کلیک کند view اطلاعات کاربر را به Presenter انتقال می دهد و Presenter یک آبجکت جدید از اطلاعات دریافت شده را به مدل انتقال میدهد و اطلاعات را به مدل تحویل میدهد و مدل آن را در دیتابیس ذخیره میکند و درنهایت presenter  برروزرسانی مدل را دریافت میکند و آن را به view ارسال میکند و view آن بروز رسانی را به کاربر نمایش میدهد.

            ارتباط مستقیم از:

            View ==> Presenter ==> Model

            ارتباط غیر مستقیم از قرارداد رابط کاربری :

            Model =/=> Presenter =/=> Vie

            تصویر زیر اطلاعات خوبی را از معماری mvp  بیان میکند ، این تصویر بیان گر نمودار جریانی از معماری mvp  در اندروید می باشد و درک کاملی از این معماری در اندروید را نشان می دهد.

            معماری mvp در اندروید با کاتلین
            معماری mvp در اندروید با کاتلین

            در آدرس زیر میتوانید مثال کاملی در این رابطه با کاتلین را مشاهده نمایید.

            نمونه ای از معماری mvp  در کاتلین

            امیدوارم این پست براتون مفید بوده باشه و ازش استفاده کنید. از طریق راه های ارتباطی زیر میتونید با ما برای درخواست آموزش های اختصاصی و انواع پروژه ها در ارتباط باشید.

            ثبت سفارش پروژه
            ثبت سفارش فیلم آموزشی
            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 9 اسفند 1401

              مهری اصغری نظر در پیاده سازی اولین پروژه با فلاتر Flutter

            • 26 آبان 1401

              سجاد نظر در پروژه مدیریت سیستم مدرسه با سی شارپ و sql server

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج