Xamarin ساخت اپلیکیشن موبایل با #C!

فلیم آموزش برنامه نویسی اپلیکیشن اندروید در سی شارپ با زامارین Xamarin

CLRی که در مونو است برای پلتفرم های بسیاری مثل اندروید، اکثر نسخه های لینوکس، BSD، OS x، Windows، Solaris و حتی بعضی از کنسول های بازی مثل Wii, xbox360 طراحی شده است. همچنین مونو یک کامپایلر استاتیک دارد که برنامه ها را برای محیط هایی مثل IOS و PS3 کامپایل می کند. در قسمت بالای پشته ای که نشان دادیم برنامه های سمت کاربر قرار دارد. این برنامه ها بخش هایی هستند که نتایج و مقادیر را به کاربر تحویل می دهند. اندروید در داخل خود دارای برنامه هایی است که کاربرد های پایه را به همراه خود دارد.

امیدوارم توانسته باشم کاری کنم که کاربران با مقدمات برنامه نویسی اندروید آشنا شوند. پس از این قسمت تکنیک هایی را به زبان جاوا در باره ی برنامه نویسی اندروید خواهیم گفت که با توجه به این نکته که در اندروید تفاوت زیادی نیست می توانید با کمی بررسی آن ها را در زبان C# و Xamarin هم پیاده بکنید. همان‌طور که در تصویر فوق قابل ملاحظه است، می‌توان دو نوع پروژه زامارین ایجاد کرد. یک نوع پروژه زامارین بومی (Native Xamarin) است که رویکرد قدیمی توسعه اپلیکیشن موبایل با زامارین به حساب می‌آید و نوع دیگر نیز فُرم‌های زامارین است که به صورت «Xamarin.Forms» نوشته می‌شود. هر دوی این نوع پروژه‌ها پایه کد مشترکی به زبان سی شارپ یا F#‎ دارند.

حال در متد OnCreate باید یک نمونه از ITProListViewAdapter بسازیم و آن را به Listview متصل کنیم برای این کار تابع OnCreate را به این شکل می نویسیم. قبل از این که یک adapter بسازیم باید بدانیم که چگونه قرار است به به سرویس داده مان دسترسی داشته باشیم. زیرا که این سرویس داده منبع ما برای ذخیره داده های Itpro می باشد. تا این جای برنامه فقط سرویس چهار عمل اصلی CRUD را با استفاده از فایل ها نوشتیم. در ادامه به ساختن ویو ها خواهیم پرداخت که از این کلاس استفاده کند.

برای این کار باید یک فایل منوی جدید به نام ITproDetailMenu می سازیم و کد زیر را در درون آن قرار می دهیم. در کد بالا یک رویداد نوشتیم که وقتی که بر روی یک آیتم از لیست کلیک شود این رویداد فراخوانی می شود. همچنین پارامتر ورودی args دارای مشخصات آیتمی که روی آن کلیک شده است می باشد که ما از مشخصه Id آیتم مورد نظر در این برنامه استفاده کرده ایم. تا این قسمت از مطالب نحوه انتقال از یک Activity به activity دیگر را نوشتیم. و همچنین امکان انتقال اطلاعات از یک activity به activity دیگر را نیز شرح دادیم. در قسمت های بعدی به مراحل اضافه یا حذف کردن اطلاعات در این برنامه خواهیم پرداخت.

برای مثال در این برنامه فیلد نام نباید خالی باشد برای این کار باید فیلد نام را اعتبارسنجی نماییم. برای اعتبارسنجی یک فیلد از فیلدError مربوط به editText استفاده می کنیم. در کد زیر یک گفته ایم که اگر مقدار nameEditText خالی باشد باید خطا نمایش داده شود. همانطور که قبلا هم گفتیم برای این که بتوانیم با منو ها کار کنیم باید دستورات مربوط به منو ها را داخل متد های onCreateOptionMenu و onOptionsItemSelected بنویسیم. بعد از همه این توضیحات قصد داریم که اطلاعات یک entity را در ItproDetail نمایش دهیم. از ItproDetail علاوه بر نمایش اطلاعات یک Entity می توان برای افزودن و یا ویرایش اطلاعات نیز استفاده کرد.

فریمورک های Windows Presentation Foundation (WPF)، UWP ، Xamarin Forms و .Net MAUI از XAML برای طراحی رابط کاربری استفاده می کنند. برای این که عملیات ذخیره سازی را پیاده کنیم یک اینترفیس استاندارد برای آن نیاز داریم. این اینترفیس باید عملیات اساسی CRUD (Create, Read, Update, Delete) را در خود داشته باشد. همچنین می خواهیم یک مکانیزم caching ساده را نیز پیاده سازی کنیم. عملیات کشینگ باعث می شود که تعداد خواندن داده از فایل کم شده و در نتیجه سرعت و کارایی برنامه بالاتر می رود. برای ساختن اینترفیس مورد نظر از بخش Solution pad بر روی نام پروژه کلیک راست کرده و گزینه New File را انتخاب کنید.

این ثابت های عددی در یک فایل سورس جاوا با نام R.java قرار دارد. مثال زیر یک کلاس فایل R.java را در یک برنامه ساده نشان می دهد. گیرنده های broadcast بخش هایی هستند که پردازش های از نوع broadcast را اجرا می کند. Broadcastها معمولا توسط سیستم فراخوانی می شوند و برای رویدادهایی مانند کمبود باتری، عکس گرفتن و یا روشن کردن بلوتوث به کار گرفته می شوند. یک فراهم کننده محتوا ممکن است که وقتی که داده ای مثل یک مخاطب آپدیت شود broadcast بفرستد. گیرندگان broadcast ممکن است به طور غیرمستقیم باعث آپدیت وضعیت ها شوند.

همان‌طور که پیش‌تر نیز اشاره شد، خروجی و نتیجه کار درست مشابه یک اپلیکیشن توسعه داده شده به صورت بومی خواهد بود. در واقع این دوره برای دات نت کارهایی است که به برنامه نویسی اندروید نیز علاقه مند هستند. XAML ایجاد یک رابط کاربری برای یک برنامه NET Core را ساده می کند. در XAML  می ‌توان عناصر UI قابل مشاهده را ایجاد و سپس با استفاده از فایل ‌های code-behind که از طریق تعاریف کلاس جزئی به نشانه‌گذاری متصل شده‌اند، تعریف UI را از منطق جدا کرد. این layout ما شامل تعدادی فیلد است که ممکن است که در بعضی دستگاه ها نیاز به اسکرول کردن نیز داشته باشد. در قست C# از سمت چپ گزینه Android را انتخاب کنید و در پنجره اصلی Android Appliction را انتخاب کنید.

اگرچه بسیاری از برنامه های موبایل به وب سرویس ها وابسته هستند اما ما در این مطلب بر روی ذخیره سازی محلی تمرکز خواهیم داشت. SQLite یک موتور پایگاه داده تراکنشی سبک است که در پلتفرم اندروید موجود است. SQLite به طور گسترده در موبایل ها استفاده شده است هم در اندروید و هم در IOS. اگر شما می خواهید که با بانک اطلاعاتی ارتباط داشته باشید و اطلاعات خود را در آن ذخیره کنید SQLite می تواند در موبایل راه حل خوبی باشد. در مطالب گذشته در باره ی خود ساختار اندروید و برنامه نویسی آن و همچنین Xamarin صحبت کردیم. در این مطلب به بررسی و ساخت مکانیزم ذخیره سازی اطلاعات در برنامه می پردازیم.

Web API توسعه‌دهندگان را قادر می‌سازد تا با استفاده از یک الگوی ساده که در Controller ها پیاده‌سازی می‌شود، وب‌سرویس‌های مبتنی بر پروتکل HTTP را با کدها و تنظیمات کم ایجاد کنند. این سبک جدید برای ایجاد وب‌سرویس‌ها، می‌تواند در انواع پروژه‌های NET. مانند ASP.NET MVC، ASP.NET Web Forms، Windows Application و … استفاده شود. برنامه کاربردی Visual Studio برنامه ای بسیار قوی و پرکاربرد است که برای ایجاد انواع برنامه در اکثر زمینه ها از جمله تحت وب , تحت ویندوز و.. استفاده میشود که درحال حاظر نیز میتوان از این برنامه برای برنامه نویسی موبایل نیز استفاده کرد بدین صورت که افزونه Xamarin را به آن اضافه کرده و به راحتی شروع به کدزنی میکنید. این فقط در مورد یادگیری زبان های برنامه نویسی مختلف نیست.

تفاوت‌های سی شارپ با جاوا در استفاده از Delegateها، رویکرد آن در گوش دادن به رویدادها، ویژگی‌های مجازی در مقابل نهایی‌، ارسال محتوا و موارد دیگر است. سی شارپ یک زبان برنامه نویسی شی‌گرا به حساب می‌آید که توسط شرکت مایکروسافت در سال ۱۳۷۹ با هدف مُدرن بودن، سادگی و انعطاف‌پذیری بالا توسعه داده شده است. مشابه جاوا (توسعه داده شده توسط شرکت سان مایکروسیستم در سال ۱۳۶۹) سی شارپ نیز در اصل از زبان C++‎ شکل گرفته شده است. این مسئله باعث شده که شباهت‌های بسیاری بین دو زبان سی شارپ و جاوا وجود داشته باشد. در ادامه مطالب برنامه نویسی اندروید با استفاده از زبان C# و برنامه xamarin در خدمت شما هستیم. در ادامه مباحث به افزودن اکشن های save و delete به برنامه می پردازیم.

متدها و شکل کلی کلاسی که تاکنون پیاده سازی کرده ایم به این شکل خواهد بود. از پنجره ی باز شده شبیه سازی که قصد دارید برنامه را با آن اجرا کنید را اجرا کنید. همانطور که قبلا گفتیم برنامه های اندروید بر روی ماشین مجازی Dalvik اجرا می شوند و برنامه های مونو بر روی Mono CLR اجرا می شوند. پس برنامه Xamarin.Android چگونه اجرا می شود؟ اگر بخواهیم یک پاسخ ساده به این سوال بدهیم این است که این برنامه هم از Mono CLR و هم از ماشین مجازی Dalvik استفاده می کند. دیاگرام زیر نحوه ارتباط این دو را در حال اجرا نشان می دهد. Layoutهای xml به سادگی می توانند در درون یک برنامه در حال اجرا لود شوند.

این گزینه مشخص می کند که چه مقدار فاصله باید از حاشیه ها داشته باشیم. همچنین گزینه Layout Height را نیز به wrapcontent و گزینه ی Layout Width را به matchparent تنظیم کنید. در قسمت Content همه عناصری را که طراحی کرده ایم می بینید و در قسمت Source محتویات فایل xml آن را مشاهده خواهید کرد. اگر شما بخواهید که با استفاده از کد xml رابط کاربری خود را طراحی کنید می توانید در قسمت Source این کار را انجام دهید. پلتفرم اندروید چند layout پیش فرض برای ListView ارایه کرده است. برای سادگی این کار یک متیر خصوصی متنی تعریف می کنیم و مسیر ذخیره سازی را در آن قرار می دهیم.

در رابط کاربری باید میزان شمارش شده فعلی نمایش داده شود و همچنین دکمه‌ای برای افزایش میزان شمارش نیاز است. در پنجره ایجاد پروژه جدید، در قسمت نوع پروژه (Project Type) باید گزینه «Mobile» را انتخاب کرد. سپس باید گزینه Mobile App (Xamarin.Forms) را مطابق تصویر زیر انتخاب و Next را کلیک کرد. همانگونه که قبلا آموزشی مختصر و مفید در ارتباط با Xamarin به شما عزیزان ارائه کردیم اشاره کردیم که برای کدزنی زامارین میتوان از برنامه تخصصی این تکنولوژی به نام Xamarin Studio استفاده کرد . لیموناد جامع ترین پلتفرم آموزش آنلاین ویدیویی، برای فارسی زبانان است که افتخار همکاری با بیش از 200 مدرس و متخصص در تمام موضوع های آموزشی را دارد. ازآنجایی‌که وب Resource Oriented می‌باشد، وقتی صحبت از انجام عملیات روی منابع بر روی بستر پروتکل HTTP می‌کنیم، REST به میان می‌آید.

Mono همچنین تعادل مناسب برای توسعه دهنگان Unix و Windows ساخته که به عنوان یک ویژگی در هردو سیستم استفاده میشود. این دوره مملو از مثال‌ها ، تمرین‌ها و بهترین تمرین‌ها در دنیای واقعی است . نه تنها نحوه استفاده از فرم های Xamarin را یاد می گیرید، بلکه نکات درجه یک را نیز یاد خواهید گرفت تا کد خود را پاک تر و قابل نگهداری تر کنید. ما در این آموزش به صورت رایگان زبان XAML را به صورت پایه در فریمورک های Xamarin Forms و .Net MAUI در قالب یک پروژه اندرویدی آموزش خواهیم داد. بیشتر اوقات، ما از یک طراح برای ایجاد XAML خود استفاده می کنید، اما می توانیم مستقیماً XAML را دستکاری و به طرح مورد نظر خود برسیم.

سوالات و نظرات خود را در مورد این مطلب، از طریق فرم نظرات در پایین همین صفحه مطرح کنید. در سال 2015 حدود 1 میلیون توسعه دهنده از 120 کشور دنیا از زامارین و محصولات آن استفاده میکردند و با حمایت های مایکروسافت از این شرکت خلاق، بزودی شاهد رشد بیش از پیش زامارین و محصولاتش خواهیم بود.

اگر ما عمل Save و یا Delete را در برنامه انجام دهیم تعداد داده های موجود کم یا زیاد خواهد شد. برای همین باید لیستی که داده ها را نمایش می دهد را بازسازی کنیم که اگر داده ای حذف شده باشد آن را حذف کند و اگر داده جدیدی ساخته شده است آن را به لیست اضافه کند. برای این کار باید به adapter بگوییم که داده ها تغییر کرده اند و خود را بروز کند برای این کار در متد OnResume مربوط به Activity باید کد زیر را بنویسیم. وقتی برنامه ای شروع به اجرا می نماید activity اصلی آن اجرا می شود. حال ما ممکن است که چندین activity در داخل برنامه خود داشته باشیم.

متد‎InitializeComponent() ‎ از پیش نوشته شده است و یک متُد Xamarin.Forms جهت مقداردهی اولیه تمام اجزای رابط کاربری برای فایل XAML مرتبط با آن است. بسته به پلتفرم هدف (اندروید یا iOS) تا چهار پروژه در قسمت Solution وجود خواهد داشت. اولین مورد، پروژه مشترک و پروژه مشترک محلی است که تمام رابط کاربری و کدهای مشترک در آن قرار دارد. با استفاده از Xamarin.Forms امکان نوشتن رابط کاربری به صورت کدهای اعلانی یا استفاده از XAML وجود دارد. نکته مثبت در مورد Xamarin.Forms این است که رابط کاربری تنها یک بار نوشته می‌شود و سپس کدهای نوشته شده به زبان بومی هر پلتفرم دلخواه کامپایل خواهند شد.

بنابراین، پس از استقرار اپلیکیشن، هیچ راهی وجود نخواهد داشت برای تشخیص اینکه اپلیکیشن چگونه و با چه زبانی ساخته شده است. در بخش اول آموزش xamarin android ، بحث مقدمات برنامه نویسی به کمک زامارین را یاد دادیم و شما به کمک آن قادر هستید که هر اپلیکیشن سمت کلاینتی را طراحی کنید. اما مشکلی که در بخش اول با آن مواجه بودیم بحث دیزاین بود و دیزاین خوبی در اپلیکیشن های ما دیده نمی شد. در بخش پیشرفته این دوره مبحث دیزاین را اصل قرار دادیم و یک سری اپلیکیشن های ساده را در این بخش با طراحی مناسبتری انجام دادیم. XAML یک زبان برنامه نویسی توصیفی جدید است که توسط مایکروسافت برای نوشتن رابط های کاربری برای برنامه های مدیریت شده نسل بعدی توسعه یافته است. XAML زبانی برای ساخت رابط های کاربری برای برنامه های کاربردی ویندوز و موبایل است.

دو صفحه اول که صفحه خوش آمد گویی و صفحه لایسنس برنامه است را رد کرده تا به صفحه product selection برسید. Installer به شما امکان نصب Xamarin.Android و Xamarin.IOS را در ویژوال استودیو می دهد همانگونه که در شکل زیر دیده می شود. ما در این بخش کاری به IOS نداریم بنابراین می توانید Xamarin.IOS را انتخاب نکنید. تصویر زیر محیط Xamarin Studio را در حالی که محیط طراحی رابط کاربری اندروید برای آن باز است را نمایش می دهد. مونو یک پیاده سازی چند پلتفرمی متن باز از کامپایلر #C است.

این تابع اگر کاراکتر نادرستی در مسیر فایل و خود فایل وجود داشته باشد اعلام خطا می کند. ما در این تابع می خواهیم یک شی .NET را به یک متن Json تبدیل کنیم. اکنون در داخل کلاسی که شما ساخته بودید متدهای موجود در اینترفیس ظاهر خواهند شد. برای این که فیلدهای مختلف کلاس Entity را بسازید باید همه آن ها را به شکل properties مشخص کنید. Xamarin.Android یک نام بسته و یک آیکن پیش فرض برای برنامه ها قرار می دهد.

مجله بیبیس محلی برای ثبت آهنگ‌، شعر، رمان‌، کتاب، قصه و سایر مطالب جذاب زبان انگلیسی به همراه ترجمه فارسی آنها است. هدف بیبیس افزایش توان علمی هموطنان و فارسی زبانان با بهره گیری از منابع اصلی و روز انگلیسی در محیطی جذاب است. سخنرانی ها همچنین دارای کد منبع قابل دانلود هستند تا بتوانید هنگام تماشای فیلم ها کدنویسی کنید. در این بخش نحوه ایجاد و مدیریت Servic ها در زامارین و همچنین Notification ها را فراخواهید گرفت . دز این قسمت میتوانید SDK آموزش داده شده در این دوره را دانلود کنید .


برنامه نویسی خودآموز