Att börja utveckla för OSX & iPhone..

Tråden skapades och har fått 44 svar. Det senaste inlägget skrevs .
  • Medlem
  • Stockholm
  • 2009-03-27 15:40

Som ett projekt över de kommande åren är jag lite intresserad av att börja lära mig programmering för OSX och framför allt iPhone. Pysslade en del med webutveckling och C för ett par år sedan, men det var mycket länge sedan, så kunskaperna finns tyvärr inte kvar i någon större utsträckning. Nu förstår jag att det tar både lång tid och mycket tid för att bli duktig på detta, men i och med att det är ett så pass stort område så känns det svårt att veta i vilken ände man skall börja. Därför vänder jag mig nu till er andra härliga forummedlemmar för lite tips och trix och någon som vill peka mig i rätt riktning.

- Vart ska man börja?

- Bra inledningsspråk?

- Vad behöver man för utrustning och program (en mac har jag redan )?

- Ni som har hållt på ett tag; Om ni hade fått börja om i er läroprocess - vad hade ni gjort annorlunda, och hur då?

Tack så mycket på förhand, och trevlig helg på er!

  • Medlem
  • International user
  • 2009-03-27 16:00
Ursprungligen av zAjben:

- Vart ska man börja?

- Bra inledningsspråk?

- Vad behöver man för utrustning och program (en mac har jag redan )?

För utveckling under OSX/Iphone så är det tyvärr Objective C som gäller. Jag skriver tyvärr därför att jag finner språkets syntax tungrodd och "objective"-delen känns som en efterkonstruktion.

Förutom en mac behöver du XCode som du laddar ned från apple.com/developer. Köp dig sedan en bra bok, tex http://oreilly.com/catalog/9780596003012/ det finns mycket info på nätet, men en bok kan man ju läsa i sängen, badet eller på dass

När du kört igenom några exempel i boken och börjar få lite förståelse, tänk då ut något litet, lagom utmanande projekt och ge dig på det.

  • Medlem
  • Stockholm
  • 2009-03-27 16:20

Tack! Är boken fortfarande aktuell, trots att den är skriven 2002? Har det ändrats mycket?

Bör jag börja med att lära mig C, då Objective-C bygger vidare på det? I så fall, vad för litteratur för detta ändamål? Eller går det bra att gå rakt på objective-c och boken du tipsade om? Är som sagt väldigt grön.

  • Medlem
  • International user
  • 2009-03-27 16:37
Ursprungligen av zAjben:

Tack! Är boken fortfarande aktuell, trots att den är skriven 2002? Har det ändrats mycket?

Bör jag börja med att lära mig C, då Objective-C bygger vidare på det? I så fall, vad för litteratur för detta ändamål? Eller går det bra att gå rakt på objective-c och boken du tipsade om? Är som sagt väldigt grön.

Den är rätt aktuell beträffande språket Objetive C. Däremot är såklart API:erna som boken tar upp lite föråldrade. Det finns säkert nyare böcker att köpa men jag tycker den duger bra som en introduktion. När du väl förstått språkets grunder kan du ju grotta ned dig i API:erna på nätet.

Du ska inte börja med C. Gå rakt på Objective C så blir du vän med objektorienterad programmering på en gång.

Ursprungligen av rhesus:

Den är rätt aktuell beträffande språket Objetive C.

Det är väl just det som den inte är med tanke på alla nyheter som nyligen kom i Objective-C 2.0?

Jag har inte läst den, men Stephen Kochans böcker brukar ofta rekommenderas och i höstas kom en ny upplaga av hans bok som heter Programming in Objective-C 2.0.

  • Medlem
  • International user
  • 2009-03-28 10:53
Ursprungligen av Marcus K:

Det är väl just det som den inte är med tanke på alla nyheter som nyligen kom i Objective-C 2.0?

Jag har inte läst den, men Stephen Kochans böcker brukar ofta rekommenderas och i höstas kom en ny upplaga av hans bok som heter Programming in Objective-C 2.0.

Jo, du har rätt i det fallet. Det är nog bättre att köpa en nyare bok, typ dendu rekommenderar.

  • Medlem
  • Stockholm
  • 2009-03-27 20:10

Stort tack rhesus!

Andra tips, råd och tankar uppskattas varmt!

Ursprungligen av zAjben:

- Vart ska man börja?

Läs en bok. Eftersom du är intresserad av att arbeta mot Mac kan jag rekommendera Cocoa Programming for Mac OS X av Aaron Hillegass. Det är en helt underbart skriven bok som kom ut i en ny utgåva för inte alltför länge sedan. Annars kan jag även rekommendera Concepts of Programming Languages av Robert Sebesta om du vill läsa in dig på grundläggande programspråksteori.

Ursprungligen av zAjben:

- Bra inledningsspråk?

Det är en väldigt svår fråga. Det går väldigt snabbt att bara komma med förslag som Perl, C, ML och Prolog men det är mycket svårare att motivera varför. Jag tycker inte att det spelar så stor roll vilket man väljer så länge man lär sig de teoretiska grunderna så att man får en grundlig förståelse för t. ex. olika former av parameteröverföring, anropsstackar och dynamisk/statisk räckvidd och så vidare.

Ursprungligen av zAjben:

- Vad behöver man för utrustning och program (en mac har jag redan )?

Verktygen som ingår i Apples Xcode Tools brukar vara en bra start. Den erbjuds kostnadsfritt på Apple Developer Connection.

Ursprungligen av zAjben:

- Ni som har hållt på ett tag; Om ni hade fått börja om i er läroprocess - vad hade ni gjort annorlunda, och hur då?

Jag hade fokuserat mer på grunderna istället för att bara lära mig ett visst språk eller ramverk. Det är jättekul ett tag men man kör lätt fast så fort man försöker göra något som är lite mer avancerat. Det är lite som att lära sig prata ett nytt språk enbart genom att lära sig fraser, man måste kunna lite grammatik också.

  • Medlem
  • Stockholm
  • 2009-03-28 10:11

Tack!!! Verkar komma en ny Concepts of Programming Languages i Juni, så tänkte vänta tills dess och beställa den! Sedan så verkar både Cocoa Programming for Mac OS X av Aaron Hillegass och Kochans Programming in Objective-C 2.0 intressanta. Frågan är; Ska jag beställa båda på en gång, eller vilken tror ni är bäst att börja med för en nybörjare?

  • Medlem
  • Stockholm
  • 2009-03-28 10:53
Ursprungligen av zAjben:

Tack!!! Verkar komma en ny Concepts of Programming Languages i Juni, så tänkte vänta tills dess och beställa den! Sedan så verkar både Cocoa Programming for Mac OS X av Aaron Hillegass och Kochans Programming in Objective-C 2.0 intressanta. Frågan är; Ska jag beställa båda på en gång, eller vilken tror ni är bäst att börja med för en nybörjare?

Jag tycker att Hillegass och Kochan kompletterar varandra på ett bra sätt. Kochan går mer systematiskt igenom språket, där Hillegass direkt låter en skriva ett cocoaprogram med GUI. Om man inte är bekväm i terminalen kan jag rekommendera att göra Kochans övningar med Vi och GCC just i terminalen för att göra sig hemmastadd och för att man skall få en förståelse för vad som händer när men sedan kör XCode. (Allt sagt med den reservationen att jag har Kochans förra upplaga som inte tar upp Obj-C 2.0)

Viktigt att komma ihåg är att man måste lära sig minneshantering om man vill skriva för iPhone. (För det kommer väl inte GC i iPhone OS 3.0 heller?). Minneshanteringen var en del som tog lång tid för mig att bli riktigt bekväm med, dvs. jag förstod i princip ganska fort, men det tog tid att komma dithän att den kändes självklar när jag skrev egen kod.

Om man vill träna grundläggande programmering, kan jag rekommendera Project Euler, men problemen där kräver nog ett visst matematikintresse. Att sätta upp som mål att nå Level 1 och genomföra övningarna skänker en viss säkerhet i kodfingrarna.

Jag tyckte många av övningarna i Project Euler var bra då de krävde att man tänker på hur tidskrävande loopar kan vara. Det har hänt att jag först kommit på en lösning som har tagit timmar att köra, men som givit rätt resultat, för att sedan se i forumet (vilket man får tillgång till när man löst uppgiften) att andras kod klarat det på 11 ms. :"> Tråkigt är att det inte finns några lösningar i Obj-C i forumen, men väl en del i C.

Vänligen, Ylan

  • Medlem
  • Stockholm
  • 2009-03-28 11:32

Vidare kan jag rekommendera att hitta ett litet lagom projekt som kräver att man lär sig lagom mycket. Jag skrev YlanDigitalTuner (klicka YlanDigitalTuner) t. ex. där jag i princip lärde mig all teknik jag använde "i skrivande stund", vilket kanske inte leder till den mest optimala koden men arbetssättet hjälper till med drivkraft när det är svårt eller motigt. Några tekniker/klasser jag använt och lärt mig (med mycket olika grad av förståelse) är: Core Data, Bindings, Notifications, QTKit, NSTextView, NSTask, Applescript (kunde jag en del om innan iofs), NSBundle.

Ett exempel på där jag hade ett problem och fick lära mig något är när jag ville köra ett applescript från Obj-C-koden. YDT lirar via Applescript ihop med Rogue Amoebas Airfoil och Audio Hijack Pro. (Detta syns bara om man har Airfoil och/eller AHP installerat)

Först fick jag lära mig hur jag i Xcodeprojektet skulle göra för att skicka med ett applescript i bundeln. (Och skriva skriptet förstås)

Sedan fick jag lära mig hur koden skall hitta skriptet i bundeln när det skall köras.

Först använde jag NSApplescript för att köra scriptet, men med den tekniken körs skriptet i huvudtråden, vilket ledde till dropout i radiolyssningen.

I stället fick jag använda mig av NSTask som förmår kicka igång skriptet i en annan tråd.

Till sist fick jag skriva kod för att kolla om användaren har AHP och/eller Airfoil installerat för att i så fall aktivera och visa knapparna som triggar scripten som startar respektive program.

Detta enkla lilla problem tog ganska lång tid att lösa då jag fick lära mig, testa, lära och skriva om i stort sett varje kodrad. Men jag lärde mig verkligen en hel del om de klasser jag använde och icke minst att snabbt och effektivt använda mig av dokumentationen.

Vänligen, Ylan

  • Medlem
  • Stockholm
  • 2009-03-28 16:11

Stort tack! Det hjälper enormt att få lite input från någon som har pysslat med det här i ett tag. Då beställer jag nog båda böckerna, och försöker köra lite parallellt. Det blir ca 530kr inkl frakt för båda två, vilket känns som en helt okej investering. Ska sitta och fundera lite på något litet projekt jag kan göra!

Jag rekommenderar dig att läsa följande PDF-filer:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/OOP_ObjC/OOP_ObjC.pdf

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf

Samt att du registrerar dig som iPhone-utvecklare ($99) för att få tillgång till all dokumentation och exempelkod.

Det finns ingen direkt början. Det är bara att vara nyfiken och leka.

  • Medlem
  • Stockholm
  • 2009-03-29 09:51
Ursprungligen av cEvin Key:

Jag rekommenderar dig att läsa följande PDF-filer:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/OOP_ObjC/OOP_ObjC.pdf

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf

Samt att du registrerar dig som iPhone-utvecklare ($99) för att få tillgång till all dokumentation och exempelkod.

Det finns ingen direkt början. Det är bara att vara nyfiken och leka.

Tack! Ska läsa så fort jag får tid och möjlighet Tänkte försöka lära mig Objective C 2.0 något så när innan jag investerar i iPhone-utvecklar kostnaden. Man kanske aldrig når dit, vem vet!

Har i alla fall beställt de ovan nämnda böckerna nu. 529kr inkl frakt var faktiskt helt klart överkomligt! Fortsätt gärna att skriva idéer och tips om ni kommer på några. Jag tror att det är fler än jag som har nytta av den här tråden!

  • Medlem
  • Helsingborg
  • 2009-03-29 10:14
Ursprungligen av zAjben:

Jag tror att det är fler än jag som har nytta av den här tråden!

Helt rätt! Jag har länge känt för att börja med programmering, men inte riktigt vetat hur. Bra med alla ni som delar med er av tips och erfarenheter. Uppskattas!

Ursprungligen av rhesus:

För utveckling under OSX/Iphone så är det tyvärr Objective C som gäller. Jag skriver tyvärr därför att jag finner språkets syntax tungrodd och "objective"-delen känns som en efterkonstruktion.

Håller med! Det är en förfärlig kombination av koncept som inte passar ihop, men nog är det där man börjar. Jag har en plan för hur jag därefter skall slippa ifrån Obj-C, men en sak i taget.

Ursprungligen av cEvin Key:

Samt att du registrerar dig som iPhone-utvecklare ($99) för att få tillgång till all dokumentation och exempelkod.

Visst. Och det kan processas vilket år som helst. (Väntar sedan sådär en och en halv månad på att Apple skall reagera.)

  • Medlem
  • Stockholm
  • 2009-04-02 01:58
Ursprungligen av Ingemar Ragnemalm:

Håller med! Det är en förfärlig kombination av koncept som inte passar ihop, men nog är det där man börjar. Jag har en plan för hur jag därefter skall slippa ifrån Obj-C, men en sak i taget.

Visst. Och det kan processas vilket år som helst. (Väntar sedan sådär en och en halv månad på att Apple skall reagera.)

Precis, det är där man börjar och man kan skriva i andra språk, men man måste nog verkligen förstå Obj-C för att förstå ramverken, vilket är en förutsättning för att göra det (skriva i andra språk) med framgång.

Undrar huruvida Apple är helt tagna på sängen av anstormningen av utvecklare, och därför inte hinner med och varför de då känner att de måste processa något över huvud. Ibland är Apple svårbegripligt.

Vänligen, Ylan

Om man kör fast så är http://www.cocoabuilder.com/ en höjdare.

Jag fick min Cocoa Programming for Mac OS X i fredags och är 60 sidor in i boken. Jag var helt ny inom programering och har nu skrivit mina två första program Även fast jag inte förstår alla termer osv förklarar Aaron varje steg otroligt bra och jag tror att när jag läst klart boken har jag fått en bra grund.

Finns det någon dokumentation med alla termer så som NSString, %d osv?

Senast redigerat 2009-03-30 12:28
  • Medlem
  • Stockholm
  • 2009-03-30 22:17
Ursprungligen av techworld:

Jag fick min Cocoa Programming for Mac OS X i fredags och är 60 sidor in i boken. Jag var helt ny inom programering och har nu skrivit mina två första program Även fast jag inte förstår alla termer osv förklarar Aaron varje steg otroligt bra och jag tror att när jag läst klart boken har jag fått en bra grund.

Finns det någon dokumentation med alla termer så som NSString, %d osv?

Om du skriver koden i Xcode, kan du alt+dubbleklicka på ett klassnamn, så öppnas dokumentationen för klassen!

Vänligen, Ylan

  • Medlem
  • Stockholm
  • 2009-03-31 20:56
Ursprungligen av Ylan:

Om du skriver koden i Xcode, kan du alt+dubbleklicka på ett klassnamn, så öppnas dokumentationen för klassen!

Vänligen, Ylan

Grymt bra tips, tack Ylan!

Även http://www.cocoadev.com/ kan rekommenderas som ett bra komplement till cocoabuilder.

Man kan även alt+dubbelklicka på ett metodnamn för att komma direkt till metodbeskrivningen i dokumentationen.

Ett bra tips är också att verkligen se till att uppdatera till XCode 3.1 från den XCode 3.0 som kommer med på Leopard-skivan. Det är väldigt stor skillnad i hur smidigt det är att jobba med, framförallt vad gäller autocomplete-funktionen.

Jag har skaffat några böcker om Objective-C samt iPhone-utveckling och tänkte sätta igång nu (har huvudet fullt med projekt jag vill realisera på iPhonen). Tänkte därför registrera mig som utvecklare hos Apple och funderar på vilken typ man ska välja. Det finns tre olika ju: privatperson, företag samt enterprise-nånting. Sista alternativet känns inte så lockande, så frågan är vilket av de två första man ska/kan välja? Måste man ha ett registrerat företag för att välja företagsalternativet? Jag vill gärna ha något tufft (påhittat och ej upptaget) företagsnamn i appstore istället för mitt egna namn.

  • Medlem
  • Stockholm
  • 2009-04-10 17:03

Jag skulle börja med C, sedan Obj-C och Cocoa i ett svep. Började själv att försöka lära mig Obj-C först men det blev för abstrakt och så irriterade jag mig på att jag inte kunde bakgrunden till de regler som omger språket. Sedan är det ju oxå viktigt att fundera på vilka API man är intresserad av, flera av Apples API är rena C API´n som tex quicktime, coreaudio, corefoundation osv, och då kan det ju vara bra att kunna C. Jag själv var intresserad av core audio som är ett C api. Sedan är ju Obj-C en efter konstruktion och om man redan kan C så är det inte så mtycket extra att lära sig, bara syntaxen för att C skall kunna hantera objekt och medelanden. Men det beror nog på hur man föredrar att lära sig saker i grund och botten.

XCode är gratis att ladda ner om man registrerar sig som developer. Men dom vill att man ska skriva company/organization...? Vad ska man skriva där? Får man inte ladda ner som privatperson?

Ett bindestreck? Ha lite fantasi, pöjk!

Ursprungligen av Capeman:

Ett bindestreck? Ha lite fantasi, pöjk!

Baaaah!!! Jag som ville vara 100% legit nu när jag skaffat mac. Men då kör vi så

Vill tipsa om en kurs i iPhone-utveckling som nyss startade på Stanford University.
Den verkar rätt bra, följer den själv. Man måste dock ha lite grundläggande koll på programmering och objektorientering innan, annars blir det lite jobbigt att hänga med kanske.
Det är folk från Apple som håller i utbildningen, och deras föreläsningar känns inte sövande.

Föreläsningarna finns tillgängliga i iTunes U:
länk: http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.2024353965.02024353968

På kursens hemsida
http://www.stanford.edu/class/cs193p/cgi-bin/index.php
kan man ladda hem slides och inlämningsuppgifter man kan göra själv Man kan låtsas att man går en distansutbildning.....

Smäller man upp det på sin TV och placerar en skolbänk framför så kan man ju även låtsas att man sitter där i Palo Alto... (fånar mig nu).

Glad Påsk!

  • Medlem
  • Göteborg
  • 2009-04-20 13:24
Ursprungligen av Andreas Th:

Vill tipsa om en kurs i iPhone-utveckling som nyss startade på Stanford University.
Den verkar rätt bra, följer den själv. Man måste dock ha lite grundläggande koll på programmering och objektorientering innan, annars blir det lite jobbigt att hänga med kanske.
Det är folk från Apple som håller i utbildningen, och deras föreläsningar känns inte sövande.

Föreläsningarna finns tillgängliga i iTunes U:
länk: http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.2024353965.02024353968

På kursens hemsida
http://www.stanford.edu/class/cs193p/cgi-bin/index.php
kan man ladda hem slides och inlämningsuppgifter man kan göra själv Man kan låtsas att man går en distansutbildning.....

Smäller man upp det på sin TV och placerar en skolbänk framför så kan man ju även låtsas att man sitter där i Palo Alto... (fånar mig nu).

Glad Påsk!

Tänkte precis rekommendera samma. Notera att detta är dock inte något för de som är helt gröna på programmering. Att läsa några av böckerna som nämnts här är inte bara ett plus i mina ögon, utan ett krav om du över huvud taget ska kunna ta dig an de första uppgifterna.
Det är annars otroligt kul att Stanford får tummen ur och hostar detta gratis för omvärlden. Jag kommer att ha stor nytta av det i min utveckling av iPhone-applikationer.

Bevaka tråden