
آموزش پروژه محور و پیشرفته اپلیکیشن های موبایل با Xamarin.Forms
آموزش پروژه محور و پیشرفته ی اپلیکیشن های موبایل با Xamarin.Forms یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی ساخت یک اپلیکیشن موبایل Enterprise با Xamarin.Forms است که با نام اصلی Building an Enterprise Mobile Application with Xamarin.Forms از شرکت Pluralsight منتشر شده است.
Xamarin چیست؟
زامارین (Xamarin) یک ابزار قدرتمند برای برنامه نویسی اپلیکیشن های چندسکویی موبایل است که به کمک زبان سی شارپ و نرم افزار ویژوال استدیو می توانید اپلیکیشن های Native برای سیستم عامل های Android، iOS و Windows Phone بسازید. Xamarin بهترین گزینه برای برنامه نویسان دات نت و توسعه دهندگانی است که قصد دارند نسخه بومی (Native) اندروید، iOS و Windows Forms Application های مورد نیاز خود را با یک بار برنامه نویسی با بالاترین کیفیت تولید کنند.
Xamarin.Forms چیست؟
Xamarin.Forms در سال 2014 راه اندازی شد، و پلت فرمی است که بر روی Xamarin اجرا می شود، در واقع به صورت یک کیت از ابزار UI بوجود آمد که به برنامه نویسان اجازه می دهد به راحتی یک رابط کاربری مشترک در اندروید، iOS و ویندوز فون را ایجاد کنند. Xamarin.Forms به زبان سی شارپ نوشته شده و امکان ایجاد یک نمونه سازی سریع از برنامه های کاربردی پیچیده را فراهم کرده است. برنامه های کاربردی Xamarin.Form برنامه های بومی هستند، و محدودیت های Toolkit ها را ندارد.

اپلیکیشن هایی که با استفاده از Xamarin.Forms نوشته شده اند، قادر هستند از هر یک از ویژگی های و یا یک پلت فرم پایه ، مانند ، PassKit و StoreKit در iOS؛ NFC و Google Play روی آندروید، Tiles و ویندوز فون، استفاده کنند. این بدان معنی است که می توانید اپلیکیشن هایی ایجاد کنید که شامل بخش هایی از رابط کاربری خودتان با Xamarin.Forms باشد، در حالی که بخش هایی از ابزار toolkit را نیز دارد. اپلیکیشن های Xamarin.Forms شبیه به معماری اپلیکیشن های multiplatform سنتی با معمول ترین شیوه برای قابل حمل بودن کتابخانه ها یا پروژه های مشترک ایجاد می شوند. و بعد اپلیکیشن هایی برای پلت فرم های ویژه ایجاد می شوند که کدهای مشترک را استفاده می کنند.
طراحی Layered Architecture و پیادهسازی MVVM در Xamarin.Forms
در آموزش Building an Enterprise Mobile Application with Xamarin.Forms تمرکز بر ساختار داخلی یک اپلیکیشن موبایل پیشرفته است؛ بهویژه زمانی که رابط کاربری، منطق برنامه و دسترسی به دادهها نباید در یک بخش به هم وابسته شوند. فصل Layered Architecture به تفکیک مسئولیتها در لایههای مختلف میپردازد و سپس الگوی MVVM بررسی میشود. با مطالعه Data Binding و Commandها میآموزید چگونه دادهها و عملیات موردنیاز رابط کاربری را به ViewModel مرتبط کنید، بدون اینکه منطق برنامه مستقیماً در کنترلهای نمایشی قرار بگیرد. این ساختار به سازماندهی بهتر کد و تغییر مستقل بخشهای مختلف کمک میکند.

در بخشهای عملی، Data Serviceها و نحوه دسترسی به داده در کنار Cache کردن اطلاعات بررسی میشوند. وجود یک لایه مشخص برای سرویسهای داده، مدیریت ارتباط میان منطق برنامه و منبع اطلاعات را آسانتر میکند؛ در حالی که Cache میتواند برای نگهداری موقت دادههای دریافتشده و کاهش نیاز به دریافت مجدد اطلاعات به کار برود. این مباحث به هم مرتبطاند، زیرا تصمیمگیری درباره محل دریافت و نگهداری دادهها بر نحوه طراحی ViewModel و رفتار رابط کاربری تأثیر میگذارد. با دنبال کردن این موضوعات، ارتباط میان معماری برنامه، Data Binding و سرویسهای داده را در یک پروژه Xamarin.Forms بهتر درک میکنید.
کاهش وابستگی با Dependency Injection و Messaging و تست واحد
در یک اپلیکیشن چندلایه، وابستگی مستقیم Componentها به یکدیگر میتواند تغییر و آزمایش کد را دشوار کند. این آموزش نحوه ایجاد Loose Coupling با استفاده از Dependency Injection را بررسی میکند تا اجزای برنامه بتوانند وابستگیهای موردنیاز خود را از طریق سازوکار مشخصی دریافت کنند. همچنین مسیر الگوی Dependency Injection و نقش کلاسهای Service مطرح میشود. در کنار آن، مکانیزم Messaging برای ارتباط میان Componentها آموزش داده میشود؛ رویکردی که به بخشهای مختلف اجازه میدهد پیامها را ردوبدل کنند، بدون اینکه برای هر تعامل به ارجاع مستقیم میان اجزا نیاز باشد.
موضوعات Navigation و Dialogها، Behaviorها و دسترسی به قابلیتها و کنترلهای Native دستگاه، جنبههای دیگری از پیادهسازی اپلیکیشن را پوشش میدهند. برای مثال، Dialogها میتوانند برای نمایش پیام یا دریافت تصمیم کاربر به کار بروند و Behaviorها امکان تعریف رفتارهای قابل استفاده مجدد در رابط کاربری را فراهم میکنند. در پایان، تست کردن اپلیکیشن با Unit Testها مطرح میشود تا بتوانید بخشهای مشخصی از منطق برنامه را جداگانه بررسی کنید. ترکیب Dependency Injection با ساختار لایهای و سرویسهای مستقل، زمینه مناسبتری برای آزمایش اجزای برنامه فراهم میکند و وابستگیهای غیرضروری را کاهش میدهد.
سرفصل مطالب آموزش ویدئویی پروژه محور ساخت اپلیکیشن پیشرفته موبایل با Xamarin.Forms
فصل اول: مقدمه ی دوره ی آموزشی
- مقدمه
فصل دوم: مقدمه
- مقدمه
- محتوای این بسته ی آموزشی
- بررسی اپلیکیشن ساخته شده در این آموزش
- بررسی Backend اپلیکیشن
- بررسی عملی Backend اپلیکیشن
فصل سوم: ساخت یک Layered Architecture
- مقدمه
- بررسی اجمالی معماری سراسری اپلیکیشن
- بررسی عملی سطح بالا از معماری اپلیکیشن
- دسترسی به داده در اپلیکیشن
- بررسی دقیق کد مربوط به Repository
- بررسی Data Service ها
- بررسی عملی Data Service ها
- بهینه سازی روش استفاده از داده ها: روش Retry
- استفاده عملی از Polly برای پشتیبانی از روش Retry
- Cache کردن داده
- پیاده سازی عملی Caching در اپلیکیشن
- جمع بندی
فصل چهارم: پیاده سازی الگوی MVVM
- مقدمه
- بررسی اجمالی Data Binding
- بررسی عملی Data Binding
- مقدمه ای بر الگوی MVVM
- پیاده سازی عملی MVVM در اپلیکیشن
- بررسی Command ها
- پیاده سازی عملی Command ها
- بررسی Behavior ها
- پیاده سازی عملی Behavior ها
- بررسی روش ارتباط دادن View ها و View Model ها
- پیاده سازی عملی ارتباط دادن View ها و View Model ها
- جمع بندی
فصل پنجم: ایجاد Loose Coupling با استفاده از Dependency Injection
- مقدمه
- مسیر الگوی Dependency Injection
- اضافه کردن الگوی Dependency Injection به اپلیکیشن
- پیاده سازی عملی Dependency Injection به اپلیکیشن
- جمع بندی
فصل ششم: ایجاد مکانیزم Messaging برای ایجاد ارتبط بین Component ها
- مقدمه
- چرا به Messaging نیاز داریم؟
- بررسی استفاده از MessagingCenter
- پیاده سازی عملی MessagingCenter در اپلیکیشن
- جمع بندی
فصل هفتم: ایجاد Navigation و Dialog ها
- مقدمه
- کلاس های Service
- بررسی افزودن Navigation
- افزودن عملی Navigation
- بررسی افزودن Dialog ها
- افزودن عملی Dialog ها
- بررسی دیگر Service های موجود
- افزودن عملی دیگر Service ها
- جمع بندی
فصل هشتم: دسترسی به قابلیت ها و کنترل های Native دستگاه
- مقدمه
- بررسی Dependency Service
- استفاده ی عملی از Dependency Serivce
- بررسی استفاده از Plugin ها
- استفاده ی عملی از Plugin ها
- بررسی Custom Renderer ها
- استفاده ی عملی Custom Renderer ها
- جمع بندی
فصل نهم: تست کردن اپلیکیشن با Unit Test ها
- مقدمه
- مقدمه ای کوتاه در مورد Unit Testing
- پیاده سازی عملی Unit Testing در اپلیکیشن
- جمع بندی و پایان دوره ی آموزشی







