امروز نوبت به انتشار بخش آخر این مطلب رسید. در این بخش با دو برنامه نویس ایرانی iOS مصاحبه خواهیم کرد و مسائل مهم را چه در سیاست های اپل و چه در برنامه نویسی روی iOS پیگیری خواهیم نمود. همچنین اشاره ای خواهیم داشت به زبان های دیگری که برای برنامه نویسی آی او اس استفاده می شوند. توصیه می کنیم که این بخش را به هیچ عنوان از دست ندهید. اما چیزی که احتمالا تا حالا در این گونه مطالب به آن عادت کرده اید، کلیک کردن روی ادامه مطلب است!
-دیگر زبان های برنامه نویسی:
-Java
اپل به خودی خودش هیچ ماشین اجرایی خاصی برای فعال کردن جاوا روی iPhone ارائه نداده است. اما Sun Microsystems که توسعه دهنده اصلی جاوا است. اقدام به معرفی یک ماشین مجازی جاوا (JVM: Java Virtual Machine) کرده است تا بتوان به کمک آن اپلیکیشن های جاوا را روی iOS به اجرا در آورد. پس می توانید از این زبان هم در توسعه برنامه ها استفاده کنید.
-.NET یا CLI
آی او اس به شما اجازه نصب فریم ورک دات نت را نمی دهد اما استفاده از فریم ورک MonoTouch و نصب آن روی iOS شما هم خواهید توانست که این گونه زبان ها استفاده نمایید.
-Flash:
آی او اس از فلش روی مرورگر وب iOS پشتیبانی نمی نماید و از این رو فیلم های فلش روی صفحات وب در Safari قابل مشاهده نخواهند بود. اگر چه Adobe دو نسخه از فلش را با نام های فلش و فلش لایت ارائه داده است. اما اپل باز هم هیچکدام از آن ها را برای آیفون مناسب ندانسته. اپل مدعی شده که اجرای فلش برای آیفون بسیار سنگین است و این درحالی است که فلش لایت هم نمی تواند تجربه ی جالبی برای کاربران ارائه کند. پس پشتیبانی از این تکنولوژی به صرفه نیست.
با این حال در این مورد هم یک ماشین مجازی با نام Just in time Compiler از سوی Adobe معرفی شد. اما SDK آی او اس مانع از استفاده از زبان هایی می شود که با استفاده از ماشین های مجازی کامپایل خواهند شد. پس کاری که Adobe در نسخه CS5 محصولاتش انجام داد، این بود که یک کامپایلر استاتیک را برای این سیستم عامل طراحی کرد که به توسعه دهندگان امکان می داد بتوانند اپلیکیشن های فلش خود را هم در iPhone به اجرا در می آوردند. در این مورد به خاطر این که نمی خواهیم از بحث اصلی دور شویم، توضیح بیشتری نخواهیم داد.
-نظرات دو برنامه نویس iOS:
حالا نوبت به مصاحبه با دو برنامه نویس خوب iOS در ایران می باشد. توصیه می کنیم برای بهتر فهمیدن مسایل فنی مطرح شده در این گفتگو ها، بخش های اول و دوم این مطلب را خوب خوانده باشید.
این گفتگو می تواند برای شما بسیار مفید باشند چرا که انتقال دهنده ی تجربیاتی خواهند بود که دو نفر از برنامه نویسان خوب iOS طی چند سال اخیر به آن رسیده اند. پس توصیه می کنیم که این بخش را از دست ندهید.
- محمد کمیلی:
اولین فردی که مصاحبه با ما را پذیرفت، آقای کمیلی بود. ایشان یکی از برنامه نویسانی هستند که برنامه های مفید و جالبی برای آی او اس نوشته اند. یکی از کار های آشنای ایشان که معمولا هر کسی در ایران به آن نیاز پیدا می کند، کیبرد فارسی برای آیپد است.
- محمد کمیلی، در پاسخ به این سوال که "چه نکته ای باعث جذب مخاطب برای آی او اس شده" می گوید:
به نظرم مهمترین عامل قدرت این سیستم عامل است و همچنین تعاملی که بین نرم افزار و سخت افزار در این سیستم عامل وجود دارد. ما شاهد عرضه نرم افزار هایی روی آی او اس و به خصوص آیفون بودیم، که قبلا در هیچ پلتفرمی دیده نشده بود. برنامه های آی او اس، فقط روی این سیستم عامل قابل اجرا هستند و باعث و بانی این قضیه، بدون شک اپل بوده است. اما همین مساله این خصوصیت را به آیفون و سایر دستگاه های iOS داده که دارای برنامه های اختصاصی باشند. پس از طرفی گوناگونی و متفاوت بودن برنامه ها هم یکی از موضوعاتی است که باعث جذب کاربر به این سیستم عامل می شود. به طوری که اپل روی این مساله هم حساب زیادی باز کرده است. به عنوان مثال یکی از شعار های تبلیغاتی اپل برای آیفون این است که: "برنامه ای پیدا نمی شود که برای آیفون نباشد!"
- به عنوان سوال دوم از ایشان پرسیدم: به نظر شما در طی این چند سال، آی او اس تا چه حد انتظارات کاربرانش را با تغییراتی که انجام داده برآورده کرده است؟ شما به عنوان یک برنامه نویس مهم ترین تغییرات را چه چیز هایی می دانید؟
محمد کمیلی: بهتر است این موضوع را به دو دسته تقسیم کنیم، یکی جنبه ارتباطی است و دیگری جنبه سرگرمی. اگر بخواهیم این سیستم عامل را برای کارایی اصلی، یعنی تلفن مورد بررسی قرار دهیم؛ می توانیم بگوییم که اپل می توانست در این مورد خیلی محبوب تر از چیزی که الان هست، باشد. به عنوان یک کاربر iOS ، به نظر من اپل اول ضعیف عمل کرد. مثلا دربخش اس ام اس، کاربر ها را چند سال منتظر گذاشت که برنامه SMS کارایی لازم را داشته باشد. مسائلی مانند نداشتن Forward یا MMS یا حتی کپی و پیست باعث می شد که این برنامه ضعیف عمل کند. اما با آمدن iOS 3.0 به بعد، خیلی از این مشکلات برطرف شد.
اما از نظر سرگرمی، اوضاع به نحوی دیگر پیش می رود. آی او اس، از همان ابتدا هم در بخش سرگرمی، سیستم عامل قدرتمندی به شمار می رفت و اپل هم از آن موقع تا کنون پیوسته در تلاش بوده که آن را بهتر و بهتر کند. اضافه شدن امکانات بیشتر به آی او اس هم این پیشرفت را سریع تر کرد. امکاناتی مانند مولتی تسکینگ و ...
- از آقای کمیلی در مورد اینترفیس برنامه های آی او اس و این که چرا شبیه به هم هستند، پرسیدم:
اپل در بخش اینترفیس و طراحی آن، نسبت به برنامه نویسان سخت گیر است. حتی خیلی از اپلیکیشن ها به دلیل نداشتن استاندارد های مناسب در اینترفیس و واسط کاربری، از AppStore حذف می شوند یا اصلا در آن قرار نمی گیرند. در واقع اپل اجازه می دهد که از هر ابزاری در طراحی اینترفیس استفاده کنید اما در عین حال برنامه نویس را ملزم می کند که از ابزار ها، در جای مناسب استفاده کند. اگر چه ممکن است برنامه نویسان کمی به خاطر این موضوع اذیت شده باشند، اما باید گفت که این کار باعث شده که آی او اس و برنامه های آن از اینترفیس خیلی خوب و روانی استفاده کنند که در نهایت تمام این ها به نفع کاربر تمام شده است.
- نظرتان در مورد مولتی تسکینگ چیست؟ مسلما استفاده از مولتی تسکینگ باعث می شود که بعد از مدتی برنامه های زیادی در فروشگاه نرم افزار قرار بگیرند که از ویژگی های خلاقانه ای در مولتی تسکینگ استفاده می کنند. پس سطح انتظار کاربران بالاتر می رود و نرم افزار شما باید آن را براورده کند؛ با این وجود فکر می کنید برای شما دست و پا گیر خواهد شد یا خیر؟
مولتی تسکینگ باعث شده که نرم افزار ها خارج از اینترفیس و محیط کاری خودشون هم کارایی داشته باشند. من در یکی از پروژه هایم که برنامه ای برای حافظ بود؛ روی این کار می کردم که برنامه از همان جایی آغاز شود که بار قبل در آن جا بسته شده اما با آمدن iOS 4.0 و مولتی تسکینگ، این کار به طور خیلی راحت تری انجام شد. پس مولتی تسکینگ برای من، نه تنها دست و پا گیر نشده، بلکه خیلی هم مفید بوده و البته برای کاربر هم مفید خواهد بود.
- استیو جابز و اپل، هر دو روی مواردی مثل هسته گرافیک و انیمیشن مانور زیادی می دهند؛ شما به عنوان یک برنامه نویس چقدر آن را مفید می دانید؟
به نظر من در این مورد حق با اپل است. یعنی تمجید ها و تعریف هایی که از هسته گرافیک و انیمیشن شده، کاملا به جاست. هسته گرافیک و انیمیشن از توانایی های زیادی برخوردار است و واقعا تا حدی که برنامه نویس نیاز دارد، به او امکانات می دهد. خیلی شرکت های بزرگ، بازی هایی با گرافیک بسیار بالا برای آیفون و یا سایر دستگاه های آی او اس تولید کردند. حتی تکنولوژی Unreal هم روی آیفون پیاده سازی شد.
Unreal Engine موتور گرافیکی بسیار معروفی است که برای بازی های زیادی به کار گرفته شده و این بازی ها چه در پی سی، چه در ایکس باکس و چه در سایر کنسول ها استفاده می شوند. وقتی این موتور برای آیفون هم ارائه شد؛ با این که امکانات آیفون محدود به نظر می رسید ولی توانست گرافیکی بیش از حد انتظار را به نمایش بگزارد. به طوری که حتی استیو جابز هم به مزاح گفت: آیفون فقط یک گوشی است! همین موضوع نشان می دهد که آی او اس از توانایی های بالقوه ای در اجرای گرافیک ها برخوردار است و در این مورد اصلا ضعیف نیست.
- به نظر شما iOS این پتانسیل را دارد که روی دستگاه های دیگر هم اجرا شود؟
حقیقتش را که بخواهید؛ من هم دوست ندارم iOS را روی دستگاه های دیگری ببینم. چون ممکن است هم خیلی از قابلیت های انحصاری آن از بین برود و هم داد برنامه نویس ها را در بیاورد. فعلا اپل تغییرات را خیلی خوب در کنترل برنامه نویسان در آورده به طوری که کار با فناوری های جدید خیلی آسان تر است. اما مثلا در آندروید به دلیل تنوع بسیار زیاد صفحه نمایش ها ومساله رزولوشن، تقریبا داد برنامه نویس ها را در آورده است.
- API ها را در iOS چگونه توصیف می کنید؟ آیا دسترسی و استفاده از آن ها آسان است؟
در این مورد باید گفت که اپل در استفاده از API ها هم به شدت سخت گیری می کند. بعضی از API ها نباید به صورت معمولی و مانند سایر ای پی آی ها توسط برنامه نویس استفاده شوند و به همین دلیل به Private API یا API خصوصی معروف اند. البته برای برنامه نویس سخت است که بداند دقیقا از چه چیزی استفاده کرده. چون وقتی از این API ها استفاده می کنید، برنامه ی شما مانند حالت عادی کامپایل و اجرا می شود. فقط ممکن است کامپایلر یک هشدار کاملا معمولی به شما بدهد اما این هشدار از اجرای برنامه جلوگیری نمی کند. با این همه در برخی موارد کامپایلر شما را از همین هم محروم می کند. انگار باید خودتان بدانید که API خصوصی است یا خیر!
در این مورد باید کمی در مورد ای پی آی هایی که استفاده می کنید تحقیق کنید و به آن ها حساس باشید. چون بیشتر برنامه ها به دلیل استفاده از پرایویت API ها در AppStore قرار نمی گیرند یا از آن حذف می شوند. حتی برای من هم پیش آمد که در یکی از پروژه هایم از یک رابط برنامه کاربردی خصوصی استفاده کردم و کامپایلر به من اخطار داد اما آن را جدی نگرفتم. خوشبختانه برنامه مربوطه در AppStore قرار گرفت اما از طرف اپل ایمیلی ارسال شد که از من خواست در نسخه بعدی، از این API استفاده نکنم.
- شما به عنوان یک برنامه نویس، زبان برنامه نویسی برای آی او اس را چگونه توصیف می کنید؟ مثلا خیلی ساده است یا خیلی پیچیده و یا... ؟
به نظر من زبان Objective C که برای برنامه نویسی روی آیفون به کار می رود؛ ساده است و کاملا شیء گرا. من شخصا فردی بودم که کاملا از برنامه نویسی فراری بودم با این وجود برنامه نویسی روی این پلتفرم – یعنی iOS – نظرم را کاملا عوض کرد. برای من راضی کننده بوده!
- علیرضا شفائی:
بعد از آقای کمیلی نوبت به مصاحبه با علیرضا شفائی رسید. ایشان هم یکی از برنامه نویسانی هستند که کیبرد فارسی را در اختیار کاربران آی او اس قرار دادند و می توان ایشان را یکی از برنامه نویسان بسیار خوب آی او اس در ایران دانست.
- به عنوان اولین سوال از ایشان پرسیدم: به نظر شما در طی چند سال اخیر، اپل چه تغییرات مثبتی را در آی او اس ایجاد کرده و آی او اس چه کمبود هایی داشته و یا دارد؟
زمانی که اپل سیستم عاملش را مطرح کرد، من شخصا فکر نمی کردم که اینقدر جای پیشرفت داشته باشد اما بعد که شروع به توسعه دادن سیستم کرد، متوجه شدم که با چه مجموعه ی مطرح و بزرگی طرف هستیم! اپل به روش خوش سعی می کند که iOS را به یک سیستم عامل کامپیوتری نزدیک کند. همانطور که می بینید در طراحی اینترفیس، سنگ تمام گذاشته شده بود و همچنین این سیستم عامل برای برنامه نویس ها هم قابلیت های فراوانی آماده کرد. بعد از این تغییرات، از بین قابلیت های فراوان آی او اس، اپل فعلا توجه خود را بر روی تعدادی قابلیت مهم تر جلب کرده و در حال کار کردن بر روی آنها است. مثلا قابلیت پردازش گرافیکی بهتر و بیشتر باز کردن دست برنامه نویسان از جمله این قابلیت ها هستند.
از نظر من تغییر مثبت اساسی این است که اپل دارد یک محیط کامل برای پیاده سازی ایده های برنامه نویسی مهیا می کند که به نظرم ای واقعا جذاب است. این ها نظرات من به عنوان یک برنامه نویس بود. اما iOS به خودی خود؛ برای کاربرد های عادی و قابلیت هایی که اپل به صورت پیشفرض در اختیار کاربرانش قرار می دهد، پیشرفت خیلی زیادی نکرده و من فکر می کنم که فعلا بیشترین تمرکز اپل، روی تکمیل کردن محیط آی او اس به صورت کلی است.
تا برای سیستم عاملی برنامه های زیادی ننویسند، قابلیت ها و قدرت هایش نمایان نمی شود. در این مورد خود اپل هم عجله ای به تکمیل کردن برنامه های خودش ندارد بلکه سعی در بیشتر کردن قابلیت های برنامه نویسی و جذب برنامه های بیشتر دارد تا امکانات مورد نیاز از طریق برنامه نویسان شخص ثالث تکمیل شود. چون از هر نظری هم که حساب کنیم؛ اپل از این راه پول بیشتری در می آورد و به نظرم این کار طبیعی است! دنیای iOS؛ دنیای بزرگی است و اپل قصد ندارد که خودش سهم زیادی در طراحی ساختمان این دنیای بزرگ داشته باشد.
- از آقای شفائی پرسیدم: چه چیز در iOS، برای شما جذاب بود و باعث شد که به آن علاقه مند شوید؟
جواب من یک مقدار خاص است و فکر نمی کنم خیلی عمومی باشد. اما دلیل اصلی خودم به این شرح است: من عاشق برنامه نویسی هستند و البته بعد از چند سال برنامه نویسی برای کامپیوتر، کمی به این کار عادت کردم. اولین بار که برنامه نویسی روی PSP را تجربه کردم متوجه شدم که پیاده سازی برنامه ها روی دستگاه هایی که پرتابل هستند و می توانند همراه انسان باشند، خیلی جذاب تر است و البته تجربه ی جدید تری هم خواهد بود. بعد از این که آیفون وارد بازار شد، تبدیل شد به بهترین محیط برای اجرای برنامه های من. چون اینترفیس تازه ای داشت و چه در برنامه و چه در کارکردن با این اینترفیس، به آن علاقه مند شدم.
بعد ها که API های iOS کامل تر شدف من هم بیشتر از برنامه نویسی لذت می بردم. در عین حال من قبل از آیفون به سراغ برنامه نویسی روی موبایل نرفته بودم. دلیلش هم پایین بودن جذابیت اینترفیس دستگاه ها بود. در کل آی او اس انتظارات من را از یک سیستم عامل کاملا برآورده کرده است. شاید از نظر کاربران قابلیت های آن در بعضی موارد کم باشد. مثل نبود امکان ارسال فایل با بلوتوث در روز های اول. اما بعدا برنامه هایی برای این کار ساخته شد که این مشکل را حل می کرد و علت به بازار آمدن همین برنامه ها هم آن بود که دنیای برنامه نویسی آی او اس بزرگ تر شده بود. من شخصا هیچ مشکل بزرگی با iOS نداشتم!
- در iOS شاهد هستیم که اینترفیس برنامه ها شبیه به یک دیگر هستند و البته نمی توان منکر زیبایی آن شد. اما انگار در ساخت اینترفیس، همه ی برنامه ها از استانداردی خاص استفاده می کنند؛ به نظر شما الگوی برنامه نویسان در ساختن اینترفیس برنامه ها چه بوده و چه چیزی باعث این مساله شده است؟
اپل در منطق ارتباط با کاربر و برنامه ها خیلی انحصار طلب است. اپل یک کتابچه طراحی کرده که منطق خودشان را در آن شرح داده اند و از برنمه نویس ها می خواهند که با آن منطق طراحی را انجام بدهند. من حتی دیده ام، برنامه هایی هم از AppStore رد می شوند و به برنامه نویسان می گویند که مثلا فلان قاعده را باید در طراحی رعایت کنید. البته حرف بی ربطی هم نیست چون این باعث می شود که همه ی برنامه ها حداقل استاندارد را داشته باشند و برای ارائه اینترفیسی متفاوت، اکثرا پارا فراتر از استاندارد ها نمی گذارند. چون برای تیم های کوچک برنامه نویسی، این کار به صرف نیست.
بیس برنامه نویسی با iOS، زبان Objective-C است و منطق طراحی شیء گرا را دنبال می کند. این به برنامه نویسان اجازه می دهد که تمام اشیاء قابل استفاده؛ مانند Slider ها یا سویچ ها را به شکل دلخواه خودشان تغییر بدهند و این کار هم به ساده ترین شکل ممکن انجام می شود. در عین حال برنامه نویسان این آزادی را دارند که اشیاء را هم خودشان طراحی کنند و باز هم این کار به ساده ترین شکل ممکن انجام می شود. به عبارت دیگر، دست برنامه نویسان باز است که هر کاری که می خواهند انجام دهند. اما مساله این جاست که اکثرا از همان اشیاء ساده استفاده می کنند.
این مسئله ی غیر عادی ای هم نیست. در ویندوز یا مک هم به هنگام طراحی اینترفیس، یکسری اشیاء و کنترل های از پیش طراحی وجود دارند که قابل شخصی سازی شدن هستند. اما با این حال کمتر برنامه ای پیدا می شود که مثلا شکل دکمه هایش را از حالت عادی سیستم عامل خارج کند.
- بعضی ها اینترفیس آی او اس را طوری توصیف می کنند که انگار iOS روح زنده دارد، به نظر شما این درست است؟
پشت همه ی طراحی های این سیستم عامل یک منطق جدید و یکسان رعایت شده که به آن نظم می دهد و شاید اینطور به نظر برسد که دارای هویت مشخص و روح است! اگر بخواهیم این طور به مساله نگاه کنیم، جواب من مثبت است.
- وقتی وارد محیط یک سیستم عامل می شویم، انتظارات خاصی از آن داریم. در مورد آی او اس، انتظارات سطح بالا و حرفه ای براورده می شود اما در مورد خیلی از بنیادی ترین ابزار ها این طور نیست. می توان نسخه های ابتدایی آی او اس را مثال زد که از بلوتوث به طور کامل پشتیبانی نمی کردند و یا ام ام اس هم نداشتند. (یا نبود مولتی تسکنیگ) به نظر شما این یک سیاست است و اپل از نقص های کوچک استقبال می کند تا نسخه های بعدی آن بهتر به چشم بیایند؟
من چندین ایده از این مسئله در طی این چند سال پیدا کردم. به نظر من اگر اپل می خواست انتقال داده ها به کمک بلوتوث را خودش اضافه کند، در کنار آن انتظار هایی به وجود می آمد که اپل نمی توانست برآورده کند. مثلا اولین انتظار این که بعد از گرفتن یک آهنگ از طریق بلوتوث، موسیقی به کتابخانه موسیقی iPod اضافه بشود. اگر اپل می خواست این کار را انجام دهد، باید چند منطق دیگر را هم زیر پا می گذاشت که ظاهرا این مساله برای اپل به صرفه نبود! به همین دلیل اصلا طرف اش هم نرفت تا این ایراد به برنامه نویسان وارد باشد و برنامه های شخص ثالث این کار را انجام دهند!
در مورد امکانات دیگری مانند مولتی تسک، همانطور که در مقاله هم اشاره کرده بودید، اپل می توانست برنامه های خودش را در قالب مولتی تسک طراحی کند. اما چون پروتکل مشخصی ارائه نکرده بود نمی توانست اجازه دهد که برنامه نویس ها هم از مولتی تسکینگ استفاده کنند. اپل برای اینکار باید سیستمی طراحی می کرد که به صورت بهینه با سیستم عامل در تعامل باشد. چنین مساله ای نیاز به مهندسی دارد. علاوه بر این، تقویت رم و توان پردازنده هم شدیدا مورد نیاز بوده است که فکر می کنم، در مورد آن، اپل به زمان نیاز داشته است.
از طرفی دیگر اپل سیاست خاصی را دنبال می کند که دوست ندارد دستگاه هایش خیلی زود تکراری شوند. مثلا می شود گفت شما هر گوشی دیگری را که انتخاب کنید، بعد از حداکثر 6 ماه برای شما خسته کننده می شود اما برای من، آیفون تا دو سال و نیم جذاب بود. دلیلش هم، همین اضافه شدن تدریجی امکانات است که اجازه می دهد کاربر آرام آرام با امکانات آشنا بشود تا دستگاه و سیستم عامل تبدیل به چیزی خسته کننده نگردد. فکر کنید شما زمانی نمی توانستید با بلوتوث، فایلی را انتقال دهید و از امروز با آمدن فلان برنامه می توانید! پس وجود نقص باعث می شود که نسخه های بعدی بیشتر به چشم بیایند. بنابر این پاسخ نهایی شما، طبق توضیحاتی که دادم؛ هم بله است و هم خیر!
- حالا که بحث به مولتی تسکینگ کشیده شد، شما به عنوان یک برنامه نویس؛ اضافه شدن مولتی تسک را چقدر به نفع خودتان می دانید؟ آیا برای شما دست و پا گیر نشده؟
مسلما وقتی قابلیت های یک سیستم عامل افزایش پیدا میکند. سطح انتظار مشتری هم از شما بالاتر می رود. اگر انتظار مشتری را در وهله ی اول در نظر نگیریم، مسلما می توان گفت کیفیت کار برای من بالاتر رفته و من می توان م قابلیت های بیشتری را ارائه بدهم. اما وقتی پای مشتری به کار باز می شود، اگر جزء برنامه نویسان عادی و متوسط باشم برایم دست و پا گیر خواهد شد. مثل اتفاقی که در بالا رفتن رزولوشن صفحه افتاد. قبلا برنامه نویس راحت تر می توانست در این صنعت سرمایه گذاری کند و پول در بیاورد. اما این کار کم کم مسئله را سخت کرد. پس وقتی که سطح کیفیت بالا میرود؛ باید خودمان را هم به اندازه آن بالا ببریم و اگر خودمان را به سطح نیاز مشتری نرسانیم؛ ممکن است شکست بخوریم.
دقیق تر این است که بگوییم: برنامه نویس باید دائم دیوایس ها و سیستم عامل را آپیدیت کند تا بتواند همان درصد از مشتری های قبلی اش را راضی نگهدارد و هرچقدر سازگاری برنامه با نسخه های مختلف بیشتر باشد، استقبال بیشتر خواهد بود. مثل این است که یک برنامه بنویسید که فقط با ویندوز 7 کار کند؛ مطمئنا استقبال از آن کمتر از برنامه ای است که ویستا، ایکس پی و 7 را همزمان ساپورت می کند!
- مساله منطق برنامه نویسی و استفاده از API ها را در iOS چگونه می دانید؟
احتمالا بیشتر برنامه نویسان در همان قدم های اول با مشکل در منطق برنامه نویسی Objective-C رو به رو خواهند شد. چون منطق تفکری خاصی بر اساس برنامه نویسی شیء گرا دارد که باید با آن آشنا شوید. در غیر این صورت کار شما سخت خواهد شد. اما درمورد API، باید گفت که ای پی آی هایی که اپل ارائه داده خیلی از سطح استفاده شخصی من بیشتر بوده و به همین خاطر شخصا هیچ کمبودی حس نکردم و هر موقع لازم بوده از API خاصی استفاده بکنم یا تغییراتی در آن اعمال کنم، برای من ساده بوده. ولی خب این دلیل بر سادگی کل مساله نیست چون من در سطح متوسطی از انتظار قرار داشته ام.
در کل iOS انتظارات را همانطور که ادعا کرده برآورده می کند. اما همانطور که گفتم سطح انتظار من متوسط بوده و نمی دانم که اگر قرار باشد یک برنامه عظیم تجاری طراحی شود، این امکانات جوابگو خواهد بود یا نه!
- نظرات مختلفی درباره اجرا شدن و یا عدم اجرای آی او اس در مقیاس بزرگتر و در گوشی های متنوع تر هست. نظر شما در این باره چیست؟
به نظرم iOS پتانسیل اش را دارد و خیلی هم خوب است. ولی بعید می دانم که هیچ موقع iOS را در دستگاه های دیگر ببینیم. چون با سیاست اپل تناقض دارد.
- به نظر شما توجیهاتی که اپل در تکنولوژی های پشتیبانی نشده اش مطرح کرده، قانع کننده است؟
من فکر نمی کنم در این مورد روند کار کلی اپل خوب باشد. با این که شخصا با این کار مخالف هستم؛ فکر می کنم می توانیم در آن نکات مثبتی هم پیدا کنیم. مثلا ویروس هایی که تا به حال برای آیفون نوشته شده اند، فقط می توانند آیفون های جیل بریک شده را مورد حمله قرار دهند. در واقع شما با جیل بریک کردن دستگاه های iOS توانایی های خود را افزایش می دهید اما در عین حال استعداد بیشتری هم برای ویروسی شدن دارید! محدود کردن برای خیلی از کاربر های متوسط و رو به پایین با این که بار روانی منفی دارد، کار درستی است. چون حداقل امنیت آن ها را تضمین می کند. در عین حال فکر نمی کنم این رویه برای کاربر های سطح بالا مناسب باشد با این حال همین کاربران هم می توانند با جیل بریک توانایی های خود را افزایش دهند اما دیگر باید خودشان مواظب امنیت خود باشند.
- به عنوان سوال پایانی می پرسم: برنامه نویسی با iOS را چگونه می دانید؟
برای من مسئله به صورت سخت ولی ارزشمند بوده است. یادگرفتنش برای کسی که قبلا برنامه نویسی کار می کرده زیاد ساده نیست و دلیلش هم پیش زمینه های فکری فرد است. در واقع کسی که قبلا برنامه نویسی نکرده باشد، راحت تر می تواند یاد بگیرد. به عبارت دیگر اگر با تکنیک ها و منطق برنامه نویسی شیء گرا آشنا باشید بسیار موفق تر خواهید بود.
در عین حال آی او اس ارزشمند است چون تنها زبان برنامه نویسی است که با این سطح انعطاف دیدم. همچنین چون این زبان از خانواده ی زبان C است، سرعت اجرای بالایی دارد. به عنوان کسی که با جاوا هم کار کردم می گویم Objective-C چیزی است بین جاوا و C. زبان جاوا باید توسط یک سیستم بالاتر که جاوا ماشین نام دارد اجرا شود که این باعث پایین آمدن Performance آن خواهد شد. اما قابلیت هایی نظیر Cross Platform که باعث می شود جاوا در پلتفرم های زیادی کار کند؛ یکی از نقاط قوت بزرگ آن به شمار می رود. در مورد Objective-C باید گفت که سرعت اجرایی به مراتب بالاتر دارد و به یک ماشین سطح بالاتر هم برای اجرا شدن نیازی ندارد. پس عملکرد آن بهتر است. به علاوه باید اضافه کرد که قابلیت های بسیار بیشتری از جاوا ارائه می دهد. تنها چیزی که Objective-C در مقابل جاوا ندارد، قابلیت Cross Platform می باشد.
-سخن آخر:
پس از خواندن این مطلب، می توانید با خیال راحت تر به توسعه دادن برنامه های خود تحت iOS مشغول شوید. چرا که با بیشتر مبانی آن آشنا هستید. در این مجموعه مطالب سعی شد که با زبانی ساده و روان به بررسی iOS و توانایی های برنامه نویسی برای آن بپردازیم تا نیاز های توسعه دهندگان یا افرادی که می خواهند به جمع برنامه نویسان آی او اس بپیوندند نیز تامین شود.
مساله ای که بیش از همه مانع تبدیل شدن به یک برنامه نویس خوب برای iOS است، نبود منابع کافی فارسی در مورد اش است. از این رو ما چند سایت مفید را هم در انتهای مطلب ذکر کرده ایم که می توانید از آن ها استفاده کنید.
امیدواریم که این مجموعه مطالب برای شما مفید بوده باشد و توانسته باشم که مفاهیم را به خوبی به شما انتقال دهم. ضمنا خیلی خوشحالم از این که کپی های بدون منبع از این مطلب خیلی کم تر شد و تشکر می کنم از تمامی افرادی که مطالب را با ذکر منبع استفاده می نمایند.
با تشکر از:
|