Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Server-side Swift

Server-side Swift

Avatar for Petr Pavlik

Petr Pavlik

June 20, 2016
Tweet

More Decks by Petr Pavlik

Other Decks in Programming

Transcript

  1. Swift struct User { let id: String = guuid() var

    name: String var aboutMe: String? } var user = User(name: "Petr", aboutMe: nil)
  2. Swift var user = User(name: "Petr", aboutMe: nil) user.aboutMe =

    "something creative" //ok let immutableUser = user immutableUser.aboutMe = "!"#" //error
  3. What Is Open Source • Swift Compiler • Foundation Framework

    & GCD • Networking, calendar, filesystem, threading, ...
  4. What Is Open Source • Swift Compiler • Foundation Framework

    & GCD • Networking, calendar, filesystem, threading, ... • Swift Package Manager • Dependency manager
  5. What Is Open Source • Swift Compiler • Foundation Framework

    & GCD • Networking, calendar, filesystem, threading, ... • Swift Package Manager • Dependency manager • XCTest • Unit testing
  6. Package.swift import PackageDescription let package = Package( name: "example", dependencies:

    [ .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 17) ])
  7. main.swift import Kitura let router = Router() router.get("/") { request,

    response, next in response.send("Hello, World!") next() }
  8. main.swift import Kitura let router = Router() router.get("/") { request,

    response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router)
  9. main.swift import Kitura let router = Router() router.get("/") { request,

    response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router) Kitura.run()
  10. main.swift import Kitura let router = Router() router.get("/") { request,

    response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router) Kitura.run() //!
  11. Example App Example ├── Package.swift ├── Sources │ └── main.swift

    ├── Packages │ └── Kitura-0.16.1 │ └── Kitura-net-0.16.0 │ └── Kitura-Sys-0.16.0 │ └── LoggerAPI-0.8.0 └── .build └── debug └── example