Gå till innehåll
Just nu i M3-nätverket

Grundkurs i iPhone app-programmering?


Peter Westerlund

Rekommendera Poster

Det var inget om PHP i de eBöckerna. Bara Cocoa o ObjC. Har kikat lite i dem nu. De var rätt grundläggande o ganska bra. Kanske inte så mkt för att lära sig, men mer för att läsa om. Bra läsning och bra som referens.

 

Självklart är php ett programmeringsspråk! Precis som övriga kodspråk. Oftast är ju alla språk i princip lite "samma-samma" - bara syntaxen/formateringen som skiljer åt.

Länk till kommentar
Dela på andra webbplatser

Peter Westerlund

Okej, ja jag är ju dock mer sugen på att lära mig något än att bara läsa.

Länk till kommentar
Dela på andra webbplatser

Vet inte om jag skall börja kommentera sådant här eftersom jag snabbt trillar in i något annat än vad jag kanske borde. Men. Jag gör ett försök.

 

Det är så att jag tror att man ofta är ute på helt fel spår när man börjar, men även när man går vidare med programmering. Jag har själv gjort en hel del fel (och ofta visar det i sammanhang att jag hållit på relativt länge med detta: sedan slutet av 70-talet). Felen man begår är att man stirrar blint på just "programspråk" (termen är faktiskt SIS-standard!). Tyvärr stannar man vid programspråket, eller språken. Det ser ut som att språket avslöjar hur man programmerar. Visst till en viss del är det riktigt. Nästan alla nybörjarträning går ut på just att man sätter sig vid datorn för att studera ett språk och exempel, så lär man sig att mata in dessa för att se vad som händer. Inlärningen blir: jag lär mig språk alltså programmerar jag.

 

Men om man betraktar programmering som mer än kodning, börjar man också se att det är en del av programmeringen. Man skulle lika gärna därför kunna fokusera på ett annat sätt när man vill gå vidare med inlärandet, eller med nybörjarstudierna. Precis som nämns så är objekt-orientering ett sätt att ta sig vidare. Tror att det är mycket få kurser (om ens några) som lär ut objekt-orientering utan att blanda in ett programspråk (och fokusera endast på ett språk). Ok, det kan finnas kurser för de som designar programspråk (kompilatorer) utan att använda programspråk, utan snarare annat som krävs (heap, stack, listor, osv), men det lär inte vara många.

 

Ok, så du kan PHP. Vi tar det vanliga receptet: Du behöver inte nedvärdera PHP. Det må vara en praktisk låda och inte ha så många eleganta finesser som annat (typ Haskell. Lisp eller annat valfritt språk) men det genererar kod (vilket här förmodligen är det väsentliga; andra rent abstrakta språk kan ju ha andra avsikter). Använder du mest funktionsanrop (istället för objekt-orienterad meddelande-hantering) så liknar det (precis som nämns) en del vanlig C. Om du vill gå vägen att titta på språket för att lära dig programmering, så är väl lättast att titta på likheter mellan C och PHP. Kontrollstrukturerna liknar varandra. Tilldelsningsoperatorer liknar varandra. Men annat som pekaroperationer döljs bra i PHP, och syns bättre i C. Går du vidare på detta sätt så innebär det inte objekt-orientering utan mer av den programmering du kanske redan behärskar (procedurorienterat/strkuturell programmering). För att lära dig förlitar du dig inte på böcker, utan använder de bara som hjälpmedel att förstå. När du börjar förstå C är det dags att kliva över mot objekt-orientering och Objective-C (som är syftet med allt inlärande här). Det är troligt att det finns svenska distanskurser i objekt-orientering som åtminstone delvis kan ta med Objective-C.

 

Det var det vanliga konventionella sättet.

 

Om jag får drista mig till ett annat sätt, så skulle det kunna vara följande: Ok, visst är det programspråk som är lätt att ta till sig programmering genom. Men programmering är så mycket mer. En del handlar om kodning (som de flesta tycker är roligast). En del handlar om testning. En del handlar om planering. En del handlar om krav innan man börjar med design. En del handlar om avlusning. Osv. Man kan lära sig mycket av "programmering" bara genom att mer noggrant tänka igenom designfasen. Därför är också objekt-orienterad programmering snarast ett sätt att förhålla sig till hur man designar program, snarare än ett sätt att koda. (Man kan i princip koda objekt-orienterat redan i C.) Därför skulle man mycket väl kunna studera (snarare än att bli matad genom en kurs) olika delar av programmering utan att stört fokusera på språken. Det är en betydligt svårare väg att välja om man tycker om programmering, men det kan leverera väl så mycket i slutändan. Här kan ingå förutom de sagda sådant som t.ex. formallogik eller lära sig mer om algoritmer.

 

Detta är mer än att bara läsa ;)

 

(PS. Man kan kompilera andra språk på såväl Mac OS som iOS, fastän anropen kan dock begränsas till Objective-C.)

Länk till kommentar
Dela på andra webbplatser

Peter Westerlund

Det är mycket intressant läsning där. Och det får mig att tänka tillbaka på hur jag lärde mig PHP en gång i tiden. Det började med att jag ville kunna göra min egen gästbok och inte embedda en färdig från en extern sajt. Så läste jag PHPSidans grundkurser. Där fanns bland annat grunden i hur man sparar till en databas. Det var så otroligt simpla saker som gav snabbt resultat. Sen ville man ju utveckla gästboken mer och mer och sedan hela sidan och i takt med detta läste man nya artiklar och dokumentationer. Det mesta jag lärt mig i PHP är från PHPSidan (som inte finns längre) och PHPPortalen.net. Svenska forum, det går snabbt att lära sig något och det är enkelt att utvecklas.

 

Så jag tänkte nu med iPhone-programmering att jag skulle pröva samma sätt. Tänka ut någon simpel app som jag ville bygga och sedan läsa i artiklar på nätet hur man gör. Men det är så mycket mer förvirrande. Det är så många delade meningar. Och nästan alla guider börjar med en text där det står att man måste kunna objektorienterad programmering för att det ens ska vara en idé att läsa vidare. Och sedan till exempel, jag ville göra något så enkelt som att spara en input-data. Finns ingenstans! Det FINNS ju säkert, men hittar man det inte så finns det inte. Det jag vill säga är att det är väldigt svårt att hitta. Även på Apple Dev Center, där allt ju borde finnas.

 

Jag upplever iPhone-programmering som väldigt svårt att komma in i och lära sig. Jag vill få upp min första app ganska fort och sedan kunna utveckla den, så motivationen stimuleras också.

 

Jag vill ha en mängd enkla guider som går igenom grunderna för det mesta. Även då grunderna för de lite mer "avancerade" sakerna som hur man sparar i databas m.m. Så inte bara grunder för enkla saker som att skriva "Hello world". Dom guiderna har jag tuggat igenom 50 stycken nu känns det som.

 

Och jag har inget emot att betala för bra kunskap. Men jag vet ju inte var den finns. Det finns inte mycket kurser, Stanford tycker jag inte var så lätt för mig som OOP nybörjare. Och "For Dummies"-böckerna finns det massor av med liknande namn typ "Objective-C for Dummies" och "iPhone programming for Dummies", liksom, whats the difference?

 

Så ja, vet inte vad jag ska göra. Jag har viljan, men är fast.

Länk till kommentar
Dela på andra webbplatser

Tja, ett enklare sätt att ta till sig snabbt är ju att gå till exempel som nämnt (om vi tar konventionellt).

 

Ladda ner Xcode och programexempel för att köra på iOS från: http://developer.apple.com/devcenter/ios/index.action (sample code). (Eller från Macsidan om det är det som intresserar.)

 

Detta är inte bara nybörjare som gör. Programmerare som vill testa något de inte sett förut eller behöver bara testa, brukar alltid uppskatta exempel där det framgår hur kod ser ut. Man behöver dock inte (som sagt) fastna i koden för att gå vidare. Ta någon app som inte är för avancerad utan kanske bara visar färger eller ngt dito. Ändra på färgen och se vad som händer när du kompilerar upp programmet. När du inser att det inte räcker med att ändra bara på koden för att förstå mer, så kan det löna sig att tänka igenom programmering än som endast kodning ... Det är här kruxet med objekt-orienteringen kommer in. "Ok, jag förstår instanser av objekt, men hur funkar det egentligen när man vill skicka meddelanden mellan objekten?" ... typ.

 

Observera att just Objective-C är ett språk i stark utveckling och är inte detsamma som det var för, säg 2 år sedan. Därför är böcker just i detta fall en aningen problematiska. De kan snabbt vara föråldrade. En sak som påverkar är att det är starkt förknippat med Apple och vad företaget vill med språket. Annat är det med de betydligt mer oberoende C och C++ som har mognat betydligt. Där skall jag väl inte säga utvecklingen står still, men kan väl säga att där händer det inte lika mycket längre.

 

 

Det finns flera platser där det går att hämta (både sämre och bättre) kod som t.ex. Github eller Sourceforge ...

 

Man bör nog ta objekt-orientering i Objective-C bitvis och observera historiska ingredienser. Kan inte säga att jag ännu sett någon bok som tar upp Objective-C på både enklare vis och följer utvecklingen, men det hindrar inte att det kanske kommer vad det lider. Bra pedagogik för läroböcker i programspråk brukar ta tid på sig. Det blir ju inte lättare när målet (Objective-C) rör på sig hela tiden ... ;)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...