Juan Valdez Написано Август 20, 2013 Пријави Подели Написано Август 20, 2013 Шта је iOS? iOS је оперативни систем који покреће мобилне уређаје компаније Apple (iPhone, iPod Touch и iPad). Зашто да развијам апликације за овај ОС? Зато што је забавно. Зато што можете пуно научити и стечено знање вам може користити и касније, чак и ако се одлучите за неку другу платформу. Зато што је тотално луд осећај у џепу носити програме које сте сами написали. Зато што имате потенцијално тржиште које броји милионе корисника широм света. Можете зарадити нешто са стране. Ако сте заиста добри и заиста срећни, можда зарадите и мало више. А у сваком случају ћете додати значајну ставку у свој CV и научити много ствари које ће вам помоћи на интервјуима. Оно што мене лично покреће је истраживање разних могућности ове младе класе мобилних уређаја за обављање разних послова у покрету. Истина, десктоп рачунари и велики монитори ће остати незамењиви за одређене задатке, али постоји јако пуно ствари које се са подједнаком ефикасношћу могу обавити на, рецимо, таблету, док седите у парку и слушате птичице, уместо да седите у некој загушљивој канцеларији. Недостаје само да неко напише неопходан софтвер. Неке сјајне ствари су већ написане и професионалци из разних области их користе. Неке друге чекају можда баш вас. Зашто не Андроид? А зашто не и једно и друго или можда нешто треће (рецимо Windows Phone, ако успе да се провуче)? Мане? О техничким манама и врлинама ћемо касније. Главна мана на самом почетку је то што почетак није бесплатан. Апсолутно је потребан Mac рачунар (може и најјефтинији) и јако је пожељно имати бар један од горе наведених мобилних уређаја и iOS Developer Program лиценцу (100$ годишње, касније ћу описати процедуру за регистрацију из Србије). Mac рачунар је вероватно могуће заменити неким Hackintosh-ом, па ако неко жели да проба ствари које ћу писати на овој теми, а нема пара или не жели да купи Mac, може да проба и јави јел успео. У Србији је најјефтинији Mac Mini око 72000 динара. У САД је 600$, па ако вам рођак Звонко долази у посету, може да спакује један међ' чарапе (у питању је поприлично мала скаламерија). Потребно предзнање У принципу се може кренути од нуле, али је пожељно познавати језик C и основе објектно-орјентисаног програмирања. Плутон, Grizzly Adams and Иван ♪♫ је реаговао/ла на ово 3 Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Juan Valdez Написано Август 20, 2013 Аутор Пријави Подели Написано Август 20, 2013 Неопходни алати Све што је потребно за писање, дебаговање и тестирање 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 са свим технологијама, довели Стеву назад и остало је историја. Иван ♪♫ је реаговао/ла на ово 1 Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Juan Valdez Написано Август 20, 2013 Аутор Пријави Подели Написано Август 20, 2013 Једну важну ствар одмах да кажем. Кад је development за Apple платформе у питању, не очекујте да ћете дуго моћи да се одмарате. Apple воли да гура ствари напред (некад изгледа као да то раде главом кроз зид), па ће вас практично присилити да стално апдејтујете свој код за најновнију верзију ОС-а. Много је ређе да се деси нешто као на Windows-у, да програм написан за 95-ицу опуштено ради на висти. Ако Apple у документацији наведе да је неки API deprecated, што пре преправите свој код да користи нови API. Стари ће вероватно бити избачен из следеће верзије OS-a и ваша апликација неће радити како треба. Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Милан М. Написано Август 20, 2013 Пријави Подели Написано Август 20, 2013 Живио Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Juan Valdez Написано Август 21, 2013 Аутор Пријави Подели Написано Август 21, 2013 Objective-C Главни језик за iOS Development је Objective-C. Objective-C је мали, веома једноставни, објектно-орјентисани строги надскуп C-a. Ово значи да је сваки C програм уједно и Objective-C програм и да се C код опуштено и сасвим природно може користити унутар Objective-C класа. За нијансу мање природно можете користити и C++. Бесмислено је да претворим ову тему у курс језика када тога има на интернету на тоне. Али пошто је у питању донекле егзотичан језик (људи обично знају и користе Java, C++, C#...) са неким својим специфичностима, даћу кратак преглед, како бисте стекли некакав осећаj с чим имате посла. Уместо да теоретишем превише, најбоље је да на конкретним кратким примерима демонстрирам основе. Па да кренем полагано... Милан М., Grizzly Adams, Плутон and 1 члан је реаговао/ла на ово 4 Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Grizzly Adams Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 Feel the passion! Crveni Baron је реаговао/ла на ово 1 Цитат Помени @ ΜΟΛΩΝ ΛΑΒΕ Link to comment Подели на овим сајтовима More sharing options...
Crveni Baron Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 Jel' ovo gratis? Цитат Помени @ Svaka čast Vučiću! Spasio si Srbiju iz ruku lopova i društvenih parazita! Link to comment Подели на овим сајтовима More sharing options...
Juan Valdez Написано Август 21, 2013 Аутор Пријави Подели Написано Август 21, 2013 Овако изгледа дефиниција (декларација, интерфејс) једне једноставне 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 Плутон је реаговао/ла на ово 1 Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Juan Valdez Написано Август 21, 2013 Аутор Пријави Подели Написано Август 21, 2013 Jel' ovo gratis? Ми капиталисти смо познати као доброчинитељи. Crveni Baron је реаговао/ла на ово 1 Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
Crveni Baron Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 Uh, al si je okitio tebra, ima da se isprepadaju od tog jezika ... Цитат Помени @ Svaka čast Vučiću! Spasio si Srbiju iz ruku lopova i društvenih parazita! Link to comment Подели на овим сајтовима More sharing options...
feeble Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 Ух, баш је ружна синтакса! Цитат Помени @ Слово Љубве Link to comment Подели на овим сајтовима More sharing options...
Crveni Baron Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 Ух, баш је ружна синтакса! Ma super je samo sto ova izgleda malo strasnije za pocetak ali je kada se naviknes sjajno Цитат Помени @ Svaka čast Vučiću! Spasio si Srbiju iz ruku lopova i društvenih parazita! Link to comment Подели на овим сајтовима More sharing options...
Juan Valdez Написано Август 21, 2013 Аутор Пријави Подели Написано Август 21, 2013 Ух, баш је ружна синтакса! Навикнеш се брзо. Делимично је синтакса преузета из Smalltalk-a и она наглашава да се је позивање метода у ствари веома динамички message passing ( о томе нешто касније). Поред тога, синтаксом се жели постићи да језик буде помало налик на енглески. Дугачка имена променљивих и метода су пожељна. Ево како се позива горе декалрисани метод. ZRUTopic *topic = [ZRUTopic topicWithName:@"iOS Development"]; [feeble postMessage:@"Ух, баш је ружна синтакса!" inTopic:topic]; Цитат Помени @ Link to comment Подели на овим сајтовима More sharing options...
feeble Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 А шта су + и - испред декларације метода? Цитат Помени @ Слово Љубве Link to comment Подели на овим сајтовима More sharing options...
Crveni Baron Написано Август 21, 2013 Пријави Подели Написано Август 21, 2013 Ima li neki kompajler za windows? Ovako je sve malo apstraktno suvise... Mozda ovo http://www.techotopia.com/index.php/Installing_and_using_GNUstep_and_Objective-C_on_Windows Цитат Помени @ Svaka čast Vučiću! Spasio si Srbiju iz ruku lopova i društvenih parazita! Link to comment Подели на овим сајтовима More sharing options...
Препоручена порука
Придружите се разговору
Можете одговорити сада, а касније да се региструјете на Поуке.орг Ако имате налог, пријавите се сада да бисте објавили на свом налогу.