English site
  • Uvod u iPhone programiranje

    Objavio: Hrvoje Jurišić, 12. 11. 2009. u kategoriji iPhone development

    iphone

    Kao uvod u ovaj i sve ostale postove koji će biti objavljeni na ovom blogu želio bih napisati par rečenica o tome zbog čega sam se odlučio na bloganje o iPhone programiranju i naravno nešto o meni. Kako bih pridonio i pomogao da se poveća broj iPhone programera u Hrvatskoj odlučio sam pisati o razvoju aplikacija za iPhone i na hrvatskom jeziku. Moje ime je Ivan Kalaica i mogu ponosno reci da sam zaposlenik tvrtke imenom Inchoo.

    Inchoo je tvrtka čije je glavna djelatnost razvoj online trgovina (os-commerce) i iPhone aplikacija te je kao takva prva u Hrvatskoj. Što se tiče razvoja iPhone aplikacija Inchoo surađuje s američkom tvrtkom Surgeworks preko koje i dobiva uglavnom sve iPhone projekte. Za sada sam jedini zaposlenik koji se bavi iPhone programiranjem i nadam se da ce se broj takvih u Inchoo-u uskoro povećati.

    Za programiranje iPhone i iPod Touch aplikacija prije svega potreban vam je Mac. Nakon što uspješno instalirate iPhone SDK ( koji je dostupan na iPhone Dev Center ) spremni ste za novi izazov a to je naravno učenje. Za instalaciju iPhone SDK Apple od vas zahtjeva da se registrate kao developer na Apple-ovm iPhone Dev Center-u.

    Kao uvod u ovaj prvi članak o iPhone programiranju pokusati cu ukratko objasniti alate i pojmove kojima ćete se koristiti odnosno susretati te okruženje u kojem ćete proizvoditi iPhone i iPod Touch aplikacije. Okruženje i glavni alat u kojemu se razvijaju aplikacije naziva se Xcode. Kako i sami znate programski jezik kojime ćete se koristiti u ovu svrhu jest Objective-C a naziv framework-a kojim ćete te se uglavnom koristiti je CocoaTouch. Naravno tu je i Interface Builder (WYSIWYG) alat koji ce vam uvelike olakšati posao kreiranje grafičkog sučelja.

    Osim svega navedenog na raspolaganju imate i alat pod nazivom Instruments pomoću kojega ćete provjeravati zauzeće ili curenje memorije vaše aplikacije, količinu alokacije vaših objekata itd. Naime, kod razvoja aplikacija za iPhone bitno je znati da se morate pobrinuti sami za destrukciju ili otpuštanje svih alociranih objekata. Možda je sada vaše mišljenje negativno te da je to veliki nedostatak ali nakon što krenete programirati svoje prve aplikacije shvatiti ćete da je to zapravo jako velika prednost osobito ako vam je ovo prvi doticaj s OOP. Samo razumjevanje načina kako sustav kreira, sto čini s memorijom i kako reagira uvelike ce vam pomoći kod traženja i na koncu nalaženja pogrešaka (debugging).

    Za testiranje vaših aplikacija možete koristiti iPhone Simulator. Nije vam nužno potreban sam iPhone uređaj ali svakako je preporučljivo da ga imate u svrhu testiranja jer neke dodatne mogućnosti ipak simulator (ma koliko dobar bio) ne može “odglumiti”. SDK je besplatan kao takav i on vam može biti dovoljan za programiranje ali aplikacije ne možete instalirati niti na jedan iPhone uređaj. Za tu svrhu ili za prodaju aplikacije potrebno je platiti Apple-u minimalno 99$ kako bih se logirati na Program Portal preko kojega se vrši predaja same aplikacije na App Store i prije svega dobiva dozvola za instaliranje aplikacije na vas iPhone u svrhu testiranja.

    Zanimljivo kako je Apple osmislio strukturu samog poslovanja tj. način na koji se pruža usluge krajnjem kupcu aplikacija te uloga i (ne)obaveza programera kao vlasnika aplikacije. Vas zadatak je kreirati aplikaciju, postavite svoje uvijete prodaje (cijenu), postavite kategoriju aplikacije, predate je Apple-u putem vašeg korisničkog računa na Program Portal-u i naravno nakon toga čekate odobrenje. Nakon sto je Apple odobri i prodaja krene vi dobivate 70% od cijene vašeg proizvoda.

    AppStore je dio iTunes-a gdje se nalaze sve iPhone aplikacije. To je mjesto gdje se vlasniku aplikacije daje mogućnost prodaje ili besplatne predaje aplikacije korisnicima. Kupci aplikacije mogu komentirati i ocijeniti pojedine aplikacije te na taj način pridonijeti marketingu vašeg proizvoda.

    Apple se i ovaj put pobrinio za svoje iDevelopere te svu potrebnu literaturu, primjere koda i još mnogo toga objavio na svom iPhone Dev Center portalu što uvelike pomaze samom postupku učenja. Svi materijali su dostupni nakon registracije koja je besplatna. Sada kada imate pristup iPhone Dev Center-u za početak učenja preporučio bih vam da prvo krenete s učenjem programskog jezika, odnosno Objective-C. Objective-C je jednostavni programski jezik dizajniran da omogući sofisticirano objektno orijentirano programiranje. Objective-C je zapravo proizlazi iz standardnog ANSI C programski jezika i proširuje ga sa sintaksom za definiranje klasa, metoda i ostalih struktura koje cine jedinstveni objektno orijentirani model.

    Kada savladate osnovne principe koje se koriste za kreiranje programa u Objective-C možete se prebaciti na knjigu iPhone Application Programming Guide gdje ćete naci upute za kreiranje vase prve aplikacije sa primjerima koda. Ubrzo nakon toga shvatiti ćete sintaksu ovog programskog jezika te počnite s detaljnijim proučavanjem CocoaTouch framework-a. Naravno, osnovne informacije koje svaki iPhone programer mora znati naći ćete u Cocoa Fundamentals Guide knjizi koja se prije svega preporučuje i za Mac OSX sustave. Ova knjiga obuhvaća osnove Objective-C programskog jezika, programerske konvencije i dizajn patterne koje koristi UIKit i mnogi ostali frameworks-i. Mislim da je za početak vašeg učenja a i mog bloganja ovo sasvim dovoljno. Sretno!

  • 12 Responses to “Uvod u iPhone programiranje”

    1. Josip says:

      Svaka čast legendo. Razmišljam o iPhone programiranju, pa je ovo točno ono sto tražim!
      Pozdrav

    2. ivana says:

      Htjela bih napraviti nekakvu jednostavnu aplikaciju koja bi se vrtila na iPhonu i to za potrebe diplomskoga rada [5. godina na ETF-u]. Sve što ste naveli u blogu našla sam na developer.apple.com/iphone/. Već bih ja i počela lagano s tim, ali koristim Windowse, pa me zanima jel ima kakav software koji će raditi pod Windowsima?

    3. fichek says:

      @ivana uskoro™ izlazi novi Flash koji ce izmedu ostalog imat opciju izrada iPhone appova (i u Mac i u Windows verziji.)

      A tu su i razna polu-rjesenja kao npr. http://monotouch.net koji ti omogucava razvoja iPhone appova u C#.

      Al ne moze se to nista usporedit s pravim Xcodeom i iPhone SDKom na pravom Mac OS Xu

    4. ivan says:

      Nazalost, zasada iPhone aplikacije se mogu raditi samo na Mac OSX-u. :(
      BTW – o kakvoj aplikaciji je riječ?

    5. fichek says:

      Ivane, a MonoTouch? Windows developeri ionako preferiraju C# i .Net

      Je da je skup, al jeftiniji je od Maca ;)

    6. Tonisa says:

      Pozdrav i hvala za kvalitetno pojašnjenje.
      Pitanje slijedi… a šta je sa onim ljudima koji nemaju pojma o programiranju bilo koje vrste a imaju sjejnu ideju za aplikaciju? Postoji li način da se iznajmi usluga programiranja i kreira aplikacija za naručioca sa punim vlasničkim pravima koji glase na istog ? Ja imam stalni posao pa nemam puno slobodnog vremena da bih učio programiranje. Jel se takvo nešto prakticira inače u svijetu?

    7. ficho says:

      Pa eto imas Inchoo koji radi aplikacije :) a ima i drugih domacih firmi koje to rade…

      A ima i T-Mobileov natjecaj Budi KreaTivan koji ima i kategoriju koncept aplikacije… Svasta ima :)

    8. Danco says:

      Pozdrav!Ovo me sada jako zainteresiralo,razmisljam i okupnji mac racunala i rega na sdka.Mislim da kreairanje igara za Iphone je mogucnost velike zarade.Ja se ukljucujem u taj posao u 7.mj.Mislim da sve u svemu kreativnost i malo znanja moze donijet veliku svotu novca u ovom posla u kojem svi u krajnosti cekamo.

      Pozdrav!

    9. S.I.P.A says:

      Pozdrav.

      Jako lijep uvod s vaše strane, ja i moj prijatelj smo odlučili zakoračiti u taj magični svijet koda za iPhone. Ovako postavit ću možda glupo pitanje :) gore ste naveli da prvo treba krenuti sa Objektnim C programiranje. Tražeći ovih dana po netu ja sam našao dosta “lijepih” knjiga za početnike, ono što me buni je sada to dali je isto Objektno C i C++ programiranje, tačnije jeli se to rado o istim knjigama jer koliko sam uspio shvatiti C++ je nasljednik običnog C i C++ je objektni. Jeli to isto, jeli syntaxa ista ili su to potpuno dvije različite stvari, znači dali krenuti sa C++ knjigom ili treba tražiti tačno Objektno C programiranje bez ovih pluseva :) Oprostite na možda ovako glupom pitanju koje možda u svojoj osnovi i nema smisla.
      Neke od knjiga koje sam našao na preporuku su:

      1) C++ From Ground UP – Herbert Schildt
      2) Kochan – Programming in Objective-C 2.0 2e (Pearson, 2009)
      3) Objective-C for Dummies
      4) Dietel introduction to object oriented
      5) Robert Laffor introduction to object oriented
      6) C++ How to Program by Deitel & Deitel
      7) Bruce Eckel – Thinking in C++

      I naravno sve ostale knjige pod nazivom iPhone and SDK

    10. Neven says:

      Ukratko, C++ i Objective C su dvije vrlo različite stvari.
      Pitanje nije ni najmanje glupo, već je imenovanje tih programskih jezika dosta zbunjujuće.

      Vrlo dobro poznajem programiranje u C-u, C++, Javi, a Objective-C i sam trenutno učim.

      Što se tiče učenja objektnog C-a preporučio bih knjigu “OReilly – Learning iPhone Programming (Mar 2010)”.

      Pozdrav

      Neven

    11. 100one says:

      Lijep pozdrav.

      Evo kao prvo pohvalio bih autora na iszvrsnom clanku i stvarno lijepom objasnjenju.
      Ja se bavim flash programiranjem nekih 2 godine i mogu rec da sam savlado neke osnove. Ali kao sto svi znaju mogucnosti su neiscrpne. Pocetak programiranja je definitivno tezak posao, ali onaj ko ga zavoli mislim da ide uz trud i vrijeme naravno.
      Mnogi ljudi vide tu brz nacin zarade, ali mislim da treba puno vremena, rada i strpljenja da bi se doslo do toga. Evo ja isto razmisljam na prelazak na mac, nakon reklamiranja igara na mochiadsu i slicnim serverima gdje zaradjujete jako male novce po posjeti. Ali prvo cu igre iz flesha pretvorit u iphone preko jednog online portala te probat prebacit na itunes, ukoliko se taj potez isplati onda definitivno ucenje rada na mac-u i kupovina istog.

    Leave a Reply