Category Archives: Kehitysympäristö

OUYA, Android-konsoli

Kesälomalta paluu sorvin ääreen voi olla raskasta tai hauskaa… Kesälomalla hankittujen lelujen kanssa siitä onneksi saa hauskaa.

OUYA on Kickstarter-rahoituksen avulla luotu Android 4.1 -konsoli, jossa pyörivät kaikki normaalit Android-applikaatiot ilman suurempaa vaivaa. Konsoliin saa helposti ladattua SDK:n, jonka avulla ohjainta voi käyttää applikaatioissaan, mutta hiirellä ja näppäimistölläkin voi konsolia suoraan käyttää.

OUYA ei ole kovin tehokas konsoli eikä pelitarjonta ole vielä kovin laaja, tätä artikkelia kirjoitettaessa vain 384 peliä, mutta 99$ hintansa puolesta se on hyvä hankinta arcade pelien pelaamiseen olohuoneen sohvalla kavereiden kanssa.

Yrityksille OUYA tarjoaa halvan ja helpon ratkaisun tarjota interaktiivista sisältöä asiakasnäyttöihin. Valmiin applikaation kääntäminen ja asentaminen OUYA:lle on hyvin helppoa. Kehittäminen OUYA-konsolille ei ole yhtään sen vaikeampaa kuin mille tahansa muulle Android-laitteelle. Toki pieniä muutoksia joudutaan tekemään käyttöliittymään, jotta normaalisti kosketusnäytölle tarkoitettua applikaatiota voi käyttää peliohjaimella tai hiirellä. Kosketusnäytön korvaaminen hiirellä tai muulla ohjaimella johtaa helposti hyvin heikkoon käyttökokemukseen.

 

Asentaaksesi minkä tahansa applikaation OUYA:lle pitää sinun voida ladata applikaation .apk-tiedosto Internetistä. Mene OUYA:n kotinäkymän MAKE-valikkoon ja sisäänrakennetulla Internet-selaimella lataa APK-tiedosto. Tämän jälkeen palaa päävalikkoon, mene MANAGE-valikkoon, valitse SYSTEM ja siellä valitse ADVANCED. Tämä on jokaiselle Android-käyttäjälle tuttu asetukset-valikko Androidissa. Mene listassa alaspäin ja valitse Storage, jonka sisällä valitse Download. Täältä löydät juuri lataamasi APK-paketin ja asentaminen onnistuu ohjaimen O-napilla. Tämän jälkeen applikaatio löytyy samasta MAKE-valikosta kuin OUYA:n Internet-selain.

Samaan MAKE-valikkoon tulevat myös applikaatiot, jotka itse kehität ja asennat tietokoneen ADB:n avulla microUSB:n kautta.

Kehittäminen OUYA:lla

Kaikki OUYA-konsolit toimivat applikaatioiden kehittämiseen ilman maksuja tai muutoksia konsoliin. Jotta saat OUYA:n toimimaan normaalissa Android-kehitysympäristössäsi Macilla sinun täytyy vain lisätä kolmannen osapuolen USB Hex ID (0x2836) adb_usb.ini -tiedostoon .android-hakemistossa ja käynnistää ADB uudelleen. Tarkemmat ohjeet myös Windows-koneille on katsottavissa videona OUYA developers -sivustolta. Tämän jälkeen OUYA-konsolisi näkyy Eclipsessä ja ADB:ssä samalla tavalla kuin mikä tahansa muu Android-laite.

Seuraavaksi lataa OUYA Development kit (ODK) osoitteesta https://devs.ouya.tv/developers/odk, kopioi libs\-hakemistosta ouya-sdk.jar ja lisää se omaan Android-projektiisi. Tämän jälkeen ohjaimen komennot saa kiinni oman Activity -luokkasi onKeyDown() ja onGenericMotionEvent() -metodeista.

Tein tätä artikkelia varten yksinkertaisen applikaation, joka käyttää ODK:ta siirtelemään ImageView:tä FrameLayoutin sisällä.

Ota ohjain käyttöön Activity-luokan onCreate()-metodissa:

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	OuyaController.init(this);
}

Tunnista ohjaimen komennot:

@Override
public boolean onKeyDown(final int keyCode, KeyEvent event) {
	switch (keyCode) {
		case OuyaController.BUTTON_O:
			Log.d(TAG, "OUYA button O");
			break;
		case OuyaController.BUTTON_U:
			Log.d(TAG, "OUYA button U");
			break;
		case OuyaController.BUTTON_Y:
			Log.d(TAG, "OUYA button Y");
			break;
		case OuyaController.BUTTON_A:
			Log.d(TAG, "OUYA button A");
			break;
	}
	return true;
}
@Override
public boolean onGenericMotionEvent(final MotionEvent event) {
// Joystick
	if ((event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
		float LS_X = event.getAxisValue(OuyaController.AXIS_LS_X);
		float LS_Y = event.getAxisValue(OuyaController.AXIS_LS_Y);
	}
	return true;
}

Tämän jälkeen voit tehdä ohjaimen antamilla komennoilla mitä itse haluat.
Koko koodin ja Eclipse projektin saat ladattua Githubista:
https://github.com/Androidkehitys/OUYA

Onnea pelikehitykseen! Palataan leikkimään telkkujen kanssa, kun Cromecast saapuu postissa.

XCoden työkalut: koodin staattinen analyysi

XCode on tarjonnut versiosta 3.2 lähtien hyödyllisen Analyze-toiminnon, joka analysoi koodia ja näyttää käyttäjällesen löytämät ongelmakohdat koodissa. Kun tyypillinen kääntäjä varoittaa käyttäjiä antamalla virheitä esimerkiksi käyttämättömille muuttujille, analyysitoiminto menee paljon pitemmälle, ja voi varoittaa sellaisestakin muuttujasta johon on asetettu ehkä jopa useita kertoja arvoa, mutta jota ei käytetä missään. Toimintoon pääsee käsiksi valikon “Product -> Analyze” kautta (XCode 4.x).

XCoden staattisen analyysin työkalu perustuu Clang-nimiseen työkaluun (http://clang.llvm.org/), ja jonka analysaattori on sittemmin liitetty XCodeen vakio-ominaisuutena (alkaen versiosta 3.2). Tässä tärkeimpiä ja yleisimpiä ongelmia joita tämä työkalu löytää:

1) Muistivuotodot

Analysaattori näyttää potentiaaliset muistivuodot applikaatiossa alla olevassa kuvassa esitetyllä tavalla. Tässä tilanteessa facebook-olio vuotaa, koska sitä ei releasata muualla ohjelmassa.

2) Alustamattomat muuttujat

Potentiaalisesti alustamattomien muuttujien käyttö voi johtaa isompiinkin bugeihin. Kuvan tilanteessa ‘val’-muuttujaa ei alusteta, kun test saa arvokseen 9. Vaikka koodi olisikin suunniteltu niin, että ‘test’ ei voi saada arvoa 9, niin tällainen koodi on silti virhealtista kun koodia ruvetaan muuttamaan tulevaisuudessa.

3) Metodin palauttama alustamaton arvo

Kuvassa metodi palauttaa ‘ar’-muuttujan, joka on taulu. Taulua ei kuitenkaan alusteta, sillä jos muuttujan ‘test’ arvo on 10, ‘ar’ ei ole koskaan alustettu.

Näiden kolmen lisäksi analyze antaa muitakin hyödyllisiä varoituksia. Jo pelkästään korjaamalla analyzen palauttamat varoitukset säästyy monelta potentiaaliselta bugilta ja muistivuodolta, joten toimintoa kannattaa käyttää aika ajoin. Analyzen saa myös automaattisesti käyntiin buildin yhteydessä – klikkaa projektin juurikansiota ja Build Optionsin alla vaihda kohta ‘Run Static Analyzer’ kohtaan yes.

Lisätietoa löytyy Applen kirjoittamasta artikkelista.

iOS 4.3, Xcode 4 ja iPad 2.

Apple on julkaissut kasan uusia tuotteita ja työkaluja sovelluskehittäjien iloksi.

iOS-sovelluskehittäjille karkkia.

iOS 4.3

iOS-käyttöjärjestelmän 4.3 versio tuli iTunesin kautta ladattavaksi tänään. Päivityksen luvataan nostavan Safarin suorituskykyä ja se tuo myös Oma yhteyspiste-ominaisuus iPhone 4:lle. Oma yhteyspiste-ominaisuudella voit jakaa iPhone 4:sen 3g-yhteyden muille laitteille langattomasti. Ominaisuus toimii vain, jos operaattori on sen sallinut, eli Suomessa ainakin Elisan ja Soneran liittymillä.

Päivitys on saatavissa seuraaville laitteille: iPhone 3GS, iPhone 4, iPod touch 3 gen, iPod touch 4 gen, iPad ja iPad 2.

Lue lisää Apple:n sivuilta : iOS 4.3 -ohjelmistopäivitys

XCode 4

iOS-sovelluskehittäjien työkalu XCode 4 on saannut pitkään odotetun kasvojenkohotuksen ja tukun kaivattuja parannuksia. XCode 4:sta kirjoitamme tulevaisuudessa varmaan lisää, kunhan pääsemme tekemään sillä enemmän töitä.

Lue lisää XCode:sta : What’s new in Xcode 4

iPad 2

Appel julkisti iPad 2 – tablettinsa viime viikolla ja julkaisee sen huomenna Yhdysvalloissa. Suomessa iPad 2 tulee kauppoihin 25 maaliskuuta, noin neljä kuukautta iPad 1:sen jälkeen. Tämä luo sovelluskehittäjille Suomessa erikoisen tilanteen, kun voidaan olettaa, että iPad 2 saa huomattavasti isomman markkinaosuuden kuin muualla maailmassa.

Palaan iPad 2:seen tarkemmin, kunhan saan sellaisen hyppysiini. Sillä aikaa voit lukea mitä mieltä Engadget on Applen uutukaisesta.

Lue lisää Applen-sivuilta : iPad 2