iPhone apps udviklet med Flash CS5
Et kraftspring direkte ind i apps-verdenen.
Mens debatten om Flash vil overleve HTML5 var på sit højeste, annoncerede Adobe i oktober 2009, at Flash CS5 ville kunne Output native iPhone apps.
En opløftende nyhed for flash udviklere, der dog senere blev skudt i sænk med Apples nye restriktioner. Det skulle dog vise sig kun at være et midlertidigt setback, da Apple i september 2010 igen løftede disse restriktioner, så det nu er muligt at udvikle apps med Flash.
Yes, herligt. Fremragende nyt!
At Flash-inkarnerede nu kan bruge sine færdigheder til at udvikle programmer til denne populære platform, er jo en gigantisk fordel. Der er med andre ord blevet åbnet for den store port til det mobile marked, hvor iPhone som bekendt er en stor spiller. Et marked der er eksploderet, efter den stadigt stigende udbredelse af smartphones. (læs mere i http://blog.dis-play.dk/2011/01/06/mobile-websites-og-apps-et-overblik ).
Da jeg i december sidste år endelig fik hænderne fri til at dykke ned i denne fagre nye verden, var det med en blanding af ivrigt gåpåmod og en smugle jysk skepsis i maven. For hvordan skulle det dog kunne passe at noget genereret med Flash (igennem Packager for iPhone), ville fungere på dette hidtil Flash-allergiske apparat?
Jeg vil i det følgende forsøge at tegne et samlet overblik over de foreløbige erfaringer jeg har gjort mig igennem research og eksperimentern på denne nye platform.
Opsætning af Certificat på windows maskineri
Før man kan få lov til at compile sit flash projekt til en ipa-fil (app-filen iTunes genkender), skal man oprette sig i Apples developer program og derigennem hente et certifikat der skal bruges i publishing-processen. Dette skulle være ligetil for mac-folk, men sidder man derimod på en pc, er processen dog knap så let. Jeg vil ikke gå i detaljer med det her, men i stedet henvise til en meget udførlig video, der hjalp mig igennem dette ellers belastende led: http://gotoandlearn.com/play.php?id=133.
Overaskende lige-til
Mine forventninger til iPhonens håndtering af AS3, movieclips, tweens etc. var som nævnt ikke så store fra starten. Efter de første to test-apps blev denne pessimisme dog hurtigt skiftet ud med glædelig overraskelse. Hvor jeg før havde troet jeg skulle til at begrænse min kode og tænke i primitive løsninger, har de compilede test-apps indtil videre forstået alt fra MouseEvents til TweenMaxs 3D rotation og tint tweens. MouseEvents bliver her automatisk omtolket til ’TouchEvents’ (en class jeg senere opdagede var indbygget i Flash CS5). Flash kan tilmed modtage trace/error-calls med remote debug, imens en test-app køre på telefonen. Så længe man husker at vælge denne tilstand inden man publicerer sin app. En essentiel feature til fremtidig app-udvikling, hvor Flash eget testmiljø ikke længere er tilstrækkeligt. Jeg vil dog stærkt anbefale at man skiller af med alle errors, inden man rykker app’en over på sin iPhone. Det tager sin tid at publicere og implementere, så der kan hurtigt gå meget spildtid med at finde errors fra telefonen.
Før man begynder sin jubel og bilder sig ind at alt er gold og grønne skove, bør man dog kaste et blik på de foreløbige begrænsninger for apps lavet i Flash:
De foreløbige begrænsninger:
- Kameraet kan ikke benyttes. Der kan gemmes billeder til kamerarullen, men det er endnu ikke muligt at hente billeder derfra.
- Internet adgang er ikke understøttet. Apps lavet i Flash er tvunget til at være total selvstyret. Det er ikke muligt at bruge nettet, så nyheds apps eller andet der er afhængig af real-time data kan desværre ikke laves med Flash.
- GPS er kun delvist understøttet. Helt præcis hvad for GPS-data der kan tilgås, har jeg ikke undersøgt.
- Kompas er ikke understøttet.
- Mikrofon er heller ikke understøttet.
- Eksterne SWFer kan ikke loades, hvis de indeholder ActionsScript. Det er dog stadigt muligt at bruge frame labels, så man er på den måde ikke helt afskåret fra at navigerer i eksterne SWFer.
iPhone er ikke nogen Desktop
Omend indlysende, skal det alligevel understreges at det er en telefon og ikke en desktop man laver apps til. Tingene kører derfor ikke lige så flydende på telefonen som i Flash testmiljø. Her fandt jeg god nytte i Device Central, der simulerer, hvordan en app vil køre på telefonen. Ridser man lidt i overfladen på dette program, finder man bl.a. en accelerometer-simulator og ikke mindst en Flash memory feature. Specielt sidstnævnte er et godt redskab til at opdage, hvad der belaster hukommelsen, og om/hvornår optimeringer egentlig tager effekt.
Når det kommer til optimering af AS3 til mobile apps, kan man komme langt ved at bruge GPUen til rendering og cache så meget grafik som muligt som bitmaps (cacheAsBitmap = true). Endnu bedre er det også at bruge cacheAsBitmapMatrix. Det gør, at CPUen ikke konstant skal genoptegne objektet ved ændring af dets x, y, xScale, yScale, rotateX, rotateY eller alpha egenskaber, hvilket giver en betydelig hurtigere animation.
Modsat, hvad man er vant til i Flash til computere, er vektor-grafik altså ikke det optimale til flash apps til iPhones, da beregningerne er krævende for den i forvejen sparsomme CPU-kraft.
Nu er det sjældent jeg selv bruger timeline animation længere, men benytter man sig af denne form for animation er det specielt værd at kigge på følgende tutorial af Christopher Caleb. Udover at komme med mange andre gode pointer ang. performance generelt, demonstrer han også hvordan man effektivt kan bruge et bitmap sheet for at øge performance.
Netop performance har jo længe været et varmt emne når det kommer til Flash. Jeg har dog ikke selv været langt nok inde i udviklingen af apps med andre teknologier, til at jeg reelt kan udtale mig om, hvordan Packager for iPhone klare sig i deres lys. Så det må vise sig når der med tiden kommer flere apps udviklet i Flash.
Konklusion
På grund af de omfattende begrænsninger, der er for flash apps på iPhone, egner Flash sig i øjeblikket kun til udviklingen af spil og andre stand-alone apps. Med tiden kunne man håbe at nye versioner af Packager for iPhone vil eliminere disse begrænsninger, så Flash-udviklere kan være med hele vejen.
Men på trods af, at Flash i øjeblikket er lettere handikappet mht apps, er der ingen grund til at holde sig tilbage med udviklingen. Det mobile-marked (og dermed udbredelsen af iPhone) vil blive ved med at stige og med mindre man har planer om at lære Objektiv-C, vil man som Flash udvikler gøre klogt i at få lært at bunde på denne nye platform, mens den endnu er ved at fæstne sig. Det er som beskrevet meget lige-til, og hvad kan være mere belønnende end at udvikle sit eget spil, med chance for at det bliver en succes og hentes af titusindvis af mennesker, som spillet Bubble ball lavet af en bare 14årige knægt fra Utah.

[...] This post was mentioned on Twitter by Brian Haahr-Nielsen, Nicky Christensen. Nicky Christensen said: DIS/PLAY Blog -> iPhone apps udviklet med Flash CS5 – http://bit.ly/gaImez [...]
Pingback by Tweets that mention DIS/PLAY » iPhone apps udviklet med Flash CS5 -- Topsy.com — 24. januar 2011 @ 09:17
we came across a cool site that you might enjoy. Take a look if you want…
please visit the sites we follow, including this one, as it represents our picks from the web…
Trackback by medical assistant jobs sacramento — 2. februar 2012 @ 19:36