Mdevcon 2014 (1)

Door E-sites, E-sites
14 maart 2014 - 2350 x bekeken - Categorieën: Kennis, Mobile

Op 7 en 8 maart was de Mdevcon, ofwel Mobile Developers Conference, waar ik verschillende presentaties over de ontwikkelingen op iOS gebied heb bijgewoond. Een erg interessante dag, waarop ik veel geleerd heb en interessante dingen heb gezien. Die we bij E-sites direct in de praktijk kunnen brengen. Dat maakt dit soort dagen erg waardevol. Hieronder een verslag van de sessies die ik heb bijgewoond.

Cocoapods - The Road To 1.0

Door Orta Therox & Fabio Pelosin.

Cocoapods: de populairste dependency manager voor iOS projecten. Hiermee kunnen gemakkelijk allerlei libraries in je project worden ingeladen, zodat je bijvoorbeeld snel van Google Analytics of eigen ontwikkelde libraries gebruik kunt maken. Bij E-sites maken we al een tijdje gebruik van Cocoapods en hebben we er ondertussen ook een aantal zelf ontwikkeld. Bij veel van onze projecten worden deze pods ingezet om functionaliteiten, zoals caching en validators, gemakkelijk te hergebruiken. Maar hoe gaat Cocoapods zelf te werk? Wat staat ons nog te wachten, voordat versie 1.0 (eindelijk) wordt gereleased?
Er werd een aantal dingen genoemd (zie ook de link naar de presentatie hieronder), waarvan er één punt echt uit sprong voor mij. Iets dat voor ons ook meerwaarde zou kunnen hebben. Ze werken namelijk aan een POD EDIT command, zodat pods direct vanuit je project bewerkt kunnen worden en gecommit. Hiermee kun je snel bewerkingen uitvoeren. Het is dan ook de bedoeling dat je per gebruiker rechten kunt instellen, om te bewerken of alleen in te lezen. Want niemand wil natuurlijk dat junior developers het ingenieuze werk van de seniors verknallen!

Lees meer over Cocoapods op:
https://speakerdeck.com/orta/cocoapods-the-road-to-1-dot-0
http://cocoapods.org/

http://cocoadocs.org/

 

High performance Core Data

Door Matthew Morey.

Ondanks dat wij nog niet veel ervaring hebben met het gebruik van Core Data, leek het me wel de moeite waard om deze sessie bij te wonen. De apps die we ontwikkelen worden steeds groter en complexer en daarbij is performance erg belangrijk. Zeker wanneer er grote hoeveelheden data gebruikt worden. Core Data is een object graph management framework. Het is een ideaal framework om het model te bouwen in een MVC architectuur. Als persistent store (opslag) wordt in de basis sqlite gebruikt, maar ook XML of een binary format is mogelijk.
Deze sessie heeft mij inzicht gegeven in het gebruik van Core Data, hoe te analyseren en debuggen om elke mogelijke optimalisatieslag te kunnen maken. Als voorbeeld werd een UFO Sightings app gebruikt, met ongeveer 60.000 records. Wat startte met een importtijd van ruim vijf minuten, werd met redelijk eenvoudige en logische verbeteringen teruggebracht naar minder dan één minuut. Lees hieronder de tips om dit te realiseren:

- werk met batches;
- gebruik backgroundprocessen;
- laat sql de nodige berekeningen uitvoeren;
- lichte vergelijkingen eerst (numeriek eerder dan strings).

Er werden nog meer opties behandeld, maar wat vooral belangrijk is, is dat het optimaliseren van performance bij het gebruik van Core Data het zoeken van een balans is tussen geheugen en snelheid. Hoe meer geheugen je gebruikte, hoe sneller en vice versa.




Tijdens deze sessie werd ook een aantal handige tools en tips genoemd, die ik jullie niet wil onthouden:

- Core Data Editor; Om de data van een applicatie te bekijken, wijzigen en analyseren.
- Instruments; Om performance te meten, visualiseren en analyseren.
- com.apple.coredata.sqldebug: Voor het tracen van SQL queries.
- ‘TICK-TOCK’; Een macro om eenvoudig de duur van een proces te loggen:



Voor meer informatie over dit onderwerp kun je terecht op:
http://highperformancecoredata.com

Inside-out Apps

Door Graham Lee.

Een beetje een abstracte, maar wel interessante presentatie. Lee gaf ons geen concrete technische oplossingen of praktische tips, maar wel een andere kijk op het benaderen van projecten. Het idee is dat we ons niet moeten laten leiden door vooraf gedefinieerde modellen (xcode templates, mvc architectuur), maar uit moeten gaan van het probleem van de gebruiker. Wat is het probleem, wat moet er gedaan worden en hoe moet dit gedaan worden? Deze denkwijze is ook nog eens platformonafhankelijk, wat het breed inzetbaar maakt.
Als ik dit reflecteer op onze eigen werkwijze dan weet ik dat wij niet proberen onze projecten aan te passen aan bepaalde projectstructuren (templates) die Apple heeft bedacht. Wij gebruiken een eigen basistemplate, dat ingericht kan worden op basis van wat de applicatie moet gaan doen. Dit wordt in 9 van de 10 gevallen vervolgens wel conform een MVC-architectuur opgezet, omdat dit bewezen heeft goed werkbaar te zijn. Maar kan het nog beter? Misschien bij een volgend project toch eens inside-out denken.

Lees meer over dit onderwerp op:
http://bignerdranch.com

https://alpha.app.net/secboffin

https://leanpub.com/appropriatebehaviour

Introduction to ReactiveCocoa

Door Ash Furrow.

ReactiveCocoa is een library gebouwd op KVO (Key-Value Observing), een mechanisme dat het mogelijk maakt om wijzigingen in objecten “door te sturen” naar andere objecten. ReactiveCocoa zou Functional Reactive Programming (FRP) makkelijk moeten maken. Voor degene die niet weten wat dat is, gaf de spreker het voorbeeld van een spreadsheet waarbij de inhoud van een cel verandert als een andere cel wordt aangepast. Dat is het principe van FRP: als een ding verandert, heeft het effect op veranderingen in andere dingen. Om ons te overtuigen van de bruikbaarheid van ReactiveCocoa gaf de spreker een aantal demonstraties. En ik moet zeggen dat het me erg handig lijkt en eenvoudig en snel in te zetten is. De notatie daarentegen lijkt in eerste instantie niet echt overzichtelijk, maar de spreker geeft zelf al aan dat dit door wrapping komt op het kleine scherm. Eerst zien, dan geloven. Dus we gaan het eerst maar eens uitproberen.

Bekijk ook:

https://speakerdeck.com/ashfurrow/reactivecocoa-at-mdevcon-2014

http://github.com/ashfurrow

http://ashfurrow.com

http://leanpub.com/iosfrp

Building an iBeacon Killer App

Door Hannes Verlinde.

Al voordat ik binnenkwam, bedacht ik me dat deze presentatie zeer interessant zou kunnen zijn voor ons en onze klanten. Vrij recent zat ik nog met een klant rond de tafel voor wie dit uitstekend in het concept zou passen.
iBeacon is een 'indoor positioning system' op basis van Bluetooth LE (low energy). Met behulp van beacons (sensoren) kunnen signalen verstuurd worden naar verschillende devices zoals smartphones of  tablets die in de buurt zijn, komen of gaan. In winkels of restaurants zouden bijvoorbeeld gepersonaliseerde notificaties of acties kunnen worden verstuurd naar de nabijgelegen devices. Zoals een gratis frisdrank bij je sandwich, wanneer je een Subway binnenloopt. Op vertoon van de actiecode die je dan net op je smartphone hebt ontvangen. Beacons zijn er in verschillende soorten en maten, een bekende is: http://estimote.com/.
Een passende uitspraak van Verlinde was: ‘The best user interface is no user interface'. Dit past goed bij bijvoorbeeld het gebruik van beacons om in huis je lichten, verwarming, audio of video automatisch te besturen wanneer je een ruimte binnenkomt of de oprit oprijdt. Of het ontvangen van een signaal wanneer je op het strand ligt en je kind loopt te ver weg.

Met een paar regels code werd een overtuigende demonstratie gegeven, waarbij door middel van 4 beacons de positie van een device werd berekend en live getoond. In deze demo werd gebruik gemaakt van interpolatie als eenvoudige benadering, waar normaal trilateratie beter gebruikt kan worden.



Hoewel het een erg interessante technologie is, die we zeker kunnen gaan toepassen, zitten er wel een paar haken en ogen aan. Wanneer je namelijk buiten het bereik van een beacon komt, heeft dit signaal een delay van 30-60 seconden. Het oppakken en verliezen van het signaal kan namelijk vertraging hebben en interfereren met allerlei andere signalen eromheen.
Tevens kan er geen rich data verstuurd worden tussen de devices, enkel een paar numerieke. Om  rich data te openen op een device zou dit daarom bijvoorbeeld vanaf een webservice moeten komen. Een kanttekening daarbij is dat als er geen netwerk op locatie is, moet de rich data vooraf opgehaald zijn.

Lees meer op:
https://speakerdeck.com/hverlind/building-an-ibeacon-killer-app

What’s The Next Big Thing For Mobile

Door Saul Mora.

Om de toekomst te kunnen voorspellen, want daar ging deze presentatie over, nam Mora ons mee in een reis door de geschiedenis. Van ontwikkelingen als pyramides en de stelling van pythagoras tot aan de computers van deze tijd. Ook kwamen de bekende commercials van AT&T ook nog voorbij. Wat toen nog science fiction was, is vandaag de dag wetenschap: http://www.youtube.com/watch?feature=player_embedded&v=4PJcABbtvtA.

Na deze lange reis werd het eindelijk tijd voor de toekomst. Echt schokkende dingen werden er niet genoemd, vond ik persoonlijk. Zo vertelde hij dat batterijen en accu’s steeds verder ontwikkeld en verbeterd zullen gaan worden. Dat lijkt me vrij logisch, want we worden steeds mobieler (in welke vorm dan ook) en daarbij speelt energievoorziening uiteraard een belangrijke rol. Hóe we steeds mobieler worden, is een stuk interessanter. De verwachting is dat er steeds meer zogenoemde wearables zullen gaan komen. Denk hierbij aan de smart watch, schoenen met Bluetooth, Google Glass en met elektronica versterkte kleding. Een interessant project wat vermeld werd en waarschijnlijk in de toekomst steeds vaker gebruikt gaat worden, is het Fast Artificial Neural Network (FANN), een open source library. De app Dark Sky, een weersvoorspellingsapp die helaas alleen beschikbaar is in de VS, gebruikt deze library om ruis in radar afbeeldingen te filteren. Dit gebeurt door een neural network te trainen met een enorme hoeveelheid aan data, handmatig gescheiden in twee categoriën: ruis en geen ruis.



Deze library kunnen we natuurlijk overal in gaan zetten wanneer data gebruikt moet worden die met het oog (of, beter gezegd, het menselijke brein) wel gefilterd kan worden, maar geen directe logica bevat.

Meer info vind je onder meer op:
http://blog.jackadam.net/2011/how-dark-sky-works/
http://darkskyapp.com/

Conclusie

Een leerzame dag vol met waardevolle informatie! Vooral veel nieuwe technieken gezien, die ik meteen wil gaan gebruiken. Waar ik zeker direct mee aan de slag ga, is iBeacon. Ik ben erg benieuwd naar alle mogelijkheden ervan en hoe we die toe kunnen gaan passen voor onze klanten. Ook ReactiveCocoa en Core Data zijn twee dingen die ik zeker ga uitproberen als een project zich daarvoor leent. En wie weet komt er ook nog een mogelijkheid voorbij om FANN in te zetten.

Hoe een hackathon een testmethode kan zijn

Door E-sites

In dit bericht ga ik verder met waar ik ben gebleven in mijn vorige artikel. Voor hetzelfde project als bij de gebruikerstest hebben we ook een… - Lees meer

Lees verder