Sitter du inne med en knallidè til en app, men vet ikke helt hvor du skal begynne? Vel fortvil ikke, her er første del av App-utvikler-guiden. Hvor vi skal lære å starte et prosjekt i XCode, og bittelitt C.
Etter å ha lekt litt med utviklerverktøyene til Mac OS X i en del år, tenkte jeg at det kanskje var greit å lage en guide for de litt ferskere til gamet, en slags "hvordan komme i gang"-guide til utvikling på mac, siden de færreste kanskje har tatt i utvikling fra før, går jeg vekk fra stilen til Switch-guiden, hvor jeg "oversatte" windows-uttrykk til mac-uttrykk, og forsøker å forklare alt helt fra scratch, så de av dere som har tatt i utvikling før, får nesten bære litt over med dette.
Først av alt, må det sies at apputvikling ikke er noe du kan komme HELT rett fra gata, og bare sette i gang med, det er en del grunnleggende ting du bør kunne før du setter i vei mot App Store, i denne utgaven, skal vi gå gjennom de helt grunnleggende tingene som må gjøres, for å kunne starte å utvikle. I første omgang holder vi oss til Mac OS X som mål:
Programmer skrives i programmeringsspråk, selve skrivingen av "koden" kan du gjøre i nesten alt fra TextEdit til Word, men dette er ikke nødvendigvis de riktige verktøyene for jobben (på samme måte som du KAN spikre inn spiker med stein, selv om en hammer er et mer praktisk verktøy), det er nemlig veldig nyttig å ha et verktøy som kan hjelpe deg litt på veien, og vise deg om det du har gjort er riktig. Samtidig vil "koden" du har skrevet på et tidspunkt måtte gjøres om til noe maskinen din kan kjøre, vi trenger altså helst et verktøy til å løse disse oppgavene.
Det er her XCode kommer inn, XCode er en såkalt "IDE" (Integrated Development Environment). Hvilket betyr at XCode både har en teksteditor beregnet på å redigere kode, og en kompilator, som tar seg av å oversette koden til maskinkjørbare filer. XCode er gratis, men krever registrering hos Apple Developer Connection:
XCode
Etter at du har installert XCode, vil du finne XCode i Macintosh HD/Developer/Applications/XCode.
Så, hvordan kommer vi i gang med et helt enkelt program i XCode?
Vel, bilder taler mer enn tusen ord heter det:
Det første du ser når du kjører XCode for første gang er dette vinduet, som gir deg valget mellom å hoppe i det, eller å lese noen av Apples tutorials, her får du også en liste over nylig åpnede prosjekter, i denne omgang, velger vi
"Create a New XCode-project". Som fører oss til dette skjermbildet:
Dette kan se litt forskjellig ut hvis du valgte å laste ned XCode uten iOS SDKen, uansett, velg
Mac OS X Application på venstre side, og Command Line Tool på høyre side.Trykk
"Choose"
Gi prosjektet et navn, og velg evt en plassering, trykk så "Save". Og vi havner her:
Vi trykker på
"main.c", og ser at Apple allerede har lagt inn et skjelett-program i prosjektet vårt, det klassiske
"Hello World"-eksempelet. Legg også merke til den røde teksten i lista over, den skal vi komme tilbake til.
Men først, la oss kjøre dette skjelettprogrammet, for å se hva det gjør. MEN, før vi gjør dette, må vi åpne et vindu som ikke automatisk er åpent, nemlig konsollen til XCode. Du KAN kjøre programmet uten, men da ser du ikke hva som skjer.
Trykk
RUN på menylinja, og velg
Console
Ok, da dukker dette vinduet opp:
Trykk
"Build and Run", og legg merke til at to ting skjer, teksten som var rød, ble nå svart, og en haug med tekst kom opp i vinduet vårt.
Vi ser bort fra all den ikke-fete teksten her, og oppdager at jaggu,
"Hello, World!" står skrevet i vinduet vårt, mon tro hvordan vi kan få programmet til å skrive noe annet?
Som du kanskje gjettet, kommer
"Hello, World!" fra linja som starter med printf,
\n-en i teksten er en måte å be om "newline" på, altså enter. Vi bytter om på teksten til
"Hello, Mac1\n", og kjører:
Gratulerer, vi har nå kjørt "vårt" første program i XCode, det er mye annet morsomt vi kan gjøre med dette programmet, men det får vente til neste del av guiden.
Så, hva har vi klart i denne omgang? Vi har alle verktøyene vi trenger for å lage nesten et hvilket som helst program, og vi har kjørt et enkelt ferdigspikret program skrevet i programmeringsspråket C. Hvorfor har vi kjørt et program i C, når Apple bruker Objective-C spør du kanskje? Vel, Objective-C er en utvidelse av C, all C-kode er gyldig Objective-C-kode, så det er et greit sted å starte, uten å komplisere alt. Neste gang skal vi ta en liten kikk på Interface Builder, og helt enkle GUI-programmer, men jeg anbefaler alle som er interessert i å lære mer, å kikke på noen grunnleggende C-, eller Objective-C innføringsguider rundt om på nettet frem til da.
For de ivrige: lyninnføring i enkel C
Det blir kanskje litt brått å slutte der, så en liten forsmak på C-koding er helt klart på sin plass, jeg kommer til å hoppe over en del detaljer i de neste avsnittene, da vi skal tilbake til C-koding i en senere Del av guiden. Men altså:
Først av alt, hvis du vil forsøke deg på noe, er det bare å renske vekk linja med "printf" fra koden, og skrive din egen kode der, "return"-linja må få bli stående enn så lenge. Skulle noe gå virkelig skeis, så er det bare å renske fila tilbake til slik du ser på bildene over, eller evnt bare å starte et nytt prosjekt.
Så til saken, vi har allerede sett at "printf()" har noe med å skrive ting ut til Konsollen å gjøre, søsterfunksjonen heter "scanf()", begge disse er såkalte "funksjoner", som tar noen "argumenter", og gjør noe med dem. Argumentet, er det som står mellom (), i det første eksempelet var dette "Hello World\n", og da sa jeg at \n var en magisk sak som ga deg ny linje, vel, la oss introdusere en litt mer tricky sak, nemlig "%d".
printf("%d \n",42);
Skriver ut 42, men hvorfor skrev vi ikke bare 42?, vel prøv følgende:
printf("%d \n", 42+1);
Nåh? Fancy. Men for å komme til det virkelig artige, så må vi introdusere noe som heter variabler. Vi har ikke engang lært hva variabler er ennå, ei heller funksjoner, men en lyninnføring er på sin plass. En variabel er en "merkelapp" for en verdi, tenk på den som en bås som kan holde en verdi. Vi hopper over detaljene og holder oss til det enkle:
int x = 42;
Da kan X brukes istedenfor 42 overalt ellers i programmet ditt, men, som en liten tankevekker, kan du også skrive x = x + 1, dette bryter litt med algebratankegangen fra skolen, men det betyr: "X skal nå være det X var + 1", altså 43. Så, hvordan kan vi bruke dette til noe?
Vel, se på følgende kodebit:
int x = 42;
printf("%d",x);
Den skriver også ut 42, hmmm, men hva om vi vil sette x til noe brukeren selv skriver inn da? Vel, her kommer scanf inn i bildet.
int x=0;
printf("Skriv et tall:");
scanf("%d",&x);
printf("Du skrev %d\n",x);
Legg merke til &-tegnet, scanf må ha dem, printf må ikke, men, kule ting man kan gjøre med printf/scanf stopper ikke der, prøv å bytte den siste linja der med:
printf("Du skrev %d, det dobbelte av det, er :%d\n",x,x*2);
Og, for å gi dere en liten ekstra godbit å leke med: if, if fungerer slik at den sjekker et utsagn, hvis det stemmer, så gjøres det som står mellom de påfølgende krøllparentesene, i motsatt fall skjer enten ingenting, eller man kan skrive en else-blokk under.
int x=42;
if(x==42)
{
printf("42 er kult");
}
else
{
printf("Ikke 42? Det er ikke artig.");
}
If krever doble likhetstegn for likhet, og kan også sjekke større og mindre, både med og uten lik >,<,<=,>=, samt ulik: !=. Helt på tampen, kan jeg nevne
while, som vil repetere det som står mellom krøllparentesene, så lenge uttrykket er sant, men som ellers skrives på samme måte som if (dog har den ingen
else) Min utfordring til dere, er da:
Lag et program som lar "brukeren" gjette tall, svaret er selvfølgelig noe du har valgt på forhånd. For ekstra creds, gi brukeren tilbakemelding om tallet er større eller mindre enn det han har gjettet.
Det var all C-innføringen for denne gang, håper det ikke gikk ALT for fort frem, vi kommer sterkere tilbake i en senere Del av guiden, til da kan jeg virkelig anbefale HowStuffWorks-guiden jeg har linket til for å få litt mer taket på C.
Videre lesning:
CProgramming.com Intro to C
HowStuffWorks - C Programming
En rimelig kortfattet Objective-C Tutorial
En litt lengre Objective-C Tutorial
Allikevel anbefaler jeg de som er interessert, å skaffe seg en god C/Objective-C bok.
Og, forøvrig, feedback og tips mottas med glede, er det noe som er uklart i guiden, si ifra, så skal jeg prøve å få det fikset, går jeg for fort frem, eller alt for sakte, er det også greit å få vite.
OPPDATERT
Lyninnføring i C lagt til.
Del 2 er nå ute