PDA

View Full Version : اندروید با C# یا جاوا



Mask
شنبه 15 آذر 1393, 18:33 عصر
با سلام.
خیلی ممنون میشم از دوستان، اگه معایب و مزایای تولید نرم افزارهای اندروید رو با استفاده از C# و جاوا رو توضیح بدهند.
واقعا بر سر قضیه برنامه های اندروید با جاوا در محیط اکلیپس و همچنین پروژه Mono در C# موندم.

ممنون.

TeacherMath
شنبه 15 آذر 1393, 21:20 عصر
اگه سی شارپ بلدی جاوا هم بلدی. مفاهیم کد نویسیشون یکسانه. تازه خود گوگل هم با زبان جاوا ازش پشتیبانی می کنه.

c0mmander
یک شنبه 16 آذر 1393, 10:19 صبح
یعنی اشتباه ترین کاره که بخوای برنامه نویسی اندروید رو با C# و monoDroid انجام بدی..

1- یک سری باگ که هر از گاهی وسط کار سر باز میکنن..و نمگذارند که برنامه نویس مسیر اصولی خودش رو ادامه بده.
2- حجم بالای برنامه ها
3- عدم وجود sample ها برای کار های حرفه ای
4- اخرین نسخه کرک شده 4.12 هست که اندروید 4.4 رو پشتیبانی نمیکنه.(البته اخرین نسخه زامارین خیلی از مشکلات رو حل کرده و نسخه 4.4 و حتی نسخه 5 رو هم دارن بهش اضافه میکنن اما چون کرک نداره بدون استفاده هست.)
5- عدم همکاری بصورت گروهی .. یعنی کسی نمیتونه با شما همکاری داشته باشه مگر اینکه اون هم مونو کار باشه که خیلی کم هستند.
6- عدم منبع درست حسابی فقط یک کتاب ناقص و چندتا فیلم
7- مشکل شدید در پیاده سازی پرداخت دورن برنامه در مارکت های مختلف (به جز گوگل پلی چون نمونش هست). یعنی نمیشه برای مارکت های چه ایرانی و چه خارجی این قابلیت رو داخل سی شارپ پیاده سازی کرد.

مثل بچه خوب همون اول برو سر وقت جاوا خودت رو هم عذاب نده.. من C# رو برای برنامه نویسی انتخاب کردم و دیگه هم توانایی تغییرش رو ندارم اما شما این اشتباه رو نکن همون اول برو سمت جاوا..

Mask
یک شنبه 16 آذر 1393, 15:45 عصر
خیلی خیلی ممنونم از دو دوست عزیزم به خصوص c0mmander عزیز.چند روزه که شدیدا سر در گم شدم. با یکی از دوستان Mono کار که امروز داشتم صحبت میکردم و نظرشون رو میپرسیدم، ایشون میگفت که هیچ برنامه یا کاری وجود نداره که شما بخای با C#‎‎‎ انجام بدی و نتونی و بگی ای کاش رفته بودم سمت جاوا.
ایشون میگفتند حسن یادگیری C#‎‎‎ نصبت به جاوا اینه که میتونی همونجا IOS بگیری. یا کلا میتونی دسکتاپ بیرون بدی . Cross Platform بودن Mono در C#‎‎‎ واقعا کار امد هست.
ایشون میگفت وقتی سیتکس رو یاد گرفتی میتونی سریع بری سراغ ASP و برنامه سمت وبت رو تولید کنی و همچنین Windows Phone و... حتی ایشون میگفتند پروژه Mono قراره در نسخه بعدی ویژوال استادیو مادر زادی بهش اضافه بشه و حتی ممکنه خود مایکروسافت ادامه کار رو بخودیه خودش دست بگیره.
از طرفی هم دوستان جاوا کار نظرشون اینه که ممکنه با C#‎‎‎ برنامه اندروید تولید بشه، اما به هیچ منوال به قدرت و کارایی و راحتی برنامه نویسی با جاوا نیست. میگفتند دستت بستست. فقط امکاناتی که Mono در اختیارت میزاره رو باید استفاده کنی، خودت زیاد جای مانور نداری.
با همه این توضیحات باز هم منتظر نظرات سازنده دوستان هستم.
ممنون.

rtvrtv
یک شنبه 16 آذر 1393, 16:52 عصر
سلام من خودم ازسیشارپ استفاده میکنم و خیلی هم از کار کردن باهاش لذت میبرم ولی بحث اینجاست که شما میخواهید با سیشارپ مایکروسافت برای اندرویدی که متولی اون گوگل هست برنامه بنویسید اگه گوگل یا میکروسافت روزی بخوان دیگه فعالیتشون ادامه ندن چی؟ که ضرر میکنه مطمئنن برنامه نویسان!
زبان جاوا از سی گرفته شده از این حیث شما نیازی نیست زبان جدید یادبگیری سینتاکس همونه کلاسها شبیه به هم هستن و خیلی نکات دیگه
بنظرمن هر نرم افزار بهر کاری ساختند سیشارپ بسیار قوی هست تو طراحی وب -وب سرویس - برنامه نویسی سیستم و هزاران امکان دیگه ولی تو این مورد باید بریم سراغ نرم افزار خود گوگل چون مایکروسافت قابل اطمینان نیست ! هرجایی منافعش در خطر باشه سرویس یا خدماتش تعطیل میکنه بارها شاهد این قضیه بودیم ...... از ie که هزاران باگ داره و ...
اکلیپس هم کلی باگ داره همش بهم میریزه ولی بازهم گزینه بهتر همین هست گوگل خیلی بهتر از مایکروسافت نرم افزارها و روند رو به رشد داره مطمئنن باگهای نرم افزارش رو رفع میکنه
گوگل حتی به جای موتور ماشین مجازی اومد دالویک نوشت (و این نشون میده هیچوقت برنامه نویسان و کاربرانش فراموش نمیکنه)
اوایل که تازه اکلیپس کار میکردم میخواستم برم سمت سیشارپ ولی خوب که فکر کردم منصرف شدم

Nevercom
یک شنبه 16 آذر 1393, 17:03 عصر
تنها پاسخ من به شما این هست: برنامه نویس با تجربه، برای هرکار، ابزار مناسب باهاش رو انتخاب می کنه.

هیچ زبان برنامه نویسی ای وجود نداره که برای همه ی شرایط مناسب باشه و Rule Them All !!!

شاید یک جا C رو انتخاب کردی، یک جا python !
شاید یک جا PHP رو انتخاب کردی، جای دیگه node.js

و یادت باشه هرچیزی بهایی داره.

دوستتون درست گفته، Xamarin بهتون این قدرت رو میده که برای iOS هم برنامه رو خروجی بگیرید، بدون نیاز به اینکه Code Base برنامه رو کامل عوض کنید.
و حتماً می دونید که وعده ای که جاوا همون روز اول داده و فلسفه ش بوده این هست: Write Once, Run Everywhere
پس #C در حوزه ی دسکتاپ و حتی وب مزیت بزرگی محسوب نمیشه، ولی خب Windows Phone گره خورده با #C و Visual Studio.

درنهایت توصیه ی من به شما اینه، اگر هدفت درحال حاضر اندروید هست، برو سمت جاوا، سعی کن برنامه نویس با تجربه ای بشی، فردا اگر خواستی برای iOS برنامه بنویسی، در عرض کمتر از یکماه می تونی با سینتکس زبان جدید و قوانینش آشنا بشی.
اگه تو یه شرکت کوچیک کار می کنی که بودجه و پرسنل محدودی داره، و واسش واجبه که همزمان برنامه ی Android و iOS داشته باشه، برو سمت Xamarin، اگر هم بودجه و پرسنل داری که خب بنظر من Native کار کردن بهتر از همه چیزه.

Mask
یک شنبه 16 آذر 1393, 18:21 عصر
اگه تو یه شرکت کوچیک کار می کنی که بودجه و پرسنل محدودی داره، و واسش واجبه که همزمان برنامه ی Android و iOS داشته باشه، برو سمت Xamarin، اگر هم بودجه و پرسنل داری که خب بنظر من Native کار کردن بهتر از همه چیزه.
ممنون از پاسختون.
ایا منابع برای یادگیری
Xamarin بیشتر هست یا جاوا.؟
ایا تریس کردن برنامه های تولید شده با جاوا راحتتره یا Mono؟
به قول گفتی ، تو پشتیبانی گوگل مرد تره :لبخندساده:
یا مایکروسافت؟
من با Xamarin کار نکردم، ایا فرمها ،کدنویسی و پیاده سازی دقیقا شبیه به C# هست؟ یعنی ایا اگه کسی Xamarin رو کار کنه یه C# کار قوی محسوب میشه یا 2 تا فیلد جدا هستند؟
و سوال اخر :با دید به اینده و تولید برنامه های خیلی بزرگ و قوی، ممکنه Xamarin از جاوا کم بیاره؟مثلا مجبور به انجام کاری باشیم که ببینیم واقعا Mono در توانش نیست؟
ممنون از جوابتون.

Nevercom
دوشنبه 17 آذر 1393, 17:06 عصر
بگذارید اینطور توضیح بدم، در سیستم عامل اندروید اپلیکیشن ها باید به زبان جاوا نوشته بشن، لایه ای که برنامه ها رو اجرا می کنه یک ماشین مجازی جاوا هست.

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

برای اندروید استفاده از زبان جاوا و SDK رسمی بهترین راه هست، هیچ هزینه ای نداره و بیشترین میزان ساپورت و کتابخانه ها رو داره

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

بزارید در مورد اندروید توضیح بدم، شما با زبان جاوا برنامه می نویسید، اما عمده ی فعالیت شده در محدوده ی Android SDK هست، مجموعه کتابخانه هایی به شما اجازه ی استفاده از قابلیت های سیستم عامل رو میده، کسی که فقط به واسطه ی اندروید با جاوا کار می کنه، هنوز قادر نیست یک اپلیکیشن دسکتاپ با جاوا بنویسه، یا یک اپلیکیشن وب. گرچه پتانسیل لازم رو داره و می تونه با کمی تحقیق وارد حوزه ی دسکتاپ و وب هم بشه.

در مورد Xamarin هم به همین شکل هست، شما فقط از سینتکس سی شارپ استفاده می کنید، اما Structure برنامه ی شما وابسته به سیستم عامل و SDK موجود هست.
اصولاً به نظر من در برنامه نویسی سینتکس زبان کم اهمیت ترین چیز هست. در عرض 5 دقیقه می تونید با آشنایی با سی شارپ با زبان جاوا هم آشنا بشید.
مهم آشنایی با اکو سیستم هست.

و چیز خوبی که من در Xamarin دیدم این هست که نام متدها و ساختار کلی خیلی شبیه به SDK اندروید تهیه شده که خب خیلی کمک می کنه که بتونید از آموزش های موجود استفاده کنید و یا به جاوا کوچ کنید.

Mask
دوشنبه 17 آذر 1393, 18:00 عصر
ممنون از توضیحات خوبتون.
به جد مصمم شدم به خاطر کتابخونه و منابع بیشتر جاوا، برم سمتش.
ممنون.

پیام حیاتی
دوشنبه 24 آذر 1393, 09:52 صبح
سلام
با یادگیری C#‎‎‎‎ علاوه بر طراحی و پیاده سازی برنامه های کاربردی تحت ویندوز می تونید برنامه های وب هم تحت تکنولوژی asp.net با زبان C#‎‎‎‎ را به سرعت فرا بگیرید و در اونجا هم کسب درآمد داشته باشید ، در حال حاضر امکان نوشتن برنامه های اندروید هم به واسطه زبان C#‎‎ به وجود آمده است.
منکر قدرت جاوا نیستم اما 6 ماه از زمانم رو برای این زبان از دست دادم که به خاطر نبود منابع آموزشی مناسب ترجمه شده از جمله کتاب آقای پاشایی ، جاوا در 21 روز و همچنین دوره های آموزشی در استان خوزستان حتی در حال حاضر و نبود بازار کار مناسب از ادامه کار منصرف شدم.زمان رو از دست ندید!!.