try! Swift recap! 1st day AM #tryswiftconf

Notice

This is a translated version of the article below written by Jun Kato. I translated the article. Because I'm not a bilingual, it may contain mistranslations. It will be good if you can feel atmosphere of try!Swift :)

  • try! Swift 最速レポート 1日目午前
  • Our repors

    Translated versions (still on the way to translate!)

    • try!Swift recap! 1st day PM #tryswiftconf
    • try!Swift recap! 2nd day AM #tryswiftconf
    • try!Swift recap! 2nd day PM #tryswiftconf
    • try!Swift recap! 3rd day AM #tryswiftconf
    • try!Swift recap! 3rd day PM #tryswiftconf

    Original Japanese versions

    try! Swift A fastest report for 1st day

    Hi! It's Jun Kato. I'm at try! Swift - a huge conference of/for the Swift developers! This event's purpose is to gather at one place and share knowledges and tech skills. It will be 3-days event. Developers.IO (this blog) will deliver articles of this event! Let's get started!!

    Contents

    Breakfast

    I could eat a fashionable cookie!

    try_swift_breakfast

    Opening Announcements

    • There was an explanation of a meeting place and simultaneous translation by a staff of CYBER AGENT. The event was held at the hall at CYBER AGENT.
    • Kishikawa (Realm) explained about this conference and a notices during the sessions.
      • It was 3-days-event and there were 33 sessions, and 26 26 sessions by speaker from overseas.
      • Simultaneous translation is served: Japanese and English.

      try_swift_kishikawa_katsumi

    Dive into Swift Ecosystem

    Presented by Syo Ikeda

    try_swift_syo_ikeda

    Material

    Report

    • Swift became an open source language 3 months ago. There are about 1500 pull requests so far.
    • Services around Swift.
      • IBM Swift Sandbox
      • paiza.IO
      • Heroku with Buildpacks
      • Swift@IBM
      • OpenWhisk
      • SwiftDoc.org
      • CocoaDocs
    • CI
    • Code Coverage
      • Codecov
      • HoundCI
    • Development toolw around Swift
      • Carthage
      • CocoaPods
      • Swift Package Manager
      • SourceKitten
      • SwiftLInt
      • jazzy
      • SourceKittenDaemon
      • Buildasaur
      • XcodeServerSDK
      • SwiftGen
      • R.swift
      • Quick
      • Spectre
    • Contributing to the services and tools
      • Try to use tool and services if you're interested in.
      • Give Stars your favorites at GitHub - Developers will be delighted!
      • It's better to report bugs with logs and how to reproduce the situation.
      • You will be able to answer the questions from others while you're accostomed to use services and tools.
      • Let's try to send pull requests!
        • It's good to fix typo and mistranslation.

    Q&A

    • Are there any libraries you want to contribute?
      • I want to contribute to Apple's Swift and foundation.
    • Is SourceKittenDaemon already packaged?
      • There is a sample to complete codes using SourceKittenDaemon at GitHub repository.
    • Which of the package managers will survive?
      • I think Swift Package Manager will survive in the end.

    Practical Cross-Platform Swift

    Presented by JP Simard

    try_swift_jp_simard

    Material

    Report

    • Development Environment of Swift
      • XCODE
      • XCODE + TOOLCHAIN
      • DOCKER + CLI + EDITOR
    • Swift Package Manager
      • It's recommended in case of cross-platform development.
    • There are cases of errors when you run Swift code on Linux even though the code looks like a "pure Swift."
    • You need to check whether runtime libraries of Objective-C are used or not.
    • About Test
      • SPM TESTING
    • CI
      • TRAVIS CI(CI configurations on Linux)

    Q&A

    • Which part of Result library's casts are depending on runtime libraries of Objective-C?
      • I don't know (LOL). I'm working on debug.

    Learning to Read Again

    Presented by Laura Savino

    try_swift_laura_savino

    Report

    • Learn how to code means learining a new language.
    • It will be easier to learn 3rd language if you learn 2nd one.
    • What's readble code?
      • You need to think about readers - who they are.
    • Important code must be easy to understand.
    • Admiting you can't understand the code is almost the same thing as you can't work.
    • About working memory
    • About chunking
    • The energy is needed to decipher
    • How to code?
      • Do not use slangs.
      • Do not omit necessary information.
      • Use patterns to variable names.
    • I want you to write the code which can be read without making them decipher.

    ?(Apple TV)

    Presented by Boris Bügling

    try_swift_boris_bügling

    Report

    • About tvOS
      • The future of TV is apps (and iOS)
    • Difference between iOS and tvOS
      • WEBKIT
      • OAuth can't be used in tvOS.
      • The capacity of storage is limited on tvOS
    • Porting existing apps
      • Cocoapods 0.39.0 supports tvOS
    • Nib can't be used on tvOS.
    • Protocols on updating focuses.
    • How to debug when objects are not focused?
    • HANDOFF is not supported.
    • Siri Remote as a game controller.
    • TVML
      • TVML's use case: catalogue apps.
    • It will be nice if you know UIKit.

    Keep Calm and Type Erase On

    Presented by Gwendolyn Weston

    try_swift_gwendolyn_weston

    Report

    • What's "type?"
      • Type is a classification. Types define the set of values and effective operations for the values.
    • Concrete types and Abstract types
    • Make a wrapper class to avoid compile error that occurs when protocol-related-types are abstract.
      • Sample code is here!(Pokemon!! An attack name スピードスター in Japanese original version would be Swift in English!)
      • The information of types are erased as a side-effect (Pikachu and Raichu in a sample code)
    • Type erasure is a kind of design pattern.
    • Swift doesn't support covariance of codes

    Lunch

    Lunch boxes! I ate a lunch box containing a hamburger!

    try_swift_lunch

    Tokihiko Tamiya will report this afternoon!