Kako podesiti pametne telefone i računare. Informativni portal

iOS programiranje od nule. Swift

Poštovani, ovim člankom otvaram novu rubriku posvećenu programiranju za iPhone, gdje ćemo se dotaknuti tema koje su zanimljive kako početnicima i neupućenima, tako i ObjC guruima, koji, nadamo se, neće iznevjeriti da ispravimo naše greške svojim komentarima. Današnja lekcija je samo u informativne svrhe.

Ciljevi lekcije

1. Gdje započeti programiranje za iPhone.
2. Gentleman's developer kit.
3.Domaći.

Uvod

Svi vidimo divlji uspjeh AppStore-a; dijelovi aplikacija rastu kao gljive nakon kiše. Urednici svih informativnih portala o iPhone-ima su izgubili noge i, ne namigujući, pišu, pišu i pišu kritike. A programi se stalno pojavljuju i pojavljuju i pojavljuju. Vrijeme je da se uključimo u ovaj proces i uzmemo svoj dio svečane pite.

Gdje početi? Pitanje je prilično retoričko. Naravno, ako ste, dragi čitaoče, pravnik ili, recimo, građevinar, biće vam veoma teško da počnete i najverovatnije ne biste to trebali da radite ozbiljno, jer je, kako mi se čini, bolje uradite jednu stvar dobro nego nekoliko stvari uradite loše. Ipak, nemojmo isključiti činjenicu da želite programirati za dušu, da je to vaš novi hobi. Dobar dan onda. Međutim, ako ti, dragi moj prijatelju, već imaš iskustva u razvoju aplikacija, bez obzira na jeziku - C, Pascal, Assembly, Delphi ili konačno BASIC ili čak Logo (postojao je jedan u mom udžbeniku informatike početkom 90-ih), onda definitivno bi trebalo da se okušam u iPhone aplikacijama.

Ovdje dolazimo do odgovora na glavno pitanje, odakle početi. Počnite s osnovama, ne morate ići daleko, dat ću vam samo nekoliko linkova koji će vas na kraju odvesti "u Kijev":

1. Za ljude koji općenito nisu upoznati sa jezikom C - počnite s ovim

2. Kada programirate za iPhone, trebat će vam znanje OOP-a (objektno orijentirano programiranje). Nije tako teško kao što bi ime moglo sugerirati; zapravo, OOP se zasniva na nekoliko osnovnih principa, koje, kada ih shvatite, lako možete stvoriti remek-djela. Pročitajte o OOP-u.

3. Ako poznajete osnove C, a OOP vam ne stvara nikakve poteškoće, ipak vam se preporučuje da pročitate razliku između Objective-C koji se koristi u MacOS-u (i iPhone-u) u odnosu na tradicionalni C i C++. Ovo je vrlo dobro opisano.

4.Također ćete naći odgovore na mnoga pitanja na našem forumu u.

Džentlmenski iPhone programerski komplet, poput putne torbe, prilično je rijedak i, u principu, početna faza ne zahtijeva ništa osim prirodnog i skupog. Evo svega što nam je potrebno za početak:

b) Operativni sistem MacOS Leopard verzija 10.5.5.

c) Toolkit sa Apple web stranice, takozvani SDK, razvojni komplet. Ovaj paket sadrži sve što je potrebno za razvoj. Možete ga preuzeti ovdje: http://developer.apple.com/iphone, nakon registracije.
d) Takođe nam je potrebno strpljenje i upornost. Bez ovoga, nažalost, nema šanse.

Mnogi ljudi mogu odmah odustati nakon tačke A. Iskreno ću vam reći, prije nego što sam upoznao iPhone, nikada nisam bio u interakciji s Appleom, i napisao sam svoj prvi program za iPhone čak i bez MacBook-a. Ja sam strastveni korisnik Windowsa, koji je svoj odrasli život započeo sa Windowsom 3.1 i doživio da vidim Windows Vista. Oduševila me pogodnost MacOS-a i nimalo ne žalim zbog ove kupovine, iako još uvijek provodim lavovski dio svog vremena na računari sa operativnim sistemom od Billa Gatesa.

Za one koje ove riječi ne uvjeravaju, još uvijek postoji izlaz. Od prelaska računara sa Apple-a na platformu sa Intel procesorom, postalo je moguće (naravno, ne bez plesa i tambura) instalirati MacOS na običan PC računar, priznajem da sam to uradio sam. U svijetu je takav OS poznat pod različitim nazivima: Kaliway, Hackint0sh itd. Na svim uslugama hostinga datoteka možete lako pronaći sliku koja vam je potrebna, a preuzimanjem možete instalirati Makos na svoj računar. Čak i ako želite, pokrenite ga u prozoru VMWare. Neću opisivati ​​kako se sve ovo radi, nije prikladno promovirati metode zaobilaženja licence na Mac-ovima, ali ću se potruditi da vas upozorim na neke greške, izbjegavajući koje nećete izgubiti interes za programiranje čak ni na početna faza pripreme alata:

1. Prilikom instaliranja UVIJEK koristite poseban čvrsti disk povezan kao glavni na IDE ili SATA nultu magistralu.
2. Ne pokušavajte da instalirate Leopard ispod VMWare-a - proveravao sam mnogo puta - nemoguće je, iako ima ljudi na mreži koji tvrde da su to uradili.

3. Nakon što instalirate Makos, možete pokušati da ga pokrenete iz Windows-a na WWW-u, ako imate dovoljno resursa. Takođe, poseban problem su drajveri. Mrežni će vas najvjerovatnije sam sustići, video će biti 800x600 - glupo VGA. Ali šta da radite sa svojom 8800GTX karticom, Wi-Fi adapterom i plavim zubom, onda zavisi od vaše sreće (češće nego ne).

4. Bez obzira na to na koliko slika sam naišao - sve su imale verziju 10.5.1 ili 10.5.2, ali će nam trebati barem 10.5.5 za rad. Ja ažuriram svoj Mac preko interneta, ali sa Hackintosh-om, prilikom ažuriranja na 10.5.5, ovaj trik neće raditi - uhvati jabuku, također je testiran mnogo puta. Na Internetu postoji algoritam kako ažurirati hackin na 10.5.5 uz održavanje funkcionalnosti sistema - potražite ga, naći ćete ga.

I tako, alati su opisani, idemo na domaći zadatak.

Naša domaća zadaća će biti jednostavna, ali vrlo važna; ako je ne završite, sve druge lekcije će vam postati beskorisne. HTML tekst, a moj rad neće vrijediti ni prokletog novca. I tako, dragi iPhone programeri, dok pišem lekciju br. 2, trebali biste:

A) Uzmite Mac ili instalirajte Hackintosh (samo u informativne svrhe)

B) Ažurirajte ga na verziju 10.5.5.

C) Preuzmite i instalirajte SDK od Apple-a. Preuzmite gomilu primjera s mreže, pokušajte ih sve kompajlirati. Općenito, počnite nasumično učiti (najčešća metoda u našoj zemlji, zadivljujuća po svojoj djelotvornosti).

Pišite recenzije.
Rashid (aka rashn).

web stranica Poštovani, ovim člankom otvaram novu rubriku posvećenu programiranju za iPhone, gdje ćemo se dotaknuti tema koje su zanimljive kako početnicima i neupućenima, tako i ObjC guruima, koji, nadamo se, neće iznevjeriti da ispravimo naše greške svojim komentarima. Današnja lekcija je samo u informativne svrhe. Ciljevi lekcije 1. Gdje započeti programiranje za iPhone. 2. Gentleman's developer kit. 3.Domaće...

Profesija programera jedna je od najprestižnijih i najtraženijih, to je činjenica. U razvojnoj industriji softver imaju svoje niše. Od njih, najbrže rastući, a ujedno i najplaćeniji, je razvoj softvera za mobilnih uređaja. Kao što znate, desilo se da su, ostavljajući svoje konkurente daleko iza sebe, tri konstantna rivala preuzela vodstvo. Trik je u tome što je jedan od ove trojice neprikosnoveni lider, a neko ih uvijek sustigne.

U segmentu mobilne tehnologije, Apple je nesumnjivo lider sa svojim iPhone pametnim telefonom. Na prezentaciji održanoj u septembru, kompanija iz Cupertina je demonstrirala 7. verziju mobilni uređaj. Uz njega, Apple je predstavio i novu verziju svog mobilnog telefona operativni sistem iOS 10. Ovo je sada najznačajniji operativni sistem na svijetu, kao i njegovi prethodnici. Iz ovoga proizilazi da je učenje razvoja iOS-a najviše isplativo ulaganje vremena i novca.

Ekosistem jabuke

Danas ćemo razviti jednostavnu mobilnu aplikaciju za iOS. Naravno, izvorni Mac je najprikladniji za ovo. Ali ako podržavate Windows ili jednostavno nemate Mac, možete instalirati operativni sistem macOS pod virtuelnu mašinu u Windowsu. U prostranstvu Interneta, neće vam biti teško pronaći neki posebno dizajniran za PC. macOS verzija, popularno nazvan Hackintosh. Slobodno ga instalirajte na VMware virtuelnu mašinu, VirtualBox - vaš izbor. Odmah da vas upozorim da PC tastatura nema neke od tastera koji se nalaze na Mac tastaturi, a mnoge njihove kombinacije se ne mogu pritisnuti u Hackintosh-u. Ovo prilično kvari raspoloženje. Inače, sve dolje opisane operacije mogu se uspješno izvesti na Hackintosh-u.

Obavezno znanje

Da biste programirali općenito, a posebno za iOS, morate znati dosta toga. Matematika i logika možda neće biti potrebni u početku, ali će kasnije biti traženi. Moderna tehnologija je eliminisala potrebu da programer ima temeljno poznavanje arhitekture računara, ali je neophodno razumevanje osnovnih mehanizama kao što su sistemi brojeva, njihova konverzija, brzina potprograma ili efikasnost algoritama (veliko O).

Za više visoki nivo iOS programer treba da ima duboko znanje o macOS operativnom sistemu i samom iOS-u. Takođe morate savladati Apple programski jezik. Poznavanje Delphija, C++, C# ili VB.NET neće vam puno pomoći. Apple ima svoj ekosistem sa svojim jezicima: Objective-C i Swift. Naravno, poznavanje C++ nikada nikome nije štetilo, programi i umetci zasnovani na njemu nalaze se svuda, čak i u Appleu. No, po definiciji se najviše koristi Objective-C, jednostavno zato što se pojavio mnogo ranije (sredinom osamdesetih godina prošlog stoljeća), dok je Swift prije samo dvije godine (2014.). Apple dodjeljuje velike nade on novi jezik i mnogo ulaže u to. Objective-C se koristi za podršku starog softvera, a novi je napisan u Swiftu. Zato je dobro da znate oboje.

Kako ne bi gubili vrijeme, svi ovi programski jezici se mogu naučiti pod strogim nadzorom nastavnika na web stranici.

Razvojni alati

Kao što znate, glavni programski alat za macOS i s njim iOS je programsko okruženje Xcode. Uključuje alate za kreiranje aplikacija za Mac, iPhone, iPad, Apple TV, Apple Watch. Sve Apple platforme. Xcode sadrži Interface Builder, uređivač koda koji podržava sve savremenim sredstvima rad sa kodom. Osim toga, bez napuštanja Xcodea, možete testirati aplikaciju; ako je razvijen za eksterni uređaj, onda se može pokrenuti u emulatoru.

Sistem uključuje emulatore svih uređaja čije se nove verzije mogu preuzeti. Osim toga, Xcode sadrži grafičke alate za analizu performansi aplikacije, uključujući alate za dijagnosticiranje opterećenja CPU-a, korištenja pohrane (HDD, SDD, itd.), opterećenja na grafički adapter(sa OpenGL strane).

Dana 13. septembra objavljena je nova, dugo očekivana verzija razvojnog okruženja 8.0. Stabilne verzije može se besplatno preuzeti sa App Store-a. Alfa i beta verzije se distribuiraju putem pretplate programera. Osma verzija uključuje: novu verziju jezika Swift 3, alat za učenje za Swift Playground za iPad, novu verziju Interface Builder-a, koja je postala brža i koja vam omogućava da vidite izgled aplikacije na različitim platformama, bez potrebe za implementirati samu aplikaciju na simulatoru.

Xcode 8 se može koristiti za razvoj aplikacija za macOS Sierra, iOS 10, watchOS 3 i tvOS 10. Svi SDK-ovi su dostupni. Nove verzije operativnih sistema počele su se stalno pojavljivati ​​odmah nakon toga Apple prezentacije, održan početkom septembra.

Objective-C jezik

Prisjetimo se ukratko osnovnih podataka o jeziku. Objective-C je kompajlirani objektno orijentisani programski jezik koji se koristi za pisanje aplikacija za Apple sisteme. To je nadskup ili, drugim riječima, dodatak za C, koji nasljeđuje od potonjeg sintaksu, tipove podataka, metode praćenja napretka izvršavanja programa i dodajući mu mogućnosti objektno orijentiranog programiranja - opis klasa i metode.

Kao iu C++, u Objective-C centralnu ulogu imaju objekti, koji su povezani sa četiri paradigme: apstrakcija, enkapsulacija, nasljeđivanje, polimorfizam. C++ je jezik sa jakom tipizacijom, dok je Objective-C slabo kucan ili ima sistem dinamičkih tipova podataka. Kao i Smalltalk, Objective-C šalje poruke objektima. Ovo je izuzetna prilika dinamički jezici, jer se tip objekata provjerava u vrijeme izvođenja, a ne u vrijeme kompajliranja.

Opis jezika Objective-C zauzima više od jednog obimnog toma. Stoga je, kako bi stekli objektivno znanje, zgodno pohađati kurs “”. Čitav dio kursa posvećen je ovom jeziku.

Razvoj iOS aplikacija

Kao primjer ćemo razviti vrlo jednostavnu aplikaciju. Ne odstupajmo od svete tradicije, pozdravimo svijet. Međutim, uzimajući u obzir činjenicu da smo grafička aplikacija, malo ćemo ga diverzificirati: dodaćemo dugme, kada kliknemo, prikazat ćemo ili sakriti natpis „Zdravo, svijete“.

Pokrenite Xcode, u prozoru koji se pojavi izaberite Kreiraj novi projekat ili u glavnom meniju File -> New -> Project. Sljedeći prozor će od vas tražiti da odaberete ciljnu platformu i tip aplikacije.


U ovom slučaju nas zanima iOS platforma. Postoji sedam vrsta aplikacija koje možete izabrati. Šest od njih su šabloni za tipične aplikacije iOS operativnog sistema, koji podrazumevano sadrže drugačiji skup komponenti. Sedma vrsta je igra.

Vrste aplikacija

  • Predložak aplikacije Single View je namijenjen za jednostavna aplikacija sa jednim ekranom. Preset uključuje komponentu View Controller, koja vam omogućava da prilagodite izgled aplikacije pomoću dizajnera obrazaca Interface Builder.
  • Master Detail Application kreira aplikaciju gdje pogled tabele prikazuje se kolekcija objekata. Nakon odabira jednog od njih, oni se prikazuju detalji o ovom objektu. Prvi pogled je glavni, drugi je detalj.
  • Aplikacija zasnovana na stranicama kreira aplikacije koje imaju više ekrana, poput stranica u knjizi. Shodno tome, e-čitači se kreiraju iz ovog praznina.
  • Aplikacija sa karticama omogućava kreiranje aplikacija na koje se svaki ekran može prebaciti u bilo koje vrijeme, odnosno svaki ekran ima svoje dugme za njegovo aktiviranje, na kojem se prikazuje naslov. Primjer je iTunes.
  • Igra se koristi za kreiranje šablona igre. Postoje četiri okvira za odabir za kreiranje igre: SpriteKit, SceneKit, OpenGL ES, Metal. Pogledajmo ih ukratko.
    SpriteKit je sistem za 2D renderovanje i animaciju teksturiranih pravougaonika - spriteova. Prilikom prikaza okvira koristi se standardna petlja, okvir se prikazuje nakon što se obradi sav sadržaj scene.
    SceneKit je okvir visokog nivoa za renderovanje 3D grafike bez OpenGL-a. Podržava učitavanje, manipulaciju 3D objektima. Uključuje: fizički motor, generator čestica i lak način skriptiranje.
    OpenGL ES je industrijski standard kompjuterska grafika. Omogućava vam da vizualizirate 2D i 3D scene. Omogućava vam da opišete cjevovod za video karticu: vrhovi prolaze transformaciju, sastavljaju se u primitive, koji se rasteriziraju u dvodimenzionalnu sliku i prikazuju na ekranu. Programabilni shaderi mogu biti uključeni u cevovod.
    Metal je API niskog nivoa koji će vam omogućiti da izvučete maksimum iz vašeg video adaptera. Otklonjeni API-ji zajedno s unaprijed kompajliranim shaderima i multi-threading omogućavaju vašoj igri da se podigne na vrh. novi nivo produktivnost i kvalitet.
  • Aplikacija za paket naljepnica - nova vrsta aplikacije predstavljene u iOS 10 i Xcode 8. To je skup jednostavnih ili animiranih slika koje se koriste u novi iMessage. Za kreiranje nije potrebno kodiranje.
  • iMessage aplikacija je nova vrsta aplikacije koja se pojavila u iOS 10 i Xcode 8. Omogućava vam da kreirate dodatke za iMessage, na primjer da kupite i preuzmete svoj paket naljepnica. Također možete koristiti iMessage API za kreiranje vlastitog analoga ove aplikacije, uključujući reprodukciju zvuka, videa, korištenje naljepnica i još mnogo toga.

Kreiranje prvog projekta

Kao predložak za našu aplikaciju, izabrat ćemo aplikaciju Single View. Budući da nećemo razvijati veliki program, sredstva predviđena ovom odredbom biće nam dovoljna. Kliknite na Next. Na sljedećoj stranici čarobnjaka trebate unijeti naziv projekta, na primjer ShowLab. U padajućoj listi Jezik ostavite odabrani podrazumevani jezik - Objective-C. Zatim na padajućoj listi Uređaji ostavite Univerzalni izbor. Ovdje određujete za koji uređaj (iPhone ili iPad) se aplikacija kreira. Univerzalna klauzula znači za oboje. Poništimo okvire Uključi jedinične testove i Uključi UI testove; ne trebaju nam nikakvi testovi. Sljedeći. Odaberite folder za spremanje projekta. Sada kliknite na dugme Kreiraj.

Kao rezultat, otvorit će se prozor sa listom svih parametara primijenjenih na projektu. U ovom prozoru možete promijeniti parametre koje ste prethodno postavili u čarobnjaku: orijentaciju, ciljni uređaj itd.


Prvo treba da kreiramo interfejs aplikacije. Da biste to učinili, jednim klikom odaberite datoteku Main.storyboard na listi s lijeve strane (ako ova datoteka nije vidljiva, proširite sadržaj foldera ShowLab). Sa desne strane liste, ceo prozor će zauzeti Interface Builder. Izgled uređaja će biti prikazan u sredini. U donjem desnom uglu prozora nalazi se panel komponenti. Prevucite komponente Label i Button odatle na izgled. Iznad panela komponenti nalazi se lista svojstava. Ako ga nemate, kliknite na dugme Prikaži inspektor atributa koje se nalazi ispod naslova prozora na desnoj strani interfejsa.

Odaberite komponentu Label u izgledu i konfigurirajte njeno svojstvo Text: ostavite odabir Plain na padajućoj listi, unesite željeni natpis u liniju ispod, u našem slučaju "Hello, World". Ako se tekst ne uklapa u granice naljepnice, promijenite ih povlačenjem ručki na rubovima komponente. Da biste ga horizontalno centralizirali, idite na stranicu Inspektor veličine klikom na dugme Prikaži inspektor veličine (desno od Prikaži inspektora atributa). Na ovoj stranici, sa padajuće liste Rasporedi, izaberite Centriraj horizontalno u kontejneru.

Sada izaberite Komponenta dugmeta, promijenite svojstvo Text u željenu oznaku - Switch. Možete ga centrirati na isti način kao što je gore opisano.

Stvaranje veze između grafičkih elemenata i koda

IN Visual Studio(ili Delphi) objekat u kodu se kreira automatski u trenutku kada postavite vizuelnu komponentu na obrazac. Ovo se ne dešava u Xcode-u, ali ne uzrokuje probleme.

Otvorite sadržaj zaglavlja ViewController.h u zasebnom prozoru dvostrukim klikom na njega. Ova datoteka sadrži deklaraciju ekstenzije klase UIViewController, označenu ključnom riječi @interface. Ova funkcija je dodana drugoj verziji Objective-C. Sada uradite ovaj trik: pomaknite kursor miša na komponentu - tekstualnu oznaku, držite pritisnut Ctrl taster i lijevo dugme miša. Pomerite kursor na prozor sa kodom (datoteka ViewController.h), plava linija će pratiti kursor. Otpustite miš i taster unutar opisa interfejsa ViewController.

Pojavit će se prozor za kreiranje utičnice.


Ovo je svojstvo objekta koje se odnosi na drugi objekt (u ovom slučaju, vizualnu komponentu). Potrebno je da unesete naziv Outlet objekta, preko kojeg ćete pristupiti vizuelnoj komponenti, neka to bude lab. Zatim se odabire tip objekta, odabran je ispravno: UILabel.

Još niže na listi Skladištenja odaberite tip reference objekta: slab ili jak. Ako odaberete jak, tada će objekt na koji ukazuje svojstvo postojati sve dok svojstvo ukazuje na njega, u kom slučaju neće biti automatski obrisan kada se više ne koristi. S druge strane, kada je slaba referenca na snazi, objekt se može samouništeti. Dakle, odaberite vrstu slabe veze i kliknite na dugme Poveži. Kao rezultat, sljedeći red će biti dodan u kod:

@property (slabo, nenatomsko) IBOutlet UILabel *lab;

Uvjerimo se da je Outlet vlasništvo.

Sada kreirajmo utičnicu za dugme. Algoritam ostaje isti. Samo za svojstvo Name morate unijeti drugo ime, na primjer ali. Linija će biti dodata kodu:

@property (slabo, nenatomsko) IBOutlet UIButton *ali;

Kao rezultat, imamo dva pokazivača na vizuelne komponente: laboratoriju i ali - respektivno, natpis i dugme. Sada, koristeći pokazivače, možemo manipulirati komponentama u kodu.

Zatim morate kreirati rukovao događajima klikom na dugme. Da biste to učinili, otvorite implementacioni fajl ViewController.m u zasebnom prozoru. Na potpuno isti način kao što ste prevukli liniju u datoteku zaglavlja da biste kreirali izlaz, iz dugmeta prevucite liniju u datoteku implementacije i ispustite je u zagradu komande za zatvaranje - @end. Pojavit će se prozor za kreiranje događaja, sličan prozoru za kreiranje utičnice. Vidite razliku: veza do objekta je kreirana u datoteci zaglavlja, metoda je kreirana u datoteci implementacije.


Popunite polje Ime, njegova vrijednost predstavlja naziv svojstva - metode. Neka bude onClick. Ostavite vrijednost polja Vrsta kao zadanu vrijednost - id. U Objective-C, ovaj tip je predak svih ostalih. U padajućoj listi Događaj podrazumevano je izabran događaj Touch Up Inside, koji se javlja kada se pokazivač (miš, prst...) pusti preko dugmeta, odnosno poslednja faza pritiska na dugme. To je ono što nam treba. U listi Argumenti ostavićemo podrazumevanu vrednost: Sender je objekat koji je poslao ovaj signal, u našem slučaju to će uvek biti dugme. Kliknite na dugme Poveži. Kao rezultat, bit će dodan sljedeći kod:

- (IBAction)onClick:(id)sender ( )

Minus na početku znači zatvorenu metodu (privatno). Ključna riječ IBAction označava događaje (metode) vizuelnih komponenti iz Interface Builder-a.

Između komandnih zagrada upisaćemo kod koji se izvršava kada se pritisne dugme:

Lab.hidden = !_lab.hidden;

U ovom redu koda invertujemo vrijednost skrivenog svojstva. Ona je tipa BOOL, koja ima dvije vrijednosti: DA - tačno i NE - netačno (malo neobično za Windows programere, gdje je istina i netačno).

Obratite pažnju na donju crtu ispred naziva objekta - oznake (_lab). Bez toga, kompilacija neće uspjeti s greškom. Donja crta se automatski dodaje za objekte sadržane u drugim objektima; to jest, u ovom slučaju, laboratorijski objekat je sadržan u ViewController objektu. Ranije je ovo bila konvencija koja se koristila za razlikovanje između objekata deklariranih kao članovi klase i lokalnih objekata. A sada je ovo striktno pravilo implementirano u kompajleru jezika.

Sada možete kompajlirati aplikaciju i pokrenuti je na simulatoru. Izabrali smo simulator za iPhone 7, uključen u Xcode 8. Dugme za kompajliranje i pokretanje je crni pravougaonik i nalazi se u traci na vrhu interfejsa.

Nakon kompajliranja aplikacije, pokretanja simulatora i učitavanja naše aplikacije, njeno sučelje će biti prikazano na ekranu simulatora: natpis „Zdravo, svijete“ i dugme za prebacivanje. Ako pritisnete zadnji, natpis će nestati, ako ga ponovo pritisnete, ponovo će se pojaviti.

Napravili smo vrlo jednostavnu aplikaciju za razumijevanje suštine iOS razvoja. Detaljnije informacije o kreiranju iOS aplikacija u Objective-C možete saznati iz kursa naših prijatelja iz GeekBrains “. Kurs je posvećen učenju ovog jezika dva mjeseca. Tokom prvog mjeseca - uvodne teme, au drugom - pravo kodiranje profesionalnih aplikacija.

Brzi jezik

Apple je 2014. godine predstavio novi programski jezik - Swift. Ubrzo je postao jezik o kome se najviše govori i najbrže rastući jezik na svijetu. Pouzdan je, siguran, intuitivan jasan jezik za razvoj aplikacija za operativne sisteme macOS sistemi, iOS, tvOS i watchOS za cijelu flotu Apple uređaja. Swift je efikasan programski jezik. Lakše ga je naučiti nego njegov prethodnik, Objective-C, a Swift posuđuje neke od njegovih najboljih ideja. Istovremeno, programeri su jezike učinili kompatibilnim, odnosno jedan program može sadržavati kod i u Swiftu i u Objective-C. U svijetu postoje milijarde linija koda i stotine hiljada naslijeđenih programa napisanih u Objective-C, tako da njegova podrška definitivno neće biti napuštena.

Prilikom razvoja Swifta, cilj je bio stvoriti najpogodniji sistemski programski jezik - brz, siguran i izražajan.

Algoritam u Swiftu je 2,6 puta brži od istog algoritma u Objective-C i 8,4 puta brži nego u Pythonu. Upotreba Swifta čini proces razvoja programa fleksibilnijim i praktičnijim.

Zbog svog eksponencijalnog razvoja, Swift jezik je pušten zajednici otvorenog koda 3. decembra 2015. Istovremeno, Apple striktno prati njegov razvoj, organizirajući komitet za njegov razvoj. Swift je sada dostupan ne samo na Apple sistemima, već i na Linuxu. Sve dodatni alati za rad sa jezikom, uključujući program za otklanjanje grešaka, standardnu ​​biblioteku, menadžer paketa, takođe besplatan i otvoren.

Ovaj jezik je budućnost. Detaljnije informacije o tome možete saznati iz spomenutog kursa GeekBrains “, u kojem je cijeli mjesec posvećen studiranju ovog jezika programiranje.

Prodavnica aplikacija

Jednostavno rečeno, App Store je prodavnica sadržaja za čitav niz Apple uređaja. Ovdje možete kupiti igre i aplikacije od velikih kompanija i nezavisnih programera. Svaki programer, bez obzira u kojoj zemlji živi, ​​može besplatno prodavati ili distribuirati svoje programe na ovoj platformi za digitalnu distribuciju. Da biste to počeli, morate se registrovati kao programer i kupiti licencu za prodaju svojih aplikacija. Ovo je naknada za pruženu uslugu i razvoj App Store-a.

Rezultati

Razvili smo jednostavnu aplikaciju za iOS mobilni operativni sistem koristeći programski sistem Xcode zajedno sa jezikom Objective-C. Testirano gotova aplikacija na simulatoru iPhone 7. Naučili smo kako da napravimo korisničko sučelje koristeći Interface Builder, kako da povežemo grafičke elemente sa kodom aplikacije i kako da kreiramo rukovaoce događajima. Upoznali smo se sa osnovama Objective-C. Osim toga, skrenuli smo pažnju na obećavajući Swift jezik, koji se koristi za razvoj moćnih i sigurnih aplikacija za Apple ekosistem.

Međutim, proučeni materijal je samo početak. Kako biste se intenzivno nadograđivali u smjeru mobilnog kodiranja i razvoja stvarno prodajnih aplikacija, preporučujemo da pohađate kurs „“ na web stranici naših prijatelja.

Ovo je vrijedan kurs: ako ga uzmete, sigurno nećete gubiti vrijeme. Počinje sa dva detaljna kursa o jeziku Java, nakon čega slijedi učenje osnovnog programiranja za mobilni operativni sistem Android sistem. Dalji kurs o bazama podataka uopšte i SQL jezik posebno. Zatim dubinski kurs o razvoju profesionalnih Android aplikacija. Nakon toga, vektor učenja će se kretati ka Apple sistemima: dva detaljna kursa o Objective-C jeziku i korisni kurs o Swiftu.


Predavanja na predmetu drže profesionalni nastavnici sa velikim iskustvom u razvoju softvera. Ako nešto nije jasno, možete postaviti pitanje bez odlaganja. Općenito, učenje na GeekBrains-u je proces uživo, možete komunicirati, postavljati pitanja i pomoći s odgovorima. Za provjeru stečenog znanja, nastavnici izdaju zadaća, što se zatim provjerava. Nakon završene obuke, imaćete zagarantovanu praksu u IT kompaniji. A onda sve zavisi od vas, ako se pokažete kao kompetentan specijalista, bićete pozvani na posao.

Poseban projekat sa kompanijom

Swift je Appleov robustan i intuitivan programski jezik koji možete koristiti za kreiranje aplikacija za iOS, Mac, Apple TV i Apple Watch. Programerima daje neviđenu kreativnu slobodu. Zahvaljujući ovom jednostavnom i pogodan jezik With open source Sve što vam treba je zanimljiva ideja da napravite nešto nevjerovatno.

Programeri već koriste
neverovatne karakteristike Swifta.

Swift je brz, efikasan programski jezik u realnom vremenu koji se lako može umetnuti u unaprijed izgrađen Objective-C kod. Sada programeri ne samo da mogu pisati pouzdaniji i sigurniji kod, već i uštedjeti vrijeme i kreirati aplikacije s naprednim mogućnostima.

Odlična aplikacija u Swiftu. Lakoća upotrebe i odziv u realnom vremenu je razlog zašto je VSCO odabrao Swift za kreiranje nove verzije svoje iOS aplikacije za fotografije.

Odlične aplikacije,
razvijen na Swift jeziku.

Sve više programera ugrađuje Swift kod u svoje aplikacije. A neki čak kreiraju potpuno nove aplikacije u Swiftu.

Duolingo Khan
Vodič za čisto nebo akademije

Procreate Kickstarter Eventbrite Hipmunk

Produktivnost je veća. Aplikacije su bolje.

Swift Applications nadmašiti očekivanja. Na primjer, uobičajeni algoritam pretraživanja radi mnogo brže u Swiftu.

Do 2.6 puta brži od Objective-C

Do 8.4 puta brži od Pythona 2.7

10.000 cijelih brojeva je pronađeno na grafu korištenjem algoritma pretraživanja u dubinu*

Dodan Swift jezik
u nastavni plan i program.

Nisu samo programeri ti koji cijene potencijal Swift jezika. Univerziteti i druge obrazovne institucije podučavaju Swift na časovima programiranja i objavljuju besplatne kurseve na iTunes U, što znači da čak i početnici mogu lako prijeći s osnovnog kodiranja na programiranje na profesionalnom nivou.

Univerziteti koji su uključili Swift u svoj nastavni plan i program

  • Univerzitet Kalifornije u Santa Kruzu
  • Foothill College
  • Royal Melbourne University of Technology
  • Tehnički univerzitet u Minhenu
  • Lawson Community College
  • Manhattan Community College
  • Mesa Community College
  • Houston Community College
  • Central Piedmont Community College
  • Univerzitet u Plymouthu
  • Kalifornijski državni politehnički univerzitet
  • Univerzitet Stanford
  • Tehnički koledž Northwest Kansas
  • Tehnološki institut Monterreya
  • Univerzitet Aberystwyth
  • Univerzitet Full Sail
  • Ingesup škola
  • Južni metodistički univerzitet

Swift je posvuda.
A sada je otvoren za sve.

Swift je besplatno dostupan za korištenje od strane programera, nastavnika i učenika pod licencom softvera otvorenog koda. izvorni kod Apache 2.0. Nudimo OS X i Linux binarne datoteke koje vam omogućavaju kompajliranje koda za iOS, OS X, watchOS, tvOS i Linux. I ubrzati razvoj i transformaciju Swifta u još više moćan jezik, stvorili smo novu zajednicu u kojoj korisnici mogu direktno doprinijeti Swift izvornom kodu.

Upoznaj Swifta.

glavna knjiga

Preuzmite tutorijal Swift programski jezik iz Apple Books Store-a besplatno. Saznajte kako Swift čini programiranje praktičnijim, fleksibilnijim i zabavnijim.

Xcode

Xcode je Mac aplikacija dizajnirana za razvoj drugih aplikacija za Mac i iOS. Xcode ima sve alate koji su vam potrebni za kreiranje nevjerovatnih aplikacija. Može se besplatno preuzeti sa Mac App Store-a.

Developer Website

Detaljnije tehničke informacije i provjerite full review Swift language. Pogledajte blog programera da budete u toku. Najnovije vijesti. Da li i vi imate slobodan pristup na sjajne resurse: tutorijale, video zapise i primjere koda.

  1. Programski jezik. Šta trebate znati za pisanje aplikacija za iOS.
  2. Da li vam je potreban dizajner, programer interfejsa ili neko drugi?
  3. Službeni dio: certifikat programera.
  4. Potrebna oprema za ugodan razvoj.
  5. Vječno pitanje: AndroidOS ili iOS?
  6. Šta treba učiniti danas?
  7. Kreiranje novog projekta.
  8. Kompilacija. Šta je to i zašto je potrebno?
  9. Trčite na simulatoru.
  10. Štampamo “Zdravo, svijete!”
  11. Koji standardni prikazi postoje u iOS-u?

Programski jezik. Šta trebate znati za pisanje aplikacija za iOS

Programski jezik(wikipedia.org) - formalni sistem znakova dizajniran za snimanje kompjuterski programi. Programski jezik definira skup leksičkih, sintaksičkih i semantičkih pravila koja definiraju izgled programa i radnje koje će izvođač (računar) izvoditi pod njegovom kontrolom.

Možda je pitanje koje sam postavio u naslovu ovog dijela prilično složeno. Mogu jednostavno odgovoriti - Objective-C. Da sam tu stao, pogrešio bih. Rekao bih da je Objective-C minimum. Nedavno je bila konferencija Yandex-a - YET, na kojoj je jedan od izvještaja bio posvećen programskim jezicima koje programer treba znati. Odgovor je bio otprilike ovako: “Mora stalno učiti nove i nove programske jezike, ne zaustavljajući se ni na jednom posebno.”. U potpunosti se slazem sa ovim. Učeći nove programske jezike, naučite nove pristupe i metode programiranja. Stoga, da biste pisali aplikacije za iOS, morate znati Objective-C, ali je preporučljivo znati i druge programske jezike kako bi vaš kod bio dobar, efikasan i fleksibilan.

Ako još niste programer, savjetujem vam da počnete s jezikom C. Preuzmite knjigu Kernighan i Ritchie ( ili još bolje, kupi ga) o C jeziku, pročitajte, uradite sve što vam se predloži, a nakon toga bih vam savjetovao da pređete na Objective-C. Ako već znate kako pisati programe, spremni ste lako odgovoriti na pitanja - „Šta su tipovi podataka? Šta je varijabla? Što je funkcija ili metoda? Šta je veza i pokazivač? Šta se desilo "uključiti”?” , znate C ili C++ ili Javu ili C#, onda ste spremni da napišete svoju prvu aplikaciju za iOS.

Također morate znati osnove OOP-a i obrazaca dizajna. Lista se vjerovatno može nastaviti, ali jedva da sam spreman tražiti kvalitativno objašnjenje ovih pojmova. Da, nažalost, Objective-C nije jezik s kojim možete započeti svoje programsko putovanje. Ali ako volite i želite da stvarate, onda je vrijeme da otrčite u prodavnicu, kupite knjige i započnete svoj razvojni put.

Da li vam je potreban dizajner, programer interfejsa ili neko drugi?

Još jedno, ništa manje jednostavno pitanje. Ako ste programer i znate pisati konzolne programe i želite početi pisati aplikacije za iOS, onda vam u početnoj fazi takva osoba ne treba. Ako imate iPhone || iPad || iPod Touch Ako ste upoznati sa iOS-om, onda vam ne treba front-end programer. Općenito, Apple ima takav dokument - ČovjekInterfaceSmjernice. Ovaj dokument opisuje gdje i koji element interfejsa treba koristiti. Stoga, u početnoj fazi možete bez trećih strana. Općenito, iOS SDK pruža dovoljno mogućnosti za slikanje sučelja aplikacije, tako da ne morate crtati nikakve gumbe ili višebojne tekstove, gradijentne ispune itd. u PS-u. Kasnije ćemo kreirati prvi projekat u kojem ćemo se upoznati sa svim fazama kreiranja aplikacije “Zdravo, svijete!”.

Međutim, morate shvatiti da kada počnu ozbiljni projekti, aplikacije koje želite da objavite u AppStoru, biće vam teže bez dizajnera i programera. Poteškoća se može manifestirati u različitim fazama - bilo tokom razvoja aplikacije, kada provodite sate tražeći potrebnu sliku ili sjedite i kreirate u PS-u, ili nakon što objavite aplikaciju i počnete primati komentare od naših voljenih korisnika koji će se žaliti na vaše loše dizajn besplatna aplikacija. Naišao sam na slične probleme u obje faze. Nakon što sam dobio užasne komentare na AppStore-u, htio sam napustiti svoju aplikaciju, koja je inače besplatna, i zaboraviti na nezahvalne korisnike. Međutim, korisnost same aplikacije za mene, kao i mnoge druge korisnike, natjerala me da progutam te ljutite komentare i nastavim razvijati aplikaciju. Prije otprilike tri mjeseca počeo sam razvijati aplikaciju zajedno sa dizajnerom koji mi govori šta da ubacim i gdje, koju boju da odaberem, gdje i koju sliku da nacrtam, a ovo je, želim reći, prilično zgodno. Stoga vam ipak savjetujem da u nekom trenutku počnete koristiti usluge dizajnera kako biste dobili dobre povratne informacije od korisnika. I zapamtite - korisnici iOS uređaja žele vidjeti dobro dizajn aplikacije, čak i ako trpi njena funkcionalnost.

Službeni dio: certifikat programera

Vjerovatno ste već čuli mnogo o nekakvim programerskim certifikatima. Sada ću pokušati da vas obavestim o tome zašto je to tako i da li vam je to potrebno upravo sada. Programerski certifikat je datoteka, baš kao i svaki drugi certifikat. Ovu datoteku vam daje Apple nakon što prođete sve faze registracije u sistemu iOS (MacOS) Developer (Enterprise) Program.

Šta će vam to dati? ovaj fajl i registracija u nekom od gore navedenih programa? Odgovori na ovo pitanje su neodoljivi. Stoga ću reći samo o najvažnijim stvarima (sve dolje opisano vam je dato za tačno godinu dana):

  • testiranje vaših aplikacija na vašim uređajima (iako se čini da se ovo može hakovati i može se obaviti bez certifikata)
  • pristup forumu za programere na Apple portalu (iako postoji zajednica na StackOverflow.com, gdje možete mnogo brže pronaći odgovor na svoje pitanje)
  • mogućnost preuzimanja beta verzija (i naravno trenutnih) iOS-a i Xcode-a
  • mogućnost ugradnje iOS beta verzije na svoj uređaj
  • mogućnost objavljivanja aplikacije u AppStore-u
  • mogućnost povezivanja do 100 uređaja s vašim računom, čime se omogućava ovim uređajima da instaliraju beta verzije iOS-a, testiraju vaše aplikacije (još nisu objavljene u AppStoreu) i još mnogo toga nezakonitog
  • prilika da pokažete svojim prijateljima da ste službeni programer iOS aplikacija

Ako odlučite da vam je potreban takav certifikat, budite spremni odvojiti se od 100 USD (300 USD za Enterprise), pošaljite faks u SAD, unesite svoj bankovna kartica(pažnja! Vaše, upravo vaše), pa, završite čitanje ovog poglavlja.

Pa, idemo.

  1. Pratite ovaj link http://developer.apple.com/programs/ios/
  2. Kliknite na Upiši se sada
  3. Pažljivo čitamo poplavu i idemo dalje – Nastavi
  4. Ovdje imamo 4 boda:?a. Da li želite da kreirate nova jabuka ID za Apple Developer Program? b. Želite li koristiti postojeći Apple ID?c. Da li ste već registrovani kao jednostavan programer, a sada želite da postanete zvanični programer sa svim gore opisanim pogodnostima? d. Već ste član iOS ili Mac Developer Programa i želite da povežete drugi program sa svojim nalogom
  5. Prijatelji, zatim morate proći kroz nekoliko koraka kako biste popunili svoje lične podatke. Ne sjećam se više tačno šta je tamo. Ako imate pitanja, pitajte ih u ovoj temi, odgovorit ću na sve najbolje što mogu.
  6. Dobili ste vezu do .pdf datoteke koju trebate popuniti i poslati faksom Appleu.
  7. Ispisujemo ga i popunjavamo (vrlo pažljivo i pažljivo).
  8. Šaljemo faks u Apple ured u SAD-u. (Pazite da vam faks ne padne u pogrešne ruke, jer tamo navedete broj bankovne kartice i CVV).
  9. Čekamo N broj dana (sedmica) da Apple obradi vaš zahtjev.
  10. Primili smo pismo u kojem vam čestitamo što ste se prijavili za program i izgubili sto dolara. Ura!

Nakon uspješnog završetka misije imat ćete pristup http://developer.apple.com/membercenter/. Možda pregled te stranice ili zahtijeva poseban članak ili zahtijeva Google/Yandex pretragu.

Pa, prijatelji, pređimo na preostala pitanja na dnevnom redu.

Potrebna oprema za ugodan razvoj

Ako ste ozbiljno odlučili da počnete da razvijate aplikacije za iOS, toplo preporučujem da odmah kupite računar/laptop sa MacO-om. Većina jeftina opcijaMac Mini, ili bilo šta korišteno. Ako ste student i nosite opremu sa sobom - Macbook Air. Ako imate puno novca i želite moćan laptop za sve namjene - za igranje igara, složene računarske zadatke i programiranje - Macbook Pro. Ako želite da nabavite desktop računar, iMac ili Mac Mini. Za razvoj će vam odgovarati bilo koji računar u bilo kojoj postojećoj konfiguraciji. Veličina ekrana je po vašem nahođenju. Ja lično sada sedim ispred Macbooka 13” i Mac Mini 17”. Zadovoljan sam sa oba displeja. Ako ništa drugo, uvijek možete spojiti vanjski monitor na svoj laptop.

Ne zaboravite da će vam prije ili kasnije trebati iPhone, iPod ili iPad. Ne morate se oslanjati samo na iOS simulator, koji se distribuira u istom paketu sa Xcode-om. Uvijek testirajte verzije izdanja na uređajima. Ili - potražite testere (odgovorne i savjesne).

Ako niste spremni potrošiti toliko novca na novu opremu, onda možete pokušati instalirati Hackintosh na svoj računar.

Vječno pitanje: Android ili iOS?

Moguće je da je ovo pitanje trebalo postaviti na samom početku, ali se i dalje nalazi na kraju ovog članka. Jeste li sigurni da se želite okušati u mobilnom razvoju, ali ne znate koju mobilnu platformu odabrati? Ne mogu vam odgovoriti na ovo pitanje. Ali znam jednu stvar - ako želite da razvijate aplikacije za iOS, onda morate voljeti Apple proizvode i operativni sistem iOS sistem i MacOs. Možete pitati - zašto je to? Odgovor je jednostavan - morate voljeti ono što radite, morate stvarati. Tek tada ćete moći razviti zaista cool i koristan proizvod. Samo u ovom slučaju ćete uživati ​​u učenju Objective-C i iOS-a. Mislim da je ovo veoma važno. Ako imate slične osjećaje prema Apple proizvodima, slobodno se upustite u područje razvoja iOS-a. Ako mislite - poznajem Javu, ali ne znam Objective-C, ali mi se više sviđa iOS nego AndroidO - onda odaberite iOS. Ne, ali šta ste očekivali da počnem hvaliti Android OS?

Sviđa mi se i iOS sfera zbog prodavnice aplikacija. Tamo je sve lijepo, korektno i vrlo je stroga moderacija aplikacija. Deponija aplikacija koja je sada u Android OS-u je jednostavno užasna, kako za korisnike tako i za dostojne programere.

Šta treba učiniti danas?

Danas morate odlučiti: kada počnete da razvijate aplikacije, da li će vaše trenutno iskustvo biti dovoljno za učenjeCilj- C, imas li potrebnu opremu, a najvažnija želja?

Zdravo svijete.

Provjera spremnosti

Pređimo s teorije na praksu. Za praktičnu lekciju trebat će vam Xcode 4.2 sa iOS SDK-om, po mogućnosti sertifikat programera, poznavanje C, C++, Jave ili Objective-C (pa, možda će poznavanje drugih jezika biti prikladno) i, na kraju, želja da počnete pisati aplikacije za iOS. Ako vam nešto nedostaje, na primjer, certifikat programera, onda će vam članak i dalje biti relevantan. U svakom slučaju, čini mi se da bi svaki korisnik iOS uređaja trebao biti zainteresiran da pogleda unutrašnje funkcioniranje razvoja aplikacija.

Kreiranje novog projekta

Idi. Kliknite na ikonu Xcode. Otvoriće se prozor sličan ovome:

Odaberite stavku "Kreiraj novi Xcode projekt". U sljedećem prozoru odaberite vrstu projekta. Trebamo: “iOS – Aplikacija – Aplikacija sa jednim pogledom”.

Kliknite na Next. Videćemo prozor sa sledećim sadržajem:

Dozvolite mi da objasnim polja za unos:

  1. Naziv proizvoda – Naziv novog projekta – možete unijeti bilo koji naziv, ali savjetujem vam da koristite nazive identične mojim, jer ću ih povremeno pozivati.
  2. Identifikator kompanije - Identifikator vaše kompanije - možete ga popuniti kako želite.
  3. Bundle Identifier – jedinstveni identifikator za vašu aplikaciju. Ovo polje se može naknadno uređivati.
  4. Prefiks klase – prefiks koji će biti dodijeljen imenima svih klasa koje kreirate u projektu. Ostavio sam polje prazno ( "XYZ"– ovo je samo nagoveštaj).
  5. Porodica uređaja – na koje tipove uređaja se projekat može instalirati. Možete odabrati jednu od tri opcije: iPad/ iPhone/ Universal. Njihova svrha je očigledna. Ako trenutno ne možete odlučiti da li trebate kreirati univerzalna primjena, tada možete odabrati bilo koju od drugih opcija. Ovo se može ispraviti u bilo kojoj fazi životnog ciklusa softvera.
  6. Koristi Storyboard – Ovo se odnosi na kreiranje modela korisničkog interfejsa. Dodato uz iOS5, tako da kada koristite ovaj horor, vaša aplikacija može biti instalirana samo na uređajima sa iOS5 ili novijim.
  7. Koristi automatsko brojanje referenci je nova funkcija Apple LLVM 3.0 kompajler – automatski (skoro) upravlja memorijom (prati curenje, zombije i druge užase). Rekao bih da za početnika - savršena opcija. ALI – 1) nije sve tako automatski, 2) da li više verujete kompajleru nego sebi?, 3) Preporučujem ručno upravljanje memorijom.
  8. Uključi jedinične testove – povežite jedinično testiranje sa projektom.

Vidjet ćete prozor za odabir kategorije u koju će se projekt postaviti. Samo želim da vas upozorim da će se u folderu koji ste odabrali automatski kreirati folder sa imenom vašeg projekta, odnosno nema potrebe za kreiranjem dodatne fascikle za određeni projekat.

Ne označavamo potvrdni okvir “Kreiraj lokalno git spremište za ovaj projekat”. Bolje je da kasnije povežemo naš projekat sa repozitorijumom koda ako je potrebno.

Kliknite "Kreiraj" i vidite novi prozor, prozor našeg radnog prostora:

I tako, napravili smo projekat, neki fajlovi su generisani, neki prozori su otvoreni.

Hajde da pogledamo fajlove u njima navigacijski meni:

  • datoteke sa sufiksom “.h” su zaglavlja, gdje ćemo dati opise klasa
  • fajlovi sa sufiksom “.m” su implementacioni fajlovi, gde ćemo implementirati prethodno opisane klase
  • datoteke sa sufiksom “.xib” su datoteke koje opisuju interfejs jednog prozora aplikacije

Sastavljanje projekta

Kompilacija -

  1. prevod programa na jezik blizak mašinskom jeziku i njegovo naknadno sklapanje.
  2. prevođenje programa napisanog na izvornom jeziku u objektni modul (koje izvodi kompajler) i njegovo naknadno sklapanje u programski modul spreman za upotrebu.
  3. prevod programa napisanog na izvornom jeziku i njegovo naknadno sklapanje u program u nekom mašinski nezavisnom interpretiranom kodu niskog nivoa (kao, na primer, u slučaju jezika Java).

Proces kompilacije sastoji se od sljedećih faza:

  1. Leksička analiza. Tokom ove faze, niz znakova izvorni fajl se pretvara u niz tokena.
  2. Sintaktička (gramatička) analiza. Niz tokena se pretvara u stablo raščlanjivanja.
  3. Semantička analiza. Stablo raščlanjivanja se obrađuje kako bi se uspostavila njegova semantika (značenje) - na primjer, vezivanje identifikatora za njihove definicije, tipovi podataka, provjera kompatibilnosti tipova podataka, određivanje rezultirajućih tipova podataka izraza, itd. Rezultat se obično naziva "srednja reprezentacija/kod ", a može se dopuniti stablom raščlanjivanja, novim stablom, apstraktnim skupom naredbi ili nečim drugim pogodnim za dalju obradu.
  4. Optimizacija. Suvišne naredbe se uklanjaju i kod se pojednostavljuje (gdje je to moguće) uz očuvanje njegovog značenja, odnosno algoritma koji implementira (uključujući unaprijed izračunate (tj. izračunate u fazi prevođenja) izraze, čiji su rezultati praktično konstanti) . Optimizacija može biti različitim nivoima i faze - na primjer, na međukodu ili na konačnom mašinskom kodu.
  5. Generisanje koda. Iz srednjeg prikaza generiše se kod na ciljnom jeziku (uključujući povezivanje programa).

Više jednostavnim jezikom od mene. Faza leksičke analize provjerava da li su svi znakovi u vašem izvornom kodu u ispravnom redoslijedu i povezani likovi u narednim fazama će se smatrati kao jedinstvena cjelina – leksema. U fazi raščlanjivanja provjerava se da li se sve lekseme nalaze u ispravnom redoslijedu, na pravim mjestima, u ispravnom redoslijedu. Konačno, u fazi semantičke analize, provjerava se podudaranje tipova podataka.

I tako, kada kliknete na “Izgradi projekat”, prvo se vrši leksička analiza vašeg koda, ako je uspješna, onda raščlanjivanje, a zatim semantičku analizu. U Xcodeu je uvijek pokrenut određeni lagani proces koji obavlja ovu funkciju, a time podstiče programera "u letu". Na primjer, ako niste stavili ";" ili odjednom izjednačite int sa određenim nizom znakova, tada će Xcode podvući niz crvenom valovitom linijom.

Trčanje na simulatoru

I zato, hajde da pokušamo da pokrenemo naš projekat, za koji još nismo lično napisali ni jednu liniju koda.

Da biste to učinili, pogledajmo meni: Shema kompilacije(na mom snimku ekrana je dodijeljena zelena boja). Dijagram je određena konfiguracija projekta. Xcode ga automatski generiše. Kliknite na liniju desno od naziva projekta (naziv uređaja); ako uređaj nije povezan, pisat će “iOS Device”. Vidjet ćete padajuću listu sa sljedećim sadržajem:

Na ovoj listi biramo gdje će naš projekt biti instaliran: to može biti vaš uređaj ili simulator. Ako ste odabrali univerzalni tip aplikacije, moći ćete odabrati tip simulatora: iPhone ili iPad. Također možete odabrati verziju operativnog sistema za simulatore (važno je testirati projekat na svim verzijama iOS-a na kojima se aplikacija može instalirati). Pošto je riječ o minimalnoj verziji iOS-a, treba spomenuti i kako odrediti njegovu minimalnu verziju? Jednostavno je - ako koristite metode (funkcije) koje su dodane u iOS verziji, npr. 4.0 , tada se traka za minimalno potreban operativni sistem podiže na 4.0 . Spustimo letvicu na 4.0 With 5.0 . Da biste to učinili, okrenite se na izbornik: “Cilj raspoređivanja” (na mojoj slici označeno plavom bojom). Odaberite sa padajuće liste 4.0 . Sada se vratimo na meni: Shema kompilacije. Naša lista sada izgleda ovako:

Odaberite “iPhone 4.0 Simulator”. I na kraju, kliknite na strelicu ispod koje piše “Run”. IN “Informativna tabla” videćemo proces kompilacije. Nakon što se sve uspješno poveže, otvorit će se prozor iPhone simulatora:

Sada ćemo brzo proći kroz mogućnosti simulatora.

  • Možete simulirati iPhone, iPhone Retina, iPad.
  • Simulirajte različite verzije iOS-a.
  • Napravite snimke ekrana.
  • Rotirajte ekrane (portretni i pejzažni načini rada)
  • Shake
  • Simulirajte malo memorije.
  • Simulirajte server za štampanje
  • Geolokacija lokacija
  • Multi-touch pokreti (maksimalno 2 prsta)
  • Ostalo

Svemu tome se može pristupiti iz menija programa simulatora:

Nekoliko riječi o simulatoru. Aplikacije se mogu instalirati na simulator samo putem Xcode-a; mogu se ukloniti direktno sa simulatora (kao na pravi uređaj), podržava multitasking. Ali ima i mnoga ograničenja, na primjer, ne možete instalirati certifikat u spremište certifikata lokalne aplikacije. Ali glavni nedostatak je to što je SIMULATOR, ali ne EMULATOR. Odnosno, samo se pretvara da je iOS uređaj, jednostavno crtanjem sličnog interfejsa (softverski nivo). Ali emulator radi upravo ono što će uređaj raditi (na fizičkom nivou). Kakav zaključak treba izvući? Obavezno testirajte na pravom uređaju. Imao sam slučajeva da radi na uređaju, ali ne i na simulatoru, i obrnuto.

Štampamo “Zdravo, svijete!”

Nadam se da je sve manje-više jasno do ove faze. Ako ne, onda ćete tokom procesa razvoja početi dublje razumjeti.

Ovo poglavlje je napisano u znak sjećanja na Dennis Ritchie tvorac programskog jezikaCi ključni programer operativnog sistemaUNIX, a takođe i kao koautor knjige „Programski jezikC» .

Svrha poglavlja je ukrasiti naše prazno sivi ekran. Odlično, idemo. Vraćamo se na Xcode, odabiremo “ViewController_iPhone.xib” u navigacijskom meniju. Zatim sa liste koja se pojavi odaberite "Prikaz". Na desnoj strani odaberite “Attributes Inspector”. Evo kako meni izgleda prozor plus dodatni komentari:

Sada dodajmo UILabel. UILabel je naziv klase u iOS SDK-u koji vam omogućava da prikažete tekst koji se ne može uređivati ​​na ekranu. Općenito, sve klase koje vam dozvoljavaju da nešto prikažete imaju prefiks UI: UIView, UITableView, UITextView, UIButton,…. U prozoru “Dostupni objekti za prikaz” potražite liniju pod nazivom Label. Kada ga pronađemo, kliknemo na njega i prevučemo ga na naš trenutni prikaz ekrana.

Plave isprekidane linije pomoći će vam da centrirate/kalibrirate relativni položaj oznake. I tako, odaberite Oznaka na listi prikazanih objekata, ako već nisu odabrani, i pogledajte stavku u svojstvima: Tekst. Hajde da tamo napišemo “Zdravo, svijete!”. i pritisnite Enter. Ovdje imamo promijenjen i smanjen tekst etikete. Hajde da popravimo ovo. IN kategorije imovine hajde da izaberemo "vladar""Inspektor veličine". Postoje polja:

  • x i y su koordinate gornjeg lijevog ugla oznake u odnosu na roditeljski pogled, odnosno pogled na koji smo postavili oznaku - to je u našem slučaju Pogled.
  • širina i visina – širina i visina uređenog objekta, respektivno.

Možete pokušati urediti ove vrijednosti i promatrati promjene. Također možete urediti poziciju i veličinu direktno pomicanjem naljepnice (teksta) i povlačenjem njenog okvira za različite načine "tačke".

Provedite još 15-25 minuta igrajući se sa različitim nekretninama u različitim kategorijama:

  1. Poravnanje teksta
  2. Veličina slova
  3. Boja, sjena teksta
  4. i sl.

Kasnije ćemo se vratiti na njih i objasnit ću svrhu pojedinih polja.

Koji standardni prikazi postoje u iOS-u?

IN prethodni paragraf Dotaknuo sam se imena nekih klasa odgovornih za interfejs. Sama konzola UI i označava korisnički interfejs. Ovdje ću dati, možda ne potpunu listu dostupne vrste pogled. Prvo, sve dole opisane klase nasljeđuju od UIView-a, tj. imaju ista svojstva i metode. Drugo, uvijek možete kreirati vlastiti prilagođeni prikaz. Lista ispod:

1) UILabel – oznaka – glavna svrha: prikaz jednog ili više redova teksta koji se ne mogu uređivati.

2) UIButton – dugme – glavna namjena: obično dugme, šalje signale objektima, obavještavajući da je pritisnut

3) UISegmentedControl – dugme sa segmentima – glavna namena: dugme sa nekoliko aktivnih delova, možete odrediti na koji ste kliknuli

4) UITextField – polje za unos teksta – glavna namjena: polje za unos teksta od strane korisnika

5) UISlider – klizač – glavna namjena: običan klizač, pomaže u intuitivnijoj promjeni postavki

6) UISwitch – prekidač za uključivanje/isključivanje – glavna namjena: ima dva stanja – uključeno ili isključeno, svrha je očigledna

7) UIActivityIndicatorView - indikator aktivnosti - glavna namjena: obično se koristi za informiranje korisnika da aplikacija ili preuzima podatke ili jednostavno izvodi neke kalkulacije

8) UIProgressView – indikator statusa (progresa) – glavna svrha: prikazati stanje završetka nečega

9) UIPageControl – prebacivanje između stranica – glavna svrha: prikaz broja stranica, prikaz trenutne stranice

10) UIStepper (>= iOS 5) - +/- kontroler koraka - glavna namjena: također očigledna

11) UITableView – tabela – glavna svrha: prikazivanje tabele je možda najpopularniji element

12) UITableViewCell – ćelija tabele – glavna svrha: prikaz reda u tabeli, obično prilagodljiv

13) UIImageView – slika – glavna svrha: prikazivanje slike ili slike

14) UITextView – tekstualno polje (scrollable) – glavna svrha: prikazivanje velike količine teksta koji se može pomicati.

15) UIWebView – web – glavna svrha: prikazivanje web stranice

16) UIMapView – karte – glavna namjena: prikaz karte

17) UIScrollView – prikaz koji se može pomicati – glavna svrha: prikazivanje nekoliko prikaza koji se ne uklapaju na jedan ekran

18) UIDatePicker – tip birača datuma – glavna svrha: idealno za unos datuma

19) UIPickerView – tip odabira bubnja – glavna svrha: alternativa tabeli pri odabiru opcije

20) UIView – samo pogled – glavna svrha: očigledna

21) UINavigationBar – navigaciona traka– glavna namjena: panel na kojem se prikazuje naslov ekrana i dodatna kontrolna dugmad

22) UINavigationItem – UINavigationBar elementi – glavna svrha: očigledna

23) UIToolbar – traka sa alatkama – glavna namjena: prikaz panela na kojem su postavljeni gumbi za kontrolu aplikacije

24) UIBarButtonItem – elementi trake sa alatkama – glavna svrha: očigledna

25) UIBarButtonItem (fiksni i fleksibilni prostor) – posebni elementi alatne trake – glavna namjena: promjena udaljenosti između dugmadi na traci s alatima

26) UITabBar – tabbar – glavna svrha: pomaže prebacivanje između različitih nepovezanih ekrana

27) UITabBarItem – element tabbara – glavna svrha: očigledna

Ovaj članak započinje seriju namijenjenu početnicima. Usuđujem se da se nadam da će nivo prezentacije materijala omogućiti da ga razumeju čak i ljudi koji nisu upoznati sa programiranjem. Započnimo našu priču malom lirskom digresijom. Aplikacije za iPhone i iPad su napisane u Objective-C. Ovaj jezik je bio naširoko korišten u NeXT-u i došao je u Apple nakon povratka Stevea Jobsa. Trenutno je Objective-C glavni jezik za razvoj OS X i iOS aplikacija.

Da biste započeli programiranje za iOS, trebat će vam Mac računar baziran na Intel procesoru i XCode razvojnom okruženju. Ako nemate Mac, nema veze. Možda će vam odgovarati jedna od opisanih metoda za rješavanje ovog problema. Fokusiraćemo se na XCode 4 i iOS5.

Instaliranje XCodea

Prvo ćemo se morati registrovati na Apple-ovoj web lokaciji za razvojne programere. Pratite link i kliknite na registraciju. Kliknite na dugme Započni i dovršite proces registracije. Tu je sve prilično jednostavno, tako da se neću zadržavati na ovoj tački. Nakon registracije, bit će vam poslan e-mail sa vašim Apple ID-om. Vratite se na stranicu Apple Developers i koristite je za ulazak u sigurno područje. U odjeljku DevCenters kliknite na iOS vezu. Kao što vidite, Apple vam nudi gomilu dokumentacije, izvora i tutorijala. Ova stranica sadrži sve što vam je potrebno za početak razvoja iOS-a. Na samom dnu nalazi se dugme Download Xcode na koje morate kliknuti. Nakon preuzimanja, instalirajte Xcode na svoj Mac.

Upoznavanje sa XCode 4 interfejsom

Da pokrenete Xcode, idite na svoj glavni disk i kliknite na programer>Aplikacije.

Kada se Xcode pokrene, odaberite File>New Project, a zatim Single View Application i unesite HelloWorld kao naziv proizvoda. Kao rezultat, trebali biste vidjeti nešto poput ovoga

Sav vaš kod i resursi su organizirani u posebne mape koje se nalaze na lijevoj strani Xcode prozora. Panel se zove "Project Navigator" i sadrži sve elemente vašeg programa. Datoteke izvornog koda imaju ekstenziju ".h" i ".m". Ako kliknete na takvu datoteku, na desnoj strani Xcode-a će se otvoriti uređivač s kodom.

Hajde da se za sada ne zadržavamo na kodu. Na ovo pitanje ćemo se vratiti malo kasnije. Ako pogledate vrh ekrana, vidjet ćete nekoliko dugmadi povezanih s vašim projektom. Proučimo ovaj panel detaljnije.

Dugme "Pokreni" pokreće vaš projekat. Možete testirati svoju aplikaciju i uvjeriti se da se zaista ponaša onako kako očekujete. Dugme "Zadaci" zaustavlja pokrenutu aplikaciju.

Pomoću dugmeta Schemr možete odabrati ciljnu platformu na kojoj će se pokrenuti vaša aplikacija. Ovdje možete odabrati simulator i otkloniti greške u programu na svom računalu ili ga pokrenuti na svom iPhoneu (iOS uređaju) ako ste platili naknadu od 99 USD. Jedina prednost koju ovo plaćanje pruža je mogućnost pokretanja programa na stvarnom uređaju i objavljivanja u App Store-u. Ne bih vam preporučio da trošite novac dok ne pripremite normalan program.

Prelomne tačke su veoma korisna stvar. Koristeći ovo dugme, možete označiti linije u izvornom kodu, a kada program dođe do označene linije tokom izvršavanja, program će pauzirati i možete pogledati stanje varijabli. Ovo je vrlo moćan i široko korišten alat.

Kliknite na dugme "Pokreni". Vidjet ćete prozor emulatora sa vašim projektom. Kao što vidite, iako ne blista funkcionalnošću, to je samo prazan prostor.

Programiranje za iPhone - prvi korak

Dosta je tucanja, hajde da kodiramo nešto. Prozor Project Navigator sadrži datoteke izvornog koda. Kliknite na neki .m fajl. Imajte na umu da su neke linije obojene zelenom bojom - ovo su komentari koji djeluju kao varalice. Kako se ne bi zabunili u kodu, programer može ostaviti savjete i objašnjenja za sebe. Za označavanje komentara u jeziku C koristi se kombinacija kosih crta //. Sve na liniji desno od ovih znakova smatra se komentarom. Ako želite da napišete višeredni komentar, možete koristiti kombinacije /* i */ da označite početak i kraj višerednog komentara.

Prije nego počnemo kodirati aplikaciju, moram vam prstima objasniti nekoliko koncepata: OOP (Object Oriented Programming), MVC (Modal View Controller), ".h" i ".m" datoteke. Dakle... objektno orijentirano programiranje uključuje podjelu cijelog koda na takozvane objekte, unutar kojih se pohranjuju podaci i komande koje ih obrađuju. Objekt u Objective-C se sastoji od dvije datoteke.h i .m. Datoteka.h se zove zaglavlje i sadrži "skicu" objekta - navedeni su svi podaci i imena komandnih blokova (metoda) sadržanih u objektu. Datoteka .m se zove implementacijski fajl i detaljno opisuje sve što je naznačeno u zaglavlju; tu je programirana sva programska logika.

MVC ( Model View Kontroler) je nešto što razdvaja kod i sučelje koje korisnik vidi. Model su podaci korisnika i podaci koje pokazujete korisniku. Pogled je korisnički interfejs i kod koji obezbeđuje komunikaciju između Viewa i Modela. Koncept MVC-a vam sada može izgledati previše zamućen, ali s vremenom ćete vidjeti da ovaj pristup zaista pojednostavljuje život programera. Ovaj koncept podrazumijeva sljedeći redoslijed rada: programer zasebno kreira predložak dizajna aplikacije, gdje postavlja sve tipke, tekstualna polja i druge važne gluposti, i piše programe odvojeno. Zatim XCode pokazuje koji metod (blok koda) treba pozvati kao odgovor na određenu radnju korisnika i koje ime ima ovaj ili onaj kontrolni element u tekstu programa.

Razvijamo dizajn programa za iPhone

Počnimo kreirati našu aplikaciju razvojem dizajna. U prozoru Navigator projekta kliknite na MainStoryboard_iPhone.storyboard. Kao rezultat toga, XCode će pokrenuti editor interfejsa.

U donjem desnom uglu vidite listu objekata (biblioteku) koji se mogu koristiti u vašem interfejsu; u centralnom delu je prikazan prozor View, koji predstavlja izgled interfejsa vašeg programa. U redu gornji prozor ima nekoliko režima koji se prebacuju pomoću ikona koje se nalaze iznad prozora. Slika prikazuje način rada inspektora atributa. Ovdje možete promijeniti različite atribute objekata koji čine vaš interfejs.

Hajde da povučemo Label objekat iz prozora biblioteke na izgled našeg prozora. Pomoću miša ćemo promijeniti veličinu objekta, kao što je prikazano na ekranu ispod. Inspektor prikazuje svojstva Label objekta. Centrirajmo tekst klikom na odgovarajuću ikonu u liniji Layout.

Izbrišemo tekst u polju Text (tamo je napisana riječ Label) i tamo unesite "Some String".

Slično tome, dodajte dugme u izgled (objekat dugmeta)

Dakle, razvili smo dizajn naše aplikacije. Ništa komplikovano, možete kliknuti na dugme Run i pogledati rad vašeg programa u prozoru emulatora.

Počnimo s kodiranjem

Dakle, imamo dvije vizualne komponente postavljene na izgled. Želimo da se tekst u retku promijeni kada se klikne na dugme. Da bismo implementirali ovu ideju, morat ćemo pristupiti redu (objekt oznake) iz programskog koda i pozvati metodu (blok koda) kada se pritisne dugme.

Kliknite na datoteku "ViewController.h" na lijevoj ploči. Opisat ćemo IBOutlet. IBOutlet povezuje naš kod sa vizuelnim objektom, kao što je oznaka ili dugme. Promijenite kod u datoteci ViewController.h tako da izgleda

#import @ interfejs ViewController: UIViewController (oznaka IBOutlet UILabel*; //dajemo našem nizu ime Label } //ovo je zaglavlje metode koja će biti //poziva se kao odgovor na klik na dugme- (IBAction) buttonClick: (id) pošiljalac; @end

Ovo je sve što treba da napišemo u zaglavlju. IBAction vam omogućava da povežete metodu sa elementom korisničkog interfejsa, na primer, kao odgovor na klik na dugme, programski kod koji smo napisali biće pozvan.

Dakle, rekli smo da ćemo pozvati string sa tekstualnom oznakom i da će metoda buttonClick biti pozvana kao odgovor na radnju korisnika. Hajde da napišemo kod za ovu metodu. Pređimo na datoteku ViewController.m u stablu projekta. Posle linije @implementacija... dodajte kod

- (IBAction) dugmeKliknite: (id) pošiljalac( label. text= @ ”Zdravo iz Mobilab. ru”; )

Napomena, ako ste kopirali ovaj kod, vjerovatno ćete dobiti grešku kada pokrenete program, najvjerovatnije je problem u navodnicima. Izbrišite ih i unesite sa tastature.

Hajde da shvatimo šta vidimo ovde. Pristupamo objektu labele - redu teksta na ekranu. Pošto je ovo objekat, on ima različite podatke unutar sebe (koji se u OOP-u nazivaju i svojstva objekta) i metode kojima se može pristupiti postavljanjem tačke iza imena objekta. Svojstvo teksta je odgovoran za tekst koji se nalazi unutar reda.

Završili smo kodiranje, sve što je preostalo je da povežemo oznaku i buttonClick sa elementima unutar izgleda dizajna. Kliknite na liniju MainStoryboard_iPhone.storyboard u prozoru Project Navigator da biste se prebacili na dizajner interfejsa. Zatim kliknite na ikonu “View controller”. Prebacite se na način povezivanja u inspektoru (posljednja ikona). Vidite, linija etikete se pojavila u dijelu Outlets inspektora. Ovo je ime koje smo naveli u datoteci ViewController.h. Kliknite na krug na desnoj strani linije oznake i prevucite ga na liniju Some Text u izgledu dizajna.

Uradite sličnu operaciju sa dugmetom. Kliknite na dugme sa krugom u grupi „Primljene radnje“, zatim kliknite na dugmeKliknite i prevucite ga na dugme u rasporedu. Kao rezultat, otvorit će se kontekstni meni, pomoću koje možete odabrati kada želite pozvati metodu. Možete, na primjer, pozvati kod kada korisnik pritisne dugme, ili kada ga otpusti. Postoji mnogo opcija. Odaberite "Doradite iznutra".

To je sve! Sačuvajte projekat i kliknite na dugme "Pokreni" na gornjoj ploči. Ako ste sve uradili kako treba, emulator sa vašim programom bi trebao da se pokrene. Kliknite na dugme. Tekst u retku bi se trebao promijeniti. To je sve. Prva lekcija je gotova

Najbolji članci na ovu temu