مقایسه زامارین و اندروید استودیو — جامع و به زبان ساده

همیشه بحثهایی پیرامون مقایسه ابزارها و فناوریهای مختلف در توسعه نرمافزار میان برنامه نویسان و توسعه دهندگان در میگیرد. یکی از این بحثها مقایسه زامارین و اندروید استودیو است. Xamarin و Android Studio هر دو ابزارهایی برای توسعه اپلکیشنهای بومی اندروید به حساب میآیند. اما هر کدام برتریها و کاستیهای خود را دارند و با یکدیگر متفاوت هستند. بنابراین، در این مقاله پس از معرفی فناوریهای توسعه اپلیکیشنهای تلفنهای هوشمند زامارین و اندروید استودیو و بیان مزایا و معایب هر یک، در سطحی جامع به مقایسه اندروید استودیو و زامارین از زوایای مختلف پرداخته و همچنین به ویژگیها، امکانات و خصوصیات هر یک از این ابزارهای توسعه اشاره شده است.
برای اینکه بتوان مقایسه زامارین و اندروید استودیو را به طور صحیح و جامع انجام داد، ابتدا باید شناخت کافی نسبت به هر یک از این دو ابزار توسعه وجود داشته باشد و نکات مهم پیرامون هر یک مورد بررسی قرار بگیرند. بنابراین، در آغاز مقاله مقایسه زامارین و اندروید استودیو به شرح چیستی زامارین و سایر مباحث مهم پیرامون آن، از جمله ویژگیها و مزایای زامارین پرداخته شده است. سپس به این سوال پاسخ داده خواهد شد که اندروید استودیو چیست و چه ویژگیها، مزایا و معایبی دارد؟ پس از معرفی این دو ابزار توسعه و پرداختن به نکات پیرامون هر یک، نوبت به بحث اصلی یعنی مقایسه زامارین و اندروید استودیو از زوایای مختلف فرا میرسد. بنابراین در ادامه، ابتدا به این سوال پاسخ داده شده است که Xamarin چیست؟
Xamarin چیست ؟
زامارین (Xamarin) یک پلتفرم اپلیکیشن متنباز است که برای ساخت اپلیکیشنهای مدرن و کارآمد iOS و اندروید با استفاده از زبان C# و فریم ورک داتنت به کار میرود. زامارین توسط شرکت مایکروسافت تولید، ارائه و پشتیبانی میشود. همچنین، Xamarin نام شرکت نرمافزاری تولید کننده پلتفرم زامارین نیز به حساب میآید که در سال ۱۳۹۰ شمسی (۲۰۱۱ میلادی) تاسیس شده و متعلق به شرکت مایکروسافت است.
Xamarin فناوری ارائه شده از سوی مایکروسافت برای ساخت اپلیکیشنهای موبایل کاملاً بومی (محلی | Native) شامل اپلیکیشنهای اندروید، iOS و برنامههای کاربردی پلتفرم جهانی ویندوز (UWP) به حساب میآید. تلفظ صحیح Xamarin به صورت «زَمْرین» است.
به بیان ساده، اپلیکیشن بومی به اپلیکیشنی گفته میشود که به طور اختصاصی برای یک پلتفرم خاص مثل iOS یا اندروید توسعه داده شده باشد. مایکروسافت مدعی است که اپلیکیشنهای توسعه داده شده با استفاده از Xamarin صد درصد همانند یک اپلیکیشن بومی عمل میکنند. در ساخت اپلیکیشنهای بومی با Xamarin از زبان برنامه نویسی C# و فریم ورک .NET استفاده میشود.
یک نقطه برتری در Xamarin این است که میتوان میان هر کدام از اپلیکیشنهای بومی تولید شده برای هر یک از پلتفرمهای iOS، اندروید و ویندوز یک منطق مشترک ایجاد کرد. یعنی با پیادهسازی منطق برنامه به زبان C# در Xamarin میتوان این منطق را بین اپلیکیشنهای تولیدی برای همه پلتفرمها به اشتراک گذاشت.
بنابراین، Xamarin یک ابزار چندپلتفرمی به شمار میرود. یعنی میتوان با استفاده از Xamarin اپلیکیشنهای بومی برای پلتفرمهای مختلف از جمله اندروید و iOS تولید کرد. در Xamarin ویژگی چندپلتفرمی تنها به گوشیهای اندروید و آیفون خلاصه نمیشود. با توجه به اینکه Xamarin دسترسی به تمام APIهای بومی را فراهم میکند، میتوان اپلیکیشنهای Apple TV و گجتهای پوشیدنی اندروید و اپلیکیشنهای اپل واچ را هم با استفاده از Xamarin تولید کرد.
در واقع همه آنچه در زبانهای Objective-C، سوئیفت، جاوا یا کاتلین انجام میشود را میتوان در Xamarin نیز پیادهسازی کرد. کدنویسی با Xamarin در نرمافزار Visual Studio انجام میشود که هم در ویندوز و هم در مک OS در دسترس است. کدهایی که در ویندوز و مک با ویژوال استودیو نوشته میشوند کاملاً یکسان هستند و هیچ تفاوتی در کدنویسی روی این دو پلتفرم با Xamarin وجود ندارد.
زامارین فرم چیست؟
«زامارین فرم» (Xamarin.Forms) قابلیتی در Xamarin است که با استفاده از آن میتوان کدهای مربوط به رابط کاربری (UI) را در پلتفرمهای مختلف به اشتراک گذاشت و در واقع کدهای یکسانی را برای ساخت رابط کاربری در این پلتفرمها به کار گرفت.
همانطور که بیان شد، یک لایه منطق اشتراکی در Xamarin وجود دارد که در آن منطق کسبوکار (Business Logic) مربوط به اپلیکیشن تولید شده بین هر سه پلتفرم اندروید، iOS و ویندوز به اشتراک گذاشته میشود.
اما، مسئله این است که ضمن وجود نقاط مشترک، این سه پلتفرم با هم تفاوتهایی در مفاهیم رابط کاربری نیز دارند. برای مثال، iOS، اندروید و UWP هر کدام مفهوم و تعریف مربوط به خودشان را از یک دکمه (Button) ارائه میدهند. بنابراین، کاری که مایکروسافت برای رفع این مشکل در Xamarin انجام داده، معرفی قابلیتی به نام زامارین فرم (Xamarin.Forms) است. فرمهای زامارین انتزاعی میان هر سه پلتفرم ویندوز، iOS و اندروید هستند که یک API برای برنامه نویسی دکمه یا سایر لایههای رابط کاربری فراهم میکنند.
در Xamarin از چه زبان برنامه نویسی استفاده میشود؟
همانطور که بیان شد، Xamarin تنها از زبان برنامه نویسی C# برای ساخت اپلیکیشنهای چندپلتفرمی موبایل استفاده میکند. C# زبانی تکاملیافته با امکان کنترل کدها برای جلوگیری از رفتار غیرمنتظره است.
برخلاف راهکارهای تفسیری نظیر Appcelerator Titanium، زامارین به صورت بومی (محلی) کامپایل میشود که آن را به انتخابی ایدهآل برای ساخت اپلیکیشنهایی بسیار کارآمد با ظاهر و حس بومی بدل کرده است. حال در ادامه معرفی Xamarin در مقاله مقایسه زامارین و اندروید استودیو مختصراً به تاریخچه Xamarin پرداخته شده است.
تاریخچه زامارین
Xamarin توسط توسعه دهندگان Mono ساخته شده است. Mono یک پلتفرم توسعه متنباز بر پایه فریم ورک .NET است که توسط Miguel de Icaza رهبری و اولین بار در ۱۳۸۰ شمسی (۲۰۰۱ میلادی) معرفی شده است. شرکت Xamarin در سال ۱۳۹۰ شمسی (۲۰۱۱ میلادی) بنیانگذاری شد. Xamarin برخلاف Mono با اهداف تجاری ایجاد شده بود تا اینکه حق مالکیت این شرکت در سال ۱۳۹۵ شمسی (۲۰۱۶ میلادی) توسط مایکروسافت تصاحب شد.
به این ترتیب، زامارین به یک محصول چندپلتفرمی محبوب برای توسعه اپلیکیشنهای موبایل در چارچوب زیستبوم مایکروسافت بدل شد. مالکیت مایکروسافت موانع مالی برای استفاده از Xamarin را درهم شکست. بنابراین، مایکروسافت بسته توسعه نرمافزار (SDK) زامارین را به صورت محصولی متنباز ارائه کرد و این SDK به بخشی از محیط توسعه یکپارچه ویژوال استودیو بدل شد. علاوه بر نسخههای مختلف Visual Studio، برای توسعه با Xamarin میتوان از ویرایشگر Visual Studio Code نیز استفاده کرد. حال در ادامه بخش معرفی Xamarin در مقاله مقایسه زامارین و اندروید استودیو به شرح امکانات و قابلیتهای ابزار توسعه اپلیکیشن Xamarin پرداخته شده است.
امکانات و ویژگیهای Xamarin چیست؟
اپلکیشنهای تولید شده با Xamarin اغلب با ابزارهای توسعه اپلیکیشنهای بومی اندروید و iOS (مثل اندروید استودیو) از لحاظ عملکرد و تجربه کاربری قابل مقایسه هستند. Xamarin میتواند از همه دسترسیها و APIهای بومی برای به کارگیری قابلیتهای زیربنایی پلتفرمها در اپلیکیشنهای Xamarin بهره ببرد. برای مثال، میتوان به بسته توسعه واقعیت افزوده ARKit در iOS یا قابلیت Multi Window در اندروید اشاره کرد.
در حالی که میتوان کدهای مربوط به منطق کسب و کار، دسترسی پایگاه داده و ارتباطات تحت شبکه را میان همه پلتفرمها به اشتراک گذاشت، Xamarin امکان ایجاد یک لایه کد رابط کاربری مخصوص برای هر پلتفرم را فراهم میکند. به همین دلیل، اپلیکیشنهای چندپلتفرمی Xamarin در مقایسه با اپلیکیشنهای ترکیبی رایج به طور کامل و صد درصد بومی به نظر میرسند. در ادامه این بخش از مطلب مقایسه زامارین و اندروید استودیو به معرفی و شرح برخی از ویژگیها و امکانات Xamarin پرداخته شده است.
Xamarin مبتنی بر فریم ورک .NET
در Xamarin از C# به همراه فریم ورک .NET استفاده میشود. .NET فریم ورک توسعه نرمافزار ارائه شده توسط شرکت مایکروسافت است. توسعه دهندگان عموماً از .NET در محیط توسعه Visual Studio برای توسعه نرمافزارهای مختلف استفاده میکنند.
.NET امکانات کاربردی را نظیر عبارات Lambdas، سینتکس کوئری LINQ و برنامه نویسی ناهمگون (async/await) به توسعه دهندگان ارائه میدهد. به لحاظ فنی، Xamarin از C# به همراه کتابخانههای بومی بستهبندی شده در لایه .NET برای توسعه اپلیکیشنهای چندپلتفرمی استفاده میکند.
کامپایل در Xamarin
پلتفرم Xamarin دارای دو محصول اصلی به نامهای Xamarin.iOS و Xamarin.Android است. در خصوص iOS، کدهای منبع به صورت مستقیم به کدهای اسمبلی ARM کامپایل میشوند (کامپایل پیش از موعد). اما، اپلیکیشنهای اندرویدی Xamarin ابتدا به زبان واسط و سپس به کدهای اسمبلی بومی در زمان اجرا کامپایل میشوند (کامپایل درجا یا Just in Time).
البته، در هر دو مورد فرایند به صورت خودکار و تنظیم شده اجرا میشود تا امکان کنترل مواردی نظیر تخصیص حافظه، زبالهروبی (Garbage Collection) و کارکردپذیری بین پلتفرمها به صورت پیشفرض وجود داشته باشد.
Xamarin.Mac
علاوه بر دو محصول Xamarin.iOS و Xamarin.Android، توسعه دهندگان میتوانند از Xamarin.Mac جهت ساخت اپلیکیشنهایی برای سیستم عامل مک او اس نیز استفاده کنند. Xamarin.Mac امکان توسعه اپلیکیشنهای مک کاملاً بومی را با استفاده از C# و .NET فراهم میکند.
Xamarin.Mac با کتابخانههایی ادغام میشود که برای توسعه در Objective-C با Xcode به کار میروند. با استفاده از Xamarin.Mac به همراه Xamarin.iOS و Xamarin.Android، توسعه دهندگان میتوانند تا ۹۰ درصد کدهای بومی را در اندروید، iOS و مک او اس به اشتراک بگذارند. علاوه بر این، Xamarin.Mac با Xcode قابل ادغام است تا توسعه دهنده بتواند از واسط Xcode برای ایجاد رابط کاربری یک اپلیکیشن استفاده کند.
دسترسی به SDKهای بومی پلتفرمها
Xamarin دسترسی به بستههای توسعه نرمافزار (Software Development Kit | SDK) مخصوص پلتفرمهای مختلف از جمله «Cocoa Touch» برای iOS و «Android SDK» برای اندروید را در قالب سینتکس ساده C# فراهم میکند. این امکان یکی از دلایل اصلی به شمار میرود که اپلیکیشنهای تولید شده با Xamarin کاملاً بومی محسوب میشوند.
تلفیق کد مختص پلتفرم
در اکثر موارد برنامه نویسان میتوانند مدیریت توسعه در حفظ ظاهر و حس بومی پلتفرمهای مربوطه را از طریق محیط Xamarin اعمال کنند. Xamarin امکان فراخوانی کدهای مختص پلتفرم (مثلاً کدهای سوئیفت برای iOS) در صورت نیاز به استفاده مجدد از برخی ماژولها یا محقق کردن برخی کارکردها نظیر اسکن بارکد، انضمام PayPal یا انضمام Google Analytics را فراهم میکند.
پشتیبانی از توسعه برای ابزارکهای پوشیدنی
Xamarin از ساخت اپلیکیشن برای ساعتهای هوشمند اندروید و iOS پشتیبانی میکند. توسعه دهندگان و برنامهنویسان میتوانند از Visual Studio هم در ویندوز و هم در مک OS جهت ساخت اپلیکیشنهای iOS برای ساعت اپل و ساعتهای اندرویدی استفاده کنند. حال برای آشنایی و شناخت بیشتر Xamarin، ادامه بخش معرفی Xamarin در مقاله مقایسه زامارین و اندروید استودیو به شرح ساختار پروژه زامارین پرداخته شده است.
ساختار پروژه زامارین چگونه است؟
اکثر پروژههای Xamarin معمولاً از طریق کامپیوتر تحت ویندوزی توسعه داده میشوند که Xamarin و Visual Studio روی آن نصب شده است. میتوان اپلیکیشن توسعه داده شده با Xamarin را مستقیماً از طریق دسکتاپ یا دستگاههای مجازی راهاندازی شده روی همانندسازها (Emulators) تست و خطایابی کرد. با استفاده از Xamarin میتوان برنامه نویسی iOS در ویندوز را هم محقق کرد.
این کار با اتصال Visual Studio به طراح Storyboard و شبیهساز iOS امکانپذیر است. همچنین، Visual Studio برای سیستم عامل مک نیز در دسترس است و امکان اجرای اپلیکیشن روی یک شبیهساز (Simulator) در مک OS یا یک آیفون واقعی برای خطایابی وجود دارد. عملیات خطایابی از طریق Visual Studio انجام میشود. ساختار پروژه زامارین در نمودار زیر نمایش داده شده است:
درست مثل هر فناوری دیگری، Xamarin نیز مزایا و معایبی دارد. برای تصمیمگیری صحیح در خصوص انتخاب Xamarin یا یک پلتفرم توسعه بومی و همچنین جهت مقایسه زامارین و اندروید استودیو ، باید مزایا و معایب Xamarin را برشمرد. بنابراین، در ادامه به بررسی مزایا و معایب Xamarin پرداخته شده است.
مزایای Xamarin چیست؟
به طور خلاصه میتوان و نقاط قوت و مزایای Xamarin را به صورت زیر فهرست کرد:
- چندپلتفرمی بودن Xamarin
- زبان C# در ترکیب با فریم ورک .NET ابزاری بسیار کاربردی و کارآمد را برای توسعه دهندگان شکل میدهد.
- فرمهای Xamarin: فریم ورکی برای ایجاد چیدمان بومی رابط کاربری مشترک در همه پلتفرمها
- پشتیبانی Xamarin از توسعه اپلیکیشن برای ابزارکهای TV باکس، ساعت هوشمند و اینترنت اشیا
- قابلیت بارگذاری مجدد سریع (Hot Reload) در کدنویسی XAML فرمهای زامارین
- امکان صرفهجویی در زمان و هزینه به دلیل چندپلتفرمی بودن Xamarin
- امکان استفاده از محیط توسعه Visual Studio یا VS Code
- امکان نصب روی ویندوز و مک
- قابلیتها و امکانات IntelliSense
- امکان تست در حین توسعه
- قابلیت استفاده مجدد از کدها
- عملکرد و کارایی نزدیک به روشهای بومی
- امکان ایجاد تجربه کاربری (UX) بومی
- پشتیبانی سختافزاری کامل و جامع
- فناوری متنباز با پشتیبانی قدرتمند مایکروسافت
- نگهداری و مراقبت آسان
- برخورداری از تمام امکانات لازم برای توسعه
- امکان ساخت اپلیکیشن برای مک OS با ابزار Xamarin.Mac
- در دسترس بودن منابع آموزشی Xamarin به میزان کافی
حال در ادامه بیان مزایا و معایب زامارین در مقاله مقایسه زامارین و اندروید استودیو ، نوبت به شرح معایب زامارین رسیده است.
معایب Xamarin چیست؟
با وجود مزایای متعدد، همچنان برخی کاستیها در Xamarin وجود دارند. در ادامه به بیان این نقاط ضعف در Xamarin پرداخته شده است.
- مشکلات عدم سازگاری با کتابخانهها و ابزارهای شخص ثالث و نیاز به ایجاد پیوند (Binding) به این کتابخانهها
- تاخیر جزئی در پشتیبانی از بهروزرسانیهای Xamarin توسط شرکت زامارین و مایکروسافت
- دسترسی محدود به کتابخانههای متنباز
- هزینه بالا در صورت استفاده از Xamarin برای کاربردهای حرفهای و سازمانی
- محدودیت در منابع استعدادیابی و اجتماع Xamarin
- نیاز به داشتن دانش ابتدایی از زبانهای بومی (جاوا، کاتلین، سوئیفت، Objective-C و سایر موارد)
- حجم بیشتر اپلیکیشن تولید شده با Xamarin نسبت به توسعه با اندروید استودیو
- عدم ارائه پشتیبانی رسمی از Xamarin در لینوکس
پس از پرداختن به موارد لازم پیرامون Xamarin، نوبت به یکی دیگر از ملزومات پیشنیاز برای مقایسه زامارین و اندروید استودیو یعنی پرداختن به چیستی Android Studio و شرح ویژگیها، مزایا، معایب و سایر نکتههای مهم پیرامون آن است.
Android Studio چیست ؟
Android Studio محیط توسعه یکپارچه (IDE) رسمی برای توسعه اپلیکیشنهای اندروید به حساب میآید. اندروید استودیو جایگزین «برنامه ابزارهای توسعه اندروید Eclipse» شده است و به عنوان IDE اصلی برای توسعه اپلیکیشنهای اندروید شناخته میشود. اندروید استودیو بر اساس IntelliJ IDEA ساخته شده است. IntelliJ یک محیط توسعه یکپارچه جاوا محسوب میشود.
علاوه بر ویرایشگر کد و ابزارهای توسعه قدرتمند IntelliJ، اندروید استودیو امکانات بیشتری را نیز برای بهبود کارایی توسعه دهندگان در ساخت اپلیکیشنهای اندروید فراهم میکند. برای پشتیبانی از توسعه اپلیکیشن در چارچوب سیستم عامل اندروید، Android Studio از یک سیستم ساخت مبتنی بر Gradle، شبیهساز (Emulator)، قالبهای کد و انضمام گیتهاب بهره میبرد. هر پروژه در اندروید استودیو دارای یک یا بیش از یک وَجهیَت (Modality) به همراه کد منبع و فایلهای منبع است.
این Modalityها شامل ماژولهای اپلیکیشن اندروید، ماژولهای کتابخانه و ماژولهای موتور اپلیکیشن گوگل میشوند. اندروید استودیو از قابلیتی به نام «Instant Push» یا «اعمال سریع» برای نشاندن کدها و تغییرات منابع در یک اپلیکیشن در حال اجرا پشتیبانی میکند. ویرایشگر کد اندروید استودیو به توسعه دهنده در نوشتن کدها کمک میکند و امکاناتی نظیر تکمیل کد خودکار (Auto Completion) و تجزیه و تحلیل کدها را ارائه میدهد. اپلیکیشنهای ساخته شده در Android Studio برای واگذاری به فروشگاه Google Play در قالب APK کامپایل میشوند. اندروید استودیو برای پلتفرمهای دسکتاپ، مک، ویندوز و لینوکس در دسترس است. در ادامه این بخش از مقاله مقایسه زامارین و اندروید استودیو به بیان ویژگیها و امکانات این IDE پرداخته شده است.
Gradle در اندروید استودیو چیست؟
Gradle یک سیستم ساخت (Build System) چندپلتفرمی برجسته است. سیستم یا ابزار ساخت برنامهای است که برای خودکارسازی ایجاد اپلیکیشنهای اجرایی از طریق کد منبع آنها مورد استفاده قرار میگیرد. عبارت «ساخت» (Build) به معنی کامپایل کردن، پیوند دادن و بستهبندی کدها در یک قالب قابل استفاده و قابل اجرا است.
به بیان ساده، خودکارسازی عملیات ساخت به معنی اسکریپتسازی و خودکارسازی طیف گستردهای از وظایف است که توسعه دهندگان نرمافزار در کارهای روزمره خود انجام میدهند. این کارها شامل دانلود کردن ملزومات ضمیمه (Dependency)، کامپایل کردن کدهای منبع به کدهای دودویی، بستهبندی آن کدهای دودویی، انجام تستها و استقرار (Deployment) سیستمهای تولیدی است.
بنابراین، Gradle نیز برای مدیریت Dependencyها، تعیین وظایف مشخص برای اجرا در مراحل مختلف فرایند ساخت و خودکارسازی فرایند استقرار محصول در توسعه اندروید مورد استفاده قرار میگیرد. منابع جاوا در اندروید به کدهای بایت (Byte Code) مخصوصی در محیط اجرایی اندروید تبدیل و کامپایل میشوند. بنابراین، ساختن اپلیکیشنهای اندروید به صورت دستی امکانپذیر نیست. Gradle با امکاناتی که ارائه میدهد، این مشکل را برطرف میسازد. میتوان از Gradle به عنوان یک نقطه برتری در مقایسه زامارین و اندروید استودیو نام برد.
در اندروید استودیو از چه زبانهای برنامه نویسی استفاده میشود؟
کاتلین و پیشتر جاوا زبانهای رسمی توسعه اپلیکیشنهای اندرویدی در Android Studio به حساب میآیند. بر خلاف جاوا، کاتلین زبان جدیدتری محسوب میشود و به طور اختصاصی برای توسعه اندروید ارائه شده است. علاوه بر کاتلین و جاوا، اندروید استودیو با استفاده از بسته توسعه بومی جاوا (NDK) از C++ نیز پشتیبانی میکند.
همچنین، در صورت نصب افزونه فلاتر میتوان با استفاده از این SDK به زبان برنامه نویسی دارت (Dart) نیز کدنویسی کرد و اپلیکیشنهای اندرویدی توسعه داد. در ادامه مقدمات مقایسه زامارین و اندروید استودیو ، تاریخچه مختصری از Android Studio بیان شده است.
تاریخچه اندروید استودیو
اندروید استودیو در ۲۶ اردیبهشت سال ۱۳۹۲ (۲۰۱۳ میلادی) در کنفرانس نوآوری Google I/O معرفی شد. Android Studio در مرحله پیشنمایش و دسترسی اولیه با نسخه ۰.۱ ارائه شد. سپس، با شروع از نسخه ۰.۸ این IDE در خرداد سال ۱۳۹۳ (۲۰۱۴ میلادی) منتشر و وارد مرحله آزمایشی (بتا) شد.
اولین ساخت پایدار اندروید استودیو در آذرماه ۱۳۹۳ با نسخه ۱.۰ انتشار یافت. در اردیبهشت سال ۱۳۹۸ (۲۰۱۹ میلادی) زبان برنامهنویسی کاتلین به عنوان زبان ارجح برای توسعه اندروید جایگزین جاوا شد.
امکانات و ویژگی های اندروید استودیو چیست؟
ویژگیها و امکاناتی که محیط توسعه Android Studio به توسعه دهندگان اندروید ارائه میدهد، به شرح زیرند:
- یک سیستم ساخت انعطافپذیر مبتنی بر Gradle
- دارای همانندساز (Emulator) سریع و پر از امکانات
- محیط یکپارچهای که میتوان در آن برای تمامی دستگاههای اندرویدی برنامه توسعه داد.
- اعمال تغییرات کدها و منابع به اپلیکیشن در حال اجرا بدون نیاز به راهاندازی مجدد اپلیکیشن
- قالبهای کد و انضمام گیتهاب برای کمک به ساخت کارکردهای رایج اپلیکیشن و وارد کردن کدهای نمونه
- ابزارهای آزمایش و فریم ورکهای جامع
- پشتیبانی از C++ و NDK (بسته توسعه بومی)
- پشتیبانی داخلی از پلتفرم ابری گوگل که ادغام پیامرسانی ابری گوگل و موتور اپلیکیشن را سهولت میبخشد.
برای مقایسه زامارین و اندروید استودیو ، همانطور که به مزایا و معایب Xamarin پرداخته شد، باید مزایا و معایب اندروید استودیو را نیز شرح داد. بنابراین بخش بعدی این مقاله به بیان برتریها و کاستیهای محیط توسعه اندروید استودیو اختصاص دارد.
مزایای اندروید استودیو
مزایای اندروید استودیو به شرح زیر است:
- اندروید استودیو توسط گوگل ارائه میشود و چون اندروید هم ساخت شرکت گوگل است، این IDE بهترین ابزار برای توسعه اپلیکیشنهای بومی اندروید به حساب میآید.
- مستندسازی مناسب
- مصورسازی مناسب (محیط کاربری چشمنواز)
- پیکربندی و تنظیمات ساده
- استفاده از زبان کاتلین
- امکان نصب در ویندوز، مک و لینوکس
- نصب آسان
- به میزان زیادی قابل شخصیسازی است.
- امکانات مخصوص (افزونه) برای توسعه با فلاتر
- پشتیبانی تمام وقت شرکتهای گوگل و JetBrains از اندروید استودیو
- ارائه نرمافزار همانندساز (Emulator) به صورت پیشفرض
- دارای قابلیت راهنمای کدنویسی (Code Hint)
- امکان توسعه اپلیکیشنهای با کیفیت اندرویدی در گوشیها، تبلتها، ساعتهای هوشمند، تلویزیون و سایر ابزارکهای اندرویدی
- پشتیبانی از کدنویسی به زبان C و C++ با استفاده از بسته توسعه بومی (NDK)
- پشتیبانی از ابزارها و فریم ورکهای مختلف تست و آزمایش
- به جای Maven از Gradle پشتیبانی میکند.
- حالت خطایابی بسیار عالی
- اندروید استودیو متنباز است.
- Android Studio رایگان است.
- اجتماع بزرگ توسعه دهندگان اندروید
- امکان ترجمه خودکار جاوا به کاتلین فراهم است.
- Android Studio نسبتاً کم حجم است و مدیریت منابع در اندروید استودیو به خوبی انجام شده است.
- در مقایسه با سایر IDEها به سرعت اجرا و بارگذاری میشود.
- مصرف حافظه در اندروید استودیو نسبت به امکاناتی که ارائه میدهد، چندان بالا نیست.
- افراد مبتدی میتوانند با آن به راحتی کار کنند.
حال در ادامه این بخش از مطلب مقایسه زامارین و اندروید استودیو به بیان نقاظ ضعف و معایب اندروید استودیو پرداخته شده است.
معایب اندروید استودیو کدامند؟
در بخش قبل به شرح مزایای اندروید استودیو پرداخته شد. اکنون نوبت به بیان کاستیها و معایب اندروید استودیو میرسد. میتوان معایب اندروید استودیو را به صورت زیر فهرست کرد:
- با اندروید استودیو تنها میتوان اپلیکیشنهای بومی مختص اندروید توسعه داد و این IDE چندپلتفرمی نیست. اگرچه با نصب فلاتر در اندروید استودیو امکان توسعه چندپلتفرمی نیز وجود دارد.
- اندروید استودیو چندان کم حجم نیست و نمیتوان به راحتی از آن روی دستگاههای ضعیف استفاده کرد.
- همانندساز اندروید استودیو کند است و میتواند بهتر باشد.
- زمان ساخت و اجرا در Android Studio نسبتاً زیاد است.
- زمان نسبتاً زیادی برای باز شدن و اجرای اندروید استودیو روی سیستم نیاز است.
- برای رسیدن به نتیجه مطلوب و قابل اطمینان نیاز به منابع حافظه و پردازنده قدرتمند وجود دارد.
- ساخت اولیه زمانبر است، اگرچه ساختهای بعدی سریعتر انجام میشود.
- نصب IDE اندروید استودیو نیازمند فضای حافظه زیادی است.
- به طور کلی اندروید استودیو برنامه سنگینی است و عملکرد و کارایی کامپیوتر را کاهش میدهد.
- فرآیند بهروزرسانی به کندی انجام میشود.
- اندروید استودیو نیاز به مقدار زیادی حافظه RAM دارد که برای همگان اقتصادی نیست.
- انجام چند کار به طور همزمان در اندروید استودیو بسیار دشوار است، چرا که منابع بسیاری مصرف میکند.
- اندروید استودیو فاقد مفهومی به نام فضای کاری است. هر پنجره تنها یک پروژه را در بر میگیرد و نقل مکان بین پروژهها کار سادهای نیست.
- گاهی اوقات خطاهایی در خود IDE اتفاق میافتد (نه در کدها). اگرچه، این خطاها خود به خود از بین میروند و مانعی برای اجرای کدها ایجاد نمیکنند.
- گاهی اوقات قابلیت بارگذاری مجدد سریع (Hot Reload) به درستی کار نمیکند.
حال پس از معرفی زامارین و اندروید استودیو و بیان امکانات، ویژگیها، مزایا و معایب هر یک، امکان پرداختن به بحث اصلی یعنی مقایسه زامارین و اندروید استودیو فراهم شده است.
مقایسه زامارین و اندروید استودیو
با معرفی و بیان چیستی هر یک از فناوریهای Xamarin و Android Studio و شرح مزایا و معایب هر یک در بخشهای قبل، اکنون کار مقایسه زامارین و اندروید استودیو بسیار سادهتر شده است. با توجه به اینکه اندروید استودیو یک محیط توسعه بومی مختص اندروید به حساب میآید، باید در نظر داشت که مقایسه زامارین و اندروید باید بیشتر در چارچوب و حوزه توسعه اندروید انجام شود.
زیرا Xamarin ابزاری چندپلتفرمی است و علاوه بر اندروید میتوان با زامارین اپلیکیشن iOS هم توسعه داد که البته همین مسئله یکی از نقاط برتری آن نسبت به اندروید استودیو نیز محسوب میشود.
Xamarin.Android بسته توسعه نرمافزار اندروید (Android SDK) را به طور کامل در اختیار توسعه دهندگان .NET قرار میدهد تا بتوانند اپلیکیشنهای کاملاً بومی اندروید را در Visual Studio با استفاده از زبان C# توسعه دهند. بنابراین مقایسه اصلی باید بیشتر بین Xamarin.Android و اندروید استودیو انجام شود. در ادامه این بخش، مقایسه زامارین و اندروید استودیو از زوایا و جنبههای مختلف انجام شده است.
پلتفرم زامارین در برابر محیط توسعه اندروید استودیو
به طور کلی باید گفت که Xamarin یک «پلتفرم» برای ساخت اپلکیشنهای موبایل است، اما اندروید استودیو یک «محیط توسعه یکپارچه» (IDE) به حساب میآید. بنابراین در مقایسه زامارین و اندروید استودیو ، بحث تفاوت پلتفرم و محیط توسعه به میان میآید که لازم است به آن پرداخته شود.
مقایسه پلتفرم و محیط توسعه یکپارچه
پلتفرم به نرمافزار یا سختافزاری گفته میشود که یک قطعه نرمافزاری برای آن ساخته شده است. برای مثال، ممکن است نرمافزاری برای ویندوز، مک OS، اندروید، iOS یا PS4 ،XBOX One و سایر موارد تولید شود. بنابراین، به سیستم عاملهایی مثل اندروید و iOS و سختافزارهایی مثل اکسباکس و پلیاستیشن پلتفرم گفته میشود.
از طرف دیگر، محیط توسعه یکپارچه یا Integrated Development Environment که با سرنام IDE شناخته میشود، اپلیکیشن یا برنامهای است که در طول روند کدنویسی از طریق خودکارسازی بسیاری از فرایندها نظیر خطایابی، تولید کد و سایر موارد به برنامهنویس کمک میکند. IDE ابزاری برای تسهیل کار توسعه دهندگان است و در صورت عدم نیاز به کمک، میتوان به جای IDE از یک ویرایشگر متن ساده هم استفاده کرد. بنابراین، Android Studio و Visual Studio در دسته IDEها جای میگیرند.
دلیل اینکه Xamarin یک پلتفرم به حساب میآید چندان مشخص نیست. پلتفرم محسوب شدن Xamarin احتمالاً میتواند به این دلیل باشد که Xamarin.Android یا Xamarin.iOS قطعات نرمافزاری هستند که برای Xamarin نوشته و تولید شدهاند. همچنین در برخی منابع از Xamarin به عنوان یک بسته توسعه SDK نیز نام برده شده است. طبق مستندات مایکروسافت، Xamarin یک لایه انتزاعی است که مدیریت ارتباط کدهای مشترک را با کدهای پلتفرم زیربنایی (مثل اندروید یا iOS) فراهم میکند. Xamarin در یک محیط مدیریت شده اجرا میشود که تسهیلاتی از قبیل تخصیص حافظه و زبالهروبی را فراهم میکند. یکی دیگر از جنبههای مهم مقایسه زامارین و اندروید استودیو ، تفاوت در زبانهای برنامه نویسی مورد استفاده در این دو فناوری است که در ادامه به آن پرداخته شده است.
مقایسه زبان مورد استفاده در زامارین و اندروید استودیو
در Xamarin از زبان برنامه نویسی C# استفاده میشود، در حالی که در اندروید استودیو عمدتاً زبانهای کاتلین و جاوا برای توسعه اپلیکیشنهای همراه به کار میروند. بنابراین، بسته به اینکه فرد با کدام زبان آشنایی دارد، میتواند بین این دو فناوری یکی را انتخاب کند.
همچنین، در صورتی که فردی تازهکار باشد و هنوز یادگیری هیچ زبان برنامه نویسی را شروع نکرده باشد، باید با توجه به اهداف و چشمانداز مسیر شغلی، مقایسهای بین زبانهای C#، کاتلین و جاوا انجام دهد و بهترین زبان را بر اساس علاقهمندیها و اهداف خود انتخاب کند.
زبانهای C# و جاوا علاوه بر توسعه اپلیکیشن موبایل، کاربردهای بسیار گستردهتری نسبت به زبان کاتلین دارند. در گذشته کاتلین تنها قابل اجرا با ماشین مجازی جاوا (JVM) بود. اما به تازگی Kotlin JS نیز معرفی شده که امکان استفاده از کاتلین برای توسعه فرانتاند را به وجود آورده است. همچنین، در Xamarin تنها تسلط بر زبان C# کافی نیست و باید آشنایی کافی با زبانهای توسعه بومی از جمله کاتلین و جاوا هم وجود داشته باشد. بنابراین، از این حیث بهتر است به سراغ اندروید استودیو رفت. لازم به ذکر است که با استفاده از NDK یا بسته توسعه بومی اندروید میتوان در اندروید استودیو به زبان C و C++ نیز اپلیکیشن توسعه داد.
همانطور که در بخش تاریخچه اندروید استودیو بیان شد، در مراسم نوآوری «Google I/O» سال 1396 شمسی (۲۰۱۷ میلادی) زبان برنامه نویسی کاتلین (Kotlin) به عنوان زبان رسمی برای توسعه اندروید توسط گوگل معرفی و جایگزین جاوا (Java) شد. حال سوالی که مطرح میشود این است که برای استفاده از اندروید استودیو بهتر است از کدام زبان استفاده شود؟ جاوا یا کاتلین؟ بنابراین پیش از پرداختن به مقایسه C# و زبان مورد استفاده در اندروید استودیو (جاوا یا کاتلین) ابتدا باید مقایسهای بین جاوا و کاتلین انجام شود.
مقایسه کاتلین و جاوا در توسعه اندروید
در صورتی که فرد توسعه دهنده C# باشد، بهتر است جاوا را انتخاب کند. چرا که، C# به نوعی نسخه شبیهسازی شده یا Clone جاوا محسوب میشود و بسیار شبیه به جاوا است. اما حتی در صورتی که آشنایی با C# وجود داشته باشد، یادگیری کاتلین هم میتواند کاربردی باشد. نه فقط به این دلیل که کاتلین زبان جدیدتری نسبت به جاوا است، بلکه به واقع کاتلین برتریهایی نسبت به جاوا دارد.
با وجود اینکه ممکن است برنامهنویسان C# در ابتدا با تناقضهایی در سینتکس کاتلین مواجه شوند و سازگاری با آن زمانبر باشد، میتوان مدعی شد که کاتلین نسبت به جاوا شباهت بیشتری به C# دارد.
همچنین میتوان از کاتلین و جاوا به صورت تعاملی و در کنار هم استفاده کرد. یعنی میتوان کدهای جاوا را در کاتلین فراخوانی کرد و برعکس از کدهای کاتلین نیز در جاوا استفاده کرد. برای مثال، کلاسهای جاوا خصوصیت (Property) ندارند، اما کاتلین این قابلیت را دارد. بنابراین در حالی که در جاوا برای یک فیلد باید از متدهای getter و setter استفاده کرد، در کاتلین این متدها به طور خودکار به Property تبدیل میشوند که قابلیتی فوقالعاده است.
با این توضیحات، میتوان کاتلین را برنده این مقایسه و زبان مطلوب در اندروید استودیو معرفی کرد. بنابراین، با توجه به اینکه هدف مقایسه زامارین و اندروید استودیو است، در ادامه مقایسهای میان C# و کاتلین انجام شده است.
مقایسه کاتلین و C#
یکی از تفاوتهای نحوی کاتلین با C# عدم اجباری بودن استفاده از نقطه-ویرگول (Semicolon) در کاتلین است. همچنین، سازندهها (Constructors) در کاتلین کاملاً متفاوت هستند.
در کاتلین یک سازنده اصلی (Primary Constructor) وجود دارد که تنها از پارامترها در داخل پرانتز تشکیل شده است و همچنین یک Initializer نیز همانند بدنه سازنده عمل میکند. سازندههای ثانویه در کاتلین تقریباً مشابه C# هستند. این تفاوت میتواند در ابتدا کمی سردرگمی ایجاد کند.
اما پس از مدتی میتوان به این نتیجه رسید که کاتلین رویکرد بهتری نسبت به C# در ساز و کار سازندهها ارائه میدهد. یکی از ویژگیهای فوقالعاده در کاتلین امکان تعریف Propertyها درست در داخل سازنده است و بعداً میتوان از این Propertyها در کل کلاس نیز استفاده کرد. آخرین تفاوت قابل ذکر بین کاتلین و C#، رویکرد کاتلین به سمت «پوچناپذیری» (Non-Nullability) است. یعنی همچنان میتوان از نوع پوچ در کاتلین استفاده کرد اما باید پوچ بودن را به طور واضح مشخص کرد.
منطق C# در مورد پوچپذیری به این صورت است که تمام انواع در کاتلین همانند نوع مقداری (Value Type) در C# عمل میکنند. یعنی میتوان آنها را پوچپذیر کرد اما ابتدا باید کامپایلر را نسبت به این مسئله مطلع کرد. این ویژگی جالبی است اما برنامه نویسان اول باید به آن عادت کنند. از جمله شباهتهای کاتلین و C# میتوان به امکان استفاده از Lambdas به طور پیشفرض در هر دو زبان اشاره کرد.
در کاتلین حتی میتوان از کلاسهای ناشناس شبیه به جاوا استفاده کرد. در کاتلین به کلاسهای ناشناس «شی» گفته میشود. در کاتلین استفاده از اشیا در زمان ایجاد Listenerها کاربرد دارد. وقتی که Listener تنها یک متد داشته باشد، میتواند به صورت خودکار به یک Lambda تبدیل (Convert) شود. در صورتی که Listener چند متد داشته باشد، باید از یک شی استفاده شود. این شی، واسط مورد نظر را پیادهسازی خواهد کرد.
مشکل کتابخانههای شخص ثالث در Xamarin
در صورتی که نیاز به استفاده از کتابخانهای وجود داشته باشد که توسط گوگل منتشر نشده باشد و یا هر کتابخانه دیگری که تحت پشتیبانی Xamarin نباشد، به احتمال زیاد امکان استفاده از آن کتابخانه در Xamarin وجود نخواهد داشت.
البته میتوان بین C# و کتابخانههای نوشته شده به زبان جاوا پیوند (Binding) ایجاد کرد و از آنها استفاده کرد، اما انجام این کار نیازمند یک گام بیشتر و کارهای اضافی خواهد بود. باید در نظر داشت که این فرایند و گام اضافه باید هر بار در بهروزرسانی یک کتابخانه تکرار شود. اما با استفاده از اندروید استودیو و Gradle فرآیند افزودن یک کتابخانه به پروژه بسیار ساده و در حد کپی و Paste کردن یک خط کد در برنامه است.
توسعه چندپلتفرمی با Xamarin و توسعه انحصاری اندروید در Android Studio
یکی دیگر از نکات کلیدی که باید در مقایسه زامارین و اندروید استودیو مد نظر قرار بگیرد، چندپلتفرمی بودن Xamarin است. در صورتی که قصد توسعه اپلیکیشن هم برای iOS و هم برای اندروید وجود داشته باشد، انتخاب Xamarin قطعاً بهترین انتخاب خواهد بود.
در حالی که اگر هدف تنها توسعه یک اپلیکیشن اندرویدی باشد، به احتمال زیاد محیط توسعه Android Studio ترجیح داده میشود. معمولاً در کاربردهای تجاری و مثلاً توسعه اپلیکیشنهای تجارت الکترونیک مانند یک فروشگاه اینترنتی، برای دستیابی به بازار گستردهتر باید در همه پلتفرمها حضور داشت و نمیتوان صرفاً به تولید اپلیکیشن برای یک پلتفرم خاص، مثل اندروید، بسنده کرد.
همچنین، چالشهای مالی و بحث هزینه مطرح است و یک شرکت یا استارتاپ نوپا ممکن است بودجه و منابع کافی در اختیار نداشته باشد. بنابراین، به جای استخدام دو تیم جداگانه برای توسعه اندروید و iOS میتوان تنها از یک تیم توسعه جهت ساخت محصولی چندپلتفرمی استفاده کرد و ساخت این محصول نیز میتواند با Xamarin انجام شود. البته ابزارهای چندپلتفرمی دیگری نظیر React Native هم وجود دارند که ممکن است بسته به شرایط و نیازمندیها انتخاب بهتری به شمار روند.
عدم ارائه Xamarin برای لینوکس
یکی دیگر از نکاتی که در مقایسه زامارین و اندروید استودیو اهمیت دارد، عدم پشتیبانی رسمی Xamarin از لینوکس است. یعنی امکان نصب و استفاده رسمی از زامارین در سیستم عامل لینوکس وجود ندارد. اما از طرف دیگر نسخه اندروید استودیو برای لینوکس ارائه شده و قابل استفاده است.
این مسئله میتواند به دلیل محدودیتهای نرمافزاری یا سختافزاری حائز اهمیت باشد و در شرایطی که فقط امکان استفاده از سیستم عامل لینوکس وجود دارد، گزینه Xamarin حذف خواهد شد. همچنین، برخی از افراد علاقه شدیدی به استفاده از لینوکس دارند و به هیچ وجه حاضر نیستند از سیستم عامل دیگری استفاده کنند.
طبیعتاً این افراد باید قید استفاده از Xamarin را بزنند و از Android Studio استفاده کنند. البته راههایی برای استفاده از Xamarin در لینوکس اوبونتو وجود دارد اما به سادگی نصب و راهاندازی در ویندوز و مک OS نیست. برای استفاده از Xamarin در لینوکس، به طور خلاصه ابتدا باید جاوا، Mono و اندروید استودیو را نصب کرد و سپس کامپایل Xamarin.Android نیز باید توسط خود برنامه نویس انجام شود و در نهایت باید تنظیمات لازم در IDE مورد نظر برای کار با Xamarin انجام شود.
چالشهای نصب، دانلود و بهروزرسانی
یکی دیگر از شاخصهای مهم در مقایسه زامارین و اندروید استودیو ، چالشهای نصب، دانلود و بهروزرسانی هر یک از این دو فناوری است. دانلود و نصب اندروید استودیو با آیپی ایران امکانپذیر نیست و گوگل اجازه دسترسی به صفحه دانلود Android Studio را به کاربران ایرانی نمیدهد.
همچنین برای نصب ضمایم، SDKها و سایر بستهها و حتی بهروزرسانی اندروید استودیو نیاز به تغییر آیپی وجود دارد که میتواند منجر به کاهش سرعت دانلود و اتلاف وقت شود. اما میتوان به راحتی Visual Studio را به همراه پلتفرم Xamarin بدون نیاز به ویپیان دانلود و نصب کرد. در مورد فضای اشغال شده نیز باید گفت که این مسئله بسته به شرایط متفاوت است، اما به طور کلی باید گفت که نیاز به فضای بیشتری برای نصب و استفاده از Xamarin وجود دارد.
کاستی در Layout Designer زامارین
در طراح چیدمان (Layout Designer) زامارین کاستیهایی وجود دارد. در حالی که، در اندروید استودیو میتوان از طرحبندی مقید (Constrained Layout) بدون هیچ مشکلی استفاده کرد و برخلاف زامارین، Designer به خوبی کار میکند.
ویرایشگر XML بهتر اندروید استودیو
ویرایشگر XML اندروید استودیو در مقایسه با Xamarin بهتر عمل میکند. البته بهتر بودن ویرایشگر XML در اندروید استودیو به این معنا نیست که ویرایشگر XML زامارین غیرقابل استفاده است. برای مثال وقتی که برنامه نویس در اندروید استودیو برچسب ابتدایی (Opening Tag) را تغییر میدهد، برچسب انتهایی نیز به صورت خودکار تغییر میکند.
یا وقتی یک نمای جدید ایجاد میشود، ویرایشگر XML در اندروید استودیو پارامترهای طول و عرض طرحبندی را به صورت خودکار و پیشفرض اضافه میکند. ممکن است این موارد بسیار جزئی و کم اهمیت به نظر برسند، اما به طور کلی در سرعت فرایند توسعه بسیار تاثیرگذار هستند. به این ترتیب موارد مهم پیرامون مقایسه زامارین و اندروید استودیو در این مقاله بیان شدند. حال در بخش پایانی، برخی از دورههای آموزش برنامه نویسی موبایل فرادرس برای علاقهمندان و جهت آموزش بیشتر معرفی شدهاند.
معرفی فیلم های آموزش برنامه نویسی موبایل فرادرس
در این بخش پایانی از مقاله مقایسه زاماراین و اندروید استودیو دورههای آموزش آنلاین توسعه و برنامه نویسی موبایل فرادرس برای علاقهمندان به این حوزه معرفی شدهاند. در این بخش سعی شده است دورههای برنامه نویسی موبایل برای اندروید، iOS و همچنین ابزارهای چندپلتفرمی معرفی شوند.
علاوه بر آن، دورههای آموزش زبانهای برنامه نویسی به کار گرفته شده در توسعه اپلیکیشن موبایل نیز در این بخش معرفی شدهاند.
فیلم آموزش مقدماتی فریمورک React Native برای طراحی نرم افزارهای اندروید و iOS با زبان جاوا اسکریپت
در مقایسه زامارین و اندروید استودیو به چندپلتفرمی بودن زامارین اشاره شد، محبوبیت توسعه اپلیکیشن با استفاده از ابزارهای چندپلتفرمی هر ساله در حال افزایش است. React Native یکی از فریم ورکهایی است که استقبال بینظیری از آن در سالهای اخیر به عمل آمده و توجه بسیاری را به خود جلب کرده است. بنابراین، فرصتهای شغلی بسیاری در حوزه توسعه اپلیکیشنهای موبایل چندپلتفرمی با React وجود دارد.
دوره آموزش مقدماتی فریم ورک React Native برای افرادی که قصد ورود به بازار توسعه موبایل را دارند مناسب است. طول مدت این دوره ۹ ساعت و ۳۱ دقیقه و مدرس آن مهندس فرشید کرمی است. برخی از سرفصلهای این دوره عبارتند از: آشنایی با فریم ورک React Native، نصب و راه اندازی ابزارهای مورد نیاز بر روی ویندوز، نصب و راه اندازی ابزارها در سیستم عامل مک، مروری بر جاوا اسکریپت و سایر موارد.
- برای دیدن فیلم آموزش مقدماتی فریمورک React Native برای طراحی نرم افزارهای اندروید و iOS با زبان جاوا اسکریپت + اینجا کلیک کنید.
فیلم آموزش فریم ورک Google Flutter برای طراحی اپلیکیشن های موبایل
در خلال مقایسه زامارین و اندروید استودیو به این نکته اشاره شد که اندروید استودیو بیشتر یک فناوری مخصوص برای توسعه بومی اندروید به حساب میآید. همچنین بیان شد که با نصب فلاتر در اندروید استودیو میتوان توسعه چندپلتفرمی انجام داد. فریم ورک فلاتر (Flutter) یکی دیگر از ابزارهای محبوب چندپلتفرمی است که میتوان از آن برای برنامه نویسی iOS در ویندوز استفاده کرد.
بدین سبب، دوره آموزش فریم ورک فلاتر به افرادی پیشنهاد میشود که قصد شروع برنامه نویسی موبایل به روش چندپلتفرمی را دارند. طول مدت این دوره، هفت ساعت و ۲۳ دقیقه و مدرس آن، مهندس مجتبی حسین پور است. برخی از سرفصلها و مباحث این دوره شامل آشنایی با فریم ورک Google Flutter، آماده سازی و راه اندازی محیط توسعه، آشنایی با زبان برنامه نویسی Dart، عبارت شرطی if و حلقه ها و توابع در Dart و سایر موارد است.
- برای دیدن فیلم آموزش فریم ورک Google Flutter برای طراحی اپلیکیشن های موبایل + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی اندروید (Android) - مقدماتی
مقایسه زامارین و اندروید استودیو بیشتر در حوزه برنامه نویسی اندروید موضوعیت دارد. بدین سبب، دوره آموزش برنامه نویسی اندروید (Android) - مقدماتی در این بخش معرفی شده است. این دوره برای آن دسته از علاقهمندان و برنامه نویسانی مناسب است که قصد شروع یادگیری برنامه نویسی اندروید را در سطح مبتدی دارند. طول مدت دوره آموزش مقدماتی اندروید ۱۶ ساعت و مدرس آن مهندس محمدمهدی علیزاده است. از جمله سرفصلهای این دوره میتوان به تنظیمات اولیه برنامه Android Studio، آشنایی با چینش عناصر در اندروید و TextView، آشنایی با رنگ ها و ابزار Button، منوها در اندروید، آشنایی با EditText در اندروید، طراحی یک فرم برای ورود اطلاعات و سایر موارد اشاره کرد.
- برای دیدن فیلم آموزش برنامه نویسی اندروید (Android) - مقدماتی + اینجا کلیک کنید.
فیلم آموزش مقدماتی برنامه نویسی سی شارپ (#C)
در حین مقایسه زامارین و اندروید استودیو به این مسئله اشاره شد که زبان برنامه نویسی مورد استفاده در Xamarin زبان C# است. C# زبانی بسیار کاربردی و محبوب در حوزههای مختلف برنامه نویسی به حساب میآید و با یادگیری C# فرصتهای شغلی زیادی برای دانشجویان و سایر علاقهمندان به این حوزه پدید خواهد آمد. بدین سبب، استفاده از دوره آموزش مقدماتی برنامه نویسی سی شارپ (#C) در سایت فرادرس پیشنهاد میشود.
طول مدت این دوره هشت ساعت و ۱۷ دقیقه و مدرس آن مهندس وحید اسدزاده است. سطح آموزشی این دوره در حد مقدماتی و برای افراد تازهکار مناسب است. برخی سرفصلها و رئوس مطالب این دوره شامل مفاهیم اولیه C#، کار با محیط فرمی و معرفی کنترلها در C#، عبارتها، عملگرها و دستورات شرطی در C#، حلقهها، آرایهها، متدها و کلاسهای C#، کار با فایلها و استریمها در C# و بسیاری از موارد دیگر میشود.
- برای دیدن فیلم آموزش مقدماتی برنامه نویسی C# (#C) + اینجا کلیک کنید.
فیلم آموزش کاتلین Kotlin | مقدماتی - گام به گام و به زبان ساده
همانطور که در خلال مقایسه زامارین و اندروید استودیو بیان شد، گوگل سالها به دنبال جایگزینی برای جاوا در اندروید استودیو بود. به این ترتیب در سال ۲۰۱۷ میلادی در کنفرانس نوآوری Google I/O زبان کاتلین از سوی شرکت گوگل به عنوان زبان رسمی توسعه اندروید معرفی شد. زبان برنامه نویسی کاتلین علاوه بر حفظ سازگاری و همکاری با جاوا، ویژگیها و امکانات جدیدی را ارائه کرده که منجر به تسهیل توسعه موبایل در اندروید استودیو شده است.
بنابراین، یادگیری این زبان به افرادی توصیه میشود که قصد استفاده از زبان کاتلین را در اندروید استودیو برای توسعه اپلیکیشنهای همراه دارند. برای یادگیری کاتلین میتوان از دوره آموزش کاتلین Kotlin استفاده کرد که در سطح مقدماتی و به بیانی ساده در سایت فرادرس موجود است. طول مدت این دوره نزدیک به سه ساعت و مدرس آن مهندس علیرضا منعم است. برخی سرفصلهای این دوره شامل معرفی کاتلین (Kotlin) و کامپایلرها، شروع برنامه نویسی با کاتلین، کاراکترهای کنترلی، متغیرها، عبارتها، عملگرها و سایر موارد است.
- برای دیدن فیلم آموزش کاتلین Kotlin | مقدماتی - گام به گام و به زبان ساده + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی جاوا (Java)
در مقایسه زامارین و اندروید استودیو به این مسئله اشاره شد که پیش از معرفی کاتلین، زبان جاوا به عنوان زبان رسمی توسعه اندروید استفاده مورد استفاده قرار میگرفت. جاوا علاوه بر برنامه نویسی اندروید کاربردهای بسیار گستردهتری دارد و از بازار کار مناسبی برخوردار است. دوره آموزش برنامه نویسی جاوا یکی از جامعترین دورههای برنامه نویسی در سایت فرادرس به شمار میرود. طول مدت این دوره ۱۹ ساعت و ۱۹ دقیقه و مدرس آن دکتر مصطفی کلامی هریس است. برخی سرفصلهای این درس شامل آشنایی با جاوا و مباحث مقدماتی، ساختارهای کنترل برنامه و انواع عملگرها در جاوا، ساختارهای کنترل و تکرار در جاوا، مبانی برنامه نویسی گرافیکی در جاوا، تعریف متدها و توابع در کلاسها و تولید اعداد تصادفی و سایر موارد است.
- برای دیدن فیلم آموزش برنامه نویسی جاوا (Java) + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی Swift (سوئیفت) برای برنامه نویسی iOS
در مقایسه زامارین و اندروید استودیو به این نکته اشاره شد که Xamarin یک ابزار چندپلتفرمی است و علاوه بر توسعه اپلیکیشنهای بومی اندروید، میتوان اپلیکیشنهای iOS را نیز با استفاده از Xamarin توسعه داد. زبان برنامه نویسی که به طور اختصاصی برای برنامه نویسی iOS استفاده میشود، زبان Swift است. سوئیفت یک زبان برنامه نویسی متنباز و استفاده از آن آسان است. برای آموزش Xamarin باید آشنایی مقدماتی با سوئیفت وجود داشته باشد.
دوره آموزش برنامه نویسی Swift به افرادی پیشنهاد میشود که قصد شروع آموزش برنامه نویسی iOS یا آموزش Xamarin را دارند. طول مدت این دوره آموزشی پنج ساعت و ۱۴ دقیقه و مدرس آن مهندس محمدمهدی علیزاده است. این دوره از ۱۰ بخش تشکیل شده که عنوانهایی نظیر تنظیمات اولیه نرمافزار و تعریف متغیرها در سوئیفت، انواع متغیرها در سوئیفت – اپراتورهای محاسباتی، آشنایی با متغیرهای رشتهای، آشنایی با تابع، آرایه و بعضی ویژگیهای آن و سایر موارد را شامل میشود.
- برای دیدن فیلم آموزش برنامه نویسی Swift (سوئیفت) برای برنامه نویسی iOS + اینجا کلیک کنید.
جمعبندی
در این مقاله ابتدا به معرفی هر یک از فناریهای Xamarin و Android Studio پرداخته شد. سپس، مقایسه زامارین و اندروید استودیو از جنبههای مختلف مورد بررسی قرار گرفت.
به طور خلاصه، در صورتی که تنها قصد ایجاد اپلیکیشنهای اندروید وجود داشته باشد (نه یک اپلیکیشن چندپلتفرمی) و آشنایی کافی با زبان برنامه نویسی C# نیز وجود داشته باشد، همچنان یادگیری یک زبان دیگر مشکلی ایجاد نخواهد کرد و چون بهترین روش در توسعه اندروید استفاده از Android Studio است، تنها چالش پیش رو یادگیری زبان کاتلین خواهد بود. بنابراین، با توجه به اینکه در توسعه اپلیکیشن اندروید با Xamarin ممکن است برنامهنویسان با برخی کاستیها و مشکلات مواجه شوند، قطعاً پیشنهاد میشود توسعه دهندگان به استفاده از اندروید استودیو روی آورده و آن را نیز امتحان کنند.
من که یک تازه کار هستم فهمیدن این مقاله برایم خیای سخته ای کاش یک ویدئو ئرین زمینه داشتین
سلام خواهشا لطف کنید به سوالم جواب بدید
میخوام بدونم در صورتی که برنامه رو با زامارین پایرت و کرک شده استفاده کنیم اما در استورهای جهانی منتشر کنیم آیا مشکل دار میشه ؟؟ نه فقط زامارین بلکه همه ی نرم افزارا منظورمه مثل یونیتی فوتوشاپ و … لطفا جوابمو بدید ممنون
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
استفاده از فریمورک داتنت و Xamarin کاملاً رایگان و این فناوری به صورت متنباز ارائه شده است. بنابراین شما برای توسعه اپلیکیشن با Xamarin میتوانید از نسخه Community ویژوال استودیو استفاده کنید که کاملاً رایگان است و نیازی به کرک کردن آن وجود ندارد.
برای شما آرزوی سلامتی و موفقیت داریم.
سلام. یک هفته میشه که از xamarin کوچ کردم سمت android studio توی این یک هفته از صبح تا شب مشغول build و run کردن یه برنامه ی تست هستم ارور پشت سر ارور با قند شکن میری یه ارور رو برطرف میکنی سه تا ارور جدید پیدا میشه کلی از سایت های یوتیوب و آپارات و stackoverflow و … رو زیر و رو میکنی به سختی مشکلت حل میشه شش صد تا ارور دیگه رشد میکنه ولی هیچ کدوم این مشکلات توی xamarin نیست به شخصه خیلی از android studio متنفر شدم البته اگه تحریم فناوری نبودیم شاید اوضاع کمی فرق میکرد. دوستان xamarin کار اگه باهاش مشکل خاصی ندارین به هیچ عنوان توصیه نمی کنم سمت اندروید استادیو برین اصلا فکرتون هم مشغولش نکنین همون منابع اموزشی کم زامارین رو تحمل کنید ان شاالله به مرور بهتر میشه. یا علی الان ساعت نزدیک 4 صبح هست و باز هم مشکل در ران کردن اندروید استادیو دارم.
ببخشید قندشکن تون چیه آخه همه جا رو زیر رو کردم که قند شکن اوکی شه و وصل شه
میخواستم برم فلاتر رفتم ولی متاسفانه sdk دانلود نمیشد دانلود شد یه بدبختی هایی کشیدیم تا بخونه اش بعد ارور میداد
رفنیم کاتلبن یاد بگیریم android studio رو نصب کردیم اینجا هم sdk دانلود نمیشد sdk دانلود شد gradle ارور میداد
گفتم بیام زامارین دیگه😂