PDA

View Full Version : انتخاب بین C#‎ و Java برای برنامه نویسی موبایل



jaykob
سه شنبه 02 دی 1393, 20:10 عصر
سلام دوستان

خیلی از تاپیک هارو خوندم اما نتیجه کامل نگرفتم .

من می خوام برنامه نویسی موبایل رو شروع کنم اندوید و ios ، حالا خیلی بررسی کردم ۲ انتخاب رو موندم چیکار کنم یکی C#‎‎‎‎‎‎‎ رو انتخاب کنم و با Mono کار کنم و یا Java رو انتخاب کنم .

با توجه به اینکه نزدیک ۵ ساله که C#‎‎‎‎‎‎‎ رو کار می کنم و تقریبا مسلط هستم همینطور ASP.NET MVC رو چه انتخابی برای من مناسبه برام ۲ ملاک زیر هم مهمه :

۱ - برنامه تجاری می خوام بنویسم
۲ - می خوام کمترین دردسر رو از تبدیل اندوید به IOS داشته باشم


خیلی ممنون می شم خیلی شفاف و کامل و با تجربه جواب من رو بدید . راهنمایی های شما روی آینده کاری من تاثیر می زاره ...

با تشکر

masudafsar
سه شنبه 02 دی 1393, 22:51 عصر
من هم مثل شما بین سه متد برنامه نویسی برای اندروید گیر کردم.

Java
C#
PhoneGap

- اگر قصد داری تخصصی برای اندروید برنامه بنویسی حتما از java استفاده کن. قدرتمند ترین و بهینه ترین ابزار برای توسعه اندروید همینه.
- اگر طراح وبی و دوست داری که ظاهر (UI) برنامه رو بسیار منعطف و زیبا طراحی کنی از PhonGap استفاده کن. مشکلی که این ابزار داره اینه که برای برنامه های کوچیک خوبه و محدودیت های زیادی هم داره.
- اگر هم برنامه نویس سی شارپ هستی و نمی خوای وقت زیادی برای یاد گیری و تغییر پلتفرم بزاری زامارین (Xamarin) عالیه. ولی اصلا بهینه نیست و حجم برنامه ات خیلی زیاد می شه. فکر کنم برنامه HelloWorld ـش حدود 6 مگ باشه.

در آخر این موضوع رو باید متذکر بشم که تمام ابزار های برنامه نویسی اندروید بر پایه زبان جاوا ساخته شده اند و هنگام کامپایل برنامه از هر زبانی(Basic, Phonegap, Unity و #C), ابتدا پروژه به صورت پروژه جاوا تفسیر شده, سپس کامپایل می شود.

امیدوارم کامل و واضح بوده باشه :چشمک:

lastcoder
سه شنبه 02 دی 1393, 22:53 عصر
سلام پاسخم یکم طولانیه پس از همین جا ازتون معذرت خواهی می کنم. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- خوب بزار با یک مثال برای شما توضیح بدم. فرض کنید شما می خواید از ایران می خواید برید ترکیه. میاید بررسی می کنید می بینید که مثلا 2 مسیر برای رفتن به ترکیه وجود داره. یکی سخت و کوهستانی و همچنین طولانی تر و فرعی اما خیلی خیلی زیباتر(البته بستگی به علایق فرد هم داره) یکی همش دشت و صحرا اما نزدیکتر و اصلی ببنید زبان استاندارد برای برنامه نویسی برای سیستم عامل اندروید جاوا هستش میشه با #C هم نوشت اما این همون راه فرعیست. همونجوریکه میشه از راه کوهستانی هم به ترکیه رفت اما سخت و طاقت فرساست و فقط به خاطر اینکه قشنگه باید کلی دردسر بکشیم تا برسیم. با توجه به اینکه پروژه MONO توسط شرکتی به غیر از مایکروسافت توسعه داده میشه (Xamarin) قطعا این فریمورک دارای ایرادات و باگهای زیادیه. چون با ماهیت مایکروسافت که دشمنی با نرم افزار های open source هستش(حداقل تا قبل از اینکه NET. اوپن سورس شه)در تضاده کامله. حالا ممکنه بگید که مایکروسافت پلتفرم Net. رو Open Source کرده، درست اما همچنان زبان برنامه نویسی استاندارد برای سیستم عامل اندروید جاوا هست و بس. باید این نکته رو هم در نظر داشت که هسته سیستم عامل اندروید با C و لایه کاربردش یا همون UI اون با جاوا نوشته شده و هیچ اثری از مایکروسافت و محصولاتش در این پلتفرم به صورت Native وجود نداره. در عین حال کار کردن با جاوا خیلی راحتتر و بی دردسر تره. همچنین اگر بخواید در شرکتی هم به عنوان برنامه نویس اندروید کار کنید حتما باید آشنا به جاوا باشید و ندیدم شرکتی رو که بخواید اپلیکیشن اندروید با مونو بنویسه. اما باز خودتون مختارید . اگر پیشنهاد منو می خواید برای شروع برید آخرین ورژن عرضه شده ADT برای اکلیپس رو دانلود کنید (فعلا از اندروید استودیو استفاده نکنید چون سردرگم میشید) بعد از کار با جاوا تصمیم بگیرید با کدوم بیشتر حال می کنید و همونو انتخاب کنید. من به شخصه قبل از اینکه با جاوا کار کنم تنها زبان برنامه نویسی که کار می کردم #C بود اما بعد از کار با جاوا دیگه نتونستم با #C کار کنم. و بهش عادت کردم. در مورد برنامه نویسی برای IOS هم باید بگم که تا اونجایی که میدونم فقط بوسیله زبان برنامه نویسی مختص اپل یعنی زبان سوئیفت میشه برای این پلتفرم کدنویسی کرد و همچنین الزاما باید سیستم عاملی که باهاش کار می کنید MAC باشه یعنی سیستم شما MAC نباشه نمیتونید یک IOS Developer بشید.بهمین راحتی اگر نظر منو می خواید در کنار اندروید گوش چشمی به ویندوز فون هم داشته باشید چونکه غولی مثل مایکروسافت پشتشه و به عقیده بسیاری کارشناسان تا 4 یا 5 سال آینده یکی از 2 سیستم عامل برتر موبایل خواهد شد البته منابعش به فارسی خیلی کم و بی کیفیتن اما نابرده رنج گنج میسر نمی شود.

c0mmander
چهارشنبه 03 دی 1393, 01:16 صبح
من با مونو کار میکنم ..

پیشنهاد میکنم سمت مونو نیایی چون هر بار که نسخه جدید میاد یک جایی باگ داره ..
یعنی سورس کد نوشته شده شما درسته اما خروجی مونو دارای باگه..
هر دفعه یک جایی دچار مشکل میشه :
یک دفعه با اندروید 2.2
یک دفعه با اندروید 5
یک دفعه تایمیر system.timer دارای باگ میشه
یک دفعه ارتباط با Sqlite باگ میده..

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

ناگفته نماند که خیلی نسبت به قبل بهتر شده .. در کل هنوز جای پیشرفت داره. بهترین گزینه فعلا جاواست.
البته اگه بخواهید با unity 3d کار کنید بازم باید سی شارپ رو بلد باشید (چند زبان دیگه هم میشه نوشت اما سی شارپ پر منبع ترین زبانش هست.) و برای هوش مصنوعی هم باید با جاوا اسکریپت نویسید.(که با جاوا فرق میکنه)

اما برای ios گه بخواهید با مونو کار کنید که وابیلاست :) نصب مک روی ویندوز با wmware سرعت خیلی افضاحی رو بهمراه داره یعنی عملا نمیشه ازش استفاده کرد و حتما باید یک دستگاه سخت افزاری مک برای برنامه نویسی داشته باشید و یا از یک سیستم ساز گار با هکینتاش استفاده کنید.
اما اپل زبان جدید به اسم swift رو ارائه داده که ساده شده و سریع تر و قدرت مند تر شده ابجکت سی هست. می تونید از اون مستقما در Xcode 6 استفاده کنید.

masudafsar
چهارشنبه 03 دی 1393, 09:57 صبح
دوستان در مورد کار با زامارین برای iOS بگم که خیلی سخت نیست. شما می تونید نسخه Mac رو نصب کنید ( اگه مک دارید :لبخند:) و برنامه خودش خروجی رو درست میکنه.

باز هم میگم همه این ابزار ها مثل زامارین و فونگپ ابتدا پروژه رو به پروژه Native اون سیستم عامل تبدیل و سپس کامپایل می کنن. یعنی برای

اندروید به پروژه جاوا اکلیپس
iOS به پروژه xCode
winPhone به پروژه ویژوال استودیو


البته نا گفته نمونه برای کار تجاری شما حتما باید برنامه زامارین رو بخری و تا جایی که من یادمه قیمت بالایی هم داره. چیزی حدود 1000 دلار.

slr560
چهارشنبه 03 دی 1393, 10:10 صبح
عزیز از این نوع سوالات تکراری ۱۰۰ بار پرسیده شده توی انجمن. شما فقط باید سرچ کنید
حتما هم به جواب میرسید.
زبان رسمی اندروید جاوا هست. با هر زبانی هم بنویسی آخر توی dalvik تبدیل به جاوا میشه.
تموم شد رفت.

c0mmander
چهارشنبه 03 دی 1393, 11:49 صبح
البته نا گفته نمونه برای کار تجاری شما حتما باید برنامه زامارین رو بخری و تا جایی که من یادمه قیمت بالایی هم داره. چیزی حدود 1000 دلار.

اینجا ایرانه ها, هر شرکتی یا گروه برنامه نویسی داخل ایران از ویندوز کرک شده استفاده میکنه حالا بره 1000 دلار پول استفاده قانونی از زاغارتین رو بده .

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

چندتا طرح داره که گرون ترینش 100 خورده ای دلاره که قابلیت پشتیبانی و استفاده از آپدیت ها رو به مدت یک سال میده.تمام طرح هاش یک ساله هست.

اما محصولات کراس پلتفرم دیگه هم داره.

در کل نمیشه گفت خیلی ضعیف کار کرده و نه میشه گفت فوق الاده بوده.. کد نویسی کردن داخل ویژوال استدیو یک جورایی حس خوبی به ادم میده. در کل در تمام جهان 800000 نفر مشتری جمع کرده(راست دروغش پای زامارین!) خلاصه اینکه اونجوری که همه اولش فکر میکنن بعد از نوشتن یک بار کد بدون تغییر برای هر چیزی خروجی بگرین نیست اما به اون بدی هم نیست که نشه باهش کار کرد.

jaykob
چهارشنبه 03 دی 1393, 14:02 عصر
سلام

خیلی خیلی ممنون از توضیح دوستان تقریبا تصمیم روی روی Java می زارم

امکان داره کسی در رابطه با Android Studio توضیح کاملی بده . مزایا و معایبش و ... و آموزش فارسی یا دوره خوب هم باشه لطف کنید و لینک بدید


خیلی ممنون

dasssnj
چهارشنبه 03 دی 1393, 14:22 عصر
سلام

خیلی خیلی ممنون از توضیح دوستان تقریبا تصمیم روی روی Java می زارم

امکان داره کسی در رابطه با Android Studio توضیح کاملی بده . مزایا و معایبش و ... و آموزش فارسی یا دوره خوب هم باشه لطف کنید و لینک بدید


خیلی ممنون


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

(به نظرم ساختار پروژه هایی که در استودیو ساخته میشن خیلی بده . اصلا شبیه یه IDE خوب نیست . می تونست ساختار و پوشه بندی بهتری داشته باشه)

lastcoder
چهارشنبه 03 دی 1393, 15:30 عصر
سلام

خیلی خیلی ممنون از توضیح دوستان تقریبا تصمیم روی روی Java می زارم

امکان داره کسی در رابطه با Android Studio توضیح کاملی بده . مزایا و معایبش و ... و آموزش فارسی یا دوره خوب هم باشه لطف کنید و لینک بدید


خیلی ممنون

مشکل که به نظر بنده سرتا پا مشکله.
از باگهای اساسی و زیاد تا LogCat مسخره و غیر کاربردی با توجه به اینکه برای تست برنامه استفاده از LogCat خیلی حیاتیه و سیستم LogCat اندروید استودیو خیلی به نظر من مضحکه و همچنین اینکه منابع سیستم رو خیلی مصرف میکنه و عملا سیستمتون میخوابه.!
مزیتش هم اینه که توسط گوگل پشتیبانی میشه و همچنین اینکه از سیستم Gradle استفاده میکنه برای ایمپورت کردن پروژه های دیگه که از اینترنت دانلود می کنید مثل Git hub تقریبا همشون از این سیستم استفاده می کنند.
اما باز به نظر حالا حالاها اکلیپس گزینه بهتریه نسبت به اندروید استودیو