Jump to content

iOS Development

Оцени ову тему


Препоручена порука

Шта је iOS?

 

iOS је оперативни систем који покреће мобилне уређаје компаније Apple (iPhone, iPod Touch и iPad).

 

Зашто да развијам апликације за овај ОС?

 

Зато што је забавно. Зато што можете пуно научити и стечено знање вам може користити и касније, чак и ако се одлучите за неку другу платформу. Зато што је тотално луд осећај у џепу носити програме које сте сами написали. :) Зато што имате потенцијално тржиште које броји милионе корисника широм света. Можете зарадити нешто са стране. Ако сте заиста добри и заиста срећни, можда зарадите и мало више. А у сваком случају ћете додати значајну ставку у свој CV и научити много ствари које ће вам помоћи на интервјуима. Оно што мене лично покреће је истраживање разних могућности ове младе класе мобилних уређаја за обављање разних послова у покрету. Истина, десктоп рачунари и велики монитори ће остати незамењиви за одређене задатке, али постоји јако пуно ствари које се са подједнаком ефикасношћу могу обавити на, рецимо, таблету, док седите у парку и слушате птичице, уместо да седите у некој загушљивој канцеларији. Недостаје само да неко напише неопходан софтвер. Неке сјајне ствари су већ написане и професионалци из разних области их користе. Неке друге чекају можда баш вас.

 

Зашто не Андроид?

 

А зашто не и једно и друго или можда нешто треће (рецимо Windows Phone, ако успе да се провуче)? :)

 

Мане?

 

О техничким манама и врлинама ћемо касније. Главна мана на самом почетку је то што почетак није бесплатан. Апсолутно је потребан Mac рачунар (може и најјефтинији) и јако је пожељно имати бар један од горе наведених мобилних уређаја и iOS Developer Program лиценцу (100$ годишње, касније ћу описати процедуру за регистрацију из Србије). Mac рачунар је вероватно могуће заменити неким Hackintosh-ом, па ако неко жели да проба ствари које ћу писати на овој теми, а нема пара или не жели да купи Mac, може да проба и јави јел успео. У Србији је најјефтинији Mac Mini око 72000 динара. У САД је 600$, па ако вам рођак Звонко долази у посету, може да спакује један међ' чарапе (у питању је поприлично мала скаламерија). :)

 

Потребно предзнање

 

У принципу се може кренути од нуле, али је пожељно познавати језик C и основе објектно-орјентисаног програмирања.

Link to comment
Подели на овим сајтовима

Неопходни алати

 

Све што је потребно за писање, дебаговање и тестирање iOS апликација упаковано је у развојном окружењу Xcode. Можете га бесплатно скинути једним кликом са Mac App Store, али пошто ми у Србији једино можемо да се региструјемо у хрватској продавници, користећи трикове са лажном хрватском адресом, онда је (можда) једноставније регистровати бесплатан Developer налог на https://developer.apple.com а онда скинути најновији Xcode са https://developer.apple.com/devcenter/ios/index.action. Ту има и неких додатних алата који вам за почетак скоро сигурно неће требати. У ствари, налог ће вам бити потребан за документацију, тако да је свакако врло пожељно да га направите. Тренутна верзија је Xcode 4.6.3 и долази са SDK за iOS 6 и OS X 10.8, а тренутна бета верзија је Xcode 5 са SDK за iOS 7 и OS X 10.9. Ове бете су тренутно под NDA, па нећу моћи много да причам о њима. iOS 7 има подоста занимљивих (и по некима контроверзних) промена. За мање од месечак дана ће коначне верзије изаћи у јавност, а до тада ћу писати о неким стварима које су основе и користити screenshot-ове старих верзија.

 

Документација

 

Током овог путовања ваш најбољи другар ће бити http://developer.apple.com/library/ios/navigation/index.html

 

Појединачне документе ћу препоручивати како будем писао о некој конкретној теми.

 

Online курсева што се тиче, the one and only is Coding Together: Developing Apps for iPhone and iPad ( winter 2013) by Paul Hegarty, given to you by Stanford University. Поред тога што је овај син ирског имигранта луд као струја, изузетно је паметан, стручан и добар предавач. Радио је у комапнији NeXT Computer, коју је Стив Џобс основао када је осамдесетих практично најурен из Apple-a. У тој компанији су настале технологије које су и данас основа iOS-a OS X-a. Наиме, када је Apple био пред банкротом, купили су NeXT са свим технологијама, довели Стеву назад и остало је историја.   :)

Link to comment
Подели на овим сајтовима

Једну важну ствар одмах да кажем. Кад је development за Apple платформе у питању, не очекујте да ћете дуго моћи да се одмарате. Apple воли да гура ствари напред (некад изгледа као да то раде главом кроз зид), па ће вас практично присилити да стално апдејтујете свој код за најновнију верзију ОС-а. Много је ређе да се деси нешто као на Windows-у, да програм написан за 95-ицу опуштено ради на висти. Ако Apple у документацији наведе да је неки API deprecated, што пре преправите свој код да користи нови API. Стари ће вероватно бити избачен из следеће верзије OS-a и ваша апликација неће радити како треба.

Link to comment
Подели на овим сајтовима

Objective-C

 

Главни језик за iOS Development је Objective-C. Objective-C је мали, веома једноставни, објектно-орјентисани строги надскуп C-a. Ово значи да је сваки C програм уједно и Objective-C програм и да се C код опуштено и сасвим природно може користити унутар Objective-C класа. За нијансу мање природно можете користити и C++.

 

Бесмислено је да претворим ову тему у курс језика када тога има на интернету на тоне. Али пошто је у питању донекле егзотичан језик (људи обично знају и користе Java, C++, C#...) са неким својим специфичностима, даћу кратак преглед, како бисте стекли некакав осећаj с чим имате посла.

 

Уместо да теоретишем превише, најбоље је да на конкретним кратким примерима демонстрирам основе. Па да кренем полагано...

Link to comment
Подели на овим сајтовима

Овако изгледа дефиниција (декларација, интерфејс) једне једноставне Objective-C класе. Иако је пример једноставан, на њему се многе основне ствари могу показати (синтакса, конвенције, основни типови итд.). Касније ћу објашњавати све ово корак по корак и показати како се пише имплементација.

 

P. S.

 

Игноришите дизајн класа (на пример, да ли ZRUMember треба да зна како да постује или то треба да чини нека ZRUPostMenager класа). Ово је само демонстрација.

 
// ZRUMember.h
 
@class ZRUPost;
@class ZRUTopic;
@class ZRUMember;
 
typedef NS_ENUM(NSInteger, ZRUUserType) {
    ZRUUserTypeOrthodox = 0,
    ZRUUserTypeNonOrthodoxCrhistian = -1,
    ZRUUserTypeAgnostic = -2,
    ZRUUserTypeAtheist = -3,
    ZRUUserTypeNonChristianBeliever = -4,
    ZRUUserTypeArtemit = -100,
    ZRUUserTypeModerator = 1,
    ZRUUserTypeAdministrator = 2,
    ZRUUserTypeTechnicalAdministrator = 3,
    ZRUUserTypeDejanBicanic = 1000
};
 
@interface ZRUMember : NSObject
 
@property (nonatomic, readonly) NSString *userName;
@property (nonatomic) NSString *displayName;
@property (nonatomic, readonly) NSUInteger numberOfPosts;
@property (nonatomic, readonly) NSArray *friends;
@property (nonatomic, readonly, getter = isBanned) BOOL banned;
 
- (id)initWithUserType:(ZRUUserType)userType userName:(NSString *)userName displayName:(NSString *)displayName;
+ (ZRUMember *)adminWithUserName:(NSString *)userName displayName:(NSString *)displayName;
- (BOOL)postMessage:(ZRUPost *)message inTopic:(ZRUTopic *)topic;
- (void)becomeFriendWithMember:(ZRUMember *)member;
- (NSArray *)usersTopics;
- (NSArray *)usersPosts;
 
@end
Link to comment
Подели на овим сајтовима

Ух, баш је ружна синтакса!

 

 

Навикнеш се брзо. Делимично је синтакса преузета из Smalltalk-a и она наглашава да се је позивање метода у ствари веома динамички message passing ( о томе нешто касније). Поред тога, синтаксом се жели постићи да језик буде помало налик на енглески. Дугачка имена променљивих и метода су пожељна. Ево како се позива горе декалрисани метод.

ZRUTopic *topic = [ZRUTopic topicWithName:@"iOS Development"];
[feeble postMessage:@"Ух, баш је ружна синтакса!" inTopic:topic];
Link to comment
Подели на овим сајтовима

Придружите се разговору

Можете одговорити сада, а касније да се региструјете на Поуке.орг Ако имате налог, пријавите се сада да бисте објавили на свом налогу.

Guest
Имаш нешто да додаш? Одговори на ову тему

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Чланови који сада читају   0 чланова

    Нема регистрованих чланова који гледају ову страницу

×
×
  • Креирај ново...