برنامه نویسی Android با C#‎ ‏(Xamarin)

مشخصات این دوره:

عنوان ترم جاری: مرداد ماه 1396(3)
مدرس: مهدی کرامتی
تاریخ شروع دوره: جمعه 6 مرداد 1396
روز برگزاری: جمعه
ساعت: 9:00 نا 12:00
طول مدت دوره: 24 ساعت (8 هفته متوالی)
شهریه: 600,000 تومان
 

خلاصه

هنگامی که با Java و در محیط Eclipse و Android Studio برای Android برنامه نویسی می کنید مثل من برای Visual Studio و زبان C#‎ دل تان تنگ خواهد شد! چرا که بسیاری از امکاناتی که ما در ویژوال استودیو و زبان سی شارپ در اختیار داشتیم در آنجا وجود ندارد.

اما دلتنگی دیگر دلیلی ندارد. با وجود ابزارهای Xamarin for Android می توانید در همان محیط دوست داشتنی Visual Studio و زبان محبوب C#‎ برای آندروئید برنامه نویسی کنید!

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

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

نکته: جهت تفهیم بهتر مطالب این دوره، از اواسط دوره تدریس بر اساس یک پروژه عملی Mobile App صورت خواهد گرفت.

مطالب مهم این دوره

گوشه ای از مطالبی که در طی این دوره آموزشی خواهید آموخت عبارتند از:

  • آشنایی با آناتومی یک برنامه اندروئید و ساختار Xamarin.Android
  • آشنایی با روش راه اندازی محیط برنامه نویسی مورد نیاز
  • آشنایی با مفاهیم Intent, Service, Layout, Activity و ...
  • آشنایی با رویه های ساخت رابط کاربری
  • آشنایی با ListView و Adapeter
  • اعمال تغییرات لازم برای Orientation-Aware کردن برنامه
  • طراحی رابط کاربری برنامه برای Screen Size های مختلف
  • ایجاد مکانیسم های نگهداری داده ها و کار با دیتابیس ها
  • افزودن قابلیت کار با GPS به برنامه
  • افزودن امکان کار با Camera و ثبت تصاویر به برنامه
  • آشنایی با روش منتشر کردن برنامه به  App Store

پیش نیازها

آشنایی با زبان برنامه نویسی C#‎


نحوه ثبت نام

برای ثبت نام می توانید مبلغ شهریه را به صورت کامل و یا بخشی از آن (پیش پرداخت) به صورت آنلاین، واریز به حساب بانکی و یا کارت به کارت پرداخت کنید.

کل مبلغ شهریه میبایست در اولین جلسه تشکیل کلاس تسویه شود.

پرداخت آنلاین با کلیه کارتهای بانکی عضو شبکه شتاب و با داشتن رمز دوم کارت، و CVV2 قابل انجام است.

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


سرفصل های این دوره به شرح زیر است:

  1. آناتومی یک برنامه اندروئید
    • آشنایی با سکوی اندروئید
      • ورژن های اندروئید
      • هسته لینوکس
      • کتابخانه های Native
      • Android Runtime
    • Application Framework
      • لایه Application
    • اجزاء سازنده یک برنامه اندروئید
      • پکیج های اندروئید (apk)
      • فایل Manifest
      • Activity ها
        • چرخه حیات یک Avtivity
        • رویدادهای یک Activity
      • Fragment ها
        • چرخه حیات Fragment
      • سرویس ها
      • Content Provider ها
      • Broadcast Receiver ها
      • View ها و ViewGroup ها
      • ایجاد View ها به صورت تعریفی در مقابل ایجاد از طریق برنامه
      • Widget های رابط کاربری
      • Layout های رایج
      • Adapter Layout ها
      • XML Layout ها
        • Element ها و نام های Attribute ها
        • View ها و شناسه های Layout
      • استفاده از Layout ها در Activity ها
      • Intent ها
      • Resource ها
      • فایل R.java
  2. ساختار Xamarin.Android
    • شروع کار با Xamarin
    • چرا از Xamarin.Anroid استفاده کنیم؟
      • مزایای Xamarin.Android
    • Mono چیست؟
    • استفاده از Mono و Dalvik در کنار هم
      • Java Native Interface
      • Peer Object ها
      • پکیج کردن Xamarin.Android
    • طراحی Android Binding ها
      • مفاهیم طراحی
      • Property های #C
      • Delegate ها
      • Constants To Enumerations
    • محیط های توسعه
      • Xamarin Studio
      • Xamarin for Visual Studio
      • مقایسه IDE ها
      • سازگاری
  3. ایجاد پروژه پایه این دوره آموزشی
    • ایجاد برنامه
    • نصب Xamarin.Android
    • نصب Platform ها و ابزارها
    • نصب Extra ها
    • ایجاد Virtual Device ها
    • تسریع Emulator
      • استفاده از Xamarin Android Player
      • Genymotion
    • بررسی گزینه های پروژه
      • آشنایی با ساختار پروژه
    • Layout Designer
      • آشنایی با نحوه کار Designer
      • آشنایی با چینش Document و Property ها
      • Toolbox
      • تنظیم Target Framework
    • تنظیم Icon برنامه و نام پکیج
    • Launcher Activity
    • اجرا و Debug کردن App
    • Debug کردن بر روی یک دستگاه اندروئیدی
      • فعال کردن USB Debugging
      • نصب USB Driver
      • اجرا کردن بر روی Device
      • پشت صحنه
    • فایل AdroidManifest.xml
  4. افزودن یک ListView
    • ایجاد Layout برنامه
    • ایجاد Activity
    • ایجاد Layout مربوط به Row ها
      • افزودن یک RelativeLayout
      • افزودن ImageView
      • افزودن یک LinearLayout
      • افزودن TextView های نام و آدرس
      • افزودن TexView مسافت
    • افزودن Entity Class به برنامه
    • پرکردن ListView
    • ایجاد ListAdapter
      • ایجاد یک Constructor
      • افزودن پراپرتی Count
      • افزودن متد GetItemId
      • افزودن متد Index Getter
      • افزودن متد GetView
      • Reuse کردن View های ردیف ها
    • پر کردن Row View ها
      • پر کردن تصویر کوچک در لیست
        • استفاده از UrlImageViewHelper
        • افزودن دسترسی Internet
    • استفاده از ListViewAdapter
    • بکار بردن Web Service ها
      • آشنایی با وب سرویس ها
      • نصب وب سرویس مورد نیاز برنامه
      • بکار بردن وب سرویس های REST به صورت Asynchronous (غیرمتقارن)
      • ایجاد کلاس وب سرویس
      • برنامه نویسی Asynchronous (غیرمتقارن) با استفاده از async و await
      • Serialize کردن و Deserialize کردن با استفاده از Json.Net
      • به روزرسانی Activity برنامه
    • افزودن Action به ActionBar
    • تعریف کردن فایل XML Menu
    • تنظیم منو در OnCreateOptionsMenu
    • پاسخ دهی به انتخاب در OnOptionsItemSelected
    • پاسخ دهی به رویداد کلیک ListView
    • آمادگی کارکرد در شرایط عدم دسترسی به شبکه
    • Toast
  5. افزودن یک Detail View
    • ایجاد  Detail Layout
      • آشنایی با ScrollView
      • استفاده از TableLayout Manager
      • کار کردن با EditText
    • افزودن Navigation به Detail Activity
      • انجام پیمایش هنگام کلیک بر روی یک آیتم در لیست
    • دریافت داده ها توسط Detail Activity
      • متصل کردن متغیرها به کنترل ها
    • پر کردن User Interface Widget ها
    • افزودن عملیات Save و Delete
      • غیرفعال کردن عملیات Delete
    • افزودن عملیات Save و Delete به وب سرویس
      • بکار بردن وب سرویس برای افزودن یا به روزرسانی یک آیتم
      • افزودن متد CreateOrUpdateAsync به وب سرویس
      • بکار بردن وب سرویس برای حذف یک آیتم
      • افزودن متد DeleteAsync به وب سرویس
    • ایجاد متد Save در برنامه
    • ایجاد متد Delete در برنامه
    • افزودن Validation (اعتبارسنجی)
      • استفاده از پراپرتی Error
      • افزودن یک دیالوگ تایید برای حذف
    • به روزرسانی List Activity
  6. اعمال تغییرات لازم برای Orientation-Aware کردن برنامه
    • رفتار اندروئید در قابل تغییرات پیکربندی
    • قفل کردن گرایش نمایش برنامه
    • درخواست کردن یک گرایش به از طریق کد
    • Save کردن حالت Activity در هنگام تغییرات پیکربندی
      • Save کردن State به صورت دستی
      • بازیابی Position آیتم انتخاب شده در List
    • ایجاد Layout های Orientation-Aware
    • مدیریت رفتار Orientation از طریق کد
  7. طراحی رابط کاربری برنامه برای Screen Size های مختلف
    • آشنایی با تبلت های اندروئیدی
    • ایجاد یک Emulator تبلت
    • آشنایی با Fragment ها
      • ایجاد یک Fragment جدید
    • سازگار کردن برنامه با تبلت های اندروئیدی
    • ایجاد Fragment برای نمایش Detail ها
      • ایجاد Layout برای DetailsFragment
      • ایجاد DetailsFragment
      • کار کردن با عملیات Save و Delete
      • افزودن DetailsFragment به DetailActivity
        • دستکاری کردن Layout مربوط به DetailsActivity
        • Refactor کردن DetailActivity برای افزودن DetailFragment
      • استفاده از List Fragment برای نمایش لیست
        • آشنایی با ListFragment
        • ایجاد Layout برای ListFragment
        • ایجاد Fragment برای نمایش لیست آیتم ها
        • افزودن ListFragment به ListActivity
          • دستکاری کردن Layout مربوط به ListActivity
          • افزودن ListFragment به ListActivity
      • ایجاد یک Layout چند پنلی برای تبلت ها
      • به روز رسانی برنامه برای پشتیانی Multi-Pane Split Layout
      • کار کردن با DialogFragment
      • Fragment های مناسب برای دستگاه های اندروئیدی قدیمی
      • پاسخ دهی به تغییرات پیکربندی در Fragment ها
  8. ایجاد مکانیسم های نگهداری داده ها
    • نگهداری داده ها در اندروئید
      • Shared Preference
      • استفاده از دیتابیس SQLite.net
    • استفاده از کامپوننت SQLite.net ORM
      • استفاده از Attribute ها برای علامت گذاری برنامه برای نگهداری داده ها
      • افزودن یک کلاس Database Helper
        • ایجاد و به روزرسانی رکوردها
        • خواندن جزئیات آیتم ها از دیتابیس
        • حذف داده های آیتم ها از دیتابیس
      • افزودن قابلیت Caching به برنامه
  9. افزودن قابلیت کار با GPS به برنامه
    • کار کردن با سرویس های GPS
      • تنظیم کردن دسترسی های مورد نیاز برنامه
      • تنظیم کردن Emulator
      • کار کردن با یک Instance از LocationManager
    • درخواست کردن دریافت اطلاعیه هنگام تغییرات مختصات جغرافیایی
      • پیاده سازی ILocationListener
    • افزودن سرویس های GPS به برنامه
      • افزودن Location Servie ها به لیست آیتم ها
      • افزودن Location Servie ها به صفحه جزئیات آیتم ها
        • به روز رسانی رابط کاربری
        • افزودن کد
      • ایجاد Location Data برای تست
      • گرفتن آدرس یک Location
      • اطلاع رسانی به کاربر
    • افزودن یکپارچگی با نقشه
      • رفتن به برنامه نقشه
      • چک کردن برنامه های ثبت شده برای نقشه
  10. افزودن امکان کار با Camera به برنامه
    • انتخاب یکی از روش های یکپارچگی
    • دسترسی ها و امکانات
    • پیکربندی کردن Emulator
    • توسعه دادن سرویس داده ها
      • افزودن متد GetFileName
      • افزودن متد GetImage
      • افزودن متد DeleteImage
    • ثبت یک تصویر از طریق DetailFragment
      • افزودن عناصر رابط کاربری
      • افزودن Camera Intent
      • چک کردن برنامه های ثبت شده Camera
      • ارائه دادن اطلاعات اضافی به Intent
        • ارائه دادن نام فایل و Location
        • ارائه دادن محدودیت Size
      • استارت کردن Intent
      • کامل کردن متد NewPhotoClicked
      • پردازش کردن نتیجه Intent
    • آپلود کردن تصویر با استفاده از Http Multipart
  11. منتشر کردن برنامه به  App Store
    • آماده کردن برنامه برای انتشار
      • غیرفعال کردن حالت Debug
      • پیکربندی کردن گزینه های Linking
        • اثرات جانبی Linking
      • انتخاب کردن Supported ABI ها
      • بررسی صحت Package Name, Icon، و ورژن برنامه
        • Package Name
        • نام و Icon برنامه
        • رویه ورژن گذاری برنامه
      • مرور User Permission ها
    • منتشر کردن یک Signed APK برای آپلود کردن
      • Android Keystore ها
      • Publish کردن از طریق Xamarin.Android
      • Republish کردن App
    • روش های مختلف توزیع برنامه
      • انتشار از طریق وب سایت خودتان و یا از طریق ایمیل
      • Publish کردن بر روی Google Play
      • انتشار بر روی کافه بازار و امثال آن
picture
picture

نظر دانشجویان دوره های قبلی
 نظر افرادی که قبلا در این دوره ها شرکت کرده اند  را بدانید.

بهترین ملاک برای قضاوت درباره کیفیت خدمات آموزشی ما نظرات مخاطبینی است که قبلا از این خدمان استفاده کرده اند. ادامه »

picture

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

Fusce vehicula dignissim ligula. Vestibulum sit amet neque eu neque suscipit consequat quis vel risus. Vestibulum vehicula purus nec dui accumsan fermentum. Read More »

picture

انواع دوره های آموزشی
دوره های آموزشی ما به دو حالت کلی فشرده و طولانی مدت برگزار می شود.

Fusce vehicula dignissim ligula. Vestibulum sit amet neque eu neque suscipit consequat quis vel risus. Vestibulum vehicula purus nec dui accumsan fermentum. Read More »