Var ska du gå nästa

Du har lärt dig mycket under de senaste fem veckorna, gräshoppan, och du kan till och med känna dig lite överväldigad vid denna tidpunkt. Jag skulle vilja lämna dig några råd och en massa resurser för att hålla dig på rätt spår för att bli en skicklig iOS-utvecklare.

Saker att tänka på

Även om 2007 verkar som igår har mobilutrymmet och iOS i synnerhet vuxit i en otrolig takt. Det är svårt att föreställa sig det mobila landskapet utan iPhone, iPad och iPod Touch. Som en följd av iOS-plattformens anmärkningsvärda tillväxt och popularitet finns det ingen brist på böcker, videoklipp, kurser och bloggar för att vägleda dig på din strävan att bli en skicklig iOS-utvecklare.

Materialet som vi täckte i denna serie borde ha gett dig en bra förståelse för iOS-plattformen från en utvecklarperspektiv. Den första råd som jag skulle vilja ge dig är att fortsätta bygga iOS-applikationer. Vänta inte tills du tror att du vet tillräckligt för att börja skapa den första riktiga iOS-applikationen. Du lär dig mest genom att skapa små applikationer och genom att hitta lösningar på de problem du upplever när du går. I slutändan handlar programmering om att lösa problem. Jag finner mig själv skapa flera applikationer varje vecka. Det betyder inte att varje applikation är värd att publiceras i App Store - tvärtom. Jag börjar med att isolera ett specifikt, väldefinierat problem som ingår i ett större projekt. Jag skapar sedan ett nytt iOS-projekt som fokuserar på att lösa det enda problemet. När jag har hittat och genomfört en lösning på problemet, förfina jag lösningen genom flera steg av refactoring för att förbereda den för integration i det större projektet. Samtidigt har jag skapat en återanvändbar komponent för senare användning. Genom att fokusera på återanvändbarhet är du mindre sannolikt att skriva spagetti-kod och mer sannolikt att spara dig tid på framtida projekt.

Detta tillvägagångssätt är också bra för att utforska nya ramar eller för att prova ett nytt open source-bibliotek som du snubblat på. Under denna serie har vi skapat ett antal iOS-projekt. Med varje nytt projekt lärde vi oss något nytt och under tiden har vi blivit alltmer bekanta med Xcode. Att bli bekant med din utvecklingsmiljö är ett annat viktigt inslag i IOS-utvecklingen.

Mitt andra tips är att undvika att kopiera och klistra in kodsedlar som du hittar på webben. Om du inte förstår de utdrag du kopierar kommer du inte att dra nytta av det på lång sikt. Visst kan det tillfälligt lösa ett problem som du kämpar med, men genom att använda slumpmässiga kodstycken som du inte förstår, kommer du att bygga upp teknisk skuld. Det betyder inte att du inte ska inkludera väl underhållna bibliotek i dina projekt, t.ex. AFNetworking eller Magical Record. Det betyder inte heller att du borde känna till varje genomförandedetaljer för sådana bibliotek. Om du möter ett problem som du kan lösa dig själv genom att spendera en eller två timmar som kodar upp en lösning, så är det bra tid. Programutveckling handlar inte bara om hastighet och resultat. På en personlig nivå handlar programutveckling om att bli bättre på vad du gör, programmering, och du blir inte en bättre programmerare genom att kopiera och klistra in kodstycken som du inte helt förstår. Det finns inga genvägar för att bli en bra programmerare.

Envato Tuts+

Innan jag dyker in i listan över användbara resurser, vill jag nämna att Envato Tuts + har funnits i många år och har byggt upp en imponerande samling av högkvalitativa handledning på IOS-utveckling. Nära 200 tutorials på Tuts + är specifikt riktade mot iOS-utveckling, allt från nybörjare till avancerade ämnen.

Var hittar du hjälp?

Apples utvecklareforum

Om du är en registrerad iOS-utvecklare har du tillgång till Apple Developer Forum. Inte bara är Apple Developer Forums aktiva och fyllda med utvecklare som känner till sina saker, ramar och DTS (Developer Technical Support) ingenjörer underhåller och övervakar forumet, vilket ibland kan spara din dag - eller spara dig en dag.

Google till räddning ... eller är det Stack Overflow?

När du hittar dig själv med hjälp av Google för att hitta ett svar på en programmeringsfråga eller en lösning på ett problem du har, är chansen att Google kommer att peka på Stack Overflow. Det är rättvist att säga att Stack Overflow revolutionerade mjukvaruutveckling och utvecklaren. Stack Overflow är ett bra ställe att ställa frågor, men också att ge tillbaka till samhället genom att hjälpa andra. Oavsett vilket språk du arbetar med eller vilken plattform du utvecklar programvara för, är chansen att Stack Overflow har en levande community centrerad kring dina intressen.

GitHub

Under de senaste åren har social kodning blivit mycket populär och GitHub är verkligen en av drivkrafterna för denna trend. Eftersom du är ny i iOS-utveckling, kommer du förmodligen inte att kunna bidra till (iOS) open source-projekt ännu. Men inget hindrar dig från att utforska några öppna källprojekt och bläddra i källkoden för att se hur vissa saker kan göras. Om du vill påskynda ditt lärande genom att undersöka kod som skrivits av andra utvecklare, är det viktigt att välja ett projekt som är väl underhållet och under aktiv utveckling.

Böcker

C Programmering

En bra förståelse för C-språket är viktigt för alla kakaoutvecklare, men du kommer märka att du kan ta en lång väg genom att bara veta grunderna i C-språket. När tiden går, kommer du att stöta på bitar av kod som du inte förstår helt om du inte dyker djupare in i C-språket. Den slutgiltiga guiden till lärande C är boken av Brian Kernighan och Dennis Ritchie, C Programmeringsspråket. Som du kanske kommer ihåg från artikeln om lärande C var Dennis Ritchie en av skaparna av C-språket. Vilket bättre sätt att lära C från den person som hjälpte till att skapa språket? En annan stor bok för att lära C är Learn C på Mac av Dave Mark.

Objective-C

Även om Apple tillhandahåller en omfattande guide till Objective-C-programmeringsspråket (Objektorienterad Programmering med Objective-C), tycker jag inte att den är idealisk för personer som är nya i Objective-C och absolut inte för personer som är nya på C. En av de Bäst böcker om Objective-C är boken av Stephen Kochan, Programmering i Objective-C. Se till att hämta den senaste utgåvan, som också diskuterar Objective-C 2.0.

Också noterad, År 2010 skrev Dan Walker en populär serie på Tuts + om att lära sig Objective-C. Om du vill utöka din kunskap om Objective-C, uppmanar jag dig att ta en titt på Dan-serien.

Fler böcker

Apress och O'Reilly Media är två förläggare som är kända för att publicera högkvalitativa böcker om iOS utveckling och utveckling i allmänhet. Två utmärkta Apress-publikationer är Början iOS 7-utveckling och mer iOS 6-utveckling. Båda publikationerna uppdateras med varje ny version av IOS.

En av de första böckerna som någonsin skrivits om kakaoutveckling är kakaoprogrammering för Mac OS X. Den här boken är skriven och uppdaterad av Aaron Hillegass, grundaren av Big Nerd Ranch. Aaron är mycket känd inom kakaosamhället och många utvecklare har lärt sig kakaoproduktion genom sina böcker, inklusive mig själv.

videoklipp

WWDC

Apples världsomspännande utvecklarekonferens (WWDC) är årets höjdpunkt för många kakaoutvecklare. Varje presentation som ges på WWDC är inspelad och tillgänglig nästa dag till registrerade iOS och Mac-utvecklare. Samlingen av videor går tillbaka till WWDC 2010 så att du har gott om material att gå igenom.

iTunes U

Under de senaste åren har ett antal högskolor och universitet startat undervisning iOS-utveckling. Några av dessa kurser är tillgängliga via Apples iTunes U-program utan kostnad. Den mest kända och längsta köra kursen är CS193p vid Standford University. På Madison Area Technical College lär Brad Larson Advanced iPhone Development, som också omfattar några mer avancerade ämnen. En annan kurs på iPhone utveckling ges av Jan Borchers vid Aachen University.

Bloggar

Det ska inte överraska dig när jag säger att det finns hundratals om inte tusentals bloggar dedikerade till iOS-utveckling. Jag har listat några av mina favoritbloggar nedan, men det finns mycket mer för dig att upptäcka.

  • Jeff LaMarcheblogg är en av de längre löpande bloggarna om kakaoutveckling som jag känner till. Jeff har skrivit flera böcker om IOS-utveckling och vet verkligen hans saker.
  • Kakao med kärlek är en blogg underhållen av Matt Gallagher. Jag skulle inte kalla Matts inlägg lätt läsning på något sätt. De flesta artiklar som han skriver är fördjupade, fyllda med information och mycket välskrivna.
  • Kakao är min flickvän är en annan källa till stora, djupgående artiklar. Författarna av Kakao är min flickvän är Marcus Zarra, Matt Long, Fraser Hess och Saul Mora (Skapare av Magical Record).
  • Även om Mike Ashblogg är inte den vackraste bloggen på webben, den är fylld med bra innehåll. Hans fredags Q & A-artiklar i synnerhet är en glädje att läsa.
  • Bloggen till Ole Begemann ger fräscha och välskrivna artiklar om IOS-utveckling och relaterade ämnen.
  • NSHipster är en yngre blogg som underhålls av Mattt Thompson. Mattt arbetar för närvarande på Panic och är en av skaparna av AFNetworking. NSHipster's tagline läser "... en journal över de förbisedda bitarna i Objective-C och Cocoa ...", som sammanfattar innehållet på NSHipster mycket bra.

nyhetsbrev

Inte för länge sedan startade Dave Verwer iOS Dev Weekly, ett veckovis nyhetsbrev om iOS-utveckling. Om du vill få en noggrant curated lista över länkar relaterade till iOS-utveckling, kan jag starkt rekommendera Daves nyhetsbrev. Nämnde jag att det är gratis?

Vem du ska följa?

Twitter är ett utmärkt medium för att hålla dig uppdaterad om utvecklingen av iOS och OS X. Jag har sammanställt en kort lista över personer i twittersphere som du kanske vill följa.

  • Matt Gemmell
  • Aaron Hillegass
  • Steve Scott
  • Matt Gallagher
  • Michael Jurewitz
  • Dave Mark
  • Marco Arment
  • Wil Shipley
  • Fraser Speirs
  • Daniel Jalkut
  • Manton Reece
  • Mattt Thompson
  • Mike Lee
  • Craig Hockenberry

Slutligen kan du följa med mig på Twitter också. Tveka inte att pinga mig om du har en fråga eller om du bara vill säga hej.

Slutsats

Jag hoppas att du har haft denna serie på iOS-utveckling så mycket som jag har haft att sätta ihop. Om du har några frågor, tveka inte att lämna en kommentar eller pinga mig på Twitter. Förslag till framtida ämnen kan också lämnas i kommentarerna.