Utveckling av programmeringsapplikationer för ios. Vi skriver vårt första program för iPhone. Nödvändig utrustning för bekväm utveckling

Den här artikeln öppnar cykeln för nybörjare. Jag vågar hoppas att nivån på presentationen av materialet gör att även personer som inte är bekanta med programmering förstår det. Låt oss börja vår historia med en liten lyrisk utvikning. Ansökningar för iPhone och iPad skrivs i Objective-C. Detta språk användes flitigt på NeXT och kom till Apple efter Steve Jobs återkomst. För närvarande är Objective-C det huvudsakliga utvecklingsspråket för OS X- och iOS-applikationer.

För att börja programmera för iOS behöver du Mac-dator baserad på Intel-processor och XCode-utvecklingsmiljö. Om du inte har en Mac, inga problem. Kanske en av de beskrivna metoderna för att lösa detta problem kommer att passa dig. Vi kommer att inrikta oss på XCode 4 och iOS5.

Installerar Xcode

Till att börja med måste vi registrera oss på Apples utvecklingswebbplats. Följ länken och klicka på registrera dig. Klicka på knappen Kom igång och gå igenom registreringsprocessen. Allt är ganska enkelt där, så jag kommer inte att uppehålla mig vid detta ögonblick. Efter registrering får du ett e-postmeddelande med ditt Apple-ID. Gå tillbaka till Apple Developers-sidan och använd den för att komma in i det säkra området. Klicka på iOS-länken i avsnittet DevCenters. Som du kan se erbjuder Apple dig en massa dokumentation, källor och handledningar. Den här sidan har allt du behöver för att komma igång med iOS-utveckling. Längst ner finns en Ladda ner Xcode-knapp som du måste klicka på. När du har laddat ner installerar du Xcode på din Mac.

Lär känna Xcode 4-gränssnittet

För att starta Xcode, navigera till din huvudenhet och klicka på utvecklare>Program.

Efter att Xcode har startat, välj menyalternativet Arkiv>Nytt projekt, sedan "Single View Application" och ange namnet på projektet (Produktnamn) HelloWorld. Som ett resultat bör du se något liknande detta

All din kod och resurser är ordnade i speciella mappar, som finns på vänster sida av Xcode-fönstret. Panelen heter "Project Navigator" och innehåller alla delar av ditt program. Källkodsfiler har tilläggen ".h" och ".m". Om du klickar på en sådan fil öppnas en kodredigerare på höger sida av Xcode.

Låt oss inte dröja vid koden för tillfället. Vi återkommer till denna fråga lite senare. Om du tittar längst upp på skärmen kommer du att se flera knappar kopplade till ditt projekt. Låt oss ta en närmare titt på den här panelen.

"Kör"-knappen startar ditt projekt. Du kan testa din applikation och se om den verkligen beter sig som du förväntar dig. Knappen "Tasks" stoppar programmet som körs.

Med hjälp av Schemr-knappen kan du välja målplattformen där din applikation ska köras. Här kan du välja vilken simulator som helst och felsöka programmet på din dator, eller köra det på din iPhone (iOS-enhet) om du betalade $99-avgiften. Den enda fördelen som denna betalning ger är möjligheten att köra programmet på en riktig enhet och vara värd för det App Store. Jag skulle inte rekommendera dig att spendera pengar förrän du har ett vanligt program redo.

Brytpunkter är en mycket användbar funktion. Med den här knappen kan du markera rader i källkoden, och när programmet når den markerade raden pausar programmet och du kan se variablernas tillstånd. Det är ett mycket kraftfullt och flitigt använt verktyg.

Klicka på knappen "Kör". Du kommer att se emulatorfönstret med ditt projekt. Som du kan se, tills det lyser med funktionalitet, är det bara ett tomt.

Programmering för iPhone - Första steget

Nog med att slå runt, låt oss koda något. Fönstret Project Navigator innehåller källkodsfiler. Klicka på valfri .m-fil. Observera att vissa linjer är färgade i grönt - det här är kommentarer som fungerar som cheat sheets. För att inte bli förvirrad i koden kan programmeraren lämna tips och förklaringar åt sig själv. Snedstrecket // används för att markera kommentarer i C. Allt på raden till höger om dessa karaktärer anses vara en kommentar. Om du vill skriva en kommentar med flera rader kan du använda /* och */ för att markera början och slutet av en kommentar med flera rader.

Innan jag börjar skriva applikationskoden måste jag förklara några begrepp för dig: OOP (Object Oriented Programming), MVC (Modal View Controller), ".h" och ".m" filer. Så ... objektorienterad programmering innebär uppdelning av all kod i så kallade objekt, i vilka data lagras och kommandon som bearbetar den. Ett objekt i Objective-C består av två filer .h och .m. .h-filen kallas rubriken. Den innehåller "konturen" av objektet - den listar alla data och namn på kommandoblocken (metoderna) som finns i objektet. .m-filen kallas implementeringsfilen (implementation) och den beskriver allt som anges i headern, det är här som all programlogik programmeras.

MVC (Model View Controller) är något som separerar koden och gränssnittet som användaren ser. Modell är användarens data och den data du visar för användaren. Vyn är användargränssnittet och koden som tillhandahåller kopplingen mellan vyn och modellen. Konceptet med MVC kan tyckas för abstrut för dig nu, men med tiden kommer du att se att detta tillvägagångssätt verkligen förenklar livet för en programmerare. Detta koncept innebär följande arbetsflöde: programmeraren skapar separat en applikationsdesignmall, där han placerar alla knappar, textfält och andra viktiga nonsens, och skriver program separat. Sedan visar den XCode vilken metod (kodblock) som ska anropas som svar på en viss användaråtgärd och vilket namn den eller den kontrollen har i programmets text.

Vi utvecklar designen av programmet för iPhone

Låt oss börja bygga vår applikation med designutveckling. Klicka på raden MainStoryboard_iPhone.storyboard i Project Navigator-fönstret. Som ett resultat kommer Xcode att starta gränssnittsredigeraren.

I det nedre högra hörnet ser du en lista med objekt (Bibliotek) som kan användas i ditt gränssnitt, i den centrala delen visas View-fönstret som representerar layouten på ditt programs gränssnitt. Det övre högra fönstret har flera lägen, som växlas med hjälp av ikonerna ovanför fönstret. Bilden visar attributinspektörsläget. Här kan du ändra olika attribut för de objekt som utgör ditt gränssnitt.

Låt oss dra Label-objektet från biblioteksfönstret till vår fönsterlayout. Använd musen för att ändra storlek på objektet som visas på skärmen nedan. Inspektören visar egenskaperna för Label-objektet. Låt oss centrera texten genom att klicka på lämplig ikon i Layout-raden.

Låt oss ta bort texten i textfältet (ordet etikett skrevs där) och ange "Some String" där.

Lägg till en knapp i layouten på samma sätt (Knappobjekt)

Så vi har utvecklat designen av vår applikation. Inget komplicerat, du kan klicka på Kör-knappen och se hur ditt program fungerar i emulatorfönstret.

Låt oss börja koda

Så vi har två visuella komponenter placerade på layouten. Vi vill att texten i raden ska ändras när knappen klickas. För att implementera denna idé måste vi komma åt strängen (Label-objekt) från programkoden och anropa metoden (kodblocket) när knappen trycks ned.

Klicka på filen "ViewController.h" i den vänstra rutan. Vi kommer att beskriva IBoutlet. IBOutlet kopplar vår kod till ett visuellt objekt, till exempel en etikett eller en knapp. Ta med koden i filen ViewController.h till formuläret

#importera @ interface ViewController: UIViewController(IBoutlet UILabel* etikett; //låt oss namnge vår sträng Label } //det här är metodhuvudet som kommer att vara // samtal som svar på ett knappklick- (IBAction) buttonClick: (id) avsändare; @ slutet

Det är allt vi behöver skriva i rubrikfilen. IBAction låter dig ansluta någon metod till ett användargränssnittselement, till exempel som svar på ett knappklick kommer programkoden vi skrev att anropas.

Så vi sa att vi kommer att anropa raden med textetiketten och att som svar på användarens åtgärd kommer buttonClick-metoden att anropas. Låt oss skriva koden för denna metod. Låt oss byta till filen ViewController.m i projektträdet. Efter raden @genomförande... lägg till kod

- (IBAction) buttonClick: (id) sender( label. text= @ ”Hej från Mobilab. ru”; )

Notera, om du kopierade den här koden kommer du förmodligen att få ett felmeddelande när du kör programmet, troligen ett problem inom citattecken. Ta bort dem och skriv in från tangentbordet.

Låt oss se vad vi ser här. Vi hänvisar till etikettobjektet, en textrad på skärmen. Eftersom det är ett objekt har det olika data inuti (som i OOP även kallas objektegenskaper) och metoder som kan nås genom att sätta en punkt efter objektnamnet. Textegenskapen är ansvarig för texten som finns i strängen.

Vi har slutfört kodningen, allt som återstår är att binda etiketten och knappenKlicka till elementen i designlayouten. I fönstret Project Navigator klickar du på MainStoryboard_iPhone.storyboard för att byta till Interface Builder. Klicka sedan på ikonen "Visa kontroller". Växla till anslutningsläge i inspektören (sista ikonen). Titta, i inspektören i området Outlets har etikettraden dykt upp. Det här är namnet vi angav i filen ViewController.h. Klicka på cirkeln till höger om etikettraden och dra den till raden Some Text i designlayouten.

Gör samma sak för knappen. Klicka på den inringade knappen i gruppen "Mottagna åtgärder", knappen Klicka och dra den till knappen i layouten. Som ett resultat kommer den att öppnas innehållsmeny, med vilken du kan välja när metoden ska anropas. Det är möjligt att till exempel ringa koden när användaren trycker på knappen, det är möjligt när han släpper den. Det finns många alternativ där ute. Välj "Touch up Inside".

Det är allt! Spara projektet och klicka på knappen "Kör" i den övre raden. Om du gjorde allt korrekt, bör emulatorn med ditt program starta. Klicka på knappen. Texten på raden bör ändras. Det är allt. Klar första lektionen

Vi har förberett för dig ett urval av mobilapplikationer tack vare vilka du kan lära dig programmering var som helst. Dela applikationer som inte finns med i den här listan i kommentarerna!

Udacity

Khan akademin

SoloLearn

SoloLearn är en serie mobilapplikationer som lär användaren hur man programmerar med hjälp av speciella spel. SoloLearn-appar är tillgängliga gratis för iOS- och Android-plattformarna.

Coursera: Onlinekurser

Gratiskurser från världens ledande universitet på Coursera finns nu som appar för Android och iOS.

EdX - Onlinekurser

Vi kunde inte missa dessa fantastiska resurser, som också syftar till att lära ut programmering på ett roligt sätt.

Kodstrid

Ett av de mest populära spel undervisning i programmering. Applikationen används ofta i utbildningsinstitutioner för utbildning i utveckling. Innehåller kurser för alla åldrar.

Code Wars

En tjänst där du kan tävla i programmering med andra deltagare. Det finns olika språk tillgängliga för användare att skriva kod och uppgifter att slutföra.

Om dessa resurser verkar intressanta för dig, råder vi dig att ta en titt på vår gratis onlinespel som lär dig hur du programmerar.

Kära herrar, med den här artikeln öppnar jag en ny kolumn tillägnad programmering för iPhone, där vi kommer att beröra frågor som är intressanta både för nybörjare och icke-initierade, och ObjC-guruer, som vi hoppas inte kommer att misslyckas med att korrigera våra misstag med sina kommentarer. Dagens lektion är inledande.

Lektionens mål

1. Hur man börjar programmera för iPhone.
2.Gentlemans uppsättning utvecklare.
3. Läxor.

Introduktion

Vi ser alla den vilda framgången med AppStore, delar av applikationer växer som svampar efter regnet. Redaktörer av alla informationsportaler om iPhones har tappat fötterna och utan att blunda skriver de, skriver och skriver recensioner. Och alla program dyker upp, dyker upp och dyker upp. Det skulle vara dags för oss att engagera oss i denna process och riva av vår bit från semesterpajen.

Var ska man starta? Frågan är ganska retorisk. Naturligtvis, om du, kära läsare, är en advokat eller, säg, en byggare, kommer det att vara mycket svårt för dig att börja och troligen bör du inte göra det på allvar, för, som det verkar för mig, är det bättre att göra en sak bra än flera och dåligt. Vi kommer dock inte att utesluta det ögonblick som du vill programmera för själen, att detta är din nya hobby. God eftermiddag då. Men om du, min kära vän, redan har erfarenhet av att utveckla applikationer, oavsett vilket språk - C, Pascal, Assembler, Delphi, eller slutligen BASIC eller till och med Logo (i min lärobok i datavetenskap i början av 90-talet fanns det en) , då kommer du säkert att behöva prova dig själv inom applikationer för iPhone.

Här kommer vi till svaret på huvudfrågan, var ska man starta. Börja med grunderna, du behöver inte gå långt för detta, jag kommer bara att ge dig några länkar som så småningom tar dig "till Kiev":

1. För personer som generellt inte är bekanta med C-språket – börja med detta

2. När du programmerar för en iPhone behöver du kunskap om OOP (Object Oriented Programming). Det är inte så svårt som namnet antyder, faktiskt är OOP baserad på några grundläggande principer, när du väl förstår dem kan du enkelt skapa mästerverk. Läs om OOP.

3. Om du kan grunderna i C, och OOP inte orsakar dig några svårigheter, rekommenderas du ändå att läsa skillnaden mellan Objective-C som används i MacOS (och iPhone, respektive) från traditionella C och C++. Det är väldigt bra beskrivet.

4. Du kan också hitta svar på många frågor på vårt forum på.

En gentlemansuppsättning av en programmerare för iPhone, som en åkpåse, är ganska dålig och kräver i princip inte något utöver naturligt och dyrt i det inledande skedet. Här är allt vi behöver för att komma igång:

b) Operativsystem MacOS Leopard version 10.5.5.

c) Verktyg från Apples webbplats, det så kallade SDK, utvecklarpaket. Detta paket innehåller allt du behöver för utveckling. Du kan ladda ner den här: http://developer.apple.com/iphone efter registrering.
d) Vi behöver också mycket tålamod och uthållighet. Utan detta, tyvärr, ingenting.

För många kan händerna falla omedelbart efter punkt A. Jag ska säga dig ärligt, innan jag bekantade mig med iPhone, korsade jag aldrig vägar med Apple alls, och jag skrev mitt första program för iPhone utan att ha en MacBook alls. Jag är en ivrig Windows-användare som började sitt vuxna liv med Windows 3.1 och levde till Windows Vista, Jag blev fängslad av bekvämligheten med MacOS och ångrar inte ett sådant förvärv, även om jag fortfarande spenderar merparten av min tid på datorer med OS från Bill Gates.

För den som inte övertygas av dessa ord finns det fortfarande en väg ut. Sedan övergången av datorer från Apple till en plattform med Intel-processor- det blev möjligt (naturligtvis, inte utan dans och tamburiner) att installera MacOS på en vanlig PC-dator, jag erkänner - jag gjorde det själv. I världen är ett sådant operativsystem känt under olika namn Kaliway, Hackint0sh, etc. På alla filvärdtjänster kan du enkelt hitta önskad bild och genom att ladda ner den kan du installera Makos på din dator. Och även om du vill köra det senare i VMWare-fönstret. Jag kommer inte att beskriva hur man gör allt detta, jag kommer inte propagandera metoder för att kringgå licensen för Mac-datorer, men jag ska göra mig besväret att varna dig för vissa misstag, för att undvika att du inte förlorar intresset för programmering i början steg för att förbereda verktygslådan:

1. Vid installation, använd ALLTID en separat hårddisk ansluten som en master till en noll IDE- eller SATA-buss.
2. Försök inte installera Leopard från VMWare - jag kollade det många gånger - det är omöjligt, även om det finns människor på nätet som påstår sig ha gjort detta.

3. Efter att du har installerat Makos kan du försöka köra det under Windows i VMWare, om det finns tillräckligt med resurser. Ett separat problem är också föraren. Nätverket kommer med största sannolikhet att ta dig av sig självt, videon blir 800x600 - dumt VGA. Men vad sägs om ditt 8800GTX-kort, Wi-Fi-adapter och bluetooth, då vilken tur (oftare otur).

4. Hur många bilder hittade jag inte - alla hade version 10.5.1 eller 10.5.2, men vi behöver minst 10.5.5 för arbetet. Jag uppdaterar min vallmo via Internet, men med en hackintosh, när jag uppdaterar till 10.5.5, kommer ett sådant trick inte att fungera - fånga ett äpple, också kontrollerat många gånger. Det finns en algoritm på nätverket om hur man uppdaterar hackin till 10.5.5 samtidigt som systemets prestanda bibehålls - du letar efter kommer du att hitta.

Och så, verktygslådan beskrivs, låt oss gå vidare till läxorna.

Våra läxor kommer att vara enkla, men mycket viktiga, om du inte slutför dem kommer alla andra lektioner att bli värdelösa för dig. HTML-text och mitt arbete kommer inte att vara värt ett dugg. Och så, kära iPhone-programmerare, medan jag skriver lektion nr 2, bör ni:

A) Skaffa en Mac eller installera en Hackintosh (endast i informationssyfte)

B) Uppdatera den till version 10.5.5.

C) Ladda ner och installera Apple SDK. Ladda ner ett gäng exempel från nätet, försök att sammanställa dem alla. I allmänhet, fortsätt till studien genom att skriva (den vanligaste metoden i vårt land, slående i dess effektivitet).

Skriv recensioner.
Rashid (alias rashn).

Betygsätta.

Så, tanken kom till dig också: Hur kan jag lära mig att skriva program för iPhone?«, « Hur gör jag min mobilapplikation?«, « Hur tjänar man miljoner på att inte göra någonting?". Jag ska försöka besvara dessa frågor steg för steg (förutom den sista).

Vad du behöver veta från början

Att skapa program för iOS officiellt behöver du en dator Äpple (iMac eller macbook). Men för att vara helt ärlig behöver du ett operativsystem OS X, så många till en början är listiga och lyckas använda hackintosh (hackintosh), det vill säga de kör OS X på vanliga datorer - detta är ett ekonomiskt alternativ, olagligt och ganska besvärligt när det gäller installationen. Jag rekommenderar att, eftersom du är fast besluten att bli en iOS-utvecklare, köp en enkel Macbook eller Mac Mini, du kan till och med använda (vilken som helst, släppt sedan 2010).

Nästa - vad ska man skriva om. Ansökningar om iOS skriven på programmeringsspråk Snabb eller Mål-C, och all magi händer i programmet xcode(fri). Snabb– det här är ett väldigt nytt språk som Apple nyligen introducerade (mitten av 2014) och som nu aktivt förmedlar tanken att du bara behöver programmera i det, framtiden ligger bakom det, det är modernare och snabbare. Och de har rätt, lär Snabb. Mål-C tvärtom, ett språk med ett långt förflutet, så det är mycket svårare för nybörjare att förstå det, vilket inte förnekar dess kraft och rikedomen av befintlig utveckling och böcker om det (vilket inte kan sägas om Swift för tillfället) . Och ändå, jag upprepar, lär dig Snabb.

Om du vill skapa plattformsoberoende applikationer (samtidigt för iOS och Android), lär dig C# och använda utvecklingsmiljön Xamarin(betald). Om du vill göra spel över plattformar, ladda ner utvecklingsmiljön Unity3D(shareware), lär dig redan nämnt ovan C#.

För att kunna köra dina appar på iPhone/iPad (även i utvecklingsstadiet) och sedan ladda upp dem till AppStore, måste du köpa en status Apple-utvecklare för 100 dollar per år. Efter köpet motiverar detta återigen åtminstone att återta dessa pengar 🙂

När jag ställde den här frågan tänkte jag att jag bara måste ta en bra tjock "bibel" om Objective-C (jag påminner dig om att Swift inte fanns då) och förstå den hemliga kunskapen om programmeringsspråket kapitel för kapitel. Alla rekommenderade Steven Kochans bok Objective-C programmering«. Fel! Upprepa inte mitt misstag. Ja, grunderna i språket har förståtts, boken är bra, men det här är en uppslagsbok och det är långt ifrån riktig applikationsutveckling från början. För att lära dig hur man programmerar måste du bli smutsig när du försöker skriva det första, om än väldigt enkelt, men arbetssätt applikationer. Du behöver handledningar med exempel. Från enkelt till komplext. Och det är också viktigt att sätta upp ett realistiskt mål, den första applikationen som du vill skriva och släppa i AppStore. Varje lektion eller bok ska ge dig kunskap som du kan tillämpa på ditt projekt. Gör inte misstaget av den "evige studenten" som inte gör annat än plugga-studera-studera utan försenar ögonblicket för att börja det riktiga arbetet. Jag satte mig till exempel som mål att göra en radioapplikation och släppa den i AppStore om en månad – och jag lyckades.

Om du kan engelska, betrakta dig själv som väldigt lycklig, nu ska jag berätta var du kan få all kunskap. På ryska finns det tyvärr väldigt lite information och ofta är det sent (och översatt från engelska).

iOS-lärlingen

Bästa webbplatsen för att lära sig engelska Raywenderlich.com. Det är megacoolt av tre anledningar: 1) du kan läsa många lektioner gratis från grunderna till att försöka replikera befintliga framgångsrika applikationer (inklusive Swift), samtidigt som allt är skrivet uppriktigt och med humor; 2) det finns videolektioner (om än betalda); 3) Den viktigaste anledningen- de har böcker för nybörjare som kommer att lära dig från början om exemplet att skapa applikationer, mycket begripligt, med bilder (ja, som vi älskar). Böcker är betalda (endast den första delen ges gratis), men de är värda det. Köpte dem alla och de lönade sig för länge sedan då de byggde en bra grund sten för tegel. Detta är inte jämförbart med att bara läsa olika lektioner blandade på samma sida. Börja med att köpa iOS-lärlingsboken (vars första del kan laddas ner gratis). Den kommer att lära dig hur du bygger dina första applikationer i Swift. De har också böcker om spelutveckling på SpriteKit(Apple ramverk för spelutveckling).

Den näst mest användbara resursen - AppCoda. Det är enklare än RayWenderlich, men kärnan är densamma - vi läser lektioner om Swift, lär oss av exempel. De har även egna böcker (betalda) förutom de kostnadsfria lektionerna.

Och vad händer om du inte kan engelska - oj, det finns helt enkelt inga liknande ryska internetresurser. Böcker på ryska? Naturligtvis hittar du några böcker om Ozon, men de är alla föråldrade och kommer inte att lära dig Swift-språket (för närvarande handlar allt bara om Objective-C).

Det bästa jag kan erbjuda dig är navet "iOS-utveckling" på Habré, där dyker det upp hela tiden nya artiklar, men väldigt kaotiskt.

Var kan jag hitta svaret, något fungerar inte

När du programmerar kommer du ständigt att ha frågor: du vet inte hur man gör något, eller så gör du något, men som svar rapporterar programmet ett fel. Du kan hitta svar (eller ställa en fråga) på två webbplatser:

stackoverflow- det största förrådet av färdiga svar på engelska. 80% av svaren hittar jag där.

Google- det är banalt, bara genom att köra in en fråga i sökningen kan du hitta svaret. Om det inte fungerar direkt, lek med frågans formulering.

Brödrost- analog av StackOverflow, men på ryska. Det är fortfarande svårt att hitta svar här, eftersom databasen med frågor ännu inte är särskilt stor. Men du kan fråga - det finns tillräckligt med proffs på resursen som kommer att svara dig.

Eller så kan du fråga mig. Gratis nu 🙂

Yrket som programmerare är ett av de mest prestigefyllda och efterfrågade, det är ett faktum. I utvecklingsbranschen programvara har sina nischer. Av dessa är den snabbast växande, och samtidigt den högst betalda, utvecklingen av mjukvara för Mobil enheter. Som ni vet hände det sig att tre konstanta rivaler drog sig före, vilket lämnade konkurrenterna långt efter. Chipet ligger på ett sådant sätt att en av dessa tre är den obestridda ledaren, någon kommer alltid ikapp.

I segmentet mobila tekniker, utan tvekan är Apple i täten med sina smartphone iPhone. Vid presentationen som hölls i september har företaget från Cupertino redan demonstrerat den 7:e versionen av mobilenheten. Tillsammans med det introducerade Apple ny version mobilt operativsystem iOS 10. Nu är det det viktigaste operativsystemet i världen, precis som sina föregångare. Det följer att lära sig iOS-utveckling är den bästa investeringen av tid och pengar.

"Apple" ekosystem

Idag kommer vi att utveckla en enkel mobil-app för iOS. Naturligtvis är den inbyggda Macen bäst lämpad för detta. Men om du är ett Windows-fan eller om du helt enkelt inte har en Mac kan du installera operativ system macOS under virtuell maskin på Windows. På webben kommer det inte att vara svårt för dig att hitta en specialanpassad version av macOS för PC, populärt kallad Hackintosh. Installera den gärna på en virtuell VMware-maskin, VirtualBox - ditt val. Jag kommer omedelbart att varna dig för att PC-tangentbordet inte har några av tangenterna som finns på Mac-tangentbordet, och många av deras kombinationer kan inte tryckas in i Hackintosh. Det förstör stämningen ganska mycket. Annars kan alla operationer som beskrivs nedan utföras framgångsrikt på Hackintosh.

Krävd kunskap

För att programmera i allmänhet och för iOS i synnerhet behöver du veta ganska mycket. Matematik och logik kanske inte behövs i början, men de kommer att efterfrågas senare. Modern teknik har befriat programmeraren från behovet av att grundligt känna till datorns arkitektur, men att förstå de grundläggande mekanismerna, såsom talsystem, deras omvandling, hastigheten på subrutiner eller effektiviteten hos algoritmer (big O), är nödvändigt.

På en högre nivå behöver en iOS-utvecklare ha en djupgående kunskap om operativsystemet macOS och själva iOS. Du måste också behärska programmeringsspråket "apple". Att känna till Delphi, C++, C# eller VB.NET hjälper dig inte mycket. Apple har sitt eget ekosystem med sina egna språk: Objective-C och Swift. Naturligtvis har kunskap om C ++ inte skadat någon ännu, program och inlägg på det finns överallt, även hos Apple. Men det mest använda per definition är Objective-C, helt enkelt för att det dök upp mycket tidigare (i mitten av åttiotalet av förra seklet), medan Swift var det bara för två år sedan (2014). Apple har stora förhoppningar på det nya språket och satsar stort på det. Objective-C används för att stödja den gamla programvaran, och den nya är skriven i Swift. Så det är bra för dig att känna till båda.

För att inte slösa tid förgäves kan alla dessa programmeringsspråk studeras under strikt övervakning av lärare på webbplatsen.

Utvecklings verktyg

Som du vet är det huvudsakliga utvecklarverktyget för macOS och med det iOS en programmeringsmiljö xcode. Den innehåller verktyg för att skapa applikationer för Mac, iPhone, iPad, Apple TV, äpple klocka. Alla Apple-plattformar. Xcode innehåller en Interface Builder, en kodredigerare som stöder alla moderna bekvämligheter arbetar med kod. Du kan också testa din applikation utan att lämna Xcode; om den är utvecklad för en extern enhet kan den köras i en emulator.

Systemet innehåller emulatorer av alla enheter, nya versioner av vilka kan laddas ner. Dessutom innehåller Xcode grafiska verktyg för att analysera applikationsprestanda, inklusive verktyg för att diagnostisera CPU-belastning, lagringsanvändning (HDD, SDD och andra), grafikadapterbelastning (från OpenGL).

13 september släppte en ny, efterlängtad version av utvecklingsmiljön 8.0. stabila versioner kan laddas ner gratis från App Store. Alfa och betaversioner distribueras genom prenumeration av utvecklaren. Den åttonde versionen har införlivat: en ny version av Swift 3-språket, inlärningsverktyget Swift Playground för iPad, en ny version av Interface Builder, som har blivit snabbare och låter dig se applikationslayouten på olika plattformar, utan att behöva distribuera själva applikationen till simulatorn.

På Xcode 8 kan du utveckla applikationer för macOS Sierra, iOS 10, watchOS 3 och tvOS 10. Alla SDK:er ingår. Nya versioner av operativsystem började dyka upp sekventiellt exakt efter Apple presentationer hölls i början av september.

Objective-C-språk

Kom ihåg den grundläggande informationen om språket. Objective-C är ett kompilerat objektorienterat programmeringsspråk som används för att skriva applikationer för "apple"-system. Det är en superset eller, med andra ord, ett tillägg över C, som ärver syntaxen, datatyperna, sätten att styra programmets framsteg från den senare och lägger till funktionerna i objektorienterad programmering - en beskrivning av klasser och metoder.

Liksom i C++ spelar objekt en central roll i Objective-C, med vilka fyra paradigm är associerade: abstraktion, inkapsling, arv och polymorfism. C++ är starkt skrivet, medan Objective-C är svagt skrivet eller har ett dynamiskt datatypsystem. Precis som Smalltalk skickas meddelanden till objekt i Objective-C. Detta är en unik egenskap hos dynamiska språk, eftersom typen av objekt kontrolleras vid körning, inte vid kompilering.

Beskrivningen av Objective-C-språket tar upp mer än en voluminös volym. Därför, för att få objektiv kunskap, är det bekvämt att ta kursen "". En hel del av kursen ägnas åt detta språk.

iOS app utveckling

Som ett exempel kommer vi att utveckla en mycket enkel applikation. Låt oss inte avvika från den heliga traditionen, låt oss välkomna världen. Men med tanke på att vi har en grafisk applikation, kommer vi att diversifiera den lite: vi kommer att lägga till en knapp, genom att trycka på vilken vi kommer att visa eller dölja inskriptionen "Hello, World".

Starta Xcode, i fönstret som visas, välj Skapa nytt projekt eller i huvudmenyn Arkiv -> Nytt -> Projekt. Nästa fönster kommer att uppmana dig att välja målplattform och applikationstyp.


I det här fallet är vi intresserade av iOS-plattformen. Det finns sju typer av applikationer att välja mellan. Sex av dem är stubbar av typiska iOS-applikationer, som innehåller en annan uppsättning komponenter som standard. Den sjunde typen är lek.

Applikationstyper

  • Enkelvisningsapplikationen är avsedd för enkel applikation med en skärm. Stubben innehåller en View Controller-komponent som låter dig anpassa utseendet på din applikation med formulärdesignern för Interface Builder.
  • Master Detail Application skapar en applikation som visar en samling objekt i en tabellvy. Om du väljer en av dem visas detaljerad information om det objektet. Den första vyn är mästaren, den andra är detaljeringen.
  • Med Page-Based Application skapas applikationer som har flera skärmar, som sidor i en bok. Därför skapas till exempel läsare från detta tomrum.
  • Applikation med flikar låter dig skapa applikationer där du kan växla till varje skärm när som helst, det vill säga att varje skärm har sin egen knapp för att aktivera den, som visar titeln. Ett exempel är iTunes.
  • Spelet används för att skapa ett spel tomt. Det finns fyra ramverk att välja mellan för att skapa ett spel: SpriteKit, SceneKit, OpenGL ES, Metal. Låt oss kort överväga dem.
    SpriteKit är ett 2D-rendering och animationssystem för texturerade rektanglar som kallas sprites. Vid visning av ramar används en standardcykel, bildrutan visas efter att bearbetningen har passerat allt innehåll i scenen.
    SceneKit är ett ramverk för visualisering på hög nivå 3D-grafik utan hjälp av OpenGL. Den stöder laddning, manipulering av 3D-objekt. Den innehåller: en fysikmotor, en partikelgenerator och ett enkelt sätt att skripta.
    OpenGL ES är en datorgrafikstandard. Låter dig visualisera 2D- och 3D-scener. Låter dig beskriva en pipeline för ett grafikkort: hörn omvandlas, sätts ihop till primitiver, som rastreras till en tvådimensionell bild och visas på skärmen. Du kan inkludera programmerbara shaders i pipeline.
    Metal - är ett lågnivå-API som gör att du kan pressa ut all ström ur din videoadapter. Finjusterade API:er tillsammans med förkompilerade shaders och multi-threading gör att ditt spel kan stiga till en ny nivå av prestanda och kvalitet.
  • Sticker Pack Application- den nya sorten appar introducerade i iOS 10 och Xcode 8. Detta är en uppsättning enkla eller animerade bilder som används i nya iMessage. Det kräver ingen kodning för att skapa.
  • iMessage Application är en ny typ av app som introduceras i iOS 10 och Xcode 8. Låter dig skapa tillägg för iMessage, som att köpa och ladda ner ditt dekalpaket. Du kan också använda iMessage API för att skapa din egen analog den här applikationen, inklusive att spela upp ljud, video, använda klistermärken och mer.

Skapa ditt första projekt

Som blank för vår ansökan kommer vi att välja Single View Application. Eftersom vi inte kommer att utveckla ett stort program kommer medlen som tillhandahålls av detta blankett att räcka för oss. Klicka på Nästa. På nästa sida i guiden anger du namnet på projektet, till exempel ShowLab. I rullgardinsmenyn Språk lämnar du standardspråket - Objective-C. Lämna sedan alternativet Universal i rullgardinsmenyn Enheter. Detta definierar vilken enhet (iPhone eller iPad) applikationen skapas för. Objekt Universal betyder för båda. Låt oss avmarkera rutorna Inkludera enhetstester och Inkludera UI-tester, vi behöver inga tester. Nästa. Välj en mapp för att spara projektet. Tryck nu på knappen Skapa.

Som ett resultat kommer ett fönster att öppnas med en lista över alla parametrar som tillämpas på projektet. I det här fönstret kan du ändra de parametrar som ställts in tidigare i guiden: orientering, målenhet och så vidare.


Först måste vi skapa applikationsgränssnittet. För att göra detta, välj Main.storyboard-filen i listan till vänster med ett klick (om den här filen inte är synlig, expandera innehållet i ShowLab-mappen). Till höger om listan kommer hela fönstret att vara upptaget av Interface Builder. Enhetslayouten kommer att visas i mitten. I det nedre högra hörnet av fönstret finns komponentpanelen. Dra etikett- och knappkomponenterna därifrån till layouten. Ovanför komponentpanelen finns en lista med egenskaper. Om du inte har det klickar du på knappen Visa attributinspektören som finns under fönstrets titel på höger sida av gränssnittet.

Välj Label-komponenten i layouten och ställ in dess Text-egenskap: lämna Vanligt urval i rullgardinsmenyn, ange önskad inskription på raden nedan, i vårt fall "Hello, World". Om texten inte passar inom etikettens kanter, ändra dem genom att dra i handtagen på komponentens kanter. För att centrera den horisontellt, gå till sidan Storleksinspektör genom att klicka på knappen Visa storleksinspektören (till höger om Visa attributinspektören). På den här sidan, från rullgardinsmenyn Ordna, välj Centrera horisontellt i behållare.

Välj nu knappen Button, ändra dess Text-egenskap till önskad etikett - Switch. Du kan centrera på samma sätt som beskrivs ovan.

Vi skapar en koppling mellan grafiska element och kod

I Visual Studio (eller Delphi) skapas ett objekt automatiskt i kod i samma ögonblick som du placerar en visuell komponent på ett formulär. Detta händer inte i Xcode, men det utgör inga problem.

Öppna innehållet i rubrikfilen ViewController.h i ett separat fönster genom att dubbelklicka på den. Den här filen innehåller deklarationen för klasstillägget UIViewController, märkt med nyckelordet @interface. Denna funktion lades till i den andra versionen av Objective-C. Utför nu detta trick: flytta muspekaren över komponenten - en textetikett, håll ner Ctrl-tangenten och vänster knapp möss. Flytta markören till fönstret med koden (filen ViewController.h), en blå linje följer markören. Släpp musen och tangenten i ViewController-gränssnittsbeskrivningen.

Fönstret för att skapa uttag visas.


Detta är en egenskap hos ett objekt som refererar till ett annat objekt (i det här fallet en visuell komponent). Du måste ange namnet på Outlet-objektet, du kommer att använda det för att komma åt den visuella komponenten, låt det vara labb. Därefter väljs typen av objekt, det väljs korrekt: UILabel.

Ännu lägre i Lagringslistan väljs typen av objektreferens: svag eller stark. Om stark väljs kommer objektet som egenskapen pekar på att existera så länge egenskapen pekar på det, i vilket fall det inte kan tas bort automatiskt när det inte längre används. Å andra sidan, när en svag referens (svag) är i kraft, kan objektet självförstöra. Så välj den svaga länktypen och klicka på knappen Anslut. Som ett resultat kommer följande rad att läggas till i koden:

@property (svag, icke-atomisk) IBOutlet UILabel *lab;

Vi ser till att Outlet är en fastighet.

Låt oss nu skapa ett uttag för knappen. Algoritmen förblir densamma. Endast för egenskapen Name måste du ange ett annat namn, till exempel men. Raden kommer att läggas till i koden:

@property (svag, icke-atomisk) IBOutlet UIButton *men;

Som ett resultat har vi två pekare till de visuella komponenterna: lab och men - respektive inskriptionen och knappen. Nu, med hjälp av pekare, kan vi manipulera komponenterna i koden.

Sedan måste vi skapa en knappklickshändelsehanterare. För att göra detta, öppna implementeringsfilen ViewController.m i ett separat fönster. På exakt samma sätt som du drog raden in i rubrikfilen för att skapa utloppet, från knappen, dra linjen till implementeringsfilen och släpp den tills det avslutande kommandoklammern - @end. Ett fönster för att skapa en händelse visas, liknande fönstret för att skapa ett outlet. Du kan se skillnaden: en länk till ett objekt skapas i rubrikfilen, en metod skapas i implementeringsfilen.


Fyll i fältet Namn, dess värde representerar namnet på egenskapen - metoden. Låt det vara onClick. Lämna värdet i fältet Typ som standard - id. I Objective-C given typär alla andras förfader. I rullgardinsmenyn Händelse är som standard händelsen Touch Up Inside vald, vilket inträffar när pekaren (mus, finger ...) släpps över knappen, det vill säga det sista steget av att trycka på knappen. Det här är vad vi behöver. I listan Argument, låt oss lämna standardvärdet: Avsändare är objektet som skickade denna signal, i vårt fall kommer det alltid att vara en knapp. Klicka på knappen Anslut. Som ett resultat kommer följande kod att läggas till:

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

Minus i början betyder en stängd metod (privat). nyckelord IBAction-händelser (metoder) för visuella komponenter från Interface Builder är markerade.

Skriv koden som exekveras när knappen trycks in mellan kommandoparenteserna:

lab.hidden = !_lab.hidden;

I den här kodraden inverterar vi värdet på den dolda egenskapen. Det är av typen BOOL, som har två värden: YES - true och NO - false (något ovanligt för Windows-programmerare, där sant och falskt).

Var uppmärksam på understrecket framför namnet på objektet - etiketter (_lab). Utan det kommer kompileringen att misslyckas. Understrecket läggs till automatiskt för objekt som finns i andra objekt; dvs i det här fallet finns labbobjektet i ViewController-objektet. Det brukade vara en villkorlig regel som användes för att skilja mellan objekt som deklarerats som medlemmar av en klass och lokala objekt. Och nu är detta en strikt regel implementerad i språkkompilatorn.

Nu kan du kompilera applikationen och köra den på simulatorn. Vi valde iPhone 7-simulatorn som medföljer Xcode 8. Kompilera och kör-knappen är en svart rektangel och finns i fältet överst i gränssnittet.

Efter att ha kompilerat applikationen, startat simulatorn och laddat vår applikation, kommer dess gränssnitt att visas på simulatorskärmen: inskriptionen "Hello, World" och Switch-knappen. Trycker du på den sista försvinner inskriptionen, när du trycker på den igen kommer den upp igen.

Vi har gjort en mycket enkel applikation för att förstå essensen av utveckling för iOS. Du kan lära dig mer om att skapa iOS-applikationer i Objective-C från våra vänners kurs från GeekBrains "". Kursen tar två månader att lära sig detta språk. Under den första månaden - inledande ämnen, och på den andra - riktig kodning av professionella applikationer.

Snabbt språk

2014 introducerade Apple ett nytt programmeringsspråk – Swift. Det blev snabbt det mest omtalade och mest dynamiskt utvecklande språket i världen. Det är ett pålitligt, säkert, intuitivt språk för att utveckla applikationer för operativsystem. macOS-system, iOS, tvOS och watchOS över hela Apple-enheten. Snabb- effektivt språk programmering. Det är lättare att lära sig än sin föregångare, Objective-C, samtidigt som Swift lånade några av de bästa idéerna från det. Samtidigt har utvecklarna gjort språken kompatibla, det vill säga ett program kan ha kod i både Swift och Objective-C. Det finns miljarder rader kod i världen och hundratusentals äldre program skrivna i Objective-C, så dess stöd kommer definitivt inte att överges.

När Swift utvecklades var målet att skapa det mest bekväma systemprogrammeringsspråket - snabbt, säkert och uttrycksfullt.

Algoritmen i Swift är 2,6 gånger snabbare än samma algoritm i Objective-C, och 8,4 gånger snabbare än i Python. Att använda Swift gör processen att utveckla program mer flexibel och bekväm.

På grund av dess exponentiella utveckling, den 3 december 2015, släpptes Swift-språket till öppen källkodsgemenskapen. Samtidigt övervakar Apple strikt dess utveckling genom att organisera en kommitté för att utveckla den. Nu är Swift tillgängligt inte bara på Apple-system utan även på Linux. Alla ytterligare verktyg för att arbeta med språket, inklusive felsökaren, standardbibliotek, en pakethanterare, är också gratis och öppen källkod.

Detta språk är framtiden. Du kan lära dig mer detaljerad information om det från den nämnda kursen från GeekBrains "", där en hel månad är tilldelad för att studera givet språk programmering.

App Store

Enkelt uttryckt är App Store en innehållsbutik för hela utbudet av Apple-enheter. Här kan du köpa spel och applikationer från både stora företag och oberoende utvecklare. Varje utvecklare, oavsett vilket land de bor i, kan sälja eller distribuera sina program gratis på denna digitala distributionssida. För att börja göra detta måste du registrera dig som utvecklare och köpa en licens för att sälja dina applikationer. Detta är en avgift för den tillhandahållna tjänsten och utvecklingen av App Store.

Resultat

Vi har utvecklat en enkel applikation för iOS-mobiloperativsystemet med Xcode-programmeringssystemet tillsammans med Objective-C-språket. Vi testade den färdiga applikationen på simulatorn iPhone 7. Vi lärde oss hur man bygger ett användargränssnitt med Interface Builder, hur man kopplar samman grafiska element med applikationskod, hur man skapar händelsehanterare. Vi bekantade oss med grunderna i Objective-C. Dessutom lade vi märke till det lovande Swift-språket som används för att utveckla kraftfulla och säkra applikationer för "äpple"-ekosystemet.

Det studerade materialet är dock bara början. För att intensivt pumpa i riktning mot mobilkodning och utveckling av verkliga applikationer rekommenderar vi att du tar kursen "" på våra vänners webbplats.

Detta är en värdig kurs: efter att ha klarat den kommer du definitivt inte att slösa tid förgäves. Det börjar med två detaljerade kurser om Java-språk följt av studier grundläggande programmering för mobil operationssal Android-system. Nästa är en kurs om databaser i allmänhet och SQL-språket i synnerhet. Därefter en fortsättningskurs i att utveckla professionella Android-applikationer. Därefter kommer inlärningsvektorn att gå mot Apple-system: två detaljerade kurser i Objective-C-språket och en användbar kurs om Swift.


Kursföreläsningar undervisas av professionella lärare med lång erfarenhet av mjukvaruutveckling. Om något inte är klart kan du ställa en fråga utan dröjsmål. I allmänhet är att lära sig på GeekBrains en levande process, du kan kommunicera, ställa frågor, hjälpa till med svar. För att testa de inhämtade kunskaperna delar lärare ut läxor som sedan kontrolleras. Efter avslutad utbildning får du en garanterad praktikplats i ett IT-företag. Och då beror allt på dig, om du visar dig själv som en kompetent specialist kommer du att bli inbjuden att arbeta.

Specialprojekt med företaget