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

「開発初心者は何がわからないのか」 わからないを言語化するヒント

Marina Nakagawa
September 20, 2018
790

「開発初心者は何がわからないのか」 わからないを言語化するヒント

Marina Nakagawa

September 20, 2018
Tweet

Transcript

  1. 1
    ʮ։ൃॳ৺ऀ͸Կ͕Θ͔Βͳ͍ͷ͔ʯ
    Θ͔Βͳ͍ΛݴޠԽ͢Δώϯτ
    ೔ຊܦࡁ৽ฉࣾɹத઒ ສᣦಸ
    iOSDC2018 reject con

    View Slide

  2. 2
    Marina Nakagawa
    @marina10172013(·Γʔͳ)
    ೔ຊܦࡁ৽ฉࣾͷiOSΤϯδχΞ
    ిࢠ൛ΞϓϦɼࢴ໘ϏϡʔΞʔΞϓϦͷ։ൃ
    Adobe੡඼޷͖Ͱ͢

    View Slide

  3. 3
    ຊ೔࿩͢͜ͱ
    ࢲͷ͜Ε·Ͱͷঢ়گ
    ࣗ෼͕ͭ·͍ͮͨͱ͜Ζ
    1
    2
    ·ͱΊ
    3
    ͓͢͢Ίॻ੶ͱࢿྉ
    4

    View Slide

  4. 4
    ࢲͷ͜Ε·Ͱͷঢ়گ
    1

    View Slide

  5. 5
    େֶ࣌୅
    ৘ใͱσβΠϯΛֶͿֶՊ
    !Processing΍openFrameworksͰͪΐͬ͜ͱϓϩάϥϛϯά

    !ArduinoͰిࢠ޻࡞
    Ϋϥε(तۀͰͪΐͬͱ΍ͬͨؾ͕͢Δɾɾ)

    gitʁͳʹͦΕʁ

    View Slide

  6. 6
    ࣾձਓ(৽ଔ)
    ͱʹ͔͘Θ͔Βͳ͍

    View Slide

  7. 7
    ྫจ
    ࣍ͷόʔδϣϯͷϒϥϯν͸2.5.0͚ͩͲɺઌʹ!!ϒϥϯνʹ৽ػೳ
    ΛೖΕͯΔ͔ΒϑΣονͯ͠ɺͦͷϒϥϯν͔Β੾ͬͯͶ

    ऴΘͬͨΒ!!ϒϥϯνʹϚʔδ͓͍ͯͯ͠Ͷ

    View Slide

  8. 8
    ྫจ
    ࣍ͷόʔδϣϯͷϒϥϯν͸2.5.0͚ͩͲɺઌʹ!!ϒϥϯνʹ৽ػೳ
    ΛೖΕͯΔ͔ΒϑΣονͯ͠ɺͦͷϒϥϯν͔Β੾ͬͯͶ

    ऴΘͬͨΒ!!ϒϥϯνʹϚʔδ͓͍ͯͯ͠Ͷ

    View Slide

  9. 9
    ྫจ
    ࣍ͷόʔδϣϯͷϒϥϯν͸2.5.0͚ͩͲɺઌʹ!!ϒϥϯνʹ৽ػೳ
    ΛೖΕͯΔ͔ΒϑΣονͯ͠ɺͦͷϒϥϯν͔Β੾ͬͯͶ

    ऴΘͬͨΒ!!ϒϥϯνʹϚʔδ͓͍ͯͯ͠Ͷ
    ओޠ΋ಈࢺ΋ड़ޠ΋Θ͔Βͳ͍

    View Slide

  10. 10
    ྫจ
    ࣍ͷόʔδϣϯͷϒϥϯν͸2.5.0͚ͩͲɺઌʹ!!ϒϥϯνʹ৽ػೳ
    ΛೖΕͯΔ͔ΒϑΣονͯ͠ɺͦͷϒϥϯν͔Β੾ͬͯͶ

    ऴΘͬͨΒ!!ϒϥϯνʹϚʔδ͓͍ͯͯ͠Ͷ
    ΋ͪΖΜiOS΋Θ͔ΔΘ͚ͳ͍

    View Slide

  11. 11
    Vim?Git?ViewController?push?AWS?
    Server?merge?breakpoint?Accessibility
    Carthage?CocoaPods?pull Request?Vie
    object-orientation?pull?fetch?Asynchro
    processing?Vim?Git?ViewController?pu
    AWS?Server?merge?breakpoint Vim
    Accessibility?Carthage?rbenv?CocoaPo
    pull Request?View?object-orientation?p

    View Slide

  12. 12
    ࣗ෼͕ͭ·͍ͮͨͱ͜Ζ
    2

    View Slide

  13. 13
    ೖࣾ࣌ͷ໨ઢͰίʔυΛݟͯΈΔ

    View Slide

  14. 14
    class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }

    View Slide

  15. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    15
    ͑ͬɹViewControllerͬͯͳʹʁ
    ϧʔϓͲ͜ʁʁʁ
    ProcessingͩͬͨΒdraw()ؔ਺Έ͍ͨͳ΍ͭͲ͜΍ɾɾɾ

    ྫ ↓͜Μͳ΍ͭ
    void setup() {
    size(250, 250);
    frameRate(20);
    }
    void draw() {
    background(0);
    ellipse(width/2, height/2, mouseX, mouseY);
    }

    View Slide

  16. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    16
    overrideɾɾɾɾʁ

    View Slide

  17. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    17
    ͜ͷselfͬͯԿʁ

    Ͳ͏ͯ࣍͠ʹ.view͕ͭͳ͕Δͷʁ

    View Slide

  18. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    18
    ͜Εؔ਺͔ͳʁʁ

    View Slide

  19. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    19
    labelͷtextʹ୅ೖͯ͠ΔΒ͍͠
    ͜Ε͸Θ͔Δ

    View Slide

  20. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    20
    ͜ͷ {}Ͱғ·ΕͯΔͷ͸ԿʁͳΜͰ{}ͰғΉͷʁ

    View Slide

  21. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    21
    .verticalΛ୅ೖ͢ΔͬͯԿʁʁɹ͜ͷ఺(.)Կʁ

    View Slide

  22. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    22
    ͳΜͰಥવreturn͢Δͷ

    View Slide

  23. class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints = false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    ~~~~~~~~~~~~~~~~~~লུ~~~~~~~~~~~~~~
    }
    }
    23
    ͜ͷ࠷ޙͷ()ԿʁʁͳΜͰඞཁͳͷʁ

    View Slide

  24. 24
    ໰୊ͷ੾Γ෼͚͕Ͱ͖͍ͯͳ͍
    Swiftͷจ๏ʁఆٛͷಡΈํʁUIKitͷ࢖͍ํʁ


    View Slide

  25. 25
    ͜Ε·Ͱࣗ෼͕ಛʹͭ·͍͍ͣͯͨ

    ϙΠϯτΛ঺հ͠·͢

    View Slide

  26. 26
    ಛʹͭ·͍ͮͨϙΠϯτ
    Swiftͷจ๏(Ϋϩʔδϟʔ)
    Ϋϥεͷ֓೦ɺΦϒδΣΫτࢦ޲
    1
    2

    View Slide

  27. 27
    import UIKit
    class MyClass {
    var msg = "ϋϩʔ"
    func hello(){
    print(msg)
    }
    }
    class ViewController: UIViewController {
    override func viewDidLoad() {
    super.viewDidLoad()
    let myObj = MyClass()
    myObj.hello()
    myObj.msg = "͸͍"
    myObj.hello()
    ~~~~~লུ~~~~~
    }
    class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints =
    false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    }
    }
    ৄࡉ!Swift3iPhoneΞϓϦ։ൃೖ໳ϊʔτΑΓൈਮ
    ΫϥεΛཧղ͔ͨͬͨ͠ͷͰ·ͣ͸ࣸܦΛͯ͠Έͨ

    View Slide

  28. 28
    import UIKit
    class MyClass {
    var msg = "ϋϩʔ"
    func hello(){
    print(msg)
    }
    }
    class ViewController: UIViewController {
    override func viewDidLoad() {
    super.viewDidLoad()
    let myObj = MyClass()
    myObj.hello()
    myObj.msg = "͸͍"
    myObj.hello()
    ~~~~~লུ~~~~~
    }
    class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints =
    false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    }
    }
    ৄࡉ!Swift3iPhoneΞϓϦ։ൃೖ໳ϊʔτΑΓൈਮ
    ࣗ෼Ͱॻ͍ͨ͠

    ఆٛͷ࢓ํ͸Θ͔Δͧ
    ͳΜͱͳ͘ཧղͰ͖ͨؾʹͳΔ

    View Slide

  29. 29
    import UIKit
    class MyClass {
    var msg = "ϋϩʔ"
    func hello(){
    print(msg)
    }
    }
    class ViewController: UIViewController {
    override func viewDidLoad() {
    super.viewDidLoad()
    let myObj = MyClass()
    myObj.hello()
    myObj.msg = "͸͍"
    myObj.hello()
    ~~~~~লུ~~~~~
    }
    class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    let myStackView: MyStackView = {
    let myStackView = MyStackView()
    myStackView.axis = .vertical
    myStackView.translatesAutoresizingMaskIntoConstraints =
    false
    myStackView.title = "ͯ͢ͱͯ͢ͱ"
    return myStackView
    }()
    }
    }
    ৄࡉ!Swift3iPhoneΞϓϦ։ൃೖ໳ϊʔτΑΓൈਮ
    ͳΜͱͳ͘Θ͔ͬͨͧ
    ͳΜͱͳ͘ཧղͰ͖ͨؾʹͳΔ

    View Slide

  30. 30
    import UIKit
    class MyClass {
    var msg = "ϋϩʔ"
    func hello(){
    print(msg)
    }
    }
    class ViewController: UIViewController {
    override func viewDidLoad() {
    super.viewDidLoad()
    let myObj = MyClass()
    myObj.hello()
    myObj.msg = "͸͍"
    myObj.hello()
    ~~~~~লུ~~~~~
    }
    class ViewController: UIViewController{
    override func viewDidLoad() {
    self.view.backgroundColor = UIColor.white
    let label = UILabel()
    label.text = "aaaa"
    label.textColor = UIColor.blue
    ৄࡉ!Swift3iPhoneΞϓϦ։ൃೖ໳ϊʔτΑΓൈਮ
    ࣮ࡍͷΞϓϦ։ൃͰԠ༻͕͖͔ͳ͍
    ͑ͬ͜ͷtextͲ͔͜Β͖ͨʁ
    ࣗ෼Ͱॻ͍ͯͳ͍Α
    ͑ͬࠓ·ͰMyClassͬͯॻ͍ͯͨͷʹ

    UILabel()ͬͯԿʁʁʁ

    View Slide

  31. 31
    ॳ৺ऀ༻ͷຊͱ࣮ࡍʹ࢖͏Ϋϥεͷઆ໌ʹ͕ࠩ͋Δ

    View Slide

  32. 32
    Ͳ͏΍ͬͯղܾͨ͠ͷʁ

    View Slide

  33. 33
    ࢲͷ৔߹ɹ
    ϝϯλʔʹࣗ෼ͷߟ͑ΛݴͬͯؒҧͬͯͨΒࢦఠͯ͠΋Βͬͨ
    @available(iOS 2.0, *)
    open class UILabel : UIView, NSCoding, UIContentSizeCategoryAdjusting {
    open var text: String? // default is nil
    open var font: UIFont! // default is nil (system font 17 plain)
    ͜ΕϓϩύςΟ໊ͩΑͶʁ
    ͜ΕͬͯΫϥε໊Ͱ͢ΑͶʁ ͜Ε͸਌Ϋϥε͔ͳʁ
    ͜Ε͸ϓϩτίϧ͔ͳʁ
    ͜Ε͸ܕͩΑͶʁ

    View Slide

  34. 34
    ఆٛͷಡΈํΛॻ͍ͯ͋Δೖ໳ॻ͕ແͯ͘ࠔͬͨɾɾ
    ཉ͍͠৘ใ͸

    ͜͏ͨ͠ΒͰ͖Δ͡Όͳͯ͘

    Ͳ͏͍͏ߟ͑ํΛͯ͠ɺͦ͏͍͏ίʔυʹͳͬͨͷ͔ͳͷʹɾɾ

    View Slide

  35. 35
    ಛʹͭ·͍ͮͨϙΠϯτ
    Swiftͷจ๏(Ϋϩʔδϟʔ)
    Ϋϥεͷ֓೦ɺΦϒδΣΫτࢦ޲
    1
    2

    View Slide

  36. 36
    ಛʹ઀ඌΫϩʔδϟʔɹলུ͕೉͍͠
    //Ҿ਺͕ΫϩʔδϟʔͰҰ͔ͭ͠ͳ͍৔߹ͷྫ
    let array = [1,2,3,4,5]
    let newArray = array.map({ $0 * 2 })
    //↑[2, 4, 6, 8, 10]ʹͳΔ
    //ޙஔه๏Ͱॻ͘ͱ
    let newArray = array.map(){ $0 * 2 }
    //↓΋ͬͱলུ͢Δͱ()Λলུͯ͠΋͍͍
    //ʢωοτͰௐ΂ͯ΋ԼهͷΑ͏ͳྫͰॻ͔Ε͍ͯͯলུ͞ΕͯΔͷʹؾ͕͔ͭͳ͍ʣ
    let newArray = array.map{ $0 * 2 }

    View Slide

  37. 37
    ࣮ࡍʹͲ͏͍͏ͱ͜ΖͰ٧·Δͷ͔(ϦΫΤετΛૹΔྫ)
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    let task = URLSession.shared.dataTask(with: request){ (data, response, error) in
    guard let data = data else { return }
    ~~~~~~~ লུ ~~~~~~~~~
    }
    ͳΜͰؔ਺ͷޙΖʹ{}͕͍ͭͯΔΜͩɾɾɾ

    (઀ඌΫϩʔδϟʔͬͯؾ͕͍͍ͭͯͳ͍)

    View Slide

  38. 38
    ࣮ࡍʹͲ͏͍͏ͱ͜ΖͰ٧·Δͷ͔(ϦΫΤετΛૹΔྫ)
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    let task = URLSession.shared.dataTask(with: request){ (data, response, error) in
    guard let data = data else { return }
    ~~~~~~~ লུ ~~~~~~~~~
    }
    ͜ͷ data , response, errorͬͯͲ͏ͯ͠

    w w w w w w w w w w w w w w w w w w w w w w w w w
    ͜Μͳ໊લΛ͚ͭͨͷʁ

    w w w w w w w w w w
    Ͳ͜ΛΈͯͦ͏ॻ͚ΔͬͯΘ͔ͬͨͷʁ
    w w w w w w w w w w w w w w w w w

    View Slide

  39. 39
    dataTaskͷఆٛΛݟͯΈΔ(ॳ৺ऀࢹ఺)
    open func dataTask(with request: URLRequest, completionHandler: @escaping
    (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask

    View Slide

  40. 40
    dataTaskͷఆٛΛݟͯΈΔ(ॳ৺ऀࢹ఺)
    ͋ΕʁҾ਺͕̏ͭʁʁʁʁʁ

    (ϥϕϧͰ͋Δ͜ͱʹؾ͕͍͍ͭͯͳ͍)

    ͜ͷwithͱྡͷrequestԿ͕͕ͪ͏Μͩʁʁ
    ΋͏μϝͩΘ͔Βͳ͍ɾɾɾ
    open func dataTask(with request: URLRequest, completionHandler: @escaping
    (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask

    View Slide

  41. 41
    dataTaskͷఆٛΛݟͯΈΔ
    open func dataTask(with request: URLRequest, completionHandler: @escaping
    (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask
    ໼ҹ͕͍ͬͺ͍ͰԿ͕ͳΜ͔ͩɾɾɾ

    Θ͔Βͳ͍ɾɾɾɾ

    ΋͏͍͍΍ɾɾɾఘΊ

    View Slide

  42. 42
    ࠓͩͬͨΒͲ͏ݟ͑Δͷ͔

    View Slide

  43. 43
    dataTaskͷఆٛΛݟͯΈΔ(ࠓͩͬͨΒ)
    open func dataTask(with request: URLRequest, completionHandler: @escaping
    (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask
    ·ͣ͸ୈҰҾ਺
    with͸ϥϕϧ໊ͩͳ

    request͸Ҿ਺໊

    ͜͜ʹೖΔҾ਺ͷܕ͸URLRequestͩͳ

    View Slide

  44. 44
    dataTaskͷఆٛΛݟͯΈΔ(ࠓͩͬͨΒ)
    open func dataTask(with request: URLRequest, completionHandler: @escaping
    (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask
    ୈೋҾ਺ͷҾ਺໊͸CompletionHandlerͩͳ

    ೖΔܕ͸ɾɾɾ͋ͬɹ͍ͭ͜Ϋϩʔδϟʔͩ

    ͲΜͳΫϩʔδϟʔ͔ͱ͍͏ͱ(Data?ܕ, URLResponse?ܕ, Error?ܕ)ͷҾ਺ͰฦΓ஋͕Swift.VoidܕͳΜͩͶ
    @escaping͕͍͍ͭͯΔͱ͍͏͜ͱ͸ڧࢀর͔ඇಉظͰ࣮ߦ͞ΕΔͷ͔ͳʁ

    Ϋϩʔδϟʔͱ͍͏͜ͱ͸઀ඌΫϩʔδϟʔͰୈೋҾ਺ʹೖΕͣʹޙΖʹ͚ͬͭͯ͘΋OKͩΑͶ

    View Slide

  45. 45
    dataTaskͷఆٛΛݟͯΈΔ(ࠓͩͬͨΒ)
    open func dataTask(with request: URLRequest, completionHandler: @escaping
    (Data?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDataTask
    ͜ͷؔ਺ͷฦΓ஋ͷܕ͸URLSessionDataTaskͳͷ͔

    View Slide

  46. 46
    Ͳ͏΍ͬͯղܾͨ͠ͷʁ

    View Slide

  47. 47
    ؔ਺ͷޙΖͷ{}͕Θ͔Βͳ͍ͷʹ
    ໊લ͕Θ͔Βͳͯ͘άάΕͳ͍ɾɾɾɾɾɾ
    ผͷௐ΂෺Λͯͨ͠Βɺ
    ͨ·ͨ·઀ඌΫϩʔδϟʔͷઆ໌ʹग़ձͬͨ

    View Slide

  48. 48
    ·ͱΊ
    3

    View Slide

  49. 49
    ॳ৺ऀͷํ΁
    Θ͔Βͳͯ͘΋खΛಈ͔͕͢େࣄ͔΋
    ΍͍ͬͯ͘͏ͪʹҙ֎ͱΈ͖͑ͯͨ
    ॳ৺ऀຊ਺࡭ࣸܦ
    →ͳΕ͖ͯͨΒࣸܦͨ͠ίʔυͷதͰCommandʴΫϦοΫͰఆٛΛݟͯΈΔ
    →ఆٛΛղऍͯ͠ΈΔ
    →ܦݧऀʹ߹ͬͯΔ͔ฉ͍ͯΈΔ

    View Slide

  50. 50
    ͜Μͳײ͡Ͱఆٛͷ෼ྨ(Ҿ਺໊ɺܕɺฦΓ஋ͷܕ)͔Β͸͡ΊͯΈΔ
    open func dataTask(with request: URLRequest,
    completionHandler: @escaping (Data?, URLResponse?,
    Error?) -> Swift.Void) -> URLSessionDataTask
    ୈҰҾ਺ʹ໊̎ͭલ͕ೖͬͯΔ

    with͸ϥϕϧ໊Ͱɹrequest͕Ҿ਺໊ͩͶ
    ؔ਺ݺ͹ΕΔͱ͖ʹ࢖ΘΕΔͷ͸withͩͶ
    ୈҰҾ਺ͷܕ͸URLRequestܕͩ
    ୈҰҾ਺
    ୈೋҾ਺
    ୈҰҾ਺ͷܕ
    ୈೋҾ਺ͷܕ
    ฦΓ஋ͷܕ

    View Slide

  51. 51
    ܦݧऀͷํ΁
    ॳ৺ऀ͸໰୊Λ෼ׂ͢Δ͜ͱ͕೉͍͠Ͱ͢ɾɾɾ
    Swiftͷจ๏ͷ໰୊ʁ

    ఆٛͷಡΈํͷ໰୊ʁ
    UIKitͷ࢖͍ํʁ

    Xcodeͷ࢖͍ํʁ
    ໰୊ͷ෼ׂͷ࢓ํ
    ߟ͑ํΛڞ༗͢Δ
    Λҙࣝ͢Δ
    ↑ϝϯλʔͱνʔϜͷօ͞Μʹ
    ҭͯͯ΋ΒͬͯΑ͔ͬͨͳͱࢥ͍·ͨ͠

    View Slide

  52. 52
    ͓͢͢Ίॻ੶
    4

    View Slide

  53. 53
    ͜Ε͔Βͭ͘ΔiPhoneΞϓϦ։ൃೖ໳
    ͱΓ͋͑ͣΞϓϦΛ࡞Δ͜ͱ͸Ͱ͖Δ͚Ͳ
    ࣗ෼ͰԠ༻ɾൃలͤ͞Δʹ͸ݫ͔ͬͨ͠
    ΄Μͱʹ͔̌ΒͩͬͨΒɺָ͘͠Ͱ͖Δͱࢥ͏

    https://www.sbcr.jp/products/4797387148.html

    View Slide

  54. 54
    https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/#//apple_ref/doc/uid/TP40015214-CH2-SW1
    Start Developing iOS Apps (Swift)
    AppleެࣜνϡʔτϦΞϧ

    جຊతͳTableViewͷ࢖͍ํɺϖʔδભҠɺςετͷ΍Γํ·Ͱղઆ͞Ε͍ͯΔ


    View Slide

  55. 55
    Start Developing iOS Apps (Swift)ͷ೔ຊޠ༁͕ίʔε಺༰

    ӳޠ͕ݫ͍͠ਓ͸ͪ͜Β͕͓͢͢Ί

    N༧උߍiPhoneίʔε
    https://www.nnn.ed.nico/

    View Slide

  56. 56
    iOSΞϓϦ։ൃɹσβΠϯύλʔϯೖ໳
    ਖ਼௚Ұ೥લʹग़ձ͍͔ͨͬͨຊ
    ೖ໳ॻΛ਺࡭औΓ૊Μͩ͋ͱʹಡΉͱ
    ͜Ε͕஌Γ͔ͨͬͨΜͩʹग़ձ͑ͨຊ

    !ϓϩτίϧࢦ޲
    !ίʔυͰϨΠΞ΢τΛ૊Ή

    !ϚϧνεϨου
    !WebAPIͷୟ͖ํ(Postman)
    !σβΠϯύʔλϯ https://nextpublishing.jp/book/9798.html

    View Slide

  57. 57
    ೔ຊܦࡁ৽ฉࣾओ࠵ େखொSwiftษڧձ΍ͬͯ·͢
    ࣍ճ͸10݄16೔ʢՐʣେखொ೔ܦϏϧ಺Ͱ։࠵ʂ

    View Slide

  58. 58
    ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide