Kako postaviti pametne telefone i računala. Informativni portal

iOS programiranje od nule. Brz

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

Ciljevi lekcije

1.Gdje početi programirati za iPhone.
2.Gentleman's developer kit.
3.Domaća zadaća.

Uvod

Svi vidimo divlji uspjeh AppStore odjeljaka za aplikacije rastu kao gljive poslije kiše. Urednici svih informativnih portala o iPhoneima su izgubili noge i bez sna pišu, pišu i pišu recenzije. A programi se stalno pojavljuju i pojavljuju i pojavljuju. Vrijeme je da se i mi uključimo u ovaj proces i uzmemo svoj dio blagdanskog kolača.

Gdje početi? Pitanje je prilično retoričko. Naravno, ako ste, dragi čitatelju, odvjetnik ili, recimo, građevinar, bit će vam vrlo teško započeti i najvjerojatnije se time ne biste trebali ozbiljno baviti, jer, kako mi se čini, bolje je učiniti jednu stvar dobro nego učiniti nekoliko stvari 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 kojem jeziku - C, Pascal, Assembly, Delphi ili konačno BASIC ili čak Logo (bio je jedan u mom udžbeniku informatike ranih 90-ih), onda svakako biste se trebali okušati u iPhone aplikacijama.

Tu dolazimo do odgovora na glavno pitanje, odakle krenuti. Počnite s osnovama, ne morate ići daleko, dat ću vam samo nekoliko poveznica koje će vas na kraju odvesti "u Kijev":

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

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

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

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

Gospodinski pribor za programiranje iPhonea, kao i putna torba, prilično je oskudan i, u principu, početno stanje ne zahtijeva ništa osim prirodnog i skupog. Evo što sve trebamo za početak:

b) Operativni sustav MacOS Leopard verzija 10.5.5.

c) Toolkit s Apple web stranice, tzv. SDK, development kit. Ovaj paket sadrži sve što je potrebno za razvoj. Možete ga preuzeti ovdje: http://developer.apple.com/iphone, nakon registracije.
d) Također nam je potrebno strpljenje i ustrajnost. Bez ovoga, nažalost, nema načina.

Mnogi ljudi mogu odmah odustati nakon točke A. Iskreno ću vam reći, prije nego što sam upoznao iPhone, nisam uopće komunicirao s Appleom, a svoj prvi program za iPhone napisao sam čak i bez MacBooka. Strastveni sam korisnik Windowsa, koji je započeo svoj odrasli život s Windowsom 3.1 i doživio da vidim Windows Vistu. Bio sam očaran praktičnošću MacOS-a i uopće ne žalim zbog ove kupnje, iako još uvijek na njega trošim lavovski dio svog vremena. računala s OS-om Billa Gatesa.

Za one koje ove riječi ne uvjere, još uvijek postoji izlaz. Od prelaska računala s Applea na platformu s Intel procesorom, postalo je moguće (naravno, ne bez plesa i tamburaša) instalirati MacOS na obično PC računalo, priznajem da sam to učinio sam. U svijetu je takav OS poznat pod različitim imenima: Kaliway, Hackint0sh itd. Na svim servisima za hosting datoteka lako ćete pronaći sliku koja vam je potrebna, a njezinim preuzimanjem možete instalirati Makos na svoje računalo. Čak i ako želite, pokrenite ga u prozoru VMWare. Neću opisivati ​​kako sve to učiniti, nije prikladno promovirati metode zaobilaženja licence na Mac računalima, ali potrudit ću se upozoriti vas na neke pogreške, izbjegavajući ih, možda nećete izgubiti interes za programiranje čak ni na početna faza pripreme alata:

1. Prilikom instalacije UVIJEK koristite zasebni tvrdi disk spojen kao glavni na IDE ili SATA zero sabirnicu.
2. Ne pokušavajte instalirati Leopard iz VMWarea - provjerio sam mnogo puta - nemoguće je, iako postoje ljudi na mreži koji tvrde da su to učinili.

3. Nakon što instalirate Makos, možete ga pokušati pokrenuti iz Windowsa na WWW-u, ako imate dovoljno resursa. Također, poseban problem su vozači. Mrežni će vas vrlo vjerojatno sam sustići, video će biti 800x600 - glupo VGA. Ali što učiniti sa svojom 8800GTX karticom, Wi-Fi adapterom i plavim zubom, onda ovisno o vašoj sreći (češće).

4. Bez obzira na koliko sam slika naišao - sve su imale verziju 10.5.1 ili 10.5.2, ali trebat će nam barem 10.5.5 za rad. Ažuriram svoj Mac putem interneta, ali kod Hackintosha, kod ažuriranja na 10.5.5, ovaj trik neće raditi - uhvati jabuku, također je više puta provjereno. Na internetu postoji algoritam kako ažurirati hackin na 10.5.5 uz zadržavanje funkcionalnosti sustava – potražite ga, naći ćete ga.

I tako, alati su opisani, prijeđimo na domaću zadaću.

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

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

B) Ažurirajte ga na verziju 10.5.5.

C) Preuzmite i instalirajte SDK od Applea. Preuzmite hrpu primjera s mreže, pokušajte ih sve sastaviti. Općenito, počnite proučavati nasumično (najčešća metoda u našoj zemlji, nevjerojatna u svojoj učinkovitosti).

Napišite recenzije.
Rashid (aka rashn).

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

Zanimanje programera jedno 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 Mobilni uredaji. Kao što znate, dogodilo se da su, ostavivši svoje konkurente daleko iza sebe, tri stalna rivala preuzela vodstvo. Trik je u tome što je jedan od ove trojice neprikosnoveni lider, dok ga netko uvijek sustigne.

U segmentu mobilne tehnologije Apple je nesumnjivo vodeći sa svojim pametnim telefonom iPhone. Na prezentaciji održanoj u rujnu tvrtka iz Cupertina demonstrirala je 7. verziju mobilni uređaj. Uz to, Apple je predstavio i novu verziju svog mobitela operacijski sustav iOS 10. Sada je ovo najznačajniji operativni sustav na svijetu, kao i njegovi prethodnici. Iz ovoga proizlazi da je učenje iOS razvoja najviše isplativo ulaganje vrijeme i novac.

Ekosustav jabuke

Danas ćemo razviti jednostavnu mobilnu aplikaciju za iOS. Naravno, izvorni Mac je najprikladniji za to. Ali ako podržavate Windows ili jednostavno nemate Mac, možete instalirati operativni sustav macOS pod virtualnim strojem u Windowsima. U beskraju Interneta neće vam biti teško pronaći onaj posebno dizajniran za računalo. macOS verzija, popularno zvan Hackintosh. Slobodno ga instalirajte na VMware virtualni stroj, VirtualBox - vaš izbor. Odmah da vas upozorim da PC tipkovnica nema neke od tipki koje se nalaze na Mac tipkovnici, a mnoge njihove kombinacije nije moguće pritisnuti u Hackintoshu. Ovo prilično kvari raspoloženje. Inače, sve dolje opisane operacije mogu se uspješno izvesti na Hackintosh-u.

Potrebna znanja

Za programiranje općenito, a posebno za iOS, morate znati dosta toga. Matematika i logika možda u početku neće biti potrebne, ali kasnije će biti tražene. Moderna tehnologija eliminirala je potrebu da programer ima temeljito poznavanje arhitekture računala, ali je neophodno razumijevanje osnovnih mehanizama kao što su brojevni sustavi, njihova pretvorba, brzina potprograma ili učinkovitost algoritama (veliko O).

Za više visoka razina iOS programer mora dobro poznavati operativni sustav macOS i sam iOS. Također morate savladati programski jezik Apple. Poznavanje Delphija, C++, C# ili VB.NET-a vam neće puno pomoći. Apple ima vlastiti ekosustav sa svojim jezicima: Objective-C i Swift. Naravno, poznavanje C++-a nikada nikome nije naškodilo programima i umetci koji se temelje na njemu nalaze se posvuda, čak iu Appleu. No najkorišteniji po definiciji je Objective-C, jednostavno zato što se pojavio mnogo ranije (sredinom osamdesetih godina prošlog stoljeća), dok je Swift tek prije dvije godine (2014.). Apple dodjeljuje velike nade na novi jezik i puno ulaže u to. Objective-C se koristi za podršku starom softveru, a novi je napisan u Swiftu. Dakle, dobro je da znate oboje.

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

Razvojni alati

Kao što znate, glavni razvojni alat za macOS i s njim za iOS je programsko okruženje Xcode. Sadrži alate za izradu aplikacija za Mac, iPhone, iPad, Apple TV, Apple Watch. Sve Apple platforme. Xcode sadrži Interface Builder, uređivač koda koji podržava sve modernim sredstvima rad s kodom. Osim toga, bez napuštanja Xcode-a možete testirati aplikaciju; ako je razvijen za vanjski uređaj, tada se može pokrenuti u emulatoru.

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

Dana 13. rujna objavljena je nova, željno iščekivana verzija razvojnog okruženja 8.0. Stabilne verzije može se besplatno preuzeti s App Storea. 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 Buildera, koji je postao brži i omogućuje pregled izgleda 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. Dostupni su svi SDK-ovi. Odmah nakon toga počele su se stalno pojavljivati ​​nove verzije operativnih sustava Apple prezentacije, održan početkom rujna.

Objective-C jezik

Podsjetimo se ukratko na osnovne podatke o jeziku. Objective-C je kompilirani objektno orijentirani programski jezik koji se koristi za pisanje aplikacija za Appleove sustave. To je superset ili, drugim riječima, dodatak C-u, nasljeđujući od potonjeg sintaksu, tipove podataka, metode praćenja napretka izvođenja programa i dodajući mu mogućnosti objektno orijentiranog programiranja - opis klasa i metode.

Kao i u C++, u Objective-C središnju ulogu igraju objekti, koji su povezani s četiri paradigme: apstrakcija, enkapsulacija, nasljeđivanje, polimorfizam. C++ je jako tipiziran jezik, dok je Objective-C slabo tipiziran ili ima dinamički sustav tipova podataka. Poput Smalltalka, Objective-C šalje poruke objektima. Ovo je izuzetna prilika dinamički jezici, jer se vrsta objekata provjerava tijekom izvođenja, a ne tijekom kompilacije.

Opis Objective-C jezika zauzima više od jednog obimnog sveska. Stoga je za stjecanje objektivnog znanja zgodno pohađati tečaj “”. Cijeli dio tečaja posvećen je ovom jeziku.

Razvoj iOS aplikacija

Kao uzorak razvit ćemo vrlo jednostavnu aplikaciju. Ne odstupajmo od svete tradicije, pozdravimo svijet. Međutim, uzimajući u obzir činjenicu da mi grafička primjena, malo ćemo ga diverzificirati: dodat ćemo gumb, kada kliknemo, prikazat ćemo ili sakriti natpis "Hello, World".

Pokrenite Xcode, u prozoru koji se pojavi odaberite Create new project ili u glavnom izborniku File -> New -> Project. Sljedeći prozor od vas će tražiti da odaberete ciljnu platformu i vrstu aplikacije.


U ovom slučaju nas zanima iOS platforma. Postoji sedam vrsta aplikacija koje možete izabrati. Šest od njih su predlošci za tipične aplikacije iOS operativnog sustava, koji prema zadanim postavkama sadrže različit skup komponenti. Sedma vrsta je igra.

Vrste aplikacija

  • Predložak Single View Application namijenjen je za jednostavna primjena s jednim ekranom. Unaprijed uključuje komponentu View Controller, koja vam omogućuje da prilagodite izgled aplikacije pomoću dizajnera obrazaca Interface Builder.
  • Master Detail Application stvara aplikaciju gdje prikaz tablice prikazuje se zbirka objekata. Nakon odabira jednog od njih, oni se prikazuju pojedinosti o ovom objektu. Prvi pogled je glavni, drugi je detalj.
  • Page-Based Application stvara aplikacije koje imaju više zaslona, ​​poput stranica u knjizi. Posljedično, e-čitači se stvaraju od ove praznine.
  • Aplikacija s karticama omogućuje kreiranje aplikacija na koje se svaki ekran može prebaciti u bilo kojem trenutku, odnosno svaki ekran ima svoju tipku za aktiviranje na kojoj se prikazuje naslov. Primjer je iTunes.
  • Igra se koristi za izradu predloška igre. Postoje četiri okvira za izradu igre: SpriteKit, SceneKit, OpenGL ES, Metal. Pogledajmo ih ukratko.
    SpriteKit je sustav za 2D renderiranje i animaciju teksturiranih pravokutnika - spriteova. Kod prikaza okvira koristi se standardna petlja, okvir se prikazuje nakon obrade svih sadržaja scene.
    SceneKit je okvir visoke razine za renderiranje 3D grafike bez OpenGL-a. Podržava učitavanje, manipuliranje 3D objektima. Uključuje: fizički motor, generator čestica i jednostavan način skriptiranje.
    OpenGL ES je industrijski standard računalna grafika. Omogućuje vizualizaciju 2D i 3D scena. Omogućuje vam da opišete cjevovod za video karticu: vrhovi prolaze kroz transformaciju, sastavljaju se u primitive, koji se rasteriziraju u dvodimenzionalnu sliku i prikazuju na ekranu. Programabilni shaderi mogu biti uključeni u cjevovod.
    Metal je API niske razine koji će vam omogućiti da maksimalno iskoristite svoj video adapter. Otklonjeni API-ji zajedno s unaprijed kompajliranim shaderima i multi-threadingom omogućuju vašoj igri da se popne na vrh. nova razina produktivnost i kvalitetu.
  • Aplikacija paketa naljepnica - nova vrsta aplikacije uvedene u iOS 10 i Xcode 8. To je skup jednostavnih ili animiranih slika koje se koriste u nova iMessage. Ne zahtijeva kodiranje za njegovu izradu.
  • Aplikacija iMessage je nova vrsta aplikacije koja se pojavila u iOS-u 10 i Xcode 8. Omogućuje vam stvaranje dodataka za iMessage, na primjer za kupnju i preuzimanje vašeg paketa naljepnica. Također možete koristiti iMessage API za stvaranje vlastitog analoga ove aplikacije, uključujući reprodukciju zvuka, videa, korištenje naljepnica i više.

Izrada prvog projekta

Kao predložak za našu aplikaciju odabrat ćemo aplikaciju Single View. Budući da nećemo razvijati veliki program, sredstva predviđena ovom odredbom bit će nam dovoljna. Pritisnite Dalje. Na sljedećoj stranici čarobnjaka trebate unijeti naziv projekta, na primjer ShowLab. Na padajućem popisu Jezik ostavite odabran zadani jezik - Objective-C. Zatim na padajućem popisu Uređaji ostavite odabir Univerzalni. Ovdje određujete za koji uređaj (iPhone ili iPad) se kreira aplikacija. Univerzalna klauzula znači za oboje. Poništimo okvire Include Unit Tests i Include UI Tests; ne trebaju nam nikakvi testovi. Sljedeći. Odaberite mapu za spremanje projekta. Sada kliknite gumb Stvori.

Kao rezultat toga, otvorit će se prozor s popisom svih parametara primijenjenih na projekt. U ovom prozoru možete promijeniti parametre prethodno postavljene u čarobnjaku: orijentaciju, ciljni uređaj itd.


Prvo moramo izraditi sučelje aplikacije. Da biste to učinili, jednim klikom odaberite datoteku Main.storyboard na popisu s lijeve strane (ako ova datoteka nije vidljiva, proširite sadržaj mape ShowLab). Desno od popisa, cijeli prozor će zauzeti Interface Builder. Izgled uređaja bit će prikazan u sredini. U donjem desnom kutu prozora nalazi se ploča s komponentama. Povucite komponente Label i Button od tamo na izgled. Iznad ploče s komponentama nalazi se popis svojstava. Ako ga nemate, kliknite gumb Prikaži inspektor atributa koji se nalazi ispod naslova prozora na desnoj strani sučelja.

Odaberite komponentu Label u izgledu i konfigurirajte njezino svojstvo Text: ostavite odabir Plain na padajućem popisu, u donji redak unesite željeni natpis, u našem slučaju "Hello, World". Ako tekst ne stane unutar granica oznake, promijenite ih povlačenjem ručica na rubovima komponente. Za horizontalno centraliziranje idite na stranicu Size Inspector klikom na gumb Show the Size Inspector (desno od Show the Attributes Inspector). Na ovoj stranici s padajućeg popisa Rasporedi odaberite Horizontalno centriraj u spremniku.

Sad biraj Komponenta gumba, promijenite svojstvo Text na ž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

U Vizualni studio(ili Delphi) objekt u kodu kreira se automatski u trenutku kada postavite vizualnu komponentu na obrazac. To se ne događa u Xcodeu, ali ne uzrokuje probleme.

Otvorite sadržaj datoteke zaglavlja ViewController.h u zasebnom prozoru dvostrukim klikom na nju. Ova datoteka sadrži deklaraciju proširenja klase UIViewController, označenu ključnom riječi @interface. Ova je značajka dodana drugoj verziji Objective-C. Sada učinite ovaj trik: pomaknite kursor miša na komponentu - tekstualnu oznaku, držite Tipka Ctrl i lijevom tipkom miša. Pomaknite kursor na prozor s kodom (datoteka ViewController.h), plava linija će pratiti kursor. Otpustite miš i tipku unutar opisa sučelja ViewController.

Pojavit će se prozor za stvaranje utičnice.


Ovo je svojstvo objekta koje se odnosi na drugi objekt (u ovom slučaju vizualnu komponentu). Potrebno je unijeti naziv Outlet objekta, kojim ćete pristupati vizualnoj komponenti, neka to bude lab. Zatim je odabrana vrsta objekta, ispravno je odabrana: UILabel.

Još niže na popisu Pohrana odaberite vrstu reference objekta: slaba ili jaka. Ako odaberete jak, tada će objekt na koji ukazuje svojstvo postojati sve dok svojstvo ukazuje na njega, u kojem slučaju neće biti automatski izbrisan kada se više ne koristi. S druge strane, kada je na snazi ​​slaba referenca, objekt se može samouništiti. Dakle, odaberite vrstu slabe veze i kliknite gumb Poveži. Kao rezultat toga, kodu će biti dodan sljedeći redak:

@svojstvo (slabo, neatomsko) IBOutlet UILabel *lab;

Uvjerimo se da je Outlet vlasništvo.

Sada napravimo izlaz za gumb. Algoritam ostaje isti. Samo za svojstvo Name trebate unijeti drugi naziv, na primjer ali. Redak će biti dodan kodu:

@svojstvo (slabo, neatomsko) IBOutlet UIButton *ali;

Kao rezultat toga, imamo dva pokazivača na vizualne komponente: laboratorij i ali - natpis i gumb. Sada, pomoću pokazivača, možemo manipulirati komponentama u kodu.

Zatim trebate stvoriti rukovatelj događajem klika na gumb. Da biste to učinili, otvorite datoteku implementacije ViewController.m u zasebnom prozoru. Na potpuno isti način kao što ste povukli redak u datoteku zaglavlja da biste stvorili izlaz, s gumba povucite redak u implementacijsku datoteku i ispustite ga u završnu naredbenu zagradu - @end. Pojavit će se prozor za kreiranje događaja, sličan prozoru za kreiranje prodajnog mjesta. Vidite razliku: poveznica na objekt stvorena je u datoteci zaglavlja, metoda je stvorena u datoteci implementacije.


Ispunite polje Name, njegova vrijednost predstavlja naziv svojstva - metode. Neka bude onClick. Ostavite vrijednost polja Vrsta kao zadanu - id. U Objective-C jeziku, ovaj tip je predak svih ostalih. U padajućem popisu Event standardno je odabran događaj Touch Up Inside koji se događa kada se pokazivač (miš, prst...) pusti preko gumba, odnosno završna faza pritiska na gumb. To je ono što nam treba. U popisu argumenata ostavit ćemo zadanu vrijednost: pošiljatelj je objekt koji je poslao ovaj signal, u našem slučaju to će uvijek biti gumb. Pritisnite gumb Poveži se. Kao rezultat, sljedeći kod će biti dodan:

- (IBAction)onClick:(id)pošiljatelj ( )

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

Između naredbenih zagrada napisat ćemo kod koji se izvršava pritiskom na gumb:

Lab.hidden = !_lab.hidden;

U ovom retku koda invertiramo vrijednost skrivenog svojstva. To je tipa BOOL, koji ima dvije vrijednosti: YES - true i NO - false (pomalo neobično za Windows programere, gdje je true i false).

Obratite pažnju na znak podvlake ispred naziva objekta - oznake (_lab). Bez njega kompilacija neće uspjeti s pogreškom. Podvlaka se dodaje automatski za objekte sadržane unutar drugih objekata; to jest, u ovom slučaju, laboratorijski objekt je sadržan u objektu ViewController. Prethodno je ovo bila konvencija koja se koristila za razlikovanje objekata deklariranih kao članovi klase i lokalnih objekata. A sada je ovo strogo pravilo implementirano u jezični kompilator.

Sada možete kompajlirati aplikaciju i pokrenuti je na simulatoru. Odabrali smo simulator za iPhone 7, uključen u Xcode 8. Gumb za prevođenje i pokretanje je crni pravokutnik i nalazi se u traci na vrhu sučelja.

Nakon kompajliranja aplikacije, pokretanja simulatora i učitavanja naše aplikacije, njeno sučelje će se prikazati na ekranu simulatora: natpis “Hello, World” i gumb Switch. Ako pritisnete posljednji, natpis će nestati; ako ga pritisnete ponovno, pojavit će se ponovno.

Napravili smo vrlo jednostavnu aplikaciju za razumijevanje suštine iOS razvoja. Detaljnije informacije o izradi iOS aplikacija u Objective-C možete saznati iz tečaja naših prijatelja iz GeekBrainsa “”. Tečaj posvećuje dva mjeseca učenju ovog jezika. Tijekom prvog mjeseca - uvodne teme, au drugom - pravo kodiranje profesionalnih aplikacija.

Brz jezik

Apple je 2014. godine predstavio novi programski jezik – Swift. Brzo je postao jezik o kojem se najviše pričalo i najbrže rastući jezik na svijetu. Pouzdan je, siguran, intuitivan jasan jezik za razvoj aplikacija za operacijske sustave macOS sustavi, iOS, tvOS i watchOS za cijelu flotu Apple uređaja. Swift je učinkovit programski jezik. Lakši je za naučiti nego njegov prethodnik, Objective-C, a Swift je posudio neke od njegovih najboljih ideja. Istodobno, programeri su učinili jezike kompatibilnima, odnosno jedan program može sadržavati kod i u Swiftu i u Objective-C. U svijetu postoje milijarde redaka koda i stotine tisuća naslijeđenih programa napisanih u Objective-C, tako da njegova podrška sigurno neće biti napuštena.

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

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

Zbog svog eksponencijalnog razvoja, jezik Swift je 3. prosinca 2015. pušten u zajednicu otvorenog koda. Istodobno, Apple strogo prati njegov razvoj, organizirajući odbor za njegov razvoj. Swift je sada dostupan ne samo na Appleovim sustavima, već i na Linuxu. svi dodatni alati za rad s jezikom, uključujući program za ispravljanje pogrešaka, standardnu ​​biblioteku, upravitelj paketa, također besplatan i otvoren.

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

Trgovina aplikacijama

Jednostavno rečeno, App Store je trgovina sadržajem za cijeli niz Apple uređaja. Ovdje možete kupiti igre i aplikacije velikih tvrtki i neovisnih 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 raditi, morate se registrirati kao programer i kupiti licencu za prodaju svojih aplikacija. Ovo je naknada za pruženu uslugu i razvoj App Storea.

Rezultati

Razvili smo jednostavnu aplikaciju za mobilni operativni sustav iOS koristeći Xcode programski sustav uz Objective-C jezik. Provjereno spremna aplikacija na iPhone 7 simulatoru naučili smo kako izgraditi korisničko sučelje koristeći Interface Builder, kako povezati grafičke elemente s kodom aplikacije i kako stvoriti rukovatelje događajima. Upoznali smo se s osnovama Objective-C. Osim toga, skrenuli smo pozornost na obećavajući jezik Swift, koji se koristi za razvoj snažnih i sigurnih aplikacija za Appleov ekosustav.

Međutim, proučavani materijal je samo početak. Kako biste se intenzivno nadogradili u smjeru mobilnog kodiranja i razvoja stvarno prodajnih aplikacija, preporučamo pohađanje tečaja “” na web stranici naših prijatelja.

Ovo je tečaj vrijedan: ako ga pohađate, sigurno nećete gubiti vrijeme. Započinje s dva detaljna tečaja jezika Java, nakon čega slijedi učenje osnovnog programiranja za mobilni operativni sustav Android sustav. Daljnji tečaj o bazama podataka općenito i SQL jezik posebno. Zatim dubinski tečaj o razvoju profesionalnih Android aplikacija. Nakon toga, vektor studija krenut će prema Apple sustavima: dva detaljna tečaja o jeziku Objective-C i koristan tečaj o Swiftu.


Nastavu na kolegiju izvode stručni predavači s dugogodišnjim iskustvom u razvoju softvera. Ako nešto nije jasno, možete postaviti pitanje bez odlaganja. Općenito, učenje na GeekBrainsu je proces uživo, možete komunicirati, postavljati pitanja i pomoći s odgovorima. Za provjeru stečenog znanja nastavnici izdaju domaća zadaća, što se zatim provjerava. Nakon završene edukacije imate zagarantiranu praksu u IT tvrtki. A onda sve ovisi o vama, ako se pokažete kao kompetentan stručnjak, bit ćete pozvani na posao.

Poseban projekt s tvrtkom

Swift je Appleov robustan i intuitivan programski jezik koji možete koristiti za izradu aplikacija za iOS, Mac, Apple TV i Apple Watch. Programerima daje kreativnu slobodu bez presedana. Zahvaljujući ovom jednostavnom i zgodan jezik S otvoreni izvor Sve što trebate je zanimljiva ideja za stvaranje nečeg nevjerojatnog.

Programeri već koriste
nevjerojatne značajke Swifta.

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

Sjajna aplikacija u Swiftu. Jednostavnost korištenja i odziv u stvarnom vremenu razlog su zašto je VSCO odabrao Swift za izradu nove verzije njihove iOS aplikacije za fotografije.

Izvrsne aplikacije,
razvijen u Swift jeziku.

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

Duolingo Khan
Akademija Clear Sky Guide

Procreate Kickstarter Eventbrite Hipmunk

Produktivnost je veća. Aplikacije su bolje.

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

Sve do 2.6 puta brži od Objective-C

Sve do 8.4 puta brži od Pythona 2.7

10 000 cijelih brojeva pronađeno je u grafikonu korištenjem algoritma pretraživanja u dubinu*

Dodan je brzi jezik
u nastavni plan i program.

Nisu samo programeri ti koji cijene potencijal jezika Swift. Sveučilišta i druge obrazovne ustanove podučavaju Swift na satovima programiranja i objavljuju besplatne tečajeve na iTunes U, što znači da čak i početnici mogu lako prijeći s osnovnog kodiranja na profesionalno programiranje.

Sveučilišta koja su uključila Swift u svoj kurikulum

  • Kalifornijsko sveučilište u Santa Cruzu
  • Foothill College
  • Kraljevsko tehnološko sveučilište u Melbourneu
  • Tehničko sveučilište u Münchenu
  • Lawson Community College
  • Manhattan Community College
  • Mesa Community College
  • Houston Community College
  • Central Piedmont Community College
  • Sveučilište u Plymouthu
  • Kalifornijsko državno politehničko sveučilište
  • Sveučilište Stanford
  • Northwest Kansas Technical College
  • Tehnološki institut u Monterreyu
  • Sveučilište Aberystwyth
  • Sveučilište s punim jedrima
  • Škola Ingesup
  • Južno metodističko sveučilište

Swift je posvuda.
A sada je otvoren za sve.

Swift je besplatno dostupan za korištenje programerima, nastavnicima i studentima pod licencom softvera otvorenog koda. izvorni kod Apache 2.0. Nudimo OS X i Linux binarne datoteke koje vam omogućuju 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 izravno pridonijeti izvornom kodu Swifta.

Upoznajte Swifta.

glavna knjiga

Preuzmite tutorial Swift programski jezik iz Apple Books Store besplatno. Saznajte kako Swift programiranje čini 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 stvaranje nevjerojatnih aplikacija. Može se besplatno preuzeti s Mac App Storea.

Web stranica razvojnog programera

Budite detaljni tehničke informacije i odjavi se puni pregled Brz jezik. Provjerite blog programera da biste bili u tijeku. najnovije vijesti. Imate li i vi besplatan pristup do sjajnih resursa: vodiča, videozapisa i primjera koda.

  1. Programski jezik. Što trebate znati za pisanje aplikacija za iOS.
  2. Trebate li dizajnera, programera sučelja ili nekog trećeg?
  3. Službeni dio: certifikat programera.
  4. Potrebna oprema za ugodan razvoj.
  5. Vječno pitanje: AndroidOS ili iOS?
  6. Što treba učiniti danas?
  7. Izrada novog projekta.
  8. Kompilacija. Što je to i zašto je potrebno?
  9. Trčanje na simulatoru.
  10. Tiskamo "Hello, world!"
  11. Koji standardni prikazi postoje u iOS-u?

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

Programski jezik(wikipedia.org) - formalni znakovni sustav dizajniran za bilježenje računalni programi. Programski jezik definira skup leksičkih, sintaktičkih i semantičkih pravila koja definiraju izgled programa i akcije koje će izvođač (računalo) izvoditi pod njegovom kontrolom.

Možda je pitanje koje sam postavio u naslovu ovog dijela prilično složeno. Mogu odgovoriti jednostavno - Objective-C. Kad bih tu stao, pogriješio bih. Rekao bih da je Objective-C minimum. Nedavno je održana konferencija Yandexa - YET, na kojoj je jedno od izvješća bilo posvećeno tome koje programske jezike programer treba znati. Odgovor je bio otprilike ovaj: “Mora stalno učiti nove i nove programske jezike, ne zaustavljajući se ni na jednom posebno.”. S ovim se potpuno slažem. Učenjem novih programskih jezika učite nove pristupe i metode programiranja. Dakle, za pisanje aplikacija za iOS potrebno je poznavati Objective-C, ali također je poželjno poznavati i druge programske jezike kako bi vaš kod bio dobar, učinkovit i fleksibilan.

Ako još niste programer, savjetujem vam da počnete s jezikom C. Preuzmite knjigu Kernighana i Ritchieja ( ili još bolje, kupite ga) o jeziku C, pročitaj, napravi sve što ti se sugerira, a nakon toga bih ti savjetovao da prijeđeš na Objective-C. Ako već razumijete kako se pišu programi, spremni ste lako odgovoriti na pitanja - “Što su tipovi podataka? Što je varijabla? Što je funkcija ili metoda? Što je poveznica i pokazivač? Što se dogodilo "uključiti”?” , znate C ili C++ ili Java ili C#, onda ste spremni napisati svoju prvu aplikaciju za iOS.

Također morate poznavati osnove OOP-a i dizajn obrazaca. Popis se vjerojatno može nastaviti, ali teško da sam spreman tražiti kvalitativno objašnjenje ovih pojmova. Da, nažalost, Objective-C nije jezik s kojim možete započeti svoje programersko putovanje. Ali ako volite i želite stvarati, onda je vrijeme da otrčite u trgovinu, kupite knjige i započnete svoje razvojno putovanje.

Trebate li dizajnera, programera sučelja ili nekog trećeg?

Još jedno, ne manje jednostavno pitanje. Ako ste programer i znate pisati konzolne programe i želite početi pisati aplikacije za iOS, tada vam u početnoj fazi takva osoba nije potrebna. Ako imate iPhone || iPad || iPod Touch Ako ste upoznati s iOS-om, onda vam ne treba front-end programer. Općenito, Apple ima takav dokument - ljudskiSučeljeSmjernice. Ovaj dokument opisuje gdje i koji element sučelja 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 raznobojne tekstove, gradijentne ispune itd. u PS-u. Kasnije ćemo izraditi prvi projekt u kojem ćemo se upoznati sa svim fazama izrade aplikacije “Hello, World!”.

No, morate shvatiti da kada krenu ozbiljni projekti, aplikacije koje želite objaviti u AppStoreu, bit će vam teže bez dizajnera i programera. Poteškoća se može manifestirati u različitim fazama - bilo tijekom razvoja aplikacije, kada satima tražite potrebnu sliku ili sjedite i stvarate u PS-u, ili nakon što objavite aplikaciju i počnete primati komentare od naših dragih korisnika koji će se žaliti na vaše loše oblikovati besplatna aplikacija. Naišao sam na slične probleme u obje faze. Nakon što sam dobio loše komentare na AppStoreu, htio sam napustiti svoju aplikaciju, koja je inače besplatna, i zaboraviti na nezahvalne korisnike. Međutim, korisnost same aplikacije meni, kao i mnogim drugim korisnicima, natjerala me da progutam te ljutite komentare i nastavim s razvojem aplikacije. Prije otprilike tri mjeseca počeo sam razvijati aplikaciju zajedno s dizajnerom koji mi govori što da ubacim i gdje, koju boju da odaberem, gdje i koju sliku da nacrtam, i to je, želim reći, prilično zgodno. Stoga vam ipak savjetujem da u jednom 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 njegova funkcionalnost trpi.

Službeni dio: certifikat programera

Vjerojatno ste već čuli puno o nekoj vrsti certifikata programera. Sada ću vas pokušati informirati - zašto je to i treba li vam baš sada. Certifikat programera je datoteka, baš kao i svaki drugi certifikat. Ovu datoteku dobivate od Applea nakon što prođete sve faze registracije u sustavu iOS (MacOS) Developer (Poduzeće) Program.

Što ćete imati to dati? ovu datoteku i registracija u jednom od gore navedenih programa? Odgovori na ovo pitanje su porazni. Stoga ću reći samo ono najvažnije (sve što je dolje opisano dano vam je na točno godinu dana):

  • testiranje vaših aplikacija na vašim uređajima (iako se čini da je to moguće hakirati i može se učiniti bez certifikata)
  • pristup forumu za programere na Apple portalu (iako postoji zajednica na StackOverflow.com, gdje možete puno brže pronaći odgovor na svoje pitanje)
  • mogućnost preuzimanja beta verzija (i naravno aktualnih) iOS-a i Xcode-a
  • mogućnost ugradnje iOS beta verzije na svoj uređaj
  • mogućnost objave aplikacije u AppStoreu
  • mogućnost povezivanja do 100 uređaja s vašim računom, čime se na te uređaje omogućuje instaliranje beta verzija iOS-a, testiranje vaših aplikacija (još nisu objavljene u AppStoreu) i još mnogo toga ilegalnog
  • priliku da se pohvalite svojim prijateljima da ste službeni programer iOS aplikacija

Ako odlučite da vam treba takva potvrda, budite spremni odvojiti se od 100 USD (300 USD za Enterprise), poslati faks u SAD, unesite svoj bankovna kartica(pozor! Tvoj, točno tvoj), dobro, dovrši čitanje ovog poglavlja.

Pa, idemo.

  1. Slijedite ovu vezu http://developer.apple.com/programs/ios/
  2. Kliknite na Enroll Now
  3. Pažljivo čitamo poplavu i idemo dalje – Nastavi
  4. Ovdje imamo 4 točke:?a. Želite li stvarati novi Apple ID za Apple Developer Program?b. Želite li koristiti postojeći Apple ID?c. Jeste li već registrirani kao jednostavni programer, a sada želite postati službeni programer sa svim gore opisanim prednostima? Već ste član iOS ili Mac Developer Programa i želite povezati drugi program sa svojim računom
  5. Prijatelji, sljedeće morate proći kroz nekoliko koraka kako biste ispunili svoje osobne podatke. Ne sjećam se više točno što je tamo. Ako imate bilo kakvih pitanja, postavite ih u ovoj temi, na sve ću odgovoriti najbolje što mogu.
  6. Dobili ste poveznicu na .pdf datoteku koju trebate ispuniti i faksirati Appleu.
  7. Ispisujemo ga i ispunjavamo (vrlo pažljivo i pažljivo).
  8. Šaljemo faks uredu Applea u SAD-u. (Pazite da vam faks ne padne u pogrešne ruke, jer tamo navedete broj bankovne kartice i CVV).
  9. Čekamo N dana (tjedana) da Apple obradi vaš zahtjev.
  10. Primamo pismo u kojem vam čestitamo što ste se prijavili za program i izgubili stotinu dolara. hura!

Nakon uspješnog završetka potrage imat ćete pristup http://developer.apple.com/membercenter/. Možda je za pregled te stranice ili potreban poseban članak ili Google/Yandex pretraživanje.

Pa, prijatelji, prijeđimo na preostala pitanja dnevnog reda.

Potrebna oprema za ugodan razvoj

Ako ste ozbiljno odlučili početi razvijati aplikacije za iOS, onda toplo preporučujem da odmah kupite računalo / prijenosno računalo s MacOs. Najviše jeftina opcijaMac Mini, ili bilo što korišteno. Ako ste student i sa sobom ćete nositi opremu - Macbook Air. Ako imate puno novca i želite moćno prijenosno računalo za sve namjene - za igranje, složene računalne zadatke i programiranje - Macbook Pro. Ako želite nabaviti stolno računalo, iMac ili Mac Mini. Za razvoj će vam odgovarati bilo koje računalo u bilo kojoj postojećoj konfiguraciji. Veličina ekrana je po vašem nahođenju. Ja osobno sada sjedim ispred Macbooka 13” i Mac Minija 17”. Zadovoljan sam s oba prikaza. Ako ništa drugo, uvijek možete spojiti vanjski monitor na prijenosno računalo.

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 s Xcodeom. 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 svoje računalo.

Vječno pitanje: Android ili iOS?

Moguće je da je ovo pitanje trebalo postaviti na samom početku, ali ono se ipak 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 jedno znam – ako želite razvijati aplikacije za iOS, onda morate voljeti Appleove proizvode i operativni sustav iOS sustav i MacOs. Možete se zapitati - zašto je to tako? Odgovor je jednostavan – morate voljeti ono što radite, morate stvarati. Tek tada ćete moći razviti uistinu cool i koristan proizvod. Samo u ovom slučaju ćete uživati ​​u učenju Objective-C i iOS-a. Mislim da je ovo vrlo važno. Ako imate slične osjećaje prema Apple proizvodima, slobodno krenite u polje razvoja iOS-a. Ako mislite - znam Javu, ali ne znam Objective-C, ali volim iOS više od AndroidOs - onda odaberite iOS. Ne, ali što si očekivao da počnem hvaliti Android OS?

Također mi se sviđa iOS sfera zbog trgovine aplikacija. Tamo je sve lijepo, ispravno i vrlo je stroga moderacija prijava. Dump aplikacija koji se sada nalazi u Android OS-u jednostavno je užasan, kako za korisnike tako i za vrijedne programere.

Što treba učiniti danas?

Danas morate odlučiti: kada počnete razvijati aplikacije, hoće li vaše trenutno iskustvo biti dovoljno za učenjeCilj- C, imate li potrebna oprema, a najvažnija želja?

Pozdrav svijete.

Provjera spremnosti

Prijeđimo s teorije na praksu. Za praktičnu lekciju trebat će vam Xcode 4.2 s iOS SDK-om, po mogućnosti certifikat programera, poznavanje C, C++, Java ili Objective-C (dobro, možda će poznavanje drugih jezika biti prikladno) i, konačno, želja za početak pisanja aplikacija za iOS. Ako vam nešto nedostaje, na primjer, certifikat programera, članak će vam i dalje biti relevantan. U svakom slučaju, čini mi se da bi svaki korisnik iOS uređaja trebao biti zainteresiran za uvid u unutarnje funkcioniranje razvoja aplikacija.

Izrada novog projekta

Ići. Kliknite na ikonu Xcode. Otvorit će se prozor sličan ovome:

Odaberite stavku "Stvori novi Xcode projekt". U sljedećem prozoru odaberite vrstu projekta. Trebamo: “iOS – Application – Single View Application”.

Pritisnite Dalje. Vidjet ćemo prozor sa sljedećim sadržajem:

Dopustite mi da objasnim polja za unos:

  1. Naziv proizvoda – Naziv novog projekta – možete unijeti bilo koji naziv, ali savjetujem vam da koristite imena identična mojima, jer ću se na njih povremeno pozivati.
  2. Identifikator tvrtke - Identifikator vaše tvrtke - možete ga ispuniti kako želite.
  3. Bundle Identifier – jedinstveni identifikator za vašu aplikaciju. Ovo polje se može kasnije 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 naznaka).
  5. Obitelj uređaja – na koje vrste uređaja se projekt može instalirati. Možete odabrati jednu od tri opcije: iPad/ iPhone/ Univerzalni. Njihova svrha je očita. Ako se sada ne možete odlučiti trebate li stvarati univerzalna primjena, tada možete odabrati bilo koju drugu opciju. To se može ispraviti u bilo kojoj fazi životnog ciklusa softvera.
  6. Koristite Storyboard – Ovo se odnosi na stvaranje modela korisničkog sučelja. Dodano s iOS5, tako da kada koristite ovaj horor, vaša aplikacija može biti instalirana samo na uređajima s iOS5 ili novijim.
  7. Upotreba automatskog brojanja referenci je nova značajka Apple LLVM 3.0 kompajler – automatski (gotovo) upravlja memorijom (prati curenja, zombije i druge strahote). Rekao bih da za početnika - savršena opcija. ALI – 1) tamo nije sve tako automatski, 2) vjerujete li kompajleru više nego sebi?, 3) preporučam ručno upravljanje memorijom.
  8. Uključite jedinične testove – povežite jedinično testiranje s projektom.

Vidjet ćete prozor za odabir kategorije u koju će se projekt smjestiti. Samo vas želim upozoriti da će se u mapi koju ste odabrali automatski kreirati mapa s nazivom vašeg projekta, odnosno nema potrebe za kreiranjem dodatne mape za određeni projekt.

Ne označavamo potvrdni okvir "Stvori lokalno git spremište za ovaj projekt". Bolje je kasnije povezati naš projekt s repozitorijem koda ako je potrebno.

Kliknite na “Create” i vidjet ćete novi prozor, prozor našeg radnog prostora:

I tako, napravili smo projekt, neke datoteke su generirane, neki prozori su otvoreni.

Pogledajmo datoteke u navigacijski izbornik:

  • datoteke sa sufiksom “.h” su zaglavlja, gdje ćemo dati opise klasa
  • datoteke sa sufiksom “.m” su implementacijske datoteke, gdje ćemo implementirati prethodno opisane klase
  • datoteke sa sufiksom “.xib” su datoteke koje opisuju sučelje prozora jedne aplikacije

Sastavljanje projekta

Kompilacija -

  1. prijevod programa na jezik blizak strojnom jeziku i njegovo naknadno sklapanje.
  2. prevođenje programa napisanog na izvornom jeziku u objektni modul (koje provodi prevoditelj) i njegovo naknadno sastavljanje u programski modul spreman za korištenje.
  3. prijevod programa napisanog u izvornom jeziku i njegovo kasnije sastavljanje u program u nekom strojno neovisnom interpretiranom kodu niske razine (kao, na primjer, u slučaju jezika Java).

Proces kompilacije sastoji se od sljedećih faza:

  1. Leksička analiza. Tijekom ove faze, niz znakova izvorna datoteka se pretvara u niz žetona.
  2. Sintaktička (gramatička) analiza. Niz tokena pretvara se u stablo raščlambe.
  3. Semantička analiza. Stablo raščlanjivanja se obrađuje kako bi se utvrdila njegova semantika (značenje) - na primjer, vezivanje identifikatora za njihove definicije, tipove podataka, provjeru kompatibilnosti tipova podataka, određivanje rezultirajućih tipova podataka izraza, itd. Rezultat se obično naziva "srednji prikaz/kod ", a može se nadopuniti stablom analize, novim stablom, apstraktnim skupom naredbi ili nečim drugim prikladnim za daljnju obradu.
  4. Optimizacija. Suvišne naredbe se uklanjaju, a kod se pojednostavljuje (gdje je to moguće) uz očuvanje njegovog značenja, odnosno algoritma koji implementira (uključujući unaprijed izračunate (to jest, izračunate u fazi prevođenja) izraze, čiji su rezultati praktički konstantni) . Optimizacija se može različite razine i faze - na primjer, na međukodu ili na konačnom strojnom kodu.
  5. Generiranje koda. Iz posrednog prikaza generira se kod na ciljnom jeziku (uključujući programsko povezivanje).

Više jednostavnim jezikom od mene. Faza leksičke analize provjerava jesu li svi znakovi u vašem izvornom kodu u ispravnom redoslijedu i srodnih likova u narednim će se fazama promatrati kao jedinstvena cjelina – leksem. U fazi raščlanjivanja provjerava se da su svi leksemi locirani u ispravnom redoslijedu, na pravim mjestima, u ispravnom nizu. Na kraju, u fazi semantičke analize, provjeravaju se podudaranja tipova podataka.

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

Trčanje na simulatoru

I tako, pokušajmo pokrenuti naš projekt, za koji još nismo osobno napisali niti jedan red koda.

Da bismo to učinili, pogledajmo izbornik: Shema kompilacije(na mojoj snimci zaslona dodijeljena joj je zelena boja). Dijagram je određena konfiguracija projekta. Xcode ga automatski generira. Kliknite na redak desno od naziva projekta (naziv uređaja); ako uređaj nije povezan, pisat će "iOS uređaj". Vidjet ćete padajući popis sa sljedećim sadržajem:

Na ovom popisu odabiremo gdje će naš projekt biti instaliran: to može biti vaš uređaj ili simulator. Ako ste odabrali univerzalnu vrstu aplikacije, moći ćete odabrati vrstu simulatora: iPhone ili iPad. Također možete odabrati verziju operativnog sustava za simulatore (važno je testirati projekt na svim verzijama iOS-a na koje se aplikacija može instalirati). Budući da govorimo o minimalnoj verziji iOS-a, treba spomenuti i kako odrediti njegovu minimalnu verziju? Jednostavno je – ako koristite metode (značajke) koje su dodane u iOS verziji, npr. 4.0 , tada se letvica za minimalno potreban operativni sustav penje na 4.0 . Spustimo letvicu na 4.0 S 5.0 . Da biste to učinili, idite na izbornik: "Cilj implementacije" (na mojoj slici označen plavom bojom). Odaberite s padajućeg popisa 4.0 . Sada se vratimo na meni: Shema kompilacije. Naš popis sada izgleda ovako:

Odaberite “iPhone 4.0 Simulator”. I na kraju kliknite na strelicu ispod koje piše “Run”. U “Informativna ploča” vidjet ćemo proces kompilacije. Nakon što se sve uspješno spoji, otvorit će se prozor iPhone simulatora:

Sada brzo prođimo kroz mogućnosti simulatora.

  • Možete simulirati iPhone, iPhone Retina, iPad.
  • Simulirajte različite verzije iOS-a.
  • Napravite snimke zaslona.
  • Zakretanje zaslona (portretni i pejzažni način rada)
  • Tresti
  • Simulirajte manjak memorije.
  • Simulirajte ispisni poslužitelj
  • Geolokacijski položaj
  • Multi-touch geste (maksimalno 2 prsta)
  • ostalo

Svemu ovome može se pristupiti iz izbornika programa simulatora:

Nekoliko riječi o simulatoru. Aplikacije se mogu instalirati na simulator samo putem Xcode-a; mogu se ukloniti izravno iz simulatora (kao na pravi uređaj), podržava višezadaćnost. Ali također ima mnoga ograničenja, na primjer, ne možete instalirati certifikat u pohranu certifikata lokalne aplikacije. Ali glavni nedostatak je taj SIMULATOR, ali ne EMULATOR. Odnosno, samo se pretvara da je iOS uređaj, jednostavnim crtanjem sličnog sučelja (razina softvera). Ali emulator radi točno ono što će uređaj raditi (na fizičkoj razini). Kakav zaključak treba izvući? Obavezno testirajte na stvarnom uređaju. Imao sam slučajeve da radi na uređaju, ali ne i na simulatoru, i obrnuto.

Tiskamo "Hello, world!"

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

Ovo je poglavlje napisano u spomen na Dennis Ritchie tvorac programskog jezikaCi ključni programer operativnih sustavaUNIX, a također i kao koautor knjige “Programski jezikC» .

Svrha poglavlja je ukrasiti naše prazne sivi ekran. Super, idemo. Vraćamo se na Xcode, u navigacijskom izborniku odaberite “ViewController_iPhone.xib”. Zatim odaberite "View" s popisa koji se pojavi. S desne strane odaberite "Inspektor atributa". Evo kako prozor izgleda za mene plus dodatni komentari:

Sada dodajmo UILabel. UILabel je naziv klase u iOS SDK-u koja vam omogućuje prikaz teksta koji se ne može uređivati ​​na ekranu. Općenito, sve klase koje vam omogućuju da nešto prikažete imaju prefiks korisničko sučelje: UIView, UITableView, UITextView, UIButton,…. U prozoru "Dostupni objekti za prikaz" potražite redak pod nazivom Oznaka. Kada ga pronađemo, kliknemo na njega i povučemo ga na trenutni prikaz zaslona.

Plave isprekidane linije pomoći će vam pri centriranju/kalibraciji relativnog položaja oznake. I tako, odaberite Oznaka na popisu prikazanih objekata, ako već nije odabrana, i pogledajte stavku u svojstvima: Tekst. Napišimo tamo "Hello, World!" i pritisnite Unesi. Ovdje imamo promijenjeni i smanjeni tekst naljepnice. Popravimo ovo. U kategorije imovine izaberimo "vladar""Inspektor veličine". Postoje polja:

  • x i y su koordinate gornjeg lijevog kuta labele u odnosu na parent view, odnosno pogled na koji smo postavili labelu - to je View u našem slučaju.
  • širina i visina – širina i visina uređenog objekta.

Možete pokušati urediti ove vrijednosti i promatrati promjene. Također možete urediti položaj i veličinu izravno pomicanjem oznake (teksta) i povlačenjem njezinog okvira na različite načine "točke".

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

  1. Poravnanje teksta
  2. Veličina fonta
  3. Boja, sjena teksta
  4. i tako dalje.

Naknadno ćemo im se vratiti i objasniti svrhu pojedinih polja.

Koji standardni prikazi postoje u iOS-u?

U prethodni odlomak Dotaknuo sam se imena nekih klasa odgovornih za sučelje. Sama konzola korisničko sučelje i označava korisničko sučelje. Ovdje ću dati, možda ne potpuni popis dostupne vrste pogled. Prvo, sve dolje opisane klase nasljeđuju UIView, tj. imaju ista svojstva i metode. Drugo, uvijek možete stvoriti vlastiti prilagođeni prikaz. Popis u nastavku:

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

2) UIButton – gumb – glavna namjena: uobičajeni gumb, šalje signale objektima, obavještavajući da je kliknuto

3) UISegmentedControl – gumb sa segmentima – glavna namjena: gumb s nekoliko aktivnih dijelova, možete odrediti na koji ste kliknuli

4) UITextField – polje za unos teksta – glavna namjena: polje za korisnički unos teksta

5) UISlider – klizač – glavna svrha: obični klizač, pomaže u intuitivnijem mijenjanju postavki

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

7) UIActivityIndicatorView - indikator aktivnosti - glavna svrha: obično se koristi za obavještavanje korisnika da aplikacija ili preuzima podatke ili jednostavno izvodi neke izračune

8) UIProgressView – indikator statusa (napretka) – glavna namjena: prikazati stanje dovršenosti nečega

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

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

11) UITableView – tablica – glavna svrha: prikaz tablice je možda najpopularniji element

12) UITableViewCell – ćelija tablice – glavna svrha: prikaz retka u tablici, obično prilagodljiv

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

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

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

16) UIMapView – karte – glavna namjena: prikaz karte

17) UIScrollView – prikaz koji se može pomicati – glavna svrha: prikazivanje nekoliko pogleda koji ne stanu na jedan zaslon

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

19) UIPickerView – vrsta odabira bubnja – glavna svrha: alternativa tablici pri odabiru opcije

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

21) UINnavigationBar – navigacijska traka– glavna namjena: ploča u kojoj se prikazuje naslov zaslona i dodatni kontrolni gumbi

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

23) UIToolbar – alatna traka – glavna svrha: prikaz ploče na kojoj se nalaze gumbi za upravljanje aplikacijom

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

25) UIBarButtonItem (fiksni i fleksibilni prostor) – posebni elementi alatne trake – glavna svrha: promjena udaljenosti između gumba na alatnoj traci

26) UITabBar – traka s karticama – glavna svrha: pomaže u prebacivanju između različitih nepovezanih zaslona

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

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

Kako biste počeli programirati za iOS, trebat će vam Mac računalo temeljen 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. Usredotočit ćemo se na XCode 4 i iOS5.

Instalacija XCode-a

Prvo ćemo se morati registrirati na Appleovom web mjestu za razvojne programere. Pratite poveznicu i kliknite na registraciju. Pritisnite gumb Početak i dovršite postupak registracije. Tamo je sve vrlo jednostavno, pa se neću zadržavati na ovoj točki. Nakon registracije dobit ćete e-mail s vašim Apple ID-om. Vratite se na stranicu Apple Developers i koristite je za ulazak u sigurno područje. U odjeljku DevCenters kliknite vezu iOS. Kao što vidite, Apple vam nudi gomilu dokumentacije, izvora i vodiča. Ova stranica sadrži sve što vam je potrebno za početak razvoja za iOS. Na samom dnu nalazi se gumb Download Xcode koji trebate kliknuti. Nakon preuzimanja instalirajte Xcode na svoj Mac.

Upoznavanje XCode 4 sučelja

Da biste pokrenuli Xcode, idite na svoj glavni pogon i kliknite developer>Applications.

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

Sav vaš kod i resursi organizirani su 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 nastavak ".h" i ".m". Ako kliknete na takvu datoteku, otvorit će vam se editor s kodom s desne strane Xcode-a.

Nemojmo sada duljiti o kodu. Ovom pitanju ćemo se vratiti malo kasnije. Ako pogledate vrh zaslona, ​​vidjet ćete nekoliko gumba povezanih s vašim projektom. Proučimo ovu ploču detaljnije.

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

Pomoću gumba Schemr možete odabrati ciljnu platformu na kojoj će se pokrenuti vaša aplikacija. Ovdje možete odabrati simulator i debugirati program 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 Storeu. Ne bih vam preporučio da trošite novac dok nemate spreman normalan program.

Prijelomne točke su vrlo korisna stvar. Pomoću ovog gumba možete označavati retke u izvornom kodu, a kada tijekom izvođenja programa dođe do označenog retka, program će se zaustaviti i možete vidjeti stanje varijabli. Ovo je vrlo moćan i široko korišten alat.

Pritisnite gumb "Pokreni". Vidjet ćete prozor emulatora s vašim projektom. Kao što vidite, iako ne blista funkcionalnošću, to je samo praznina.

Programiranje za iPhone - Prvi korak

Dosta je motanja okolo, idemo nešto kodirati. Prozor Navigatora projekta sadrži datoteke izvornog koda. Kliknite na neku .m datoteku. Imajte na umu da su neki redovi obojeni zeleno - to su komentari koji djeluju kao varalica. Kako se ne bi zbunio u kodu, programer može ostaviti savjete i objašnjenja za sebe. Za označavanje komentara u jeziku C koristi se kombinacija kose crte //. Sve u retku desno od ovih znakova smatra se komentarom. Ako želite napisati višeredni komentar, možete koristiti kombinacije /* i */ za označavanje početka i kraja 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 cjelokupnog koda na takozvane objekte, unutar kojih su pohranjeni podaci i naredbe koje ih obrađuju. Objekt u Objective-C sastoji se od dvije datoteke.h i .m. Datoteka.h se zove zaglavlje, sadrži "skicu" objekta - navedeni su svi podaci i nazivi blokova naredbi (metoda) sadržanih u objektu. Datoteka .m naziva se implementacijska datoteka i detaljno opisuje sve što je naznačeno u zaglavlju; tu je programirana sva programska logika.

MVC( Prikaz modela Controller) je nešto što razdvaja kod i sučelje koje korisnik vidi. Model su korisnički podaci i podaci koje prikazujete korisniku. Pogled je korisničko sučelje i kod koji osigurava komunikaciju između pogleda i modela. Koncept MVC-a možda vam se sada čini previše nejasnim, ali s vremenom ćete vidjeti da ovaj pristup stvarno pojednostavljuje život programera. Ovaj koncept podrazumijeva sljedeći redoslijed rada: programer zasebno kreira predložak dizajna aplikacije, gdje postavlja sve gumbe, tekstualna polja i druge važne gluposti, a posebno piše programe. Zatim pokazuje XCode koju metodu (blok koda) treba pozvati kao odgovor na određenu radnju korisnika i koji naziv ima ovaj ili onaj kontrolni element u tekstu programa.

Razvijamo dizajn programa za iPhone

Počnimo stvarati našu aplikaciju razvojem dizajna. U prozoru Project Navigator kliknite MainStoryboard_iPhone.storyboard. Kao rezultat toga, XCode će pokrenuti uređivač sučelja.

U donjem desnom kutu vidite popis objekata (Library) koji se mogu koristiti u vašem sučelju; u središnjem dijelu je prikazan prozor View koji predstavlja izgled sučelja vašeg programa. Pravo gornji prozor ima nekoliko načina rada koji se mijenjaju pomoću ikona koje se nalaze iznad prozora. Slika prikazuje način rada Inspektor atributa. Ovdje možete promijeniti različite atribute objekata koji čine vaše sučelje.

Povucimo objekt Label iz prozora Library na naš izgled prozora. Koristeći miša, promijenit ćemo veličinu objekta, kao što je prikazano na donjem ekranu. Inspektor prikazuje svojstva objekta Label. Centrirajmo tekst klikom na odgovarajuću ikonu u retku Izgled.

Izbrišite tekst u tekstualnom polju (tamo je bila napisana riječ Label) i tamo unesite "Some String".

Slično, dodajte gumb u izgled (objekt Button)

Dakle, razvili smo dizajn naše aplikacije. Ništa komplicirano, možete kliknuti gumb Pokreni i pogledati rad svog 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 gumb klikne. Da bismo implementirali ovu ideju, morat ćemo pristupiti retku (objektu Label) iz programskog koda i pozvati metodu (blok koda) kada se pritisne gumb.

Kliknite na datoteku "ViewController.h" na lijevoj ploči. Opisat ćemo IBOutlet. IBOutlet povezuje naš kod s vizualnim objektom, poput naljepnice ili gumba. Promijenite kod u datoteci ViewController.h da izgleda ovako

#uvoz @ sučelje ViewController: UIViewController( IBOutlet UILabel* oznaka; //dajemo našem nizu naziv Label } //ovo je zaglavlje metode koja će biti //pozvan kao odgovor na klik gumba- (IBAction) buttonClick: (id) pošiljatelj; @kraj

Ovo je sve što trebamo napisati u datoteku zaglavlja. IBAction vam omogućuje povezivanje metode s elementom korisničkog sučelja, na primjer, kao odgovor na klik gumba, bit će pozvan programski kod koji smo napisali.

Dakle, rekli smo da ćemo pozvati niz s tekstualnom oznakom i da će se kao odgovor na akciju korisnika pozvati metoda buttonClick. Napišimo kod za ovu metodu. Prijeđimo na datoteku ViewController.m u stablu projekta. Nakon linije @implementacija... dodajte kod

- (IBAction) buttonClick: (id) sender( label. text= @ ”Hello from Mobilab.ru”; )

Napomena, ako ste kopirali ovaj kod, vjerojatno ćete dobiti grešku kada pokrenete program, najvjerojatnije je problem u navodnicima. Izbrišite ih i unesite s tipkovnice.

Shvatimo što vidimo ovdje. Pristupamo objektu oznake – retku teksta na ekranu. Budući da je ovo objekt, unutar njega se nalaze različiti podaci (koji se u OOP-u također nazivaju svojstvima objekta) i metode kojima se može pristupiti stavljanjem točke iza naziva objekta. Svojstvo teksta odgovoran je za tekst unutar retka..

Završili smo kodiranje, sve što je preostalo je pridružiti oznaku i buttonClick elementima unutar izgleda dizajna. Kliknite liniju MainStoryboard_iPhone.storyboard u prozoru Project Navigator da biste se prebacili na dizajner sučelja. Zatim kliknite na ikonu "View controller". Prebacite se u način rada veza u inspektoru (zadnja ikona). Pogledajte, linija naljepnica pojavila se u području Outlets inspektora. Ovo je naziv koji smo naveli u datoteci ViewController.h. Pritisnite krug s desne strane retka oznake i povucite ga na redak Neki tekst u izgledu dizajna.

Izvršite sličnu operaciju s gumbom. Kliknite gumb s kružićem u grupi "Primljene radnje", zatim kliknite gumbClick i povucite ga na gumb u izgledu. Kao rezultat toga, otvorit će se kontekstni izbornik, s kojim možete odabrati kada želite pozvati metodu. Možete, na primjer, pozvati kod kada korisnik pritisne gumb ili kada ga otpusti. Postoji mnogo opcija. Odaberite "Touch up Inside".

To je sve! Spremite projekt i kliknite gumb "Pokreni" na gornjoj ploči. Ako ste sve napravili kako treba, emulator s vašim programom trebao bi se pokrenuti. Pritisnite gumb. Tekst u retku bi se trebao promijeniti. To je sve. Prva lekcija je gotova

Najbolji članci na temu