درباره برنامه نویسی سیستم عامل ها
سلام
همه ما میدونیم که اندروید سهم بزرگی در بازار سیستم عامل های موبایل دارد. (خیلی عالیه)
اما یک برنامه نویس باید برنامه خود را برای اندروید و ios و ویندوز فون درست کند تا از پتانسیل تمام کاربران تلفن های هوشمند استفاده کند.
اندروید که با زبان های زیادی میشه کار کرد
ios هم که فقط با زبان objective-C (مرگ بر apple)
سوال من اینه که آیا برنامه های ویندوز فون را هم میشه با جاوا نوشت یا فقط با #C نوشته میشه؟
اینجا باید به چند نکته اشاره کنم:
توسعه بازی
بازی معمولاً با استفاده از موتورهای بازی نوشته میشه که در این شرایط موتور خروجی های مختلفی از نسخه بازی ارائه میده. مثلاً خروجی XBox, Android, iOS و ... البته شاید نیاز باشه که برای هر کدام یک License خریداری کنید. اگر هم خودتون بازی رو از صفر می نویسید پس می تونید با NDK + OpenGL بنویسید. در این شرایط Port کردن روی هر سیستم عامل ( یا Platform ) کار دشواری نیست.
توسعه نرم افزار
یک راهش استفاده از ابزارهای Cross Platform هست که معمولاً با اسکریپت HTML + JavaScript + CSS نوشته میشه. در این شرایط همه چیز Web Application هست و نه Native Application . پس در همه جا یک شکل اجرا میشه. فقط کافیه به نوعی در هر Platform اتصال به توابع Native جهت انجام کارهای Native ( مثل ارتباط به Sensor ها ) انجام بشه. من با این روش به شدت مخالف هستم و علت این مخالفت رو در لینک زیر نوشتم.
روش درست و اصولی توسعه Native هست. یعنی برای اندروید یکبار اندروید نوشته بشه، برای iOS یکبار جدا نوشته بشه و ... . چنانچه الگوریتم، وب سرویس، Navigation و ... مشخص باشه ( که با نوشتن روی یک Platform مشخص میشه ) ، دوباره نویسی کد و طراحی مجدد Layout در یک Platform دیگه سریعتر و ساده تر انجام می گیره.
اما Android هم مثل iOS با یک زبان نوشته میشه و آنهم جاوا است ( همانطور که iOS فقط با Objective C نوشته میشه ). توجه داشته باشید که توسعه با ++C یعنی NDK اصلاً روش معقول و خوبی نیست و بنابراین نباید جزء زبانهای مناسب برای توسعه نرم افزار اندروید حسابش کرد. استفاده از NDK جا و زمان خاصی داره. همینطور توسعه با #C یکی از مسخره ترین کارهای موجود. چرا ( پاسخ در این لینک )
در نتیجه روش معقول ، توسعه Native نرم افزار برای هر Platform ـی با زبان استاندارد خودش است. در این بین من به هیچ عنوان توسعه در iOS و Windows Mobile را توصیه نمی کنم ، چون نسبت به اندروید مخاطبان بسیار کمتری دارند. دقت کنید کسی که دنبال کار تخصصی است، از اسباب بازی ( iOS ) به عنوان یک وسیله کار یا تجارت استفاده نمی کند. Windows Mobile هم که هنوز غرق در باگ های سرسام آور خودش است و نتوانسته خود را نجات دهد. البته نا گفته نماند، شاید هدف شما توسعه نرم افزارهایی است که بیشتر جنبه اسباب بازی دارند، مثل انواع بازهای iOS ( که در اینصورت سمت اندروید توسعه ندهید ). همینطور شاید هدف شما توسعه نرم افزارهایی برای عام مردم است مثل Tango یا Viber که در اینصورت باید هزینه کنید و برای هر Platform جدا توسعه دهید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .