Deze week heb een project voor m'n informatica opleiding aan de universiteit afgerond. De bedoeling was een relatief grote applicatie te ontwikkelen waarbij een belangrijk deel van de moeilijkheid uit het uitwerken van "complexe" algoritmes bestaat. Uit de lijst van voorstellen heb ik het Hijara bordspel gekozen en het als extra voor Android geïmplementeerd. Als alles goed gaat verschijnt de applicatie deze zomer in de Android Market.
Hijara is een tactisch bordspel voor twee spelers. Spelers zetten om de beurt een steen op één van de 16 vakjes van het spelbord en proberen zo rijen te vormen. Maar dit is de twist: elk vakje bestaat uit vier plaatsen, waardoor het spel er een dimensie bij krijgt. De volledige spelregels zijn te vinden op Wikipedia.
De uitdaging
Het project bestond uit drie grote onderdelen: de implementatie van de spelregels, het realiseren van een intelligente computerspeler en de applicatie implementeren voor Android. Android is een besturingssysteem voor mobiele toestellen.
Het resultaat
Een uitdaging van formaat
Het spel beschikt over een computerspeler in vier moeilijkheidsgraden. Van eenvoudig te verslaan tot uitermate slim.
Snel even spelen
De applicatie ondersteund Android multitasking, waardoor je snel even kan spelen, de applicatie verlaten en later naadloos het spel hervatten. Doordat je spel automatisch wordt opgeslagen speel je even later - of zelfs weken later - meteen weer verder.
Het is leuker met twee
Nadat je geoefend hebt tegen de computer kan je je vrienden verslaan in multiplayer modus. Of omgekeerd.
Brede hardware ondersteuning
De applicatie biedt ondersteuning voor veel verschillende toestelen. Verschillende schermformaten vormen geen probleem en ook de hardware knoppen van je toestel worden ondersteund.
Vandaag heb ik de eerste beta versie van m'n iPhone app verzonden naar enkele testers. Een onafgewerkte app kan je (uiteraard) niet via de App Store verspreiden dus heb ik dit gedaan via de Ad Hoc distributie methode. Dit houdt in dat ik naar een tester een .app bestand stuur dat de applicatie zelf is en een .mobileprovisioning bestand dat aan één of meerdere toestellen toestemming geeft om de applicatie te installeren.
Ik had op voorhand al een vermoeden dat dit miserie ging worden en dit bleek deels terecht te zijn. Het was niet zo erg als ik had verwacht maar toch ben ik twee problemen tegengekomen.
iTunes artwork
Opdat het icoon van je app in iTunes zichtbaar zou zijn moet je in Xcode bij de resources van je app het logo in groot formaat (512 op 512 pixels) toevoegen. Dit bestand moet "iTunesArtwork" heten, zonder extensie dus. Niet moeilijk, maar dit staat niet vermeld in de handleiding.
Handtekening van het programma ongeldig
Voor ik de app opstuurde naar alle testers heb ik de Ad Hoc distributie met één persoon getest. Die kreeg deze foutmelding bij het synchroniseren: "Het programma rush hour is niet op de ipod touch geünstalleerd, omdat de handtekening van het programma niet geldig is". Dat was vreemd omdat ik wel alle stappen uit de handleiding van Apple's developer portaal had gevolgd en ad hoc distributie bij een eerdere alpha versie wel had gewerkt. Uiteindelijk bleek ik inderdaad niets mis gedaan te hebben maar was Xcode verward door het werken met allerlei verschillende provisioning profiles. De oplossing staat stap voor stap uitgelegd in deze blogpost.
Na deze twee problemen opgelost te hebben is de beta test dus begonnen en zal ik hopelijk binnenkort veel informatieve feedback krijgen :)
Onlangs kwam ik dit artikel over iPad app design tegen.
Een aanrader voor wie iPad plannen heeft, of wie gewoon interesse heeft in de design kant van software ontwikkeling.
Dit artikel toont mooi aan dat software ontwikkelen meer is dan programmeren, meer dan performante algoritmes, meer dan alleen maar techniek. Geweldige software vereist ook geweldig design. Maar het één kan niet zonder het ander.