2009-04-16

Freedom!

Vi har haft fria aktiviteter på jobbet i dagarna två. Jag hade tänkt lägga dem på att lära mig lite om shaders, men ändrade mig till att titta på Core Animation istället. Core Animation är Apples API:er för compositing och animationer i UI:t.

Jag började med att titta lite på att animera UI-komponenter, men det var ganska trist, så jag gav mig på lågnivå-API:erna istället, så jag slängde ihop ett fönster med en custom view i Interface Builder. Sen började jag lägga in lite lager med olika innehåll: text, genererad grafik och film. Jag avslutade med att testa lite olika blend modes. Om du har en Mac och är intresserad så finns min fina demo-app att ladda ner här. Tryck på space för att få nya saker att hända.



Så vad har jag lärt mig? Core Animation är ganska smidigt att jobba med, även om det för en nybörjare är vissa saker som är smått ointuitiva. T.ex. så fattar jag inte riktigt det här med att inställningen av storlek på lager är så tillkrånglad. Det krävs ganska mycket kod för att lägga till animationer, men den är enkel att wrappa i hjälpfunktioner. Det känns ganska trevligt att man kan göra allt genom att helt enkelt skriva Objective C-kod, snarare än att behöva slajda runt i någon editor eller skriva saker i något domänspecifikt språk. Nu är jag inte den som anser att det är en brist att man skriver det mesta av sitt UI i XML i Cascades, men som nybörjare känns det ganska tryggt att kunna sköta rubbet i Objective C.

Det finns dock någon typ av grafisk editor, som heter Quartz Composer, som jag inte orkade titta på speciellt mycket. När det gäller sådana grejer så känner jag att inlärningströskeln är ganska hög för min del.

En dålig sak jag upptäckte var att gdb-integrationen i Xcode, och delvis gdb själv, är sämre än vad jag tidigare trott. Jag har i och för sig inte läsa på så mycket om det, men det är nu ganska uppenbart för mig att debuggern är ganska mycket sämre än den i Visual Studio.

Allt som allt är det dock ännu mer win för Apple.

7 kommentarer:

Anonym sa...

minsann, minsann.. (ang. revideringen av första intrycket av gdb)

men fan.. interface builder. jag är notoriskt dålig på att läsa dokumentation, men .. vad fan hela grejen kändes som ett grafiskt krypto.

är jag trög?

puterman sa...

Efter att ha plöjt dokumentationen om debuggern så är jag lite mer positiv igen, det finns en del riktigt coola features, men samtidigt så känns den grundläggande funktionaliteten rätt så skakig.

Läs någon sådan där get started-tutorial om hur man kommer igång med Xcode så känns nog buildern som mindre av ett sällskapsspel. Men det är bedrägligt med sådana där program: de lovar runt vad gäller användarvänlighet, men nybörjarvänligheten är ytlig.

Olof sa...

Anonym: Interface Builder tar sin tid att lära sig. Jag tyckte också att det var något av ett grafiskt krypto i början, men man lär sig efter ett tag.

Ett tips är att du lär dig hur systemet med nib-inläsning (eller xib-filer nuförtiden) fungerar. Det finns ganska bra beskrivningar av det, bl.a här:

Nib files

Olof sa...

Puterman: Har det tangenter? Eller mer konkret, vad ska man göra? Jag testade att förstora/förminska fönstret, höja volymen etc, men inget hände.

Olof sa...

Att jag är dum i huvudet
Ville bara säga att jag är dum i huvudet

Har tryckt på space nu och det händer saker

WV: vulads

Erik sa...

Jag gillar funktiionen att man kan minimera fönstret så att det blir så litet att det blir svårt att förstora det igen. Total frihet för användaren, är min paroll.

Olof sa...

Erik: Men om Gud kan skapa ett fönster så litet att han inte kan förstora det igen, då är han väl inte allsmäktig? Tillämpa nu detta tankeexperiment på användaren.