From iOS- to Vapor Developer (Øredev)

From iOS- to Vapor Developer (Øredev)

Diving into server-side Swift can seem straightforward at first if one knows the programming language, but it might be harder than you think since it involves developing on a new platform. I will walk you through my journey coming from iOS into Vapor, what challenges I faced, and which strengths I had coming from the iOS platform. I will talk about how these challenges can be overcome and I will share my experiences after working with Vapor in production for 6 months.

Talk given at Øredev 2017 on the 9th of November 2017.

9993186221ec65f6f10db0dc9cff7c07?s=128

Steffen D. Sommer

November 09, 2017
Tweet

Transcript

  1. 2.
  2. 3.
  3. 4.
  4. 6.
  5. 7.
  6. 9.
  7. 10.

    !

  8. 11.

  9. 12.

    !"

  10. 13.
  11. 14.

    !"

  12. 15.

    !

  13. 16.

    • Swi% • Fast • Code share • More fullstack

    developers • Xcode • Big community • Be part of the development
  14. 18.
  15. 19.

    !

  16. 20.
  17. 21.
  18. 22.

  19. 23.

    !

  20. 24.

    • New language • New package manager • New framework

    • Xcode • Limited hos9ng op9ons • Less libraries compared to other web frameworks
  21. 26.

    • JavaScript (1995): 22 years • Java (1996): 21 years

    • Ruby (1996): 21 years • Swi$ (2014): 3 years
  22. 28.

    • Spring MVC (2002): 15 years • Ruby on Rails

    (2004): 13 years • Express (2010): 7 years • Kitura/Perfect/Vapor (2016): 1 year
  23. 30.
  24. 34.
  25. 39.
  26. 40.

    import Vapor let drop = try Droplet() drop.get("hello") { req

    in return "Hello, world." } try drop.run()
  27. 41.
  28. 42.
  29. 45.
  30. 50.

    • Users do not want to wait for requests to

    return • More performance = more money
  31. 58.
  32. 59.
  33. 95.

    • Lots of moving targets (Swi3, Vapor, Vapor Cloud) •

    Overhead in crea,ng and maintaining open source packages
  34. 96.

    • Lots of moving targets (Swi3, Vapor, Vapor Cloud) •

    Overhead in crea?ng and maintaining open source packages • Lack of documenta.on
  35. 97.

    • Lots of moving targets (Swi3, Vapor, Vapor Cloud) •

    Overhead in crea?ng and maintaining open source packages • Lack of documenta?on • Outdated resources
  36. 98.

    • Lots of moving targets (Swi3, Vapor, Vapor Cloud) •

    Overhead in crea?ng and maintaining open source packages • Lack of documenta?on • Outdated resources • Few experts
  37. 99.

    • Lots of moving targets (Swi3, Vapor, Vapor Cloud) •

    Overhead in crea?ng and maintaining open source packages • Lack of documenta?on • Outdated resources • Few experts • Lots of boilerplate
  38. 100.

    • Lots of moving targets (Swi3, Vapor, Vapor Cloud) •

    Overhead in crea?ng and maintaining open source packages • Lack of documenta?on • Outdated resources • Few experts • Lots of boilerplate • Linux quirkiness
  39. 103.
  40. 104.

    • Updates are slowing down (Swi3 and Vapor) • Vapor

    Cloud reached 1.0 and is stable • We don't create as many open source packages anymore
  41. 105.

    • Updates are slowing down (Swi3 and Vapor) • Vapor

    Cloud reached 1.0 and is stable • We don't create as many open source packages anymore • Documenta*on is improving
  42. 106.

    • Updates are slowing down (Swi3 and Vapor) • Vapor

    Cloud reached 1.0 and is stable • We don't create as many open source packages anymore • DocumentaDon is improving • More and more resources
  43. 107.

    • Updates are slowing down (Swi3 and Vapor) • Vapor

    Cloud reached 1.0 and is stable • We don't create as many open source packages anymore • DocumentaDon is improving • More and more resources • Bigger community - more experts
  44. 108.

    • Updates are slowing down (Swi3 and Vapor) • Vapor

    Cloud reached 1.0 and is stable • We don't create as many open source packages anymore • DocumentaDon is improving • More and more resources • Bigger community - more experts • Less boilerplate
  45. 109.

    • Updates are slowing down (Swi3 and Vapor) • Vapor

    Cloud reached 1.0 and is stable • We don't create as many open source packages anymore • DocumentaDon is improving • More and more resources • Bigger community - more experts • Less boilerplate • Swi$ on Linux is more mature
  46. 114.

    • 25+ customer projects • 30+ open source packages •

    Hos7ng fees are going down • More and more of our iOS developers starts to catch up
  47. 115.

    • 25+ customer projects • 30+ open source packages •

    Hos7ng fees are going down • More and more of our iOS developers starts to catch up • We develop faster
  48. 116.

    • 25+ customer projects • 30+ open source packages •

    Hos7ng fees are going down • More and more of our iOS developers starts to catch up • We develop faster • Less bugs than before making the switch
  49. 118.

    Resources • Vapor docs: h-ps:/ /docs.vapor.codes/2.0/ • Vapor Slack: h-p:/

    /vapor.team • Vapor @Nodes: h-ps:/ /github.com/nodes-vapor • SwiBConf '17 @gtranchedone: h-ps:/ /www.youtube.com/ watch?v=IuW_hLCsIeQ