De laatste dagen ben ik druk bezig geweest de laatste hand te leggen aan Hijara 1.1. Dit is de mainstream versie van het Android spel uit m'n vorige blogpost. Mainstream in de zin dat deze versie bijvoorbeeld geen info kan weergeven over de performantie van de verschillende algoritmes maar er dan weer wel een stuk mooier uitziet en gebruiksvriendelijker is.
De vormgeving werd volledig aangepast, van koude, donkere naar warme kleuren. Het spel werd vormgegeven in de stijl van het midden-oosten, waar het Hijara bordspel zijn oorsprong kent.
Bij Hijara 1.0 werd rekening gehouden met verschillende schermresoluties maar niet met verschillende pixeldichtheden, waardoor de app wel werkte maar er niet zo mooi uit zag. Om dit op te lossen heb ik per afbeelding versies in verschillende groottes gemaakt. Op een scherm met een grotere pixeldichtheid wordt gebruik gemaakt van de grote versie, op een scherm met kleine pixeldichtheid van de kleine. Het resultaat is dat de afbeelding altijd even groot maar met meer of minder detail wordt weergegeven.
Momenteel heb ik een release candidate versie af en wordt de applicatie getest. De release in de Android Market zal dus niet meer lang op zich laten wachten.
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 :)