Bamdad Dashtban

Developer

Category: برنامه نویسی آیفون

برنامه نویسی آیفون با بامداد دشت بان – قسمت اول (پروسه طراحی اپلیکیشن و محیط کاربری)

در این جلسه به  معرفی فرایندی که ساخت یک اپلیکیشن  موفق آیفون طی می کند می پردازیم.
شاید خیلی از شما برنامه آیفونی نوشته و آن را برای فروش قرار داده باشید ،ولی شاید فروش شما آن طور که فکر می کردید نبوده! یا شاید می خواهید که App بعدیتون واقعا خوب باشه، ما امروز و جلسه بعدی به این موضوع می پردازیم  و فرایند ساخت یک App را با هم مرور می کنیم.
در این جلسه اصلا به برنامه نویسی نمی پردازیم بلکه نکات بنیادی برای برنامه نویسی آیفون را بررسی خواهیم کرد.

پس با یک سوال شروع می کنیم : بهترین قدم ها برای ساخت چیزی عالی چیست ؟

به طور کلی 4 مرحله اصلی برای ساخت یک  محیط کاربری قوی آیفون وجود داردطراحی محیط کاربری آیفون

  • مرحله  اول شالوده (Foundation) :
    در این مرحله تفاوت هایی که در استفاده از دستگاه های تاچ بوجود می آید را درک می کنیم و به راه های جدیدی در حل مسائل می اندیشیم.
  • · مرحله دوم – تعریف محصول (Product Definition) :
    اینجا می فهمیم آن چیزی که دست مشتری می دهیم چیست ؟
  • · مرحله سوم طراحی و نمونه سازی (Design & Prototyp) :
    درک می کنیم که طراحی محیط کاربری آیفون چگونه است و از کاغذ برای نمونه سازی استفاده می کنیم.
  • · مرحله چهارم پولیش و بهبود (Polish & Refine):
    مرحله ایست  که نرم افزار پایدار ولی معمولی را تبدیل به اپلیکییشن جذاب و عالی می کند.

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

مرحله  اول شالوده (Foundation) :

آیفون انقلابی

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

وقتی آیفون ارائه شد ، بسیاری از قوانین تغییر کرد. برای مثال در کامپیوتر های دسک تاپ دقت استفاده از ماوس 1 پیکس در 1 پیکسل بود و تنها یک بار در زمان رخ می داد، دقت در کامپیوترها تعریف شده بود ولی در آیفون که دستگاهی مالتی تاچ و دقت آن از 22 پیکسل  تا 55 پیکسل بسته به اندازه و نوع استفاده از انگشتان کاربر بر روی صفحه متغیر است . بر این اساس ما 5 ورودی همزمان داریم که باید آن ها را در یک زمان پیگیری کنیم.لمس در مقابل کلیک

در نتیجه بسیاری از ابزار هایی که در گذشته به کار می رفت و به یک استاندارد تبدیل شده بود کنار گذاشته شد و جایگزینی بهتر برای کار با انگشتان طراحی شد.

  • اولین آن ها Scroll-Bar بود که بسیار کوچک بود و به سختی می توانستیم با آن ارتباط برقرار کنیم.و به طور کل آن ها حذف شد چراکه  دیگر با حرکات انگشتان می توانستیم کار آن ها را شبیه سازی کنیم و در اپلیکیشنContacts و یا مرور وب حتما جایگزین آن را دیده اید .
  • دومین آن ها Drop Down Menu ها بودند که به خوبی کار نمی کرند و در کار با انگشتان بسیار ضعیف بود. چندین جایگزین برای آن معرفی شد که Picker یکی از آن ها بود که بیشترین کاربرد را در داده های از پیش تعیین شده دارد.

در آیفون برای اولین بار کاربران می توانستند به طور مستقیم تغییر ایجاد کنند(Direct Manipulation) و نیازی به استفاده از ماوس و کیبورد نداشت. این تغییرات مستقیم به انواع زیر تقسیم می شود:

  • دستکاری مستیقم (Direct Manipulation): برای مثال در یک بازی تیر اندازی وقتی تنها یک بار صفحه را لمس می کنید تا تیری شلیک شود
  • لمس پی درپی (Sequential Tapping): مثلا وقتی که در نرم افزار Mail پشت سر هم  از لحظه باز شدن برنامه صفحه را لمس می کنید تا به ایمیل مورد نظرتان برسید.
  • لمس و کشیدن(Tapping & Dragging): بیشترین شباهت به دنیای واقعی را دارد زیرا شما می توانید با لمس کردن نقاشی کنی , چیزی را تکان دهید و .. 90 درصد کاربران در هنگام کار با صفحه لمسی برای اولین بار لمس کردن و کشیدن را امتحان میکنند.

پس حتما باید فکر کنید کدامیک از این ها در چه موقعی بیشتر در Application  شما به کار می رود.

خوب بیایید به تغییراتی که در طراحی محیط کاربری ایجاد شده بپردازیم:

فهمیدن اینکه چیزی یک Button یا دکمه است بسیار ساده است و آن با نرم کردن گوشه های مربع قابل درک است. پس معمولا هر موقع دیدید دور چیزی نرم شده و همچنین درخشش خاصی دارد آن یک دکمه است. ولی در ToolBar  نمی توان اطراف همه دکمه ها را نرم کرد پس به جای آن می بینید که از تکنیک عمق دادن به دکمه استفاده شده که به آن یک Inner Shadow داده شده است و خود نوار هم درخشان یا Glossy  شده است که به کاربر یاد آوری می کند که قابل لمس شدن است.

دکمه های آیفون

در اکثر پلت فرم ها اغلب 5 یا 6 درصد وقت طراحی می شود ولی در آیفون پیشنهاد می شود که حداقل نیمی از زمان شما به طراحی پرداخته شود. خیلی از شما با خود میگویید من یک برنامه نویس یا یک مهندس هستم و من طراحی نمی کنم و در فتوشاپ چیز ها را خوشگل نمی کنم ولی وقتی من در مورد طراحی می گویم منظورم تعیین وسعت نرم افزار ، اندیشیدن به سلسله مراتب و یافتن جریان نرم افزار  و درک اشیا موجود است و این ها همان کار های هستند که مهندسان از انجام آن لذت می برندو تنها راجع به نقاشی و زیبا کردن چیز ها صحبت نمی کنم ولی باید بدانید هیچ کسی در دنیای واقعی  چیزی را از شما نمی خرد که طراحی خوبی نداشته باشد و وقت زیادی روی طراحی آن گذاشته نشده باشد.

مرحله دوم – تعریف محصول (Product Definition):چرخه تولید در آیفون

تا به حال ( قبل از آیفون) هر محصول نرم افزاری لیستی طولانی از خصوصیات و ویژگی ها را داشت که بدین منظور برنامه نویس مجبور بود محیطی بزرگ فراهم کند تا می توانست تمامی آن ویژگی ها را پیاده سازی کند، ولی مشکل آنجا است که خیلی از کاربران از تمام آن ویژگی ها استفاده نمی کردند.

باید بدانیم که در آیفون هدف آن است که یک راه حل تعریف کنیم نه اینکه مجموعه ای از ویژگی ها را کنار هم بگذاریم و نشان دهیم.
بهترین اپلیکیشن های آیفون آن هایی هستند که یک مشکل را برای کاربر حل می کنند.یکی از بهترین روش ها به رسیدن به این هدف تعریف کردن “شرح تعریف برنامه”  Application Definition Statement  یا ADS است .

ADS از 3 قسمت تشکیل شده است:

(تفاوت شما) ( راه حل شما) برای (مخاطب شما )

(Your Differentiator)(Your Solution) for (Your Audience)چرخه تولید پلت فرم ها غیر از آیفون

  • تفاوت شما : خاص بودن برنامه شما در مقابل سایر نرم افزار ها را نشان می دهد .برای مثال “استفاده آسان” یا “ظاهری زیبا”.
  • راه حل شما: برای خود تعریف کنید که چه مشکلی را حلی یا آسان خواهید کرد.
  • مخاطب شما : بسیار مهم است که بدانید مخاطبتان کیست ، برای مثال اگر مخاطب شما یک آتش نشان است که باید به سرعت هم تیمی های خود را پیدا کند شما نباید آن طور که برای یک تاجر محیطی طراحی می کنید که برای رسیدن به هدفش چندین بار باید صفحه را

لمس کند برنامه را طراحی کنید.

این مرحله را با یک مثال جلو می رویم:در مک ما نرم افزاری به نام iPhotos  داریم که در iOS مشابه آن Aplication با نام Photos  است که همگی ما در آیفون برای مشاهده تصاویر استفاده کرده ایم.

ADS برنامه iPhotos  این است :

Easy to use , digital photo editing ,organizing & sharing for causal & amateur  photographers

تفاوت ما نسبت به سایر نرم افزار ها easy to use  بودن نرم افزار اس و می بینید که در اینجا 3 راه حل داریم :

1.     Digital Photo Editing

2.     Organizing

3.     Sharing

همچنین مخاطبین ما هم Causal & amateur photographers  هستند.

لیست طولانی خصوصیات نرم افزار در این ADS خلاصه شده است و خیلی از این ها برای آیفون مناسب نیست زیرا انجام این کارها با انگشت سخت و زمانگیر است و کاربر آیفون می خواد به هدفی بسیار سریع برسد.پس با مشاهده راه حل ها می بینیم که تنها یکی به کار ِ کاربران آیفون می آید:

همه دوست دارند که عکس هایشان مرتب و Organize شده باشد و لی افراد کمی هستند که برای مرتب کردن عکس هایشان وقت می گذارند و اکثر مردم از یک لیست طولانی تصویر مورد نظرشان را پیدا می کنند.

همچنین افراد کمی هم هستند تا تصاویرشان را ویرایش یا Edit  کنند , آنها فقط عکس می گیرند و اگر عکسی بد شد آن را پاک می کنندو عکس جدید می گیرند و حوصله بریدن , چرخاندن و تنظیم نور آن ها را ندارند.

ولی به اشتراک گذاشتن یا Sharing کاری است که اکثر مردم آن را انجام می دهند چه از طریق نمایش Slide show برای اطرافیان چه از طریق ایمیل کردن یا آپلود کردن در وب سرور ها.

پس با توجه به مطالب گفته شده ADS برنامه Photos را اینگونه می نویسیم:

Easy to use digital photo sharing for casual iphone users

باید به مخاطب برنامه که در اینجا کاربران عمومی آیفون یاد شده هم توجه کرد که اگر عوض شود ، به طور کل ویژگی های برنامه نیز عوض می شود برای مثال ADS برنامه Apertureکه برنامه ای برای عکاسان حرفه ای است و کاملا متفاوت است به صورت زیر است:

Easy to use digital photo sharing for professional photographers

جمله ای معروف وجود دارد که می گوید :

Pick the few features

Most frequently used

By the majority of your users

Most appropriate for the mobile context

تنها چند ویژگی را انتخاب کنید

که بیشترین استفاده را داشته باشد

توسط اکثر کاربران بکار برده شوند

و مناسب برای دستگاهی قابل حمل باشند.

اگر به لیست ویژگی های iPhoto در مک نگاهی بیندازید می بینید که تنها قسمت کوچکی از ویژگی های آن برای نرم افزار Photos   آیفون پیاده سازی شده و همه با نرم افزار Photos کار کرده ایم.با  یک لیست از آلبوم ها شروع می کنیم و عکس مورد نظرتان را انتخاب می کنید , عکس تمام صفحه را می بینید و Toolbar در پایین کارهای مربوط به اشتراک گذاری را انجام می دهد. همان راه حلی که هدف ما ایجاد آن بود. می توانیم Slideshow  ببینیم ، عکس های بعدی و قبلی را ببینیم و به گالری mobileMe آپلود یا ایمیل کنیم.

با سادگی که این نرم افزار دارد ولی یکی از مهم ترین نرم افزار های آیفون است.پس هنگاهی که نرم افزاری را تهیه می کنید که نیاز ساده ای را براورده می کند تصور نکنید که نرم افزار شما برای کاربر بی ارزش است.

اگر شما به نرم افزار های موفق در App Store نگاهی بیندازین در خواهید یافت که بیش از 70 درصد آن ها وقتی برای نوشتنADS گذاشته اند.

ادامه در مطلب بعدی

خسته نباشید.

بامداد دشت بان

برنامه نویسی آیفون با بامداد دشت بان – قسمت 0

برنامه نویسی آیفون با بامداد دشت بان

سلام

از امروز می خواهم آموزش برنامه نویسی برای iOS را در بلاگم بگذارم. که با استفاده از اون می توانید برای آیفون و آیپد , آیپاد تاچ و سایر دستگاه های شرکت اپل که سیستم عامل آن ها iOS هستش برنامه بنویسید.

چند وقتی است که با کمک دوستانم در سایت i-Phone.ir برنامه نویسی آیفون می کنم و خوب خودم هم در حال یادگیری هستم ولی تلاش می کنم هرچیزی که بلدم را به بهترین نحو آموزش بدم.

تلاش می کنم مطالب به صورت مرتب نوشته بشه تا دوستان بتوانند آموزش ها رو دنبال کنند و بینش وقفه نیوفته.

این مطالب به  صورت همزمان در وبلاگ من , وب سایت i-Phone.ir و x-code.ir قرار می گیره و تلاش می کنم به سوالات در همه سایت ها پاسخ بدم.از سایر اساتید و دوستانی که تجربه دارند درخواست می کنم تا اشتباهات من را بگیرند تا از مسیر خارج نشیم.

برای برنامه نویسی آیفون باید با برنامه نویسی شی گرا آشنا باشید , من در طول آموزش هایم مفاهیم شی گرایی را آموزش نخواهم داد و از دوستان می خواهم که خودشتون از منابع مختلفی که وجود داره با مفاهیم ابتدایی شی گرایی آشنا شوند. ولی باز هم تلاش می کنم تا آنجا که می شه بنیادی آموزش بدم.

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

  • ویدیو های آموزشی Lynda.com
  • ویدیو های آموزشی myCodeTeacher.com
  • ویدیو های کنفرانس های شرکت اپل در Word Wide Developer Center
  • ویدیو های آموزشی دانشگاه استنفورد
  • کتاب های انتشارات Apress
  • منابع مختلف آموزش زبان Objective-c

باید بگم چون خودم برای برنامه نویسی از آیفون استفاده می کنم از لغت “برنامه نویسی آیفون ” استفاده می کنم ولی شما می تونید آموزش های منو برای برنامه نویسی در کلیه دستگاه های آی او اسی استفاده کنید.

سوال : برای برنامه نویسی آیفون به چه چیز هایی احتیاج داریم؟

  • اول از همه باید یک کامپیوتر اپل مکنتاش که پردازنده اینتل داره داشته باشید . البته شما می توانید از نسخه هک شده سیستم عامل MacOS استفاده کنید که به نام OSx86 project معروفه و میشه از طریق اون روی pc های معمولی macOS x  رو نصب کرد.( البته این کار می تونه سخت باشه و خیلی وقت ها هم نشه روی هر سیستمی نصبش کرد کاملا به سخت افزار ربط داره )
  • دوم اینکه شما به یک اکانت developer اپل نیاز دارید تا بتونید نرم افزار های مورد نیازو دانلود کنید و برنامه خودتون رو توی باهاش بنویسید و روی appStore قرار دهید. هزینه این اکانت سالیانه 99 دلار است.( البته دوستان فایل های مورد نیاز برای توسعه رو برای دانلود در سایت های مختلف به صورت لینک مستقیم قرار داده اند ولی شما نمیتونید بدون داشتن اکانت برنامه رو روی دستگاه خودتون اجرا کنید و روی اپ استور بفروشیدش )

http://developer.apple.com

  • شما در صورتی که احتیاج به کار کردن با دوربین , بلوتوث ، جی پی اس, اکسلومتر و … دستگاه ندارید , احتیاج نیست آیفون یا آی پاد یا آی پد داشته باشیدو می تونید از شبیه ساز آن استفاده کنید. ولی کل حالِ برنامه نویسی آیفون اینه که برنامتونو روی دستگاه امتحان کنید. پس بهتره که یکی از این دستگاه هارو تهیه کنید ، اگه نمی خواهید زیاد خرج کنید می تونید با آیپاد تاچ شروع کنید ولی آیپاد تاچ دوربین نداره
  • دانلود SDK  آیفون برای برنامه نویسی از طریق همون اکانت دولوپر اپل ( یا اگه خواستید از طریق لینک های مختلفی که دوستان در فروم گذاشتند )

سوال :برنامه نویسی آیفون به چه زبانی است؟

به زبان object-c است که توسط شرکت Next( بنیانگذارش استیو جابز بوده ) تولید شده و الآن توسط اپل توسعه پیدا می کنه , این زبان شبیه C است چون از سی گرفته شده ولی تفاوت های زیادی دارید و زبانی شی گرا ( بر خلاف سی ) است . با زبان هایی مثل Java و C++ بسیار تفاوت در سینتکس دارد ولی مفاهیم شی گرایی در اکثر زبان های شی گرا شبیه به هم است گرچه تفاوت هایی در پیاده سازی و برداشت از مفاهیم وجود دارد.

در مورد خودم هم باید اضافه کنم که دانشجوی ترم آخرم مهندسی  نرم افزار هستم و چند سالی است که برنامه نویسی می کنم از c شروع کردم و با PHP کار کردم  , در حال حاضر هم برنامه نویسی java  می کنم و کمتر از 6 ماه است که با برنامه نویسی آیفون از طریق دوستانم شایان و بشیر در i-phone.ir آشنا شدم.

در مورد هدفم هم از نوشتن این آموزش ها اینه که با کمک شما اشکالات خودم برطرف شه , به علاوه اینکه نوشتن آموزش ها می تونه بهم کمک کنه که بیشتر وقت بگذارم برای برنامه نویسی آیفون و مطالب بیشتری برام جا بیوفته و اگه یه روزی خودم چیزی یادم رفت به آموزش های خودم رجوع کنم.

فکر می کنم برای شروع کافی باشه به زودی  با قسمت اول آموزش ها در خدمتتون هستم.