آموزش فارسی زامارین اندروید

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

این اموزش کاملا کاربردی تولید شده‌است. در طی مراحل این اموزش شما از ابتدا شروع به ساخت یک فروشگاه اینترنتی میکنید. ظاهر آن را طراحی می کنید، کلاس های محصولات و دسته بندی ها مدل سازی می شوند. سپس در یک وب سایت asp.net mvc شما وب سرویس می سازید که خروجی json استاندارد برمیگرداند. بعد از طریق زامارین اندروید اطلاعات فروشگاه فراخوانی شده و‌ مشابه دنیای واقعی بروزرسانی می شود.

فهرست مطالب

۱- مقدمه ای بر زمارین

۲- نصب گام به گام و دقیق زامارین با توضیحات کامل

۳- شبیه ساز ها و انواع آن . بهترین شبیه ساز چیست؟

۴- نصب جنی موشن و پیکربندی

۵- ساختار یک برنامه اندروید

۶- حرکت بین صفحات در اندروید و انتقال اطلاعات بین صفحات

۷- طراحی گرافیک صفحات در اندروید

۸- ساخت لیست ویو و نمایش اطلاعات

۹- نحوه ذخیره سازی داده و تنظیمات در اندروید

۱۰- کار با دیتابیس و نحوه استفاده از SqlLite

۱۱- ساخت یک وب سرویس rest api در asp.net MVC و

۱۲- کار با وب سرویس و فراخوانی آن

۱۳- خروجی گرفتن استاندارد از برنامه اندروید

۱۴- امضا زدن روی اسمبلی در هنگام کامپایل و فرستادن به بازار

فروشگاه اینترنتی :

۱۵- مدل سازی و تحلیل فروشگاه اینترنتی

۱۶- ساخت صفحه اصلی فروشگاه

۱۷- ساخت سبد خرید

۱۸- ساخت صفحه نمایش محصول

۱۹- تایید نهایی سفارش و ثبت در سایت

مباحث پیشرفته:

۲۰- کار با پیامک و ارسال پیامک به مخاطب مشخص

۲۱- کار با مخاطبین و دفترچه تلفن

۲۲- کار با گالری تصاویر گوشی

بسته DVD ابزارها و پیش نیازهای زامارین

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

– تمامی محتویات شامل آخرین نگارش های موجود می باشد.

– در این پکیج، فایل آموزش ویدئویی کامل ۴۵ دقیقه ای نصب و پیکربندی زامارین نیز موجود می باشد

این بسته را می توانید هم اکنون از فروشگاه سایت خریداری کنید.

 

محتویات: 

۱- آخرین نسخه از افزونه زامارین برای ویژوال استودیو (نیازی به کرک ندارد) Xamarin For Visual Studio – حجم ۴۰۰ مگابایت
۲- آخرین نسخه از زامارین استودیو Xamarin Studio – حجم ۸۰ مگابایت
۳- شبیه ساز اندروید زامارین – genymotion
۴- آخرین نسخه از VirtualBox مورد نیاز و سازگار با ویندوز ۱۰ – حجم حدود ۱۲۰ مگابایت
۵- پیش نیازهای بیلد و اجرای زامارین شامل:
– Java Development Kit – حجم ۳۰۰ مگابایت
– Android SDK شامل آپدیت آخرین نسخه و ابزارهای مورد نیاز – حجم ۳٫۸ گیگابایت
– Android NDK – حجم ۵۰۰ مگابایت
– نگارش های مورد نیاز m2repository – حجم ۷۰۰ مگابایت

خطا در کامپایل برنامه اندروید – m2repository موجود نیست

یکی از خطاها و مشکلات فراگیر در هنگام کار کردن با زامارین اندروید، هنگامی ست که میخواید پروژه را کامپایل کنید و با خطای زیر مواجه می شوید:

Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and put it to the C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER} directory.”

این خطا موقعی بوجود می آید که شما به کتابخانه های مرتبط با android support یا google service در پروژه زامارین اندروید یا زامارین فرم ارجاع داده باشید.

اگر به پوشه C:\Users\[Username]\AppData\Local\Xamarin مراجعه کنید، نام تعداد زیادی از کتابخانه های مرتبط با android support و google service را می بینید.

m2repository fixes

هر کدام از پوشه ها شامل لیست نگارش ها در داخل خود می باشند.

m2repository fixes

و هر کدام از نگارش ها داخل خود در حالت درست باید شامل دو پوشه باشند.

m2repositoryfixes3

پوشه content شامل m2repository می باشد.

و پوشه embedded شامل فایل های .aar می باشد.

روش های رفع خطا:

۱- روش خودکار:

در این روش کافی است که پوشه زیر را پاک کنید و سپس پروژه را بیلد کنید. زامارین به طور خودکار از سرور گوگل دانلود کرده و در جای مناسب جایگزین خواهد کرد.

C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER}

مشکل این روش است که حجم فایل های m2repository  زیاد است و سرور گوگل هم عملا کاربران ایرانی را تحریم کرده است.

۲- روش دستی ۱: 

در این روش شما باید از فایل m2repository را از آدرس خواسته شده در خطا دانلود کنید و سپس در پوشه های content و embedded قرار دهید.

آدرس فایل m2repository شبیه زیر می باشد. البته بسته به نگارشی که شما ارجاع دادید، عدد آخر که نشان دهنده نگارش هست متفاوت می باشد و باید نگارش مناسب را دانلود کنید.

https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip

مراحل به صورت زیر است.

– ابتدا فایل را دانلود کنید.

– سپس از حالت فشرده خارج کنید.

– محتویات فایلی که از حالت فشرده خارج کردید که با نام m2repository می باشد را در پوشه content مرتبط با نام کتابخانه و نگارش مرتبط قرار دهید.

– سپس محتویات پوشه com\android\support را در پوشه embedded مربوطه قرار دهید.

** این کار را برای هر کتابخانه ی خواسته شده مجزا باید انجام دهید.

۳- روش دستی ۲ ( بهترین و ساده ترین روش)

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

این روش ترکیبی از روش اول و دوم می باشد.

ما در این روش ابتدا خودمان فایل m2repository  را دانلود میکنیم و در جایی که زامارین نیاز دارد قرار می دهیم. زامارین وقتی ببیند که فایل دانلود شده هست، مراحل اکسترکت و کپی کردن در پوشه های موردنیاز خودش را خودکار انجام می دهد.

مراحل بصورت زیر است:

– فایل m2repository را از آدرس خواسته شده دانلود کنید.

– به پوشه C:\Users\[Username]\AppData\Local\Xamarin\zip مراجعه کنید و با فایلی با نام {MD5HASH}.zip جایگزین کنید. نام فایل در واقع نام هش شده فایلی که دانلود کردیم می باشد که قالبی مانند f1c4934521c9551b14741544a9b9ece3 دارد. میتوانید از ابزارهای انلاین هم برای فهمیدن هش شده نام فایلی که باید جایگزین کنید استفاده کنید. البته با توجه به حجم فایل هم میتوان حدس زد که کدام فایل مورد نظر می باشد. فایل موجود در فایل zip ، قبل از جایگزین شدن حجمی تقریبا معادل ۲ کیلوبایت دارد. در واقع فایل خالی است و همان فایلی است که قرار بوده توسط زامارین دانلود شود و به علت تحریم نتوانسته عملیات را تکمیل کنید.

– در ویژوال استودیو بیلد را بزنید. زامارین فایل را اکسترکت کرده و در جای مناسب قرار میدهد

– اگر در استفاده از این روش به نکته ای برخوردید، برای استفاده سایر دوستان در قسمت نظرات بنویسید

** با توجه به تحریم بودن و بالا بودن حجم فایل هایrepository ، در بسته محصولات سایت قرار داده شد.

لینک محصول

اصطلاحات دنیای زامارین

ابتدا که وارد دنیای زامارین می شوید اصطلاحاتی را می شنوید که برایتان گیج کننده است و مدتی باعث سردرگمی میشود. میخواهیم در این مطلب کمی در مورد دنیای زامارین و اصطلاحات آن توضیح دهیم.

Mono: مونو به طور ساده در واقع پیاده سازی چندپلتفرمی از دات نت هست، یعنی بتوان برنامه های نوشته شده با دات نت را روی تمامی پلتفرم ها و سیستم عامل ها اجرا کرد. شرکت زامارین که تیم مونو آن را پایه گذاری کردند، با استفاده از همین زیرساخت مونو و پیاده سازی کتابخانه های پلتفرم های موبایل اندروید و ios توانست محصول زامارین را تولید کند که برنامه نویسان دات نت با زبان سی شارپ بتوانند برنامه های اندروید و ios تولید کنند.

Xamarin Android: به پیاده سازی پلتفرم اندروید روی مونو ، Xamarin Android یا Mono Droid گفته می شود. در واقع با این محصول شما می توانید برنامه های موبایل برای اندروید با استفاده از دات نت و سی شارپ تولید کنید.

Xamarin iOS:  به پیاده سازی پلتفرم ios روی مونو ، Xamarin iOS یا Mono touch گفته می شود. در واقع با این محصول شما می توانید برنامه های موبایل برای iOS با استفاده از دات نت و سی شارپ تولید کنید.

Shared Code یا کد مشترک: منظور از کد مشترک در زامارین به این صورت هست که منطق تجاری برنامه ها و کارهای مستقل از پلتفرم ها را یک بار می نویسید. معمولا در یک برنامه ی تجاری ، منطق برنامه و کارهای عمومی مثل اتصال به یک وب سرویس و دریافت اطلاعات و ثبت اطلاعات حدود ۷۰% یک برنامه را تشکیل میدهد. با استفاده از زامارین میتوانید این ۷۰% کد را به طور مشترک بنویسید و فقط کارهای مخصوص پلتفرم و ظاهر برنامه ها را مجزا انجام دهید. این کار هزینه ی نگهداری و پشتیبانی نرم افزار را بسیار پایین می آورد و مزیت بزرگی برای برنامه های تجاری می باشد.

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

[csharp]
public async Task<List<FeedItem>> GetFeedItems(DateTime date) {
var feed = "http://planet.xamarin.com/feed/";
var response = await httpClient.GetStringAsync(feed);
var items = await ParseFeedAsync(response);
return items.Where(item => item.Published.Date == date).ToList();
}
[/csharp]

کد بالا که منطق برنامه می باشد، بین تمام پلتفرم ها مشترک هست و یک بار نوشته شده و تست می شود. فقط باید ظاهر برنامه را برای نمایش در هر پلتفرم جداگانه تولید کنیم.
در زامارین به دو صورت می توان این کدها را بین برنامه های پلتفرم های مختلف به اشتراک گذاشت. یکی استفاده از shared project و دیگری استفاده از کلاس های PCL یا کلاس های قابل حمل. PCL ها مفهوم تولید شده توسط زامارین نیستند و توسط خود مایکروسافت قبلا معرفی شده بودند.

Xamarin Form: یک از جذاب ترین تکنولوژی های زامارین، Form می باشد. با استفاده از این تکنولوژی که شامل مجموعه کنترل های طراحی رابط کاربری و یک سری کلاس کمکی هست، شما می توانید علاوه بر منطق مشترک برنامه ها که در بالا توضیح داده شد، رابط کاربری برنامه هایتان را هم بصورت مشترک تولید کنید.

به کد زیر توجه کنید:

[csharp]
using Xamarin.Forms;

var profilePage = new ContentPage {
Title = "Profile",
Icon = "Profile.png",
Content = new StackLayout {
Spacing = 20, Padding = 50,
VerticalOptions = LayoutOptions.Center,
Children = {
new Entry { Placeholder = "Username" },
new Entry { Placeholder = "Password", IsPassword = true },
new Button {
Text = "Login",
TextColor = Color.White,
BackgroundColor = Color.FromHex("77D065") }}}
};

var settingsPage = new ContentPage {
Title = "Settings",
Icon = "Settings.png",
(…)
};

var mainPage = new TabbedPage { Children = { profilePage, settingsPage } };
[/csharp]

خروجی کد بالا در پلتفرم های مختلف به صورت تصویر زیر ظاهر می شود.

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

Xamarin Insight: این محصول یک سرویس قدرتمند برای مانیتور کردن وضعیت برنامه می باشد. شما برنامه ی خود را تحویل مشتری می دهید و سپس در وب سایت Insight ، میتوانید کارکرد برنامه و باگ ها و گزارش وضعیت را ببینید. این یک ابزار فوق العاده برای لاگ برنامه ها و تحلیل رفتار مشتری و پیدا کردن عیب های برنامه می باشد. این سرویس رایگان نمی باشد.

Xamarin Test Cloud: یکی از بزرگترین چالش های نوشتن برنامه های موبایل، تست برنامه رو طیف وسیعی از دستگاه های موبایل می باشد که هر کدام سایز و ویژگی های متفاوتی دارند. در حالت معمول شما باید تعداد زیادی دستگاه مجازی و فیزیکی داشته باشید و برای هر نسخه از برنامه روی این دستگاه ها تست نمایید. سرویس Test Cloud شامل طیف وسیعی از دستگاه های مجازی موبایلی هست که با استفاده از ابزارهای جانبی کار تست برنامه ها را برای توسعه دهنده راحت می کند. این سرویس رایگان نمی باشد.

Xamarin University: شرکت زامارین دوره های آنلاین و ویدئوهای آفلاین آموزشی محصولات خود را در این بسته ارائه می دهد. استفاده از این بسته ها مستلزم پرداخت هزینه می باشد.