برنامه نویسی iOS

prp-e

متخصص سیستم های Apple
کاربر ممتاز
با سلام.

این موضوع رو ایجاد کردم تا هر سوال و مشکلی در رابطه با برنامه نویسی آیفون و آیپد داشتید بپرسید;)
 

prp-e

متخصص سیستم های Apple
کاربر ممتاز
ابزارهای موجود-کدام بهتر است؟

ابزارهای موجود-کدام بهتر است؟

با سلام.

در این پست، قصد دارم چند تا از قوی ترین سوییت های طراحی برنامه های آیفون/آیپد/آیپاد رو معرفی کنم:

1- اکس کد:

پلتفرم ارائه شده از طرف اپل، بسیار کامل و بر مبنای زبان Objective-C

2- Flash (در اصل پروژه های AIR):

کامل ترین ابزار برای کاربران ویندوز، این سوییت اگرچه برای مک هم موجوده ، ولی کسی با وجود اکس کد در مک، سراغ این سوییت نمیره. ولی در ویندوز خیلی کار منو راه انداخته.

3- دراگون فایر:

عینا اکسکد، ولی با زبان C++ و اجرا در محیط ویندوز (به علت گرون قیمت بودن لایسنس، کسی سراغش نمیره)

4- سنتانزا:

تبدیل کننده سایت ها و فایلهای html به خروجی های IPA، مختص ویندوز (متاسفانه ویندوز 64 بیتی هنوزم در آپدیت هاش ساپورت نمیشه :()

5- RhoMobile:

این سوییت بر اساس CSS و HTML5 کار میکنه؛ و به راحتی به شما خروجی IPA میده (در صورت داشتن cert های معتبر برنامه نویسی)
 

prp-e

متخصص سیستم های Apple
کاربر ممتاز
ثبت نام در Apple Developer و استفاده از رفرنس ها

ثبت نام در Apple Developer و استفاده از رفرنس ها

با سلام.

خیلی ها بر این باورند که تا 100 دلار سالانه مخصوص دولپر ها رو پرداخت نکنند، به هیچ عنوان نمیتونند از رفرنس های مخصوص برنامه نویسان استفاده کنند.

البته اینطور نیست و شما میتونید براحتی با ثبت اپل آیدی خود(همان آیدی که باهاش از آیتونز استور و اپ استور خرید میکنیم) ؛ از این امکانات استفاده کنید:

1- Developer How to(s)

2- Developer SDK(Unofficial)

3- Developer Library

4- Basic iPhone programming videos

5- Apple developer forum support

فقط کافیه به این آدرس برید و یک اپل آیدی تهیه کنید:

http://appleid.apple.com

و در اینجا اقدام به تهیه اکانت مخصوص برنامه نویسان کنید:

http://developer.apple.com
 

prp-e

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

طبق گفته های خود اپل؛ در کتابخانه توسعه دهندگان، برنامه های آیفون از معماری MVC پیروی میکنند (که البته چون من دولپر رسمی نیستم تا همینجا بیشتر توضیح نداده بود :|)

خب اما در کل، اپلیکیشن های آیفون به فرمت IPA هستند که هر فایل IPA شامل چندین زیر پوشه هست.

تمام محتویات برنامه، درون پوشه Payload قرار میگیرند، که بعد از نصب و اکسترکت شدن برنامه روی آیفون، این پوشه از بین میره و پوشه ای متشکل از حروف و عدد در این آدرس قرار میگیره(که این آدرس هم نیازمند رمز گشایی فرمور یا جیلبرک کردن دستگاه هست):

var/mobile/Applications

خب اگر از طریق برنامه iFile به این آدرس بریم ، و اسم برنامه ها رو ببینیم، در هر پوشه ، چندین پوشه قرار داره (معمولا 4تا):

1- پوشه اصلی
2- Document
3- tmp
4- Library

که موارد 1؛2 بیشترین کاربرد رو دارند.

خب توضیح مورد 1:

این پوشه، یک پوشه با پسوند app و پرمیشن 775 هست؛ که کل برنامه درونش قرار داره، یعنی هرچی ایجاد میکنیم و مینویسیم در قالب فایل های اصلی این پوشه در میان که بعدها در موردشون حسابی توضیح میدم!

مورد 2:

این مورد، بیشتر در بازی ها و برنامه هایی که امکان ذخیره فایل دارند به کار میره. مثلا بازی Infinity Blade، تمام سیو هاش در این پوشه هست !

دسترسی به این پوشه: این پوشه پرمیشن 777 داره، بنابراین همه کامپیوتر هایی که اپل آیدی شما باهاش اتورایز شده میتونه به این قسمت دسترسی داشته باشه. مثلا زنگ های ساخته شده با Ringtones در گوشی، در این پوشه هستند و شما بعد از اتصال گوشی به آیتونز میتونید این ها رو ببنید و برای دیدنشون اصولا نیازی به دکریپت (رمز گشایی) یا جیلبرک ندارید.

اما مورد استثنا: سیو بازیها استثنا هست، چون این سیو ها دستکاریشون به شکل Cheat Code و Trainer درمیاد، و این هم غیرقانونی هست، در بازی ها پرمیشن 644 دارند ولی در برنامه هایی مثل رنگتونر، Pages و ... پرمیشن همون 777 هست.

موفق باشید ;)
 

prp-e

متخصص سیستم های Apple
کاربر ممتاز
خب در اینجا با همیم تا یاد بگیریم که چطور درون پوشه app تغییر بدیم (این کار صد البته غیرقانونی هست چون به نوعی هک و به خطر انداختن منافع سازنده برنامه هست، ولی گاهی هم میتونه موجب پرطرفدار شدن برنامه بشه. مثلا خود من ده ها برنامه رو فارسی کردم اینطوری و دو سه تاشون هم سازنده اصلی قبول کرده :) )

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

حالا ببینیم که چه فایلهای اول کار در این پوشه میبینیم؟

1- Info.plist:

این فایل قلب تپنده برنامه هست و دار و ندار برنامه بهش بستگی داره :d
اگر این فایل نباشه یا ادیت اشتباه بشه، 100 درصد برنامه کرش میکنه :)

2- فولدر های زبان
ا
این فولدرها، به شکل سری فولدرهایی با پسوند lporoj هستند، مثلا English.lproj
درون این پوشه ها یک سری Property List وجود داره که با ادیتشون میشه برنامه رو به زبان های دیگر ترجمه کرد.

3- سه فایل آیکن:

خب بعد از اینا سه تا تصویر PNG میبینید که به این نام ها هستند:

Icon.png با رزولشن 57*57 که برای نسل دوم و سوم آیفون و آیپادتاچ بکار میره (iPhone 3g, 3gs ; iPod 2g,3g)

Icon@2x.png که با رزولشن 114*114 هست و برای نسل چهارم و پنجم + دو نسل آیپد به کار میره (iPhone 4, 4S, iPod 4g, iPad,iPad2)

Icon72.png که برای حالت Safe mode نسل چهام و پنجم دیوایسها به کار میره.

نکته: دقت داشته باشید که در حالت Safe Mode در نسل دوم و سوم آیکان ها تغییری نمیکنند. البته بعد از ارائه 4.3 توسط اپل چهارم و پنجم هم تغییری نمیکنن دیگه :)

خب ولی گاهی هم فایل های غیرمعمول دیده میشه که باهاشون کاری نداریم :)
 

prp-e

متخصص سیستم های Apple
کاربر ممتاز
در این بخش، قصد دارم تا حدودی در مورد برنامه نویسی Cydia توضیح بدم،

خب در ابتدا ببینیم برنامه نویسی Cydia به چند دسته تقسیم میشه:

1- تم سازی :

این قسمت، بیشتر به دانش وب و همچنین گرافیک نیاز داره. البته تا حدودی هم برنامه نویسی میخواد، ولی 99 درصد بر میگرده به توانمندی وب و گرافیک شما :)

2- ترنسلیشن:

ترنسلیشن یا ترجمه هم جزو برنامه نویسی سیدیا محسوب میشه. چون جهت ترجمه سیستم عامل iOS؛ شما باید جیلبرک کنید و به فایلهای سیستمی دسترسی داشته باشید تا بتونید فایلهای Property List مربوط به زبان رو ویرایش کنید.

3- توییک:

این قسمت رو بعد ها مفصل توضیح خواهم داد؛ چون خودش شامل چندین بخش مختلف میشه

4- فایل سیستم:

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

از جمله این برنامه ها میشه به iFile، Winterboard و همچنین Fake Carrier اشاره کرد.
 

rezav2012

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

nn4e

عضو جدید
هركس پروژه هاي iOS و كلا مكينتاش خواست اطلاع بده. نوشته شده به زبان Objective-C هستن.
 
بالا