آموزش برنامه نویسی آندروید به زبان فارسی
بسم الله الرحمن الرحیم
فصل اول دوره آموزشی Android
آموزش برنامه نویسی آندروید به زبان فارسی
مثل تمامی دوره های دیگر می بایست قبل از شروع مباحث عملی و کد نویسی، کمی در مورد مباحث تئوری و ساختاری اندروید صحبت کنیم. سعی می کنم این مباحث را سریع تر به اتمام برسانم تا به سراغ مباحث اصلی برنامه نویسی برویم.
معرفی Mono for Android
Mono for Android ترکیبی از دو ویژگی جذاب و لذت بخش دنیا است: یعنی زبان برنامه نویسی C# و سیستم عامل Android
این چند بخش زیر را از زبان شرکت Xamarin نقل می کنم:
داستان ایجاد Mono for Android
Mono for Android طراحی شده است تا این دو دنیای بزرگ را به یکدگیر متصل کند. این کار با سالها تجربه طراحی و پیاده سازی زبان های برنامه نویسی، API ها و ارتباطات آنها میسر شده است.
شور و اشتیاق من برای سیستم عامل اندروید خیلی ساده قابل توصیف است:
مانند هر کسی که به دلیل نرخ رشد این platform، طراحی بسیار خوب، و platform قدرتمندی برای توسعه، ما نیز تحت تاثیر قرار گرفتیم. همه اینها باعث می شود نتوانید در مقابل این همه ویژگی خوب مقاومت کنید، و مجبور می شوید به سمت آن حرکت کنید.
علاقه ما بر می گردد به سال 2000 وقتی که مایکروسافت از C# پرده برداری کرد. فقط C# می توانست دنیای Windows را بلرزاند، این تغییر و تحول دنیای ما را نیز عوض کرد. از چند سال قبل تا سال 2000 مشغول کار کردن بر روی GNOME Desktop و سرویس ایمیل Evolution (اسم یک سرویس در سیستم عامل لینوکس است) مربوط به سیستم عامل لینوکس بودیم.
ما به اندازه خود در مورد توسعه برنامه های desktop آموخته بودیم.
ما در حال توسعه نرم افزار در یک فضای رقابتی بودیم. ما نیاز داشتیم نرم افزار خود را سریعتر و با برنامه نویسان کمتر ایجاد کنیم. راهی که می توانستیم انتخاب کنیم این بود که ساعت کار خود را بیشتر کنیم و سخت تر کار کنیم. به جای اینکار تصمیم گریفتیم که سطح برنامه نویسی خود را بالاتر ببریم. ما کد خود را که به صورت performance-sensitive در زبان C نوشته شده بود نگه داشتیم و binding هایی (روش هایی برای ارتباط زبان های مختلف، مثل نوشتن یک وب سرویس) برای ارتباط با زبان های high-leve ایجاد کردیم تا برنامه نویسان بتوانند به سادگی از آن استفاده کنند.
هنگامی که مایکروسافت زبان C# را به همراه .NET framework معرفی کرد، این زبان یک روش افزایش کارایی سریع بود که سطح برنامه نویسی را نیز افزایش داد. .NET framework تضمین می کرد که شما به یک زبان منحصر به فرد محدود نمی شوید، همچنین اطمینان می داد که ما می توانیم از هر کدی که قبلا با زبان های C , C++ نوشته ایم استفاده مجدد کنیم. C# دنیا را ساخت، حتی از خود ما نیز بسیار سازنده تر است.
در طول سالها، MONO از هر جهتی که می توانست بزرگ شد. MONO به سرعت و به راحتی در هر حوزه ای و فراتر از Desktop نفوذ کرد. MONOدر هر چیزی پیاده سازی شده است مانند کنترلرهای تعبیه شده در MP3 players,servers, video games و کنترل صنعتی.
داستان MonoTouch
MonoTouch بر اساس تقاضای کاربران ایجاد شده است. آدرس های ایمیل ما از سال 2008 تا 2009 توسط کاربران زیادی برای آوردن MONO به iPhone مشغول شده بود، در تابستان سال 2009 ما تعداد زیادی پیشنهاد داشتیم و در نهایت در پاییز همان سال نسخه ای را release کردیم. در اوایل سال 2010، ما پیشنهادهای بسیار زیادی از سوی Developer (توسعه دهندگان) دریافت کردیم که از Android platform در ابزارهایی که ما برای iOS تولید کرده بودیم، نیز پیشتیبانی کنیم. در کمتر از یک سال بعد، ما تمامی امکانات مورد نیاز توسعه دهندگان را برای نوشتن برنامه هایی بر روی سیستم عامل Android با استفاده از Visual Studio 2010 معرفی کردیم. این یک معجره است که ما در چنین زمان کوتاهی توانستیم به اهداف خود دست پیدا کنیم.
نویسندگان کتابهای Android کنونی کسانی هستند که در روز های ابتدایی release با ما بودند و در حل مشکلات، طراحی API های اصلی و اولویت بندی مطالب برای بهتر کردن و راحت تر نمودن ابزارهای برنامه نویسی برای سیستم عامل اندروید به ما کمک کردند.
من لیست این افراد را به همراه معرفی خودشان برای شما قرار دادم اگر تمایل داشتید بخوانید متن آن بسیار ساده است:
لیتک معرفی و توسعه دهنده گان اندروید در همین بلاگ
معرفی Android
از زمان معرفی Android در پاییز سال 2008، Android رشد کرد و نقطه ای رسید که در حال حاضر اولین smartphone platform در اصطلاح shipments worldwide است. علاوه بر این ویژگی گفته شده، جذابیت نوشتن برنامه هایی که به صورت محلی (native) درون دستگاه ها اجرا می شوند و امکان استفاده از ویژگی های آن دستگاه را ممکن می سازند، نیز رشد کرده است، شبیه camera and voice recognition (تشخیص صدا و تصویر {افراد}).
معرفی Xamarin پیاده ساز Android
زمانی که در January 2002 نسخه.NET Framework معرفی و release شد، رشد چشمگیری داشت. امروزه استفاده از این framework برای توسعه بسیار رایج است. هنگامی که.NET Framework در حال توسعه بود، Miguel de Icaza برای Ximian کار می کرد. او برای خودش یک compiler (کامپایلر) C# نوشته بود، از همان framework MONO متولد شد.
در سال 2013 شرکت Novel شرکت Ximian را خرید، (فقط برای ارائه یک محصول، کاش فرهنگ ارزشمند کردن این موارد نیز در کشور ما آموخته می شد.). در سال 2011 شرکت Attachmate شرکت NOVEL خرید. (این یعنی نهایت درایت شرکتها). بعد در سال 2011، Xamarin تشکیل شد و تمامی محصولات مرتبط با MONO شامل MonoTouch, Mono for Android, وMonoDevelop به Xamarin منتقل شد.
یکی از دلایلی که این مطالب را برای شما دوستان عزیز نوشتم، این نکات ارزشمند است که وقتی یک شرکتی خریداری می شود اگر محصول آن شرکت نامی داشته باشد، سعی می کنند از همان نام استفاده کنند و همچنین از کسانی که محصول را به وجود آوردند حمایت می کنند.
دنیای Xamarin و Android
نتیجه نهایی برای ما توسعه دهندگان این است که Xamarin بر روی Mono for Android و MonoTouch متمرکز شده است، این ابزار به ما اجازه می دهد تا بهترین محصولات ممکن را برای تلفن های همراه Android و iPhoneایجاد کنیم. گذشته از همه این موارد، Mono framework برای اجرا در تمامی platform رشد کرده است. در ابتدا Mono برای اجرا در Linux طراحی شده بود. از آن زمان، Mono بخش بندی شد و برای چندین non-Windows platform مورد دسترسی قرار گرفت. در تابستان سال 2009 نسخه MonoTouch framework معرفی شد و استفاده از آن آغاز گردید. این framework به برنامه نویسان اجازه می دهد تا برنامه هایی با زبان C# و با استفاده از .NET Framework ایجاد و آن را بر روی iPhone اجرا کنند.
MonoDroid
در February 2010، de Icaza در وبلاگ شخصی اش با تیم Mono موافقت کرد تا بر روی پیاده سازی Mono for Android کار کنند و چیزی شبیه مفاهیم MonoTouch برای Android نیز ایجاد کنند. این پیاده سازی در ابتدا MonoDroid نامیده می شد و در نهایت Mono for Android نامگذاری شد.
جایگاه Android
توسعه دهندگان در .NET توانایی نوشتن برنامه هایی با C# و استفاده از تعداد زیادی از API های موجود سی شارپ را دارند. این توسعه دهندگان قبلا با جذابیتهای زیاد از این ابزار ها در سی شارپ آشنا هستند. توسعه دهندگان .NET نیازی ندارند In و Out های جاوا و محیط IDE نرم افزار Eclipse را یاد بگیرند تا بتوانند برای Android کد بنویسند.
شخصا می خواستم این دوره آموزشی را با جاوا آموزش دهم اما بسیاری از دوستان به دلیل عدم آشنایی با جاوا ترجیح دادند که با سی شارپ آموزش ما ارائه شود، و همین مزیت بزرگ Mono for Android است که شما را از جاوا بی نیاز می کند.
توسعه دهندگان .NET می توانند از همان محیط Visual Studio IDE برای کار خود استفاده کنند، زیرا قبلا به آن عادت کرده اند، همچنین برای کد نویسی از زبان C# استفاده می کنیم که طبیعتا تمامی شما دوستان این زبان را می شناسید، در نهایت از .NET Framework برای ایجاد برنامه خود در Android platform استفاده می کنیم که شما با این ابزار نیز آشنا هستید.
این امکانات برای هر کسی بسیار هیجان آور است یکبار خوب کد نویسی کنید تا سه خروجی Windows، Android و IPhone داشته باشید. از این بهتر چه چیزی می خواهید.
ویژگی اجرای برنامه ها بر روی دستگاه ها به صورت محلی (native) را شاید درک نکنید. HTML5 یک استاندارد بزرگ در حال ظهور برای ارائه برنامه های کاربردی است. Frameworkها در حال ساختن مزیتهایی برای فعالیتهایی هستند که web browser می توانند انجام دهند.
متاسفانه، این چندین مشکل دارد. برای مثال، یک web application نمی تواند به تمامی دستگاه ها دسترسی داشته باشد، بنابراین در حال حاضر شما نمی توانید به camera یا voice recognitionو یا اجرای برنامه ها را در background دسترسی داشته باشید. همچنین HTML5 یک استاندارد مورد قبول برای چندین سال نخواهد بود و باید تغییر کند.
اما صبور باشید این کل داستان نیست، اطلاعات بیشتری وجود دارد که باید بدانید.
مشکلات توسعه Android و iPhone
یکی از مشکلاتی که توسعه دهنده گان نرم افزار برای تولید نرم افزارهای موبایل با آن روبرو هستند این است که آنها باید برای تولید نرم افزار iPhone نیاز دارند برنامه خود را با زبان Objective C بنویسند و برای تولید نرم افزار Android باید از زبان Java استفاده کنند و برای Windows Phone 7 از Silverlight/ .NET استفاده کنند. زمان و هزینه برای توسعه این platform ها با اهمیت است. اگر یک تیم برای توسعه تصمیم بگیرد از Objective C و Java و Silverlight/ .NET برای هر platform استفاده کند، نمی توان کدها را در میان این platform های متفاوت به اشتراک گذاشت.
خوشبختانه، Mono platform اجازه می دهد تا توسعه دهندگان از business logic مشترکی در تمامی این platform استفاده کنند. تصور کنید که یک کلاس برای برقرار ارتباط با وب سرویس Amazon داشته باشید و بتوانید از آن در تمامی platform ها استفاده کنید. هنگامی که شما یک قابلیت را در یکی از platform ها اضافه می کنید این قابلیت در تمامی platform های دیگر قابل دستیابی است. هنگامی که یک Bug را در یکی از platform ها برطرف می کنید در تمامی platform ها این مشکل برطرف شده است.
Mono platform
Mono platform اجازه می دهد تا با چندین platform توسط زبانی که قبلا یاد گرفته اید کار کنید. این یک نکته بسیار حائز اهمیت برای تمامی توسعه دهندگان و مدیران است. این ایده که می توانید یک برنامه مختص (native) یک دستگاه ایجاد کنید و سپس از همان کد برای سایر دستکاه ها نیز بهره ببرید بسیار جذاب است. این روش که باعث حذف شدن هزینه تولید نرم افزار برای دستگاه های موبایل می شود و همچنین می توانیم با تولید یک نرم افزار آن را در platform های متفاوت به بازار عرضه کنیم، همه از توسعه دهندگان، مدیران و حتی تجارت آن را دوست دارند زیرا شما کمتر هزینه می کنید و با قیمت مناسب تری ارائه می دهید و بیشتر می فروشید.
حال اگر ارزش یادگرفتن دارد، سعی کنید این دوره مطالعه کنید من هم سعی خواهم کرد مطالب را سریعتر بیان کنم.
معرفی نیازهای دوره آموزشی Android
شما برای استفاده از این دوره آموزشی به صورت کامل نیاز به موارد زیر دارید:
یک دستگاه Android: این می تواند یک موبایل یا تبلت باشد که از Android استفاده می کند.
Android SDK: شما باید آخرین نسخه Android SDK را دانلود و بر روی سیستم خود نصب نمایید.
Java SDK: برای توسعه Android نیاز به Java SDK می باشد. با وجود اینکه Mono for Android یک پیاده سازی از .NET/C# برای Android است اما بسیاری از قسمت های آن برای توسعه دادن نیاز به Java دارد، بنابراین Java یکی از نیازهای اساسی Mono for Android است.
Development IDE: توسعه دهندگان .NET با Visual Studio .NET آشنا هستند. Visual Studio یکی ابزار اصلی ما برای توسعه در این دوره آموزشی است که طبیعتا هیچ یک از شما دوستان نباید نگرانی خاصی در این مورد داشته باشید، زیرا مباحث مقدماتی ساده خواهد بود هر کجا که فرایندی را باید انجام دهیم تصاویر گویا خواهند بود. MonoDevelop یک IDE است که در Mac و Windows پشتیبانی می شود و می توایند در صورت تمایل از آن استفاده کنید، شاید دلیل معرفی این IDE هزینه زیاد Visual Studio باشد اما ما که این هزینه را پرداخت کرده ایم نیازی به هزینه مجدد نداریم. MonoDevelop نیازمندی های خاص خود را دارد که برای نصب و سایر اطلاعات می توانید از طریق آدرس زیر این اطلاعات را مشاهده کنید.
http://mono-android.net
Mono for Android: Mono for Android یک ابزار اجباری برای کار ما است. ابزارهای دیگر ممکن است در طول زمان اضافه شده باشند و زمانی که شما این مقاله را می خوانید نیاز به ابزارهای جدیدی باشد که اینجا ذکر نشده است. بنابراین ایده خوبی است اگر بتوانید سایت Mono for Android را به آدرس زیر چک کنید.
http://mono-android.net
تمامی این موارد را در هر فصل سعی می کنیم به صورت کامل بررسی کنیم.
نظرات (۱)
با سلام
در حال تهیه فیلم آموزشی هستیم اگر کمی صبر کنید انشالله به زودی فیلم ها را بر روی وب سایت قرار خواهم داد.
یاعلی