Pragma iOS conference 2016


Confernce

I had my very first international iOS conference experience in my life at #Pragma in Verona, Italy. #Pragma is one of the largest iOS conferences in Europe with 20 speakers from all over the world. To name some speakers, we had Jon Reid(TDD expert from American Express), John Sundell(lead iOS dev from Spotify), Dennis Pilarinos(CEO from BuddyBuild) and Krzysztof Zablocki(iOS dev from NYTimes).

This post is a quick summary of the conference so that later I could look back and remember the stuffs I found helpful.

TDD Workshop by Jon Reid

“Let code allow us to be comfortable about changing the code”

I’m a subscriber of Jon’s blog and I read his few blog posts before the conference but it was still difficult for me to how to effectively practice TDD. He taught us how to shape the code structure incrementally by writing tests first before any production code. Here are some steps he advised us to follow:

  1. Write a failing test:
    1. Write no production code, except to pass a failing test
    2. Write only enough of tests to demonstrate a failure
  2. Make the test pass
  3. Refactor (Attention: Refactoring is NOT Rewriting)

He agrees that TDD is not easy and he told us three different levels which we can refer to.

TDD Level: Easy

  • Model objects
  • Business rules
  • Create network requests
  • Process network response

TDD Level: Intermediate

  • ViewControllers
  • Invoke user actions
  • Table views
  • Notifications

TDD Level: Hard

  • View navigations
  • File system and database
  • Analytics
  • Networking

And his pro tips:

TDD: Avoid

  • Actual
    • networking
    • file system
    • database
    • asynchronous calls
  • Loops

TDD pyramid

TDD pyramid

He pointed out that making your code as a framework will boost the testing time. Jon also gave a talk during the conference and you can find the resources on his blog.

Backend-driven UIs by John Sundell

John was the hero of #Pragma 2016. He presented how Spotify delivers their app UI using backend. They implement it by using their in-house framework HubFramework .

The great thing about Spotify is that they opensourced HubFramework!!! The solution not only brilliant for instant UI update or component-driven architecture but it is also optimal for AB testing.

“Implement features not apps!” by NatashaTheRobot

Both the growth of the number of apps people downloading and the retention rate of apps has stalled for awhile. Apple is helping apps to engage with their users more proactively by providing us iMessage extensions, Apple Watch notifications, Quick Reply on lock screen, hooking to different apps(e.g. whatsapp icon on Contants) and etc.

“I have a framework idea - Repeat less, share more” by Fabio Milano

“iOS Application Architecture” by Krzysztof Zablocki

Krzysztof is an author of popular iOS frameworks such as KZFileWatchers and KZPlaygrounds. He said Moya was a good architecture exemplary.

Traits of good architecture

  1. Each object has a clear role
  2. Ability to follow data flow with ease
  3. Doesn’t depend on any particular framework
  4. Flexibility

Design Patterns

  1. Singleton
  2. Composition -> SRP(Single Responsible Protocol)
  3. Dependency Injection

TLDR;

Picture with Jon

One of the best things about #Pragma was that you could meet many iOS dev community stars in live. Here me and Jon.

#Pragma 2016 was an amazing conference with inspiring speakers and talks. It was kinda dream come true to meet famous iOS community figures. Also, it was a great opportunity to meet fellow iOS developers from all around the world. I will never forget eating Italian gelato with fellow developers under the storm :) Last but not least, #Pragma organizers did fantastic hard work to deliver all this. Hopefully I will join #Pragma as a speaker next time!