Tag Archive | ios

Watson: eindelijk écht naar de bioscoop als blinde of slechtziende

We houden ervan om het internet toegankelijk te maken voor iedereen. Soundfocus houdt ervan om films toegankelijk te maken voor iedereen. Reden genoeg om de handen ineen te slaan, met als resultaat: Watson, een app waarmee blinden en slechtzienden volop kunnen genieten van alle Nederlandse films. Zowel in de bioscoop als op televisie.

Slecht- of helemaal niet zien in de bioscoop

Dat is heel vervelend, want tot nu is de bioscoop weinig toegankelijk voor dit publiek. Probeer de Titanic maar eens te volgen met je ogen dicht. Natuurlijk zeggen de stemmen wel wat, maar die achtergrondgeluiden kunnen net zo goed van een vliegtuig zijn in plaats van een indrukwekkend schip. Dat wil je natuurlijk niet pas doorhebben als dat schip tegen een ijsberg vaart. Dat voelt toch een beetje als te laat. (“Huh? Vliegen ze zo laag dan? Oh, wacht…”)

De gewone voorstellingen zijn moeilijk te volgen voor veel blinden en slechtzienden. Gezellig naar de bioscoop gaan is daarom voor hen allesbehalve gewoon. Dat is niet omdat zij het niet zouden willen, want zij willen niets liever dan gewoon mee kunnen doen in de samenleving.

De oplossing is audiodescriptie

Soundfocus maakt audiodescripties bij allerlei video’s, ook films. Audiowat? Audiodescriptie. Dat is de audio die je hoort om het beeld te beschrijven en dus de manier om de film ook visueel uitgedaagd goed te kunnen volgen. Maar om deze audiodescripties voor nieuwe films mogelijk te maken, zijn samenwerkingen met filmmakers nodig. De situatie tot nu is dat heel af en toe een film van audiodescriptie kan worden voorzien en heel af en toe er dan een bioscoop is die zo’n film ook nog draait. Zo’n bioscoop is echter niet altijd in de buurt. Kortom: niet elke film is te ervaren door dit publiek. Als de film dan gedraaid wordt is de afstand vaak nog een belemmering én het is een speciale voorstelling, dus tegelijk met je scherpziende vrienden gaan, is er vaak ook niet bij.

Wanneer audiodescriptie toegankelijk zou zijn tijdens de reguliere voorstelling in de bioscoop kunnen ook blinden en slechtzienden weer gezellig mee naar de film. In Nederland is het belang hiervan te lang onderschat geweest (in Engeland bijvoorbeeld is audiodescriptie al veel meer mainstream). We hopen daar met Watson verandering in te brengen en dat meer filmmakers (ook internationale) de samenwerking aan zullen gaan.

Onder de motorkap

Watson gebruikt audioherkenning om de audiodescriptie van de film gesynchroniseerd af te spelen. Dat wil zeggen dat de app luistert naar de audio van de reguliere voorstelling en aan de hand van die audio bepaalt waar in de film je bent. Vanaf dat punt speelt de app via je koptelefoon de audiodescriptie bij de betreffende film af. Dit betekent dus dat je gewoon met je goedziende vrienden naar de reguliere voorstelling kunt en met de app de film goed kunt volgen. In welke bioscoop dan ook, ook wanneer de film op televisie speelt, en bovendien zonder dat je haviksoogvrienden daar last van hebben.

We hebben Watson gekoppeld aan een closed source fingerprinting library van pHash. Daardoor herkent de app het ook wanneer je tien minuten te laat de film binnenwandelt en begint die gewoon met de audiodescriptie op het juiste punt in de film. In de eerste versie deden we dat server-side, maar dat performde niet optimaal en in de bioscoop heb je niet altijd internet. Om deze problemen te voorkomen werkt het nu gewoon in de app zelf, dus ook als je offline bent.

Voilà

We hebben zelf meegetest in de bioscoop en ervoeren dat wanneer je een film met audiodescriptie “kijkt” je zelf vrij bent om het beeld in te vullen. Vonden we stiekem als visueel onuitgedaagden best vet! Dus als jij wel eens een film niet wil zien, omdat je bij het boek je eigen invulling hebt gegeven, ‘bekijk’ dan eens een film met Watson. Lekker met je ogen dicht.

Je kunt de app vanaf nú nú nú downloaden voor iOS en Android.

PAPER van De Persgroep, een hybride app, maar waarom?

image

Voor de prijs van de Linda, maar dan in plaats van één keer in de maand zes dagen in de week een verse editie. PAPER zit ergens tussen een serieuze krant en een glossy in en is geschreven door De Persgroep. Met veel liefde en plezier hebben wij deze hybride app ontwikkeld. Maar waarom eigenlijk hybride? Waarom niet native?

Het hybride versus native-vraagstuk komt voor ons vooral neer op: waarom moeilijk doen als het makkelijk kan? Het antwoord op die vraag is uiteraard: dat hangt er vanaf.

Beleving

Native apps voelen toch altijd nét even wat soepeler. Sexyer. (Ja, zo schrijf je dat blijkbaar. Ziet er toch niet uit?) Er is meer liefde en aandacht nodig om met een hybride app datzelfde niveau van beleving te benaderen. Dat doen we graag, maar waarom moeilijk doen als het makkelijk kan? Punt voor native.

Ontwikkeltijd

Wanneer je voor twee of meer platformen ontwikkelt, kost het ontwikkelen van een native app vaak meer tijd dan het ontwikkelen van een hybride app. Met native heb je immers een codebase per platform, met hybride één. Punt voor hybride.

Maar… dat verschil is in onze ervaring alleen significant wanneer je één interface kunt aanbieden die voor alle platformen werkt. En dat is zelden een goed idee. Vinden wij. Geef dat punt dus maar weer terug. Of…?

Android-apps zien er anders uit dan iOS-apps. En belangrijker: ze werken anders. Daarmee doelen we niet alleen op Apple-fanboys of Google-groupies (of een verdwaalde Windows Phone-aanbidder) die chagrijnig worden als ze een UI pattern van het rivaliserende platform tegenkomen op hun geliefde device. Elke smartphone- of tabletgebruiker is simpelweg gewend aan de standaard interface-elementen van het platform. Het kost de gebruiker minder denkmoeite (Is dat een woord? Bij deze.) als een app zich daaraan houdt. En dat is goed. Je moet dus wel een verdomd goede reden hebben om één en dezelfde interface aan te bieden met je app.

image

De verdomd goede reden voor één interface

PAPER is een magazine. Met een magazine-uitstraling. En een magazine-interface. Net als bij games is het voor een magazine-app als PAPER helemaal niet gek om er anders uit te zien en anders te werken dan de meeste andere apps. Sterker nog, als PAPER met voornamelijk native UI elementen gebouwd zou zijn, dan zou de app een stuk minder sexy zijn.

Kortom, voor PAPER was hybride ontwikkelen significant sneller. Waardoor er voldoende ruimte overbleef om de app zo gelikt mogelijk te maken.

Andere overwegingen

Uiteraard weegt er meer mee. Eén codebase is gemakkelijker te onderhouden dan meerdere. En dat één van de ondersteunde platforms het web zelf is, is natuurlijk ook relevant.

Daarnaast is het ook belangrijk om te kijken naar de (on)mogelijkheden van hybride en native. Het is echter allang niet meer zo dat je met hybride minder kunt, dus dat zit wel snor. Met Cordova kan native functionaliteit gemakkelijk aangesproken worden vanuit JavaScript, ondanks de platformverschillen. Dat hebben we nu bijvoorbeeld met notificaties gedaan en we hebben net de in de platforms ingebouwde manier om artikelen te delen ingebouwd. Dat delen is een mooi voorbeeld van iets dat we dus wél platformspecifiek willen hebben. En dat kan met Cordova.

image

Blije nerds

Voor ons ook erg belangrijk is het meewegen van ontwikkelaarsblijheid. Het ontwikkelen van hybride apps is lang een stuk minder prettig geweest dan het ontwikkelen van native apps. Maar inmiddels is het best wel oké. We hebben ons heerlijk vermaakt met de isomorphische manier van werken van React en Fluxible. (In een notendop: dat betekent dat zowel de server als de client (delen van) de interface kunnen renderen. Net als hoe Facebook dat doet. Zij hebben React dan ook gebouwd.) Cordova lost ook veel op, maar heeft ook nog wel een weg te gaan, als we eerlijk zijn. Cordova kan soms nare, exotische bugs opleveren. En Cordova helpt ook niet als je de performance en beleving optimaal probeert te krijgen. Dat is ook niet zo gek, als je bedenkt dat Cordova nog steeds ondersteuning voor Blackberry met zich meezeult, maar daar frustreert het niet minder om. Het is dus nog niet allemaal rozengeur en manenschijn, maar er is al voldoende reden om blij te zijn.

Daarom dus hybride

In dit geval.

En nu, Apple-fanboys, kunnen jullie lekker PAPER gaan lezen op een Android. Of Google-groupies op een iPad. Maakt toch niet uit, PAPER is op elk platform even fijn.

Geniet ervan.

Postkantoor in je broekzak: de nieuwe PostNL app

image

Gebruik jij de nieuwe PostNL app al? Deze app is de aftrap van onze droom samen met PostNL: de toekomst van post bepalen. En daarom willen we er toch graag wat over bloggen, ook al staat het al een tijdje live.

image

De droom

Al voor de pitch van dit project droomden Taco en Chris over de toekomst van post. Zonder twijfel is het een wereld vol mogelijkheden. En dat vindt PostNL ook. PostNL bleek een heldere verrassende visie te hebben en hun plannen voor de toekomst van post maakten ons extra enthousiast. Aan het begin van dit project droomden we samen hardop van mooie tweets na de release. Zoals deze hierboven, want een postkantoor in je broekzak: dat is toch wel wat de ultieme post app zou moeten nastreven.

image

5 seconds of fame

De nieuwe PostNL app is een goed voorbeeld van de belangrijke overlap tussen ontwerp en techniek. De bedoeling van de app is namelijk vooral gebruiksgemak: als gebruiker wil je snel de informatie hebben die je nodig hebt. Dit betekent dat de app vaak niet langer open is dan een paar seconden. Je zou denken dat het dan niet zoveel voor hoeft te stellen, maar juist dit gegeven legt de lat een stuk hoger. Die paar seconden wil je je niet afvragen waar de informatie staat die je nodig hebt of moeten wachten tot informatie ingeladen is.

image

Onder water post bezorgen

Onder water blijkt het bezorgen van post in Nederland verrassend ingewikkeld. In de happy flow alleen al heb je ontzettend veel sporen. In de ene situatie moet het eerste adres vermeld worden, in de andere situatie het tweede, in weer een andere situatie mag de naam er niet op, terwijl dat in de andere cruciaal is, om maar een paar voorbeelden te noemen. En dan hebben we het nog niet eens over de unhappy flow. (En laat dat nou de flow zijn die we als Q minstens net zo belangrijk vinden.) De kunst is om deze complexiteit te verbergen voor de gebruiker. Dit project bestond dus voor een groot deel uit simpel maken wat onder water eigenlijk heel complex is. We zijn er trots op dat dat gelukt is in nauwe samenwerking met PostNL en de designers.

image

Techniek

We bouwden twee losse native apps voor iOS en Android. De iOS app bouwden we in Swift. Swift is nog vrij nieuw en nog redelijk instabiel, bleek helaas. Deze keuze was dus een technische uitdaging, maar we kunnen vol overtuiging zeggen dat we hier nog steeds achter staan. Apple staat er immers bekend om snel oude technieken af te schrijven. (Zoals USB-poorten.) Er komt dus een moment, waarschijnlijk eerder vroeger dan later, dat Apple Objective C apps niet meer toelaat, of minder mogelijkheden biedt. De instabiliteit van Swift wordt verbeterd met regelmatige updates, maar betekende nu nog veel compileertijd en crashes. Ook zijn er online nog weinig antwoorden te vinden over problemen waar je tijdens het bouwen tegenaan kunt lopen, en missen de al geschreven libraries die wel voor Objective C bestaan. Daarom hebben we die veel zelf geschreven en die delen we natuurlijk met de hele wereld. Hier, alsjeblieft en get your Swift on.

image

De vernieuwde PostNL app

Deze eerste versie legt de basis voor de toekomst van post. Naast bekende features als Track & Trace en een nauwe koppeling met de website biedt de nieuwe app features als inloggen en daarmee je data syncen, de handtekening zien van degene die voor je pakketje heeft getekend, pakketjes onthouden, zien welke pakketten je gaat ontvangen en je ziet welke pakketjes je ontvangen hebt. Verder kun je ermee herrouteren en dat herrouteren geeft ook weer een hoop opties: locatie, tijdslot en direct in de app betalen voor extraspeciale opties. En er zit nu een barcodescanner in. Weet je, probeer het zelf even uit!

image

De toekomst

Dit is de ultieme tweet waar we nog van dromen. Met de updates die blijven komen voor deze app, andere apps die we gaan integreren en alle andere plannen die we samen met PostNL hebben over de toekomst van post blijft die droom voor ons tastbaar. Dit is nog maar het begin!

iOS
Android

KLM’s Apple Watch app catches your plane

Just a few weeks ago, Apple released its watch in The Netherlands on July 17th. KLM took advantage of this Dutch launch to release their Watch app simultaneously. We built it, KLM integrated it within their iOS app and AKQA did the design. So after playing with your new Apple Watch for almost two weeks now, it’s time to put it into action and see how your watch can make catching your plane more convenient!

WatchKit

In order to be on time for the Dutch launch of the Apple Watch, we had to come up with and build the KLM Watch app in just over a month. Smartwatches, being quite new devices, offer a lot of cool possibilities, but also quite a few constraints. Our challenge was to build an app that adds real value to the experience of catching your plane. We developed it with WatchKit, and even though the framework only offers a single glance with no custom buttons and lots of other restrictions, we believe we built something really awesome that allows you to always be one step ahead on your journey.

Catching your plane

When you’re on the way to catch your plane, the last thing you want to do is to go through a stack of paper to check every step of your journey. That’s why KLM offers their smartphone app. It gives you all the information you need, as well as the possibility to organise and make changes to your journey. But the closer you get to your well-prepared departure, the less you need all those features. While catching your plane, simpler is better.

That’s where the Watch app (integrated in the iOS smartphone app) steps in. Two days before your flight, you want to know which terminal to go to. Two hours before, which seat you’re assigned to. The app knows what information you want and gives you only what you need, when you need it. It’s context-based and shows, among other things, upcoming flights, your terminal, your gate and your seat. At the airport itself, beacons in the lounge will tell you the walking time to your gate. You only have to glance at your wrist to be reassured you’re on the right track and your flight is still departing on time.

So, go download the KLM iOS app now and don’t forget your Apple Watch – you’ll be checking your flight like you check the time. Safe travels!

Subiet, een app voor de frequente treinreiziger

Je gaat naar huis, zoals elke dag, maar je bent nog net niet zo’n nerd dat je alle treintijden uit je hoofd weet. Wie hou je voor de gek? Natuurlijk weet je ze uit je hoofd, maar storingen die weet je niet, dus je checkt toch gauw even of jouw trein vertrekt wanneer je denkt. Maar voordat jij je route hebt ingevoerd, is de trein die je wilde halen tóch op tijd vertrokken. De oplossing is hier. Subiet.

Brainstorm

Subiet is ooit begonnen als idee tijdens w00tcamp, samen met Oak & Morrow, uit frustratie van de frequente treinreiziger met de bestaande OV-apps. Het was nu hoog tijd om dat idee om te zetten naar een serieuze brainstormsessie. We wilden een app bouwen die alle (vooral ook onze eigen) frustraties voor de frequente treinreiziger wegneemt. Want bovenstaande situatie hadden we allemaal te vaak meegemaakt. Zo onnodig ook. Waarom, als je elke dag dezelfde routes nodig hebt, moet je deze elke keer opnieuw invoeren? Je wilt gewoon nu weten of jouw trein gaat en zo niet wanneer dan wel. Subiet dus, niet nadat je vijf stappen verder bent. Tijdens de jumpstart is besloten om voor de eerste versie te beginnen met advies voor de treinen. De NS API is namelijk erg compleet en dus een goede start om in korte tijd een leuke en vooral nuttige app te kunnen bouwen. Deze iOS app hebben we gebouwd in Swift.

Subiet

In de app kun je je vaste trajecten invoeren. Zo kun je in een oogopslag in je gepersonaliseerde blokjes zien wanneer je trein precies vertrekt en of je je aansluiting haalt. Dit is dus een app voor de reiziger die zijn traject en de stations kent. Je weet zelf wel welke route het handigst is en of je voor die overstap moet rennen of dat die overstaptijd nog wel iets korter kan. Je weet vaak ook dat er meerdere wegen naar Rome leiden en doordat je ze direct naast elkaar ziet hoef je dus nooit meer te gokken welke vandaag sneller is. Je kunt je trajecten ook combineren tot complete reizen. Doordat je zelf je vaste trajecten toevoegt, direct overzicht hebt op de eerstvolgende trein op al je trajecten, complete treinreizen combineert, je eigen overstaptijden bepaalt, alle volgende vertrektijden kunt bekijken en tijd- en perronswijzigingen ziet heb je altijd subiet de beste treinreis.

En nu?

Is het subiet tijd dat je Subiet downloadt. Waarom? Nu kan dat nog gratis. Oja, wie weet hangen we er nog andere OV-opties in, dus kijk uit naar eventuele updates. In de tussentijd is al je commentaar welkom. En nu ga ik gauw m’n trein halen.

Handige app voor handige Harry’s

image

Je staat in de bouwmarkt bij de kassa, maar in je overall zit natuurlijk niet je klantenkaart. Wat onhandig, Harry. Dat moet handiger kunnen. Wat wel in je overall zit is je telefoon. Die heb je altijd bij de hand. Het thuisfront moet je toch even kunnen bellen dat die badkamertegeltjes toch maar wit moeten in plaats van Q-groen (Hé. Mooi groen is niet lelijk). Samen met Fabrique bouwden we een app voor Intergamma. Nee, twee apps. Voor Gamma én Karwei. Nee, drie apps. Ook voor Gamma België. Nee, zes apps voor iOS èn voor Android. Nouja, een app dus. Een handige. Een app waarmee je alles bij de hand hebt, wat je nodig kunt hebben in een bouwmarkt.

image

Native navigatie

Intergamma wilde met een app zorgen dat al je mogelijke bouwmarktproblemen zouden zijn opgelost, Harry. Daarom ontwikkelden we alles in deze app met het doel: “bij de hand”. Om te zorgen dat de apps supersnel in gebruik zijn, zijn de complete navigatiestructuren van de apps voor Android en iOS native ontwikkeld, daarbinnen laden we hybride content in.

In de app staan je klantenkaart en coupons, die kun je dus voortaan écht vergeten. Geen probleem, Harry! Die heb je bij de hand. Altijd. En als je op zondagavond opeens het licht ziet en die al vijf jaar losse traptree vast wilt maken, dan zie je in één klik of en tot hoe laat jouw of de meest dichtstbijzijnde bouwmarkt open is. Geen excuses meer, Harry.

image

Productscanner

Er zit ook een productscanner in de app. Elk product in de winkel kun je scannen. De app scant de streepjescode en zoekt het product voor je op. Op je scherm krijg je alle extra informatie over het product wat je net gescand hebt. Deze informatie is content van de productpagina op de site. Weet je gelijk welke lijm je bij die witte tegeltjes nodig hebt. Handig, Harry!

Tot slot

Deze app ondersteunt de klant, aka handige Harry, in de winkel. De app springt in op zijn behoeftes door middel van het leveren van relevante informatie en features. Op locatie is zo’n app natuurlijk veel handiger dan het openen van de website in de browser op je telefoon. Je kunt deze app ook thuis gebruiken, want alle informatie staat erin. Installeer je de apps even, Harry? Dat scheelt echt met die Q-groene ehh.. witte badkamertegeltjes halen.

Gamma iOS
Gamma Android
Karwei iOS
Karwei Android

Functional Programming in Swift workshops

image

Functioneel programmeren en Swift. Beide heul erg hot en happening. Sommige Q’ers werken er allang mee, maar zo’n beetje heel Q wilde toch wel meer weten. Dus gaf ChrisE twee workshops. Chris? Nee, ChrisE. Maar Chris was er ook bij. Niet te verwarren met Christiaan. (Volg jij de Chrissen nog? Nee? Dat kan wel: volg Chris, ChrisE en Christiaan.)


image

Chris, E dus, is oud-Q’er en schreef samen met Florian Kugler en Wouter Swierstra het boek Functional Programming in Swift. ChrisE kwam speciaal voor ons overgevlogen uit Berlijn. Dat was niet alleen leerzaam, maar ook ouderwets gezellig.

Q42 mocht van ChrisE’s talenten gebruik maken tot en met 2007. Hierna ging hij de wijde wereld in. Inmiddels woont hij in Berlijn en werkt hij voor zichzelf. Je kent hem misschien van objc.io, Deckset, UIKonf of z’n blog. Of van zijn kersverse boek dus, wat voor ons de aanleiding was hem uit te nodigen.

image

Swift is swift

Swift werd op WWDC 2014 door Apple bekend gemaakt. Het is dé nieuwe programmeertaal voor iOS. De opvolger dus van Objective-C. Wat vooral interessant is, is de swiftness van Swift in populariteit. Er wordt wel vaker een nieuwe programmeertaal bekend gemaakt, maar hoe snel Swift is opgenomen door programmeurs is opvallend. In één kwartaal sprong Swift van plek 68 naar plek 22 in de RedMonk Programming Language Rankings. Dat is een sprong van 46 plekken! 46! Deze lijst kent gemiddeld vooral stijgingen van 5 tot 10 plekken. RedMonk voorspelt dan ook dat Swift de volgende keer in de top 20 van programmeertalen zal staan. Holy moly!

image

Functioneel programmeren

Ook hier is Swift snel opgepakt en we bouwen er al verschillende apps mee. Neemt niet weg dat je er nog meer over kunt leren. Maar de workshop ging niet eens zozeer om Swift, vooral om functioneel programmeren. Iets wat een paar Q’ers al jaren fanatiek in de hobbysfeer doen en ook steeds meer toepassen in ons dagelijks werk. En waarmee ze ons inmiddels vrijwel allemaal razend benieuwd hadden gemaakt. Eén workshop was dan ook niet genoeg. Dat moesten er dus twee worden.

image

ChrisE: “Functioneel programmeren is heel veel werken met types. Dat is waarom ik Swift zo cool vind. Opeens konden we op iOS met types gaan werken. Met functies. En dingen als generics. Als het compilet dan werkt het.”

Als je meer wilt weten over functioneel programmeren in Swift, lees dan ChrisE’s boek, haal hem over ook bij jou een workshop te geven of bekijk dit filmpje:

Of doe het alledrie, dat hebben wij gedaan. :-)