Appbuilders: een geweldige conferentie aan het Lugano-meer

Appbuilders: A great conference at the Lugano lake

Appbuilders is één van de grootste conferenties over mobiele technologieën in Europa. Appbuilders was een tweedaagse conferentie met geweldige sprekers en lezingen.

Lugano Lake

Talk

Er waren veel goede lezingen tijdens de appbuilders conferentie, we hebben de meest inspirerende en leerzame lezingen samengevat. Alle lezingen werden geïntroduceerd door John Sundell (ook bekend van Swift by Sundell), een iOS ontwikkelaar/ blogger en conferentiespreker. Zoals bij elke conferentie begonnen we met de keynote. Die werd gegeven door Scott Chacon, mede-oprichter van GitHub en CEO van Chatterbug.

Talk: Github to Chatterbug: Lessons learned by an accidental entrepreneur

Github is gegroeid van 4 naar 400 mensen. Wat belangrijk is als je zo’n bedrijf runt is om je eigen product te gebruiken. Dit lijkt misschien vanzelfsprekend, maar om echt een succesvol product te hebben, moet je ook echt de probleemruimte begrijpen van wat dit product wilt oplossen. Je kan bijvoorbeeld nog steeds het appartement van de oprichter van airbnb huren, zodat hij het probleem begrijpt, want hij zou het moeten oplossen. Luister naar je klanten om de problemen van jouw product te begrijpen. Maak het heel eenvoudig voor de klanten om feedback te kunnen geven over het product. 

Het is ook heel belangrijk om ons te blijven afvragen wat het menselijke aspect is in ons product. We moeten kijken hoe computers en mensen kunnen samenwerken in plaats van mensen te vervangen door computers. Computers kunnen ervoor zorgen dat we als mensen kunnen uitblinken in de dingen waar we al goed in zijn. Computers zijn goed in dingen die steeds weer opnieuw gedaan worden, terwijl empathie, wat een computer niet heeft, even belangrijk is. We moeten echt een manier vinden om het beste van beide werelden te mixen in plaats van mensen te vervangen door computers.

Talk – From problem to solution

Vervolgens werd er een lezing gehouden door Soroush Khanlou. Een bekende iOS-ontwikkelaar in de community die het meest bekend is met de introductie van het coordinator pattern in iOS. Soroush sprak over de valkuilen en positieve dingen van abstractie.

Zoals elke ontwikkelaar weet, groeit de code voortdurend tijdens een project. Wat ooit een prachtig stuk code was, is nu een afschuwelijke zeer grote klasse met meerdere verantwoordelijkheden en een grote cyclomatische complexiteit.  De vraag die je jezelf kunt stellen is: “Wanneer moet ik actie ondernemen en wat moet ik van die code abstraheren?”. Je kunt dit merken als je klassen ziet met meer dan 1 verantwoordelijkheid, een grote regellengte en, iets minder tof, hoeveel execution paths deze code heeft. 

Soroush gebruikt het voorbeeld van een netwerkclient en herschrijft deze klasse met een aantal van de volgende tips en trucs :

Het splitsen van de code kan worden gedaan door

  • Tijd (headers, voor aanvraag, na aanvraag in het voorbeeld van een netwerkcliënt)
  • Verantwoordelijkheid
  • Het vervangen van optionele objecten door een lege structuur 
  • Vervangen van arrays door objecten

Wat winnen we dan met abstractie?

  • Ontkoppeling : we bouwen sterke grenzen die toetsbaar zijn.
  • Herbruikbaarheid
  • Je kan één blik werpen op de code en je begrijpt direct wat het doet.

Maar je moet voorzichtig zijn met het gebruik van abstractie, want je kunt het niet elke keer toepassen. Je moet het gebruiken als je een code hebt die iets soortgelijks doet, maar er niet hetzelfde uitziet.  Het abstraheren van het verkeerde ding kan je ergste nachtmerrie zijn. Soms is duplicatie veel goedkoper dan de verkeerde abstractie.

Talk – Theming, styling, material, …

Theming in Android is vrij moeilijk, er zijn veel plaatsen waar bijvoorbeeld een kleur kan worden ingesteld. Als je geen goede stylingstrategie hebt wanneer je je app vernieuwt, wordt het een pijnlijke refactor. Het was een goede lezing waarbij de spreker de verschillende mogelijkheden besprak. Style, theming, TextAppearance, ThemeOverlay zijn stuk voor stuk belangrijke value stores waar je iets met je UI kunt doen.

Android styling

Het grappige is dat ze allemaal beginnen met een style-tag.

  • Een stijl wordt toegepast op een enkele weergave. Je moet een stijl gebruiken wanneer je dezelfde UI wilt voor gerelateerde componenten. 
  • De TextAppearance attribuut werkt alleen op karakterniveau, het leuke aan dit attribuut is dat het programmatisch kan worden ingesteld.
  • Een thema wordt toegepast op een app of een activiteit. De naam van de methode setTheme kan niet worden gereset nadat de view is gevuld. 

Deze lezing was heel interessant omdat we zien dat er veel benaderingen zijn die je kunt gebruiken voor thematisering en styling in je android-applicatie.

Talk – Ship it safe: Guillerme Rambo

De lezing van Guillerme over privacy en hoe te werken met gegevens was zeer interessant. Guillerme gaf ons veel tips en tricks over hoe te werken met data en hoe de gebruiker te overtuigen dat zijn data alleen gebruikt wordt als het nodig is.

Appbuilders

Data

Guillerme’s mening:

  • Verzamel geen gegevens die je niet nodig hebt. Verzamel alleen wat je echt nodig hebt.
  • Vraag de gebruiker alleen toestemming als hij de camera echt nodig heeft. Vraag dit ook niet bij het opstarten.
  • Wees voorzichtig met SDK’s van derden. Elke SDK die in de app is gelinkt heeft ook toegang tot de locatie wanneer er toestemming wordt gegeven.

Wanneer je SDK’s van derden verzendt, is de code jouw verantwoordelijkheid.

  • Met CloudKit kan je gebruikersgegevens opslaan en ben je er niet verantwoordelijk voor wanneer het is opgeslagen in de privécontainer.
  • Je kan Cloudkit Rest API in android gebruiken.
  • Deze gebruikersgegevens moet je op het apparaat verwerken en alleen naar de server die je echt nodig hebt sturen.
  • Je hebt een pushmeldingextensie die CloudKit oproept, zodat gevoelige gegevens niet in de pushmeldingen staan.
  • Het recht op gegevensbescherming kan worden ingesteld in plist. Wanneer je een bestand op schijf schrijft, kan je een gegevensbeschermingsniveau instellen.
  • os_log kan alle of alleen openbare gegevens tonen.
  • Sluit alles uit van Back-ups die kunnen worden nagemaakt.
  • Setup HTTPS
  • Blokkeer standaard ongecodeerde oproepen in App Transport Security, maar je kunt domeinen uitsluiten wanneer dat nodig is.
  • Http Strict Transport Security voor backend kan worden gebruikt.
  • SSL pinning zodat proxy- en man-in-the-middle-aanvallen niet toegestaan zijn.
  • DeviceCheck: zorg ervoor dat de klant een echt apparaat is dat de app heeft geïnstalleerd, geef deze token door aan de backend en de backend kan een Apple API controleren om deze device token te controleren.

Transparantie

Leg wat je verzamelt uit in de taal van de gebruiker (niet in advocatentaal). Leg altijd uit wat de implicaties voor de privacy zijn. Voorbeeld: NSCameraUsageBeschrijving.

Controle

  • De gebruikers controle geven over hun gegevens
  • Je kunt analytics uitschakelen
  • Geef gebruikers toegang tot al hun gegevens (GDPR)
  • Gebruikers toestaan om al hun gegevens te verwijderen

Eten en drinken op de appbuilders conferentie

Lugano is het Italiaanse deel van Zwitserland, dus de ochtend en de koffiepauzes waren echt geweldig. Elke ochtend waren er croissants met verschillende soorten beleg en voor de lunch was er een buffet met veel keuze.

Appbuilders breakfast

Conferentiefeest

Het conferentiefeest was een goed georganiseerd en gezellig evenement. Oh, ik het bijna vergeten te zeggen, ER WAS GRATIS DRINKEN.

Appbuilders

Conclusie

Appbuilders was een geweldige conferentie, de organisatie was geweldig, de sprekers zijn matuur en de onderwerpen waren zeer interessant. Het werd bovendien gehouden in een prachtige stad rond het Luganomeer. We raden alle native mobile developers aan om naar Appbuilders conferentie te gaan. Hopelijk ontmoeten we elkaar volgend jaar in Lugano.

Naam

Appbuilder

Datum

29 April 2019 - 30 April 2019

Locatie

Lugano, Switzerland

Thema

Mobile

Gaan of niet gaan naar JSHeroes conferentie, dat is de vraag

Lees meer
JSHeroes