Mobiconf in Krakau

Door Bas van Kuijck, mobile developer - @basvankuijck
13 oktober 2014 - 1737 x bekeken - Categorieën: Kennis

Donderdag 2 en vrijdag 3 oktober is een delegatie (@basvankuijck, @domingguss, @pvroosendaal en @sjoerdvanoosten) van het mobile team afgereisd naar de derde grootste stad in Polen om daar een mobiele conferentie bij te wonen, genaamd Mobiconf. Deze conferentie is de eerste in de reeks die wordt gehouden in deze Poolse stad. Aangekondigd werden om en nabij 30 presentaties van 25 verschillende sprekers, afgewisseld tussen iOS-, Android-, Windows-, Tizen- en UX/UI ontwikkeling. Verdeeld over 2 dagen. Reden genoeg voor ons om een kijkje te nemen en hopelijk geïnspireerd te raken.

Dag 1

Na respectievelijk een autorit, vlucht en een taxirit kwamen we iets na 10.00 uur aan in het Best Western Hotel, waar de eerste sessie al was afgetrapt.
Maar gelukkig konden we nog aansluiten.

 CocoaPods Plugins (Boris Bügling)

"Boris is a Cocoa developer from Berlin, who currently works on the iOS SDK at Contentful. Before that he has written numerous apps and even was a Java developer in another life. He also tries to contribute to open source by building plugins to fix Xcode annoyances and bashing bugs in CocoaPods."

In het laatste half uur dat we bijwoonden, legde Boris uit hoe je cocoapods kan gebruiken om je workflow te verbeteren. Door maatwerk plugins te schrijven die het ontwikkelproces kunnen versnellen. Interessante stof, jammer dat we het begin moesten missen.

 

 Shazam mobile apps - data driven project management (Tomasz Kustrzyński)

"Tomasz works at Shazam's HQ in London as Technical Project Manager responsible for Android and iOS mobile apps projects. He uses his technical and organisational knowledge to make delivery of software efficient and successful."

Tomasz vertelde over project management technieken, die ze bij Shazam gebruiken: Kanban. Kanban is een methode om processen te visualiseren ten behoeve van flexibiliteit en continue verbetering. Ze concentreren zich op het limiteren van Work In Progress, om de efficiëntie te verhogen. Wat ook interessant was, en ook goed toepasbaar is voor ons, zijn hun dagelijkse 'visual reviews' waarmee het uitgevoerde werk in korte cyclussen wordt beoordeeld om kwaliteit te bewaken; een onderdeel van spiral development.

Data analyse staat ook hoog in het vaandel bij Shazam. Ze gebruiken JIRA Agile software om hun projecten te managen en maken daarbij veelvuldig gebruik van de API om alle data omtrent planning en inschattingen te analyseren. Aan de hand van een grappige anekdote (zie afbeelding) liet Tomasz zien dat je data niet verkeerd moet interpreteren; een fout die ze zelf ook al wel eens hadden gemaakt.


Meer weten? Bekijk de volledige presentatie.

 Your app & the world — thinking globally every step of the way (Tom Maes)

"Tom is a Belgian iOS developer living in Stockholm, Sweden. He wasted his childhood years on Commodore 64 games instead of playing outside. His 20 year career spans everything from building large intranet apps to leading technical teams for clients ranging from early dotcom startups to Fortune 100 multinationals. He fell back in love with Apple with the introduction of OS X and has focused on mobile ever since that very first iPhone was shown to the world on a stage in San Francisco."

Tom sprak over het 'localizen' van je app. En legde uit wat de veelgemaakte fouten zijn, waar je op moet letten en hoe je het beste dit proces kan aanpakken. Aan de hand van iOS voorbeelden en grappige foto's van verkeerde vertalingen in het hedendaagse leven. Al met al een erg interessante presentatie

Uiteraard is de belangrijkste taak van het meertalig maken van je applicatie, het vertalen van teksten. Aan de hand van een diagram gaf Tom 3 voorbeelden van hoe je kan vertalen:
1. Fast & good: Duur, vaak gedaan door een vertaalbureau. Waar ook weer verschillende prijsgradaties in zitten.
2. Good & cheap: Dit betekent dat je zelf achter de vertalingen aan moet. Denk aan een test groep of bekenden die een vreemde taal spreken.
3. Fast & cheap: Google translate. Dit zou echter nooit een optie moeten zijn. Volgens Tom is het beter om geen vertaling te doen dan een vertaling die niet klopt door het ontbreken van context.

Een aantal keywords die ik opgeschreven heb aan de hand van deze presentatie:

Psuedolocalization: Vertaal zelf stukken tekst door het gebruik van vreemde karakters en lange woorden/regels. Op deze manier kan je goed zien hoe je applicatie hier mee omgaat.

- Simulator automatiseren: Als je je applicatie uiteindelijk in 4 talen hebt vertaald, moet je nog de screenshots maken voor in de app store (of play store). Monnikenwerk als je nagaat dat er momenteel 4 resoluties zijn (in het geval van de iPhone): iPhone4S, iPhone5s, iPhone6 en de iPhone6+. Wat resulteert in (maximaal) 80 screenshots (4 talen x 4 resoluties x 5 screenshots). Het automatiseren van dit proces klinkt dus als een hoop tijdswinst. Zelfs het uploaden van de screenshots kan geautomatiseerd worden.

- Support: Het enige wat je kan doen om support te leveren in en voor verschillende talen, is jezelf verontschuldigen. Op deze manier begrijpen gebruikers dat Italiaans of Chinees niet tot je talen hoort. En dat je enkel support kan leveren in het Engels (en Nederlands). Op die manier weten de gebruikers ook het vertalen van de app niet door de ontwikkelaars zelf is gedaan en wellicht krijg je nog hulp uit onverwachte hoek.

- Appleglot glossaries: Dit zijn al de vertalingen die Apple zelf al heeft gedaan voor in iOS en hun eigen apps. Tom noemde dit het geheime wapen. Vooral omdat je voor deze woorden en zinnen dus geen aparte vertaling nodig hebt. Gebruik de waarde uit deze woordenlijst en je app trekt één lijn met iOS, iets wat voor de gebruiker bekend is.

 Building for Open Source (Kyle Fuller)

Kyle is a passionate programmer with a focus on quality. He's an active contributor to many open-source projects in the iOS and OS X community including CocoaPods.

Kyle Fuller werkt onder anderen mee aan het cocoapods project en is ook de 'bedenker' van QueryKit. Zijn presentatie ging voornamelijk over hoe je het beste een open source project kan opzetten. Van documentatie, licenties tot aan unit tests. 
Hij kwam met met een aantal tips / tricks om dit te versnellen:
- opensource.org/licenses (uitleg over verschillende licenties en welke het beste bij je past).
- coveralls.io Een site die code coverage voor je uitrekent aan de hand van Travis CI.

 Swift funtime (Boris Bügling)

Een presentatie waar we op voorhand erg benieuwd naar waren. Maar bleek helaas niet te zijn wat we hadden verwacht. Boris heeft blijkbaar een ander idee bij 'funtime' dan wij hadden. Hij begon met de rondvraag wie er ervaring heeft met swift en sprong daarna gelijk het diepe in. Door te laten zien wat swift voor objective-c code genereert en hoe je in swift method swizzling kan toepassen. UIteraard erg interessant, alleen niet iets wat je dagelijks zal toepassen.

 

 Contextual is the new mobile (Łukasz Hlebowicz & Dawid Gdański)

"Dawid is a passionate Android Developer. Having heard about the opportunity of creating contextualbased solutions for his field of range he didn’t have any hesitation to join kontakt.io crew. He’s the creator of kontakt.io Android SDK and Android App which will be released soon. Łukasz is iOS enthusiast since 2010. Fascinated with iBeacons technology joined kontakt.io and is responsible for iOS SDK and apps."

Omdat we zelf ook druk aan het experimenteren zijn met beacons waren we erg nieuwsgierig naar wat deze heren te vertellen hadden. Helaas weinig nieuws... Ondanks dat vrijwel heel de zaal zijn hand op stak bij de vraag wie er al wel eens met beacons had gewerkt, was de presentatie redelijk oppervlakkig op dit gebied. Ik denk dat de meesten iets meer diepgang hadden verwacht. Desondanks hebben we toch nog een paar interessante dingen gezien. Zo zijn ze bezig met een zogenaamde Cloud Beacon, waarmee je beacons op afstand kunt beheren. En de beacons van kontakt.io zouden zijn voorzien van een extra unieke ID, waarmee het niet mogelijk is om deze beacons te hacken. Dat gaan we maar eens uitproberen ;)

 Tools and Techniques that help maintain a high quality code base (Anastasia Kazakova)

"Being C/C++ fan Anastasia has been creating real-time *nix-based systems and pushing them to the production for 8 years. She has passion for networking algorithms and embedded programming and believes in good tooling. Now she is a part of JetBrains team working as a Product Marketing Manager for AppCode and CLion (the upcoming C/C++ IDE)."

De titel van deze presentatie was erg interessant, maar helaas werd al snel duidelijk dat Anastasia erg blij is met haar werkzaamheden bij JetBrains. Omdat de gehele talk een verkooppraatje was voor het product dat JetBrains heeft ontwikkeld, genaamd AppCode. Helaas werd er niet ingegaan op het onderhouden van een codebase, maar enkel bedoeld om de verschillen tussen Xcode en Appcode. En uiteraard wat er beter is aan Appcode.

 Things I've Learned Building Hybrid Apps (Konrad Dzwinel)

"Konrad is a developer at Making Waves, Google Developer Expert for Chrome and co-organizer of Google Developers Group in Krakow. Originally a back-end programmer for five years, he decided to switch to the more exciting, in his opinion, front-end world. At Making Waves he works on hybrid apps, websites and runs internal trainings. After work, he develops Chrome extensions, experiments with various front-end technologies, gives presentations and runs workshops."

Konrad legde in zijn presentatie uit wat het verschil was tussen een native app, een mobiele website, en een hybride app.
Aan het eind van zijn presentatie heeft Konrad nog kort uitgelegd welke frameworks hij gebruikt voor zijn HTML5 hybrid apps: Ionic framework in combinatie met AngularJS en maakte verder ook gebruik van HTML5's nieuwe AppCache functionaliteit. Voor native development wellicht minder relevant, maar voor frontenders wel interessant om eens in te duiken.

Dag 2

Na een avondje heerlijk eten, poolen, een paar biertjes en uiteraard ook een paar wodka, stonden er vrijdag nog een aantal sprekers op het programma:

 Next Generation Mobile Automation in Appium (Dan Cuellar)

Dan Cuellar werkt op de testafdeling van Shazam. Hij heeft uitgebreid uitgelegd welke verschillende manieren van testen over het algemeen worden gebruikt:

  • Official
    De test-methoden die worden geboden door Apple en Google:
  • App Modification
    Diverse frameworks waarmee je UI tests kunt maken - maar waar je dit wel in je code moet zetten: Dit was volgens Dan een groot nadeel: een project zou eigenlijk getest moeten kunnen worden zonder aanpassingen te hoeven maken aan de code, wat ons brengt bij:
  • No App Modification

Appium maakt gebruik van het WebDriver JSON-wire protocol om apps te kunnen testen. Je kunt tests schrijven in verschillende talen (.NET, Java, PHP, Python, Ruby). Met Appium kun je een test maken voor meerdere platforms (iOS, Android). De filosofie achter Appium:

  • De broncode van een app zou niet hoeven moeten worden aangepast om het te kunnen testen.
  • Je zou niet vast moeten zitten aan een bepaalde taal om een test te kunnen schrijven.
  • Een testframework zou niet het wiel opnieuw hoeven uitvinden voor geautomatiseerd testen.
  • Een testframework moet open-source zijn.

Vervolgens demonstreerde Dan hoe hij Shazam kon testen met Appium. Dit deed hij voor op de beamer met Genymotion, een Android Emulator. Hij liet zien hoe simpel je dezelfde test kon draaien op zowel Android als iOS, en dat je zelfs op buttons kunt klikken om zo een test-flow te kunnen opzetten. Daarnaast liet hij ook een filmpje zien van een robot (Tapster) die een app op een iPhone aan het testen was.
Appium ziet er gebruiksvriendelijk uit en is zeker de moeite waard om eens uit te testen ;)

 Rapid prototyping with Parse (Marcin Hagmajer)

Marcin Hagmajer werkt in Warschau bij Facebook als Software Engineer. Binnen Facebook is hij werkzaam bij Internet.org, een organisatie dat zich inzet voor Internet voor iedereen op de wereld.
Daarna gaf hij een introductie over Parse, een framework waarmee je met een paar regels code direct diverse complexe functionaliteit kunt toevoegen aan je app. Parse heeft een eigen SDK voor Android, iOS, JavaScript, Unity en is geschikt voor zowel Mobile als Desktop. Marcin heeft helaas enkel wat code-voorbeelden gegeven - een live-demo zat er niet echt in. Gelukkig staan er genoeg tutorials op hun site!

Conclusie

Het is altijd leuk om een conferentie te bezoeken, vooral als het in het buitenland is. De conferentie zelf was prima geregeld, vooral het eten en drinken. De inhoud van de presentaties waren alleen niet altijd top. Vaak ontbrak het aan enthousiasme van de spreker of gewoon aan het onderwerp waar ze over spraken. Al met al was het een leuke trip, maar we kwamen niet echt super geïnspireerd terug in Nederland. Mobiconf zullen we in 2015 dan ook overslaan.

iOS8 voor ontwikkelaar en eindgebruiker

Door Bas van Kuijck

Woensdag 17 september heeft Apple iOS8 publiekelijk gereleased. Dit naar aanleiding van de lancering van de iPhone6… - Lees meer

Lees verder