torstai 21. toukokuuta 2015

Why making your apps accessible is just the right thing to do

ilkka3I’m Ilkka Pirttimaa, developer of an iOS app called BlindSquare. Uniquely it uses Open Street Map and Foursquare data to help people who are blind to navigate in new and familiar environments and provide them with a world of choices, otherwise veiled. I write this in the spirit of the intent of the Global Accessibility Awareness Day, to raise awareness across the globe of the benefits and know-how on making products accessible. This needs to be done; and is the right thing to do, it doesn’t need to be difficult.

For people who are blind or partially sighted, travelling independently has always been one of the challenges. While some have managed to become very confident travellers regardless, others, especially if they have lost sight only recently, need more time or assistance to learn how to navigate new environments. Although technology can never substitute Orientation & Mobility and cane travelling skills, the right app installed on your iPhone can help blind and partially sighted users who have mastered the necessary skills to be safer and more independent when out and about. Having been localized to 25 languages, it is now used by thousands of people in more than 130 countries.

I started developing BlindSquare by chance. When I read what Wikipedia had to say a few years ago about augmented reality, I wanted to prove that augmented reality should not only include visual, but also auditory perception. It seemed only logical to me that the traveler who is blind would benefit the most from that. I managed to find my first blind tester and when I saw how enthusiastic she was about the prototype of BlindSquare I had created and about its future potential. I decided to continue with the project. When I released BlindSquare 3 years ago, it did not yet include many of the important features available today. But still, I received very positive feedback and saw how it improved people’s quality of life. I received a message from someone who had used BlindSquare at a water park and had been able to find all of the attractions there using my app. BlindSquare users enjoy being able to explore their environment on their own and also to be able to help their sighted friends to locate places in unfamiliar areas. After all, the friends cannot look around corners, but thanks to GPS, BlindSquare can. Although BlindSquare is optimized for VoiceOver, it is perfectly usable for everyone. I have sighted customers who enjoy hearing popular Foursquare places announced to them while they are riding their bicycles.

My app is geared towards customers who are blind or partially sighted, but I think that every developer should consider if their product could be made accessible and whenever possible walk the extra mile. It is just like app localization, it increases your user base. Let us just take an example and assume that you develop an app that gives access to public transport schedules of different companies and in many cities around the world. Sighted users may have many apps they can choose from, but your app might be the only one that is VoiceOver accessible. Sighted users can also just read the schedule at the station, an option not available to blind or partially sighted users. While your app can be nice to have for many users, it can be a life-changer for people who are blind or partially sighted, as it may be the only means to access information independently. The same is true for many other apps that come to mind.

Examples:

  • If a parcel-tracking app is accessible, Blind users do no longer need help reading the note left by the postman when they return home, because they can just go and pick up their parcel from the neighbor whose name they read in the push message on their phone.
  • Accessible banking apps can help blind clients to monitor their accounts and make transfers without sighted help, enhancing their privacy and allowing them to be more independent.

The World Health Organization estimates that worldwide 285 million people are visually impaired, and 39 million of them are blind. 82% of the visually impaired are 50 years and older. Developing accessible apps is an important contribution to creating a society where everyone can live as long as possible independently and in dignity. The screen reader and the zoom feature integrated into each Apple product make it accessible to every visually impaired user. The iPhone gives users who are blind or partially sighted access to information that would not be available to them otherwise.

Apple provides excellent documentation about iOS’ accessibility features. To learn more about VoiceOver really quickly, configure your iOS-device so that VoiceOver turns on when you press the Home button three times, so you can switch it on and off quickly. If your language is supported by Siri, you can even tell her to turn VoiceOver on and off. Now you can start to learn how it works. If you want to make a game of it, you can play through the VoiceOver tutorial by LookTel. Once you know the basics of VoiceOver, look at your app and see if it works with VoiceOver.

Accessibility is not just an additional feature, but a best-practice. After all, web developers test for compatibility with different web browsers, too. When you start developing an app and use standard elements, accessibility labels and label images, it is most likely that your app will be accessible as iOS has built accessibility right in. However, as soon as you want to make it more appealing visually, you should know how to develop accessibly and make sure that your app’s facelift does not make it unusable for blind people.

Connect with your users and find out how they use your app. Ask them for examples of apps that work well for them, look at these apps and learn how and why they are accessible. AppleVis, a site run by blind and partially sighted iOS users, is an excellent place to get feedback and find eager beta testers.

My wish: I hope many developers will embrace accessibility. It will not just increase their user base, but it will make a difference in the quality of life of many people.

lauantai 6. joulukuuta 2014

Esteettömien sovellusten kehittäminen iOS-laitteisiin

Applen Tim Cook on sanonut: Kun mahdollistamme sen, että näkövammaiset voivat käyttää tuotteitamme, emme laske takaisinmaksuaikaa.
Tämä ideologia näkyy useissa Applen laitteissa: Olipa kyseessä sitten iPhone, iPad, iPod tai Apple-tietokone, myös näkövammainen voi sitä käyttää. Käytännössä tämä tarkoittaa sitä, että laitteiden käyttöjärjestelmässä on sisäänrakennettuna ruudunlukuohjelma, jonka avulla laitteen käyttö onnistuu näkemättä näyttöä. iPhone-puhelimessa esteettömyysajattelu on viety pitkälle. Esimerkiksi kamerasovellus osaa puhumalla kertoa, mistä kuvan kohdasta löytyy ihminen. Vastaavasti laitteen mukana tuleva vatupassisovellus osaa puhuen kertoa puhelimen asennon, jolloin myös sokea voi esim. laittaa taulun seinälle suoraan.

Sovelluskehittäjälle tämä tarkoittaa, että asiakaskunta kasvaa, kun varmistetaan sovelluksen toiminta myös ruudunlukijalla. Kokemuksesta voin sanoa, että sokeiden kansainvälinen yhteisö on tiivis ja tieto hyvistä esteettömistä sovelluksista leviää mm. AppleVis-palvelulla. Samasta kanavasta on mahdollista löytää myös testikäyttäjiä sovellukselle.

Vaikka näkövammaisten käyttäjien ryhmä voi vaikuttaa alkuun marginaaliselta, se ei sitä ole. Maailman Terveysjärjestö WHO raportoi, että maailman 285 miljoonasta näkövammaisesta 39 miljoonaa on sokeita.

Ruudunlukijan käyttäminen

Suosittelen kaikille sovelluskehittäjille ja testaajille VoiceOver-ruudunlukijan käytön opiskelemista. VoiceOverilla voi käyttää iOS- ja OSX-käyttöjärjestelmillä toimivia laitteita.

iOS-laitteissa VoiceOverin voi kytkeä tarpeen mukaan päälle ja pois, kun tekee seuraavan asetuksen: Asetukset / Yleiset / Käyttöapu / Käyttöapu-oikotie / VoiceOver. Tämän jälkeen VoiceOverin voi kytkeä päälle ja pois kolmoisnapauttamalla koti-näppäintä.

Kun VoiceOver on kytketty päälle, näytölle ilmestyy kursori, joka lukee näytöllä olevan elementin (esim. “Viestit”, “Kamera”, “Kalenteri” jne.). Seuraavan elementin voi valita pyyhkäisemällä sormella näytön vasemmasta laidasta oikeaan ja edellisen vastakkaissuuntaisella pyyhkäisyllä. Valittu elementti aktivoidaan kaksoisnapauttamalla näyttöä mistä tahansa kohdasta. Näin yksinkertaisesti voidaan jo soittaa puheluita, kirjoittaa tekstiviestejä, lukea sähköposteja jne. Samoin voidaan käynnistää Safari, jolla onnistuu verkkosivujen esteettömyystestaus.

iOS-sovelluksen esteettömyys

Olen kuullut tarinoita, joissa sovelluskehittäjä on saanut palautetta tekemästään pelistä, jossa näkövammainen loppukäyttäjä on juuttunut pelissä johonkin kohtaan esteettömyysongelman takia. Kehittäjä on ollut suuresti hämmästynyt ymmärrettyään, että hänen sovellusta voi ylipäänsä pelata näkemättä käyttöliittymää.

Tämä on mahdollista, sillä esteettömyystoiminnot on rakennettu Applen sovelluskehitysvälineiden ytimeen. Näin ollen sovelluksista tulee usein melko esteettömiä ilman lisätyötä. Tämän varmistamiseksi esteettömyys kannattaa asettaa sovellusvaatimukseksi ja opetella testaamaan sovelluksen käyttö VoiceOverilla. Tämä pätee myös verkkosivujen laatimiseen: Kokeilemalla sivustojen käyttöä iPadin Safari-selaimella VoiceOver-elein voi varmistua, että käytetyt html-koodaukset ja JavaScriptit toimivat myös ruudunlukijalla.


Mikäli sovelluksessa on nappeja ilman tekstiä, VoiceOver ei tiedä, mitä puhua. Tällöin sovelluksen toiminta ruudunlukijalla muuttuu hankalaksi ja vaatii loppukäyttäjää kokeilemaan ja opettelemaan ulkoa. Tätä varten XCoden Interface Builderistä löytyy jokaiselle käyttöliittymäkontrollille esteettömyystietoja (Accessibility). Niistä tärkein on “Label”, johon voidaan kirjoittaa kontrollin kuvaus, jonka ruudunlukija lukee, vaikka näytöllä näkyisi vain ikoni

Kuva 1: Asetukset-nappiin on asetettu ruudunlukijan lukema teksti



Tällä videolla demonstroin joitain tyypillisiä esteettömyysongelmia ja kerron myös, miten helposti ne tämän artikkelin vinkein voi korjata:

BlindSquaressa esteettömyys on viety loppuun asti

BlindSquare on puhuva lisätyn todellisuuden GPS-sovellus näkövammaisille. AloittaessaniBlindSquare-sovelluksen tekemisen vuoden 2012 alkupuolella en tuntenut yhtään sokeaa enkä myöskään tuntenut laitteen VoiceOver-mahdollisuuksia. Sovelluksen ensimmäinen versio valmistui kolmessa kuukaudessa ja jo kolmen viikon jälkeen sillä oli käyttäjiä kolmestakymmenestä maasta. Yhdessä loppukäyttäjäyhteisön kanssa olen oppinut, kuinka rakennetaan optimaalisesti toimiva esteettömyystoiminnallisuus.

Sovellus on lokalisoitu 23 kielelle, mikä normaalisti toisi ison haasteen käyttöohjeiden ylläpitämiseen ajan tasalla, varsinkin kun käyttöliittymään tulee uudistuksia lähes kuukausittain. Ratkaisuna tähän on VoiceOveriin liittyvä vinkkisysteemi (hints). Kullekin käyttöliittymäkontrollille voi asettaa vinkin (hint, kts. kuva 1), joka luetaan, jos VoiceOver-kursori jättää elementin päälle. Sovelluksessani vinkit lisätään dynaamisesti ajon aikana lokalisoituna ja niin, että niissä otetaan huomioon käyttökonteksti: Vinkki vaihtuu siis käyttötilanteen mukaan, joten se kertoo täsmälleen, mitä kyseinen nappi juuri nyt tekee. Käyttöohje on siis integroitu sovellusnäyttöihin; mikäli napin paikka vaihtuu, myös käyttöohjeen järjestys muuttuu automaattisesti.

Toinen erikoisuus liittyy sovelluksen ohjaamiseen silloin, kun laite on taskussa ja sovellus tausta-ajossa. Kun sokea kulkee kadulla valkoinen keppi tai opaskoiran valjaat kädessään, ei laitteen käyttö ruudunlukijalla olisi turvallista. BlindSquaressa automaattipuhetta voi ohjata laitetta ravistamalla. Siinä on myös innovatiivinen audiovalikko, jota ohjataan kuulokkeiden musiikkiohjaimella: Painamalla “Toista”, BlindSquare alkaa lukea valikkoa, jota voi selata “Eteen”- ja “Taakse”-napeilla. Kun haluttu toiminto tai alivalikko kuuluu kuulokkeesta, painetaan “Toista” uudestaan. Näin tärkeitä toimintoja voidaan ohjailla turvallisesti ilman laitteen esille ottamista.

BlindSquare toimii myös kuurosokeilla. Tämän mahdollistaa iOS-laitteiden tuki bluetooth-pistenäytöille. Pistenäytöllä voidaan lukea Braille-pistekirjoituksena kaikki se, mitä VoiceOver puhuu. BlindSquaressa on myös komentokäyttöliittymä, eli pistenäytön näppäimistöltä voidaan myös kirjoittaa komentoja tyyliin “lisää bussipysäkki” tai “navigoi koti”.


Aihesta lisää: Ronja Oja kirjoittaa blogissaan samasta aiheesta, mutta loppukäyttäjän näkövinkkelistä.

Tämä artikkeli on julkaistu Sytyke-lehdessä 4/2014

torstai 6. joulukuuta 2012

BlindSquare voittoon myös Apps4Finland -kisassa


Tämän vuoden Apps4Finland -kisaan osallistui 120 työtä, joista arvovaltainen 12 henkinen tuomaristo valitsi parhaat.

BlindSquare voitti pääsarjan:
"Sovellus mullistaa potentiaalisesti miljoonien näkövammaisten elämän ja onkin erinomainen esimerkki innovatiivisesta ja hyödyllisestä avoimen datan käytöstä. BlindSquaren mahdollisuudet menestyä kaupallisesti globaalilla tasolla vaikuttavat lupaavilta. Palvelu on käytössä jo yli 50 maassa."
Suomen paras ja Euroopan paras. Mistä tällaiset ideat syntyvät ja miten ne viedään maaliin asti, oikeaksi palveluksi?

Olen tehnyt softaa lähes 30 vuotta. Nelisen vuotta sitten päätin opiskella mobiilisovellusten tekemisen. Näin jo silloin, että sovellukset, jotka tuovat avoimen datan palveluita käyttäjän näköisinä hyötysovelluksina, on tulevaisuus.
Sen jälkeen mobiilisovelluskehitysurani on kulkenut kisasta kisaan. Ura alkoi HSL Mobiilikisalla, jossa Kyyti-sovellus voitti yleisösarjan. Palvelulla on nyt jo yli 40 000 käyttäjää.
Samana vuonna 2010 osallistuin sillon toista kertaa järjestettävään Apps4Finland-kisaan, jossa LiveInfoBoard voitti ideasarjassa.

Vuoden 2011 kisaan osallistuin 4 sovelluksella, joista Kierrätys tuli pääsarjan kakkoseksi ja YLE-hirsipuu voitti YLEn datan käytön erikoispalkinnon.

Vuonna 2012 BlindSquare voitti EU-tasoisen OpenCities App Challenge-kisan ja Apps4Finlandin pääsarjan.

Minulta kysyttiin palkintogaalassa vinkkejä, miten tämä on mahdollista. Peruslähtökohtana on keksijän luonne: Nähdä ympärillään ongelmia tai epätäydellisyyksiä, joihin on mahdollista löytää parannuksia. Näin syntyy ideoita, mutta ei innovaatioita.

Idean realisoiminen palveluksi vaatii kovaa työtä. Arvioin, että olen kirjoittanut elämäni aikana yli miljoona koodiriviä (näistä vain 25 000,  eli 2,5% BlindSquareen). Tekemällä oppii.

Mutta edes idea ja koodaustaidot eivät riitä. BlindSquaressa yhdistyy useita ideoita, jotka yhdessä luovat maagisen kokonaisuuden:
  1. Puhesynteesi puhelimessa tuotettuna 26 kielellä mahdollistaa globaalin palvelun
  2. Sosiaalisen median ja joukkoistamisen dynamiikan ymmärtämäinen ja soveltaminen "oikealla tavalla"
  3. Käyttäjälähtöinen suunnittelu ja palvelukonseptointi
  4. Lähes neljän vuoden kokemus iOS:sta, App Storesta ja Applen ekosysteemistä.
  5. Perheen tuki - ymmärryksenä joskus vähäiseen vapaa-aikaan, sekä perheyrittäjähenkisyytenä, jossa kaikki ovat mukana esim. videotuotannossa, promovalokuvauksessa tai oheistuotteiden ompelussa
  6. Vahvat yhteisöt, joista löytyy apua, kun pitää pystyttää webbisaitti, löytää koekäyttäjiä tai ratkaista eteen tullut haaste
  7. Aito osallistuminen loppukäyttäjäyhteisöihin. Kuuntele ja huomioi, kiitä, ansaitse luottamus. 
  8. Tekemällä välillä järjetön määrä työtä myös ilman liiketoimintasuunnitelmaa, vain huvin vuoksi ja ilman täsmällistä päämäärää. 
  9. GO BIG -ajattelu kaikessa. Unohdetaan tarvittaessa paikalliset tietolähteet ja käytetään palveluita, jotka mahdollistavat globaalin toiminnan
  10. Vuosien kokemus avoimen datan pöhinästä ja kuinka avointa dataa käytetään mobiilisovelluksissa
Apps4Finland gaalan moderaattorina toiminut Forum Viriumin Jarmo Eskelinen tiesi kertoa, että olemme näissä asioissa 3 vuotta muuta eurooppaa edellä. Koen asian juuri näin oltuani mukana viimeiset kolme vuotta. Kisan tunnettuus, sponsorien määrä, vaikuttavuus ja kilpailutöiden laatu on noussut vuosi vuodelta.

Seuraavat askelmerkit on siis syytä kohdistaa ensimmäistä kertaa järjestettävään Apps4Europe-kisaa kohden.

Hyvä Suomi!


torstai 13. syyskuuta 2012

Kuinka julkaista excel-datasetti koneluettavassa muodossa?

Jos sinulla on avointa dataa excelissä, sen julkaiseminen koneluettavassa muodossa on usein hankalaa, jos sinulla ei ole sopivaa webbipalvelua/tietokantaa olemassa. Tiedoston tallentaminen csv-muodossa tekee siitä helpommin koneluettavaa, mutta edelleen tiedosto pitää tallentaa webbipalvelimelle polkuun, joka pysyy takuuvarmasti aina samana.

Keksin jännän tavan tehdä taulukkomuotoisesta datasta koneluettavaa käyttämällä hyväksi Google Docs -palvelua.

Jos lähteenä on Excel-tiedosto, tee näin:
1) Siirry sivulle http://drive.google.com
2) Paina vasemmalla ylhäällä olevaa "Upload"-nappia
3) Valitse "Files" ja valitse levyltäsi haluttu excel-tiedosto
4) Paina "Start upload"
5) Avaa dokumentti ja valitse "File" / "Export to Google Spreadsheet"

Google Spreadsheetin julkaisu (esimerkki)
1) Tarkista dokumentin maa-asetukset, jotta desimaaliluvut ja päivämäärät tulevat oikein: "File" / "Spreadsheet settings"
2) Valitse "File" / "Publish to the web"
3) Paina "Start publishing"
4) Maalaa muodostettu webbilinkki ja ota leikepöydälle
5) Avaa uusi selainikkuna ja liitä webbilinkki
6) Muuta linkin lopussa oleva teksti "&output=html" muotoon "&output=csv" ja paina enter (esimerkki)

Nyt selaimesi lataa aineiston suoraan Googlen palvelimilta csv-muodossa! Ko. url viittaa tästälähin suoraan aineistoon. Voit halutessasi generoida linkille urlilyhennöksen esim. tinyurl tai bit.ly -palveluissa.

Jos esim. tekisit hirsipuupelin, voisi kysyttävistä sanoista tehdä Google Spreadsheetin, jota useampi ihminen voi editoida. Itse peli voisi hakea sanat näin julkaistusta csv-tiedostosta.

Yritin löytää Googlen käyttöehdoista pykäliä, onko näin tehdyille julkaisuille jotain rajoituksia esim. latausmäärien suhteen, mutta en löytänyt. Löydätkö sinä?







sunnuntai 10. kesäkuuta 2012

BlindSquare ja maailmanvalloitus

Pohdiskelin edellisen postauksen lopussa, mikä mahtaa olla kymmenes julkaistava sovellukseni, kun neljä oli työn alla. Tiesin kyllä jo silloin, mikä niistä on tärkein ja oli mukava saada BlindSquare valmiiksi.

Edellisessä Apps4Finland-kisassa hyvin pärjänneille Forum Virium järjesti Mobile AR devcampin, jossa sparrattiin lisätyn todellisuuden sovellusten ideoimiseen. En ehtinyt osallistua devcamppiin, mutta aloin kuitenkin ideoimaan, miten minä tekisin AR-softan (augmented reality = lisätty tai laajennetu todellisuus). Lähes kaikki AR-softat käyttävät videota, lähes kyllästykseen saakka. Koska olen tätä jo kokeillut, päätin aloittaa pohdinnan, kuinka audiota voisi käyttää lisäämään tietoa ympäristöstä.

Pieni sivupolku: Nykyään on muodikasta tehdä webbisivuja ns. Responsive Web Design -periaattein. Eräs tärkeä teema siinä on suunnitella webbisivu niin, että sen esitystapa skaalautuu automaattisesti eri kokoisille päätelaitteille. Tämä ajattelu helpottuu, kun alkaa miettimään sisältöjä "Mobile First"-ajattelulla: Mikä on kaikkein oleellisin sisältö, joka näytetään silloin, kun näyttötilaa on rajoitetusti käytössä. Myös Google on tehnyt palvelunsa jo pitkään näin.

Samaa teemaa mukaillen: Jos teen lähes pelkästään ääneen perustuvan sovelluksen, kuinka saan tiivistettyä viestiin vain oleellisen? Päästäkseni sisään tähän ajatukseen,  päätin valita kohderyhmäksi sokeat. En tuntenut entuudestaan yhtään näkövammaista,  joten aloin mielikuvittelemaan, miltä tuntuisi olla sokea. Aloin myös tutkimaan ympäristöäni seuraavalla ajatuksella: Mitä avointa dataa olisi saatavilla, minkä kertomisesta olisi hyötyä,  jos et näe.

Opiskelin aihetta lukemalla näkövammaisten kirjoittamia blogeja ja kuuntelemalla podcasteja. Etenkin tästä Ronjan blogista opin paljon. Kuinka vaikeaa onkaan tulla uudelle paikkakunnalle, löytää ratikkapysäkki, hypätä oikean ratikan kyytiin ja tietää, missä pitäisi jäädä pois. Nopeasti keksin, että yhdistämällä GPS-tieto, muutama avoimen datan lähde ja puhesynteesi, olisi mahdollista tehdä jotain mitä kukaan ei ole vielä keksinyt tai ainakaan toteuttanut.

Puhesynteesiin lisensioin teknologiaa Ruotsista: Acapelalla on 26 kieltä tukeva puhesynteesi,  joka tuottaa puheen suoraan iOS-laitteessa.  Jos haluat kuunnella, kuinka kaunista puhetta se tuottaa, voit kokeilla sitä täällä: http://www.acapela-group.com/text-to-speech-interactive-demo.html

Varsinaiseksi datalähteeksi valitsin kaksi avoimen rajapinnan tarjoavaa palvelua: FourSquare ja OpenStreetMap (OSM).  FourSquaresta haen lähistön paikat, niiden kategoriat sekä tiedot paikan suosiosta. Näillä tiedoilla saan kerrottua mm. mikä on halutulla säteellä suosituin kahvila. Sovellus myös kertoo etäisyyden ja suuntiman paikkoihin. Haluttaessa paikka voidaan ottaa seurantaan, jolloin BlindSquare opastaa perille.

Koodattuani sovellusta pari kuukautta "sokkona" vain blogeista opittuun perustuen, lähdin etsimään koekäyttäjiä. Ensimmäisenä aloittikin Ronja (kts. aiempi blogilinkki). Kun näin hänen hymynsä  hänen kuullessaan ensi kertaa BlindSquaren tarinointia, tiesin, että tästä tulee hyvä :-)

Esittelin sovelluksen alfa-versiota myös Näkövammaisten keskusliitossa, josta sain myös positiivisen vastaanoton ja lisää testikäyttäjiä.

Löysin myös maailmalta testikäyttäjiä niin, että lopulta n. 10 henkilöä Suomesta, USA:sta ja Australiasta käytti sovellusta päivittäin, kertoen haasteista ja onnistumisista.

Tein myös käyttäjätutkimusta Ronjan kanssa: Olin kaupungilla sokeaoppaana, Ronjan käyttäessä BlindSquarea ja suorittaen erilaisia tehtäviä. Ronjalla oli iPad repussa, bone conduction kuulokkeet päässä, bluetooth-ohjain repun toisessa hihnassa ja GoPro-videokamera toisessa (harmi, ettei tästä ole valokuvaa :-).  Kun ajoimme ratikalla kohden Kruunuhakaa, saimme ihmetteleviä katseita, kun sokea kertoi minulle mitä ympärillä "näkyy". Ronja näki myös asioita, joita me muut emme nähneet,  koska säde oli säädetty vähän laajemmalle kuin mitä lähistön talot meiltä muilta peitti.

Käyttäjätestien ja saatujen palautteiden pohjalta BlindSquare oppi uusia asioita: Jotta voi muodostaa kartan ympäristöstään, pitää tietää tiet ja risteykset. Tätä tarkoitusta varten otin käyttöön OpenStreetMapin. Jos käyttäjä kulkee jalan, luetaan silloin tällöin lähimpiä risteyksiä tyyliin "Lähin risteys Aleksanterinkatu ja Keskuskatu, 30 metriä suunnassa kello 2". Hypättäessä bussiin sovellus vaihtaa risteysautomatiikan moodiin, jossa haetaan lähistön risteyksiä, mutta luetaan se vasta kun bussi kääntyy. Tämä on ensimmäinen apu aiemmin maintsemaani ongelmaan, mistä voi tietää, milloin pitäisi jäädä kyydistä pois.

Sovellus julkaistiin toukokuun lopulla ja sen suosio yllätti minut. About Foursquare -palvelu kirjoitti pienen jutun, minkä jälkeen Twitter alkoi lämpenemään. Sain sen jälkeen seuraavan twiitin: "@ilkkapirttimaa Hello. Are you a BlindSquare dev? @Mashable would love to chat with you about the app. Email joann ät mashable.com Thanks!!"

Tämän saatuani tuli kiire. Onneksi Ronja lupautui kaiken muun lisäksi myös malliksi. Kävimme ottamassa muutaman valokuvan käyttötilanteesta ja sovin Mashablen kanssa  Skype-haastattelusta.

Pari päivää tästä Mashable julkaisi tämän artikkelin: http://mashable.com/2012/06/01/blindsquare-app/

Artikkelin julkaisun jälkeen Twitter lämpeni toden teolla. Minun mittausvälineet lakkasivat toimimasta 100k twiitin jälkeen. Olen löytänyt artikkelin pohjalta tehtyjä käännöksiä mm. seuraavilla kielillä: Venäjä, saksa, italia, thai, japani, hollanti ranska, indonesia, portugali...

Keskittyminen tiukasti valittuun kohderyhmään oli hyvä ratkaisu. Vain muutama viikko App Storessa ja sovellus on löytänyt tyytyväisiä käyttäjiä jo maailman jokaiselta mantereelta!

Pitkä postaus, mutta mukaan mahtuu vielä muutama erikoiskiitos: Kiitos Mirva, Ronja, Heikki, Iiro, Stefan, Johanna, Jaana,  David, Austin, Mike, Elena, Giovanni, Viljami, Sari, Erkka, Toni ja Jyrki!

Kuvassa: Vasemmalla minä, oikealla Ronja. Kummallakin on päässään Bone Conduction -kuulokkeet, Ronjalla on kepissä bluetooth-ohjain, jolla ohjataan taskussa olevaa iPhonea tai repussa olevaa iPadia. Kuvan otti Viljami Pirttimaa.

Sovellus löytyy AppStoresta ja kyllä sitä saa näkevätkin käyttää!

lauantai 21. huhtikuuta 2012

3 vuotta iOS-devaajana

Noin kolme vuotta sitten päätin opiskella, kuinka kehitetään sovelluksia iPhonelle. En tuntenut ketään muuta iOS-kehittäjää, joten paras apu opiskelussa oli Google, muutama kirja ja “iTunes U”:sta löytyvä Standfordin yliopiston iOS-kurssivideo “iPhone Application Programming”. Kirjoista parhaaksi on osoittautunut Erica Sadunin teos nimeltä The iPhone Developer’s Cookbook. Kirjan vanhan painoksen esimerkkikoodit löytyvät GitHubista.

Alussa vaikeinta oli ymmärtää Objective-C:n ideologia. Kirjoittelin muistiota alkuvaikeuksista tänne. Toisaalta aloittaessani Applella oli vielä kehitystyökalut varsin levällään: Silloin XCode ei sisältänyt sisäänrakennettua käyttöliittymäeditoria (Interface Builder), versiohallintaa saatikka palikkaa, jolla sovellukset lähetetään App Storeen. Nyt kehitysympäristössä on kaikki tarvittava integroituna nättiin pakettiin. Jopa yksikkötestaus ja sovellusten instrumentointi tarkempia analysointeja varten löytyy yhdestä työkalusta.

Matkan varrella olemme saaneet myös useita uusia laitteita: iPadit ja muutama sukupolvi iPhoneja. Myös iOS on kehittynyt hurjasti. On mukavaa, kuinka helpoksi koodarille on tehty kaikkien laitemallien tukeminen. Käytännössä mikään sovellukseni ei ole mennyt rikki, kun on tullut uusia laitteita tai uusia iOS-versioita. Kiitos Apple, että arvostat koodareita ja pidät homman läjässä.

Kuten linkkaamastani päiväkirjasta voi päätellä, alku oli hankalaa. Ensimmäisen sovelluksen (Trendy Hangman) valmistuminen App Storeen kesti 8 kuukautta. Sen jälkeen sovelluksia on syntynyt nopeammin, App Storessa niitä on jo 9.

TrendyHangman oli ensimmäinen sovellukseni. Päätin tehdä hirsipuun, johon sanat haetaan netin erilaisista trendipalvelimista. Arvattava sana on sellainen, joka trendaa juuri twitterissä tai on suosittu hakusana Googlessa. Arvailun jälkeen pääset lukemaan netistä, miksi sanan on suosittu juuri nyt. Tähän sovellukseen tyttäreni (silloin 11-V) piirsi kuvituksen, poikani (14-V) mallinsi nappulat ja tuttava sävelsi musiikit.

Toinen sovellukseni Kyyti valmistui jo alle kahden kuukauden iltapuhteina. Osallistuin sillä HSL:n mobiilikisaan, jossa se voitti yleisöäänestyksen. Sillä on nyt jo yli 30000 käyttäjää. Uusi versio on tekeillä, jossa on mukana mm. livejunat ja mahdollisesti lisätyn todellisuuden kameranäyttö.

Apps4Finland 2011 -kisaan osallistuin neljällä sovelluksella. Niistä Kierrätys tuli sovellussarjan kakkoseksi ja YLE Hirsipuu voitti YLE:n erikoispalkinnon.  Näistä jälkimmäinen käyttää TrendyHangmaniin tehtyä pelimoottoria. YLE:stä sanojen haun toteutin livenä verkossa, kirjoitin tästä code casting-konseptista aiemmin.

Ehkäpä hienoimmat sovellukseni tein omista tarpeista lähtien. Koska en käytä itse viikkonumeroita, koin hankalana, kun joku kertoi asian tapahtuvan sillä ja sillä viikolla. Viikko-sovellus päivittää viikkonumeroa iPhonen ja iPadin kotisivulla ja näyttää lisäksi pyhät ja liputuspäivät.  Huomasin, että monikaan iPhonen käyttäjä ei osaa järjestellä sovellusikoneita, joten sisällytin sovellukseen myös opetusvideon.

Viimeisin sovellus Parkkikiekko hälyttää, kun parkkiaika on loppumassa ja opastaa takaisin autolle. Tämä oli myös ensimmäinen sovellus, jossa opettelin lokalisoinnin. Samainen sovellus tunnistaa puhelimen kielen ja toimii suomeksi, englanniksi, ruotsiksi tai saksaksi. Ruotsin App Storesta sen löytää nimellä P-skiva.

Huh! Paljon on tullut siis opittua 3 vuodessa. Nyt työn alla on 4 sovellusta, mikähän niistä valmistuu seuraavaksi :-)

torstai 10. marraskuuta 2011

iPhone ja iPadin yrityskäyttö

App Storesta löytyy jo yli 450 000 sovellusta. Suuri osa näistä ovat kuluttajasovelluksia, mutta toimiiko iPhone tai iPad yrityskäytössä?
Helpoimmin yrityskäyttö onnistuu, jos käyttää jo entuudestaan pilvipalveluita: Jos sähköpostit ja kalenterit on Gmailissa, puhelin toimii oivana päätelaitteena tähän tietoon.

Toinen välimalli kevytintegraatiolle on tehdä iPadissa/iPhonessa Evernote-muistiinpanoja, jolloin evernoten tiedot ovat luettavissa työkoneella Evernoten www-palvelusta. Suosittelen tällöin Evernote Premiumia, jolloin mukaan tulee korotettu tietoturvataso ja mm. OCR-tekstintunnistus/tekstihaku valokuvatuista käyntikorteista jne.

Varsinaiseen oikeaan yrityskäyttöön iOS-laitteista löytyy seuraavia ominaisuuksia:
  • Mahdollisuus yritys-VPN:n käyttöön (mm. Cisco ja Juniper) 
  • Laitteistotason muistikryptaus (AES-256) ja avaimen etäpoisto 
  • Alfanumeerinen lukituskoodi ja muistikryptauksen avaimen poisto liian monen väärän arvauksen jälkeen 
  • Natiivi Exchange-sähköpostituki 
  • Keskitetty laitehallinta 
  • Yrityksen WLAN-verkkojen tuki (WPA2 Enterprise) 
  • Yritysasetusten asennus yhden XML-tiedoston avulla 
  • Yrityksen omien sovellusten jakelu laitteisiin sisäverkon WIFIn yli 
Yrityskäyttöä ajatellen hankalaa on se, että jos ja kun laitteeseen pitää ostaa lisäsovelluksia (esim. Citrix client), tarvitaan Apple ID ja luottokortti. Mikäli yritys ei halua antaa omia luottokorttejaan tähän tarkoitukseen, yksi vaihtoehto on se, että käyttäjät käyttävät omia luottokorttejaan ja yritys ostaa iTunes lahjakortin, jonka arvo riittää tarvittavien sovellusten hankintaan. Tämä on kyllä vähän ankea viritys - Toivotaan, että Apple esittelisi mallin, jossa laitteessa voisi olla esim. kaksi eri Apple ID-tiliä ja yrityksellä mahdollisuus tehdä oma valikoima sovelluksista, joita firman tilillä voi ladata.