بازار برنامهنویسی موبایل در آمریکا و اروپا به شدت داغ است. این بازار در ایران هم به شدت رو رشد است. کافی است نگاهی به آگهیهای کارویس بیندازید
+ + + +. این روزها به هر برنامهنویسی واجب است که اطلاعاتی راجع به برنامهنویسی موبایل داشته و یکی از platformهای موجود را برای شروع انتخاب کند. پلتفورمهای موجود عبارتند از آندروید (گوگل - جاوا)، iOS (اپل - Objective C)، ویندوز فون (مایکروسافت - داتنت)، بادا (سامسونگ - C++)، جاوا (cross-platform - جاوا) و چند سیستم عامل متفرقه دیگر.
دیروز در ارتباط با همین موضوع بحث داغی داشتیم با چند تا از دوستان. هدف این بود که با یک سری از پیش فرضها یک platform مناسب برای برنامهنویسی موبایل انتخاب شود. پیشفرضهای مورد نظر عبارتند از:
* ما برنامهنویس داتنت هستیم.
* ما چند برنامهنویس هستیم که عمری در کار توسعه برنامههای داده محور مثل برنامههای دیتابیسی بودهایم و قاعدتاً مهارتها و ایدههایمان هم در همین حول و حوش چرخ خواهند زد.
* ما ایرانی هستیم و محدودیتهای زیادی در رابطه با موضوع تحریم داریم.
* هدف اولیه بازار داخل است ولی بازار خارج و storeهای مختلف applicationها به هیچ وجه منتفی نیستند.
* مهم است که برنامههای ما در بیشتر گوشیها اجرا شود. باید سعی کنیم محدودیت platform و محدودیت سختافزار را به نوعی دور بزنیم.
خلاصهای از بحث:
iOS و Windows Phone محدودیتهای زیادی برای ما ایرانیها دارند. اما جاوا و اندروید کمتر. جواب قطعی به cross platform بودن جاوا است. اما مشکل کندی آن و عدم دسترسی مستقیم به سختافزار گوشی هست. نرمافزارهای معتبر به ازای هر platform یک بار بازنویسی میشوند. مثلاً یک بار برای اندروید، یک بار برای iOS و یک بار برای Windows Phone. بادا کمترین ساپورت، کوچکترین جامعه developer و کمترین طرفدار را در ایران دارد اما گوشیهای به نسبت ارزان قیمتتری دارد. گوشیهای Windows Phone و iOS گوشیهای گرانقیمتی هستند. گوشیهای اندروید بیشترین آمار را در ایران دارد. البته تقریباً همه گوشیهای موجود جاوا را پشتیبانی میکنند. قیمت گوشیهای اندروید در حال حاضر (اواخر آبان ۱۳۹۰) از حدود ۲۰۰ هزار تومان شروع میشود. بازار کلی دنیا هم درباره انتخاب platform خیلی شک دارد. رقابت خیلی داغ است و ممکن است در چند سال آینده شاهد تغییرات زیادی باشیم.
نتیجه گیری شخصی:
من با توجه به شرایط شخصی خودم به عنوان یک برنامهنویس داتنت که هیچ تجربهای روی موبایل ندارد و کسی که میخواهد برنامههایش روی بیشترین طیف گوشیها اجرا شود تصمیم گرفتهام از یک راه حل ترکیبی استفاده کنم. به این ترتیب که اول از جاوا که روی همه گوشیها کار میکند شروع میکنم سپس هر جا که دچار محدودیت سرعت یا دیگر محدودیتها شدم از اندروید استفاده کنم. این طوری حین کار با جاوا با مسائل خاص برنامهنویسی موبایل آشنا شدهام و در صورت تغییر مسیر ضرر کمتری میکنم چون هنوز به platform خاصی وابسته نشدهام. ضمن این که غیر از داتنت فقط مجبور به یادگیری Java میشوم نه چیز دیگر.