Pro Yearly is on sale from $80 to $50! »

SwiftUIのライブコーディングす るとxcodeが◯回落ちる

SwiftUIのライブコーディングす るとxcodeが◯回落ちる

SwiftUIが発表されたWWDC2019初期から間もないプレゼンテーション資料。beta版のxcodeで実際に実演したところ表題通りxcodeが途中終了してしまった。

0fb0b8c6eecbc8e0a3981501f6a6fea6?s=128

notoroid

July 27, 2019
Tweet

Transcript

  1. 4XJGU6*ͷϥΠϒίʔσΟϯά͢ ΔͱYDPEF͕̋ճམͪΔ ͜ΕͬͯτϦϏΞʹͳΓ·ͤΜ͔

  2. ࣗݾ঺հ

  3. ೳొཁ !OPUPSPJE w J04ΞϓϦ։ൃऀ w ԰߸͍Γ·͢ిࢉاը w !OPUPSPJE w !JSJNBTV

    w Fεϙʔπ
  4. ୊໨ w 4XJGU6*ొ৔ w 4XJGU6*ϥΠϒίʔσΟϯά w ·ͱΊ

  5. ࿩͢ൣғ w 4XJGU6*5VUPSJBMTΛ࢖ͬͨϥΠϒίʔσΟϯά w $SFBUJOHBOE$PNCJOJOH7JFXT w IUUQTEFWFMPQFSBQQMFDPNUVUPSJBMTTXJGUVJDSFBUJOHBOE DPNCJOJOHWJFXT w %SBXJOH1BUITBOE4IBQFT

    w IUUQTEFWFMPQFSBQQMFDPNUVUPSJBMTTXJGUVJESBXJOHQBUIT BOETIBQFT
  6. ࿩͞ͳ͍ൣғ w ը໘ભҠ w σʔλόΠϯσΟϯά w طଘ6*ͱͷ૊Έ߹Θͤ w Ξχϝʔγϣϯ w

    04͝ͱ΁ͷ4XJGU6*ͷద༻
  7. 4XJGU6*ొ৔

  8. 88%$͸ ։ൃऀʹ੝Γ୔ࢁͷ಺༰

  9. ஫໨͸4XJGU6*

  10. 4XJGU6* w 4XJGUϕʔεͷ6*࡞੒ϑϨʔϜϫʔΫ w %4- ༻్ൣᙝݻ༗ݴޠ ͕4XJGUͰهड़Ͱ͖Δ w 4XJGUΛ%4-ʹدͤͨ w

    6*Λߏ੒͢Δجຊఆٛ͸7JFX w 7JFXΛએݴత %FDMBSBUJWF ʹهड़Ͱ͖؆ܿͳهड़͕Մೳ
  11. 4XJGU6* w 4XJGUϕʔεͷ6*࡞੒ϑϨʔϜϫʔΫ w %4- ༻్ൣᙝݻ༗ݴޠ ͕4XJGUͰهड़Ͱ͖Δ w 4XJGUʹ࢓༷Λ௥Ճͯ͠%4-ʹدͤͯ͠·͏ w

    6*Λߏ੒͢Δجຊఆٛ͸7JFX w 7JFXΛએݴత %FDMBSBUJWF ʹهड़Ͱ͖؆ܿͳهड़͕Մೳ
  12. 4XJGU6* w 4XJGUϕʔεͷ6*࡞੒ϑϨʔϜϫʔΫ w %4- ༻్ൣᙝݻ༗ݴޠ ͕4XJGUͰهड़Ͱ͖Δ w 4XJGUʹ࢓༷Λ௥Ճͯ͠%4-ʹدͤͯ͠·͏ w

    6*Λߏ੒͢Δجຊఆٛ͸7JFX w 7JFXΛએݴత %FDMBSBUJWF ʹهड़Ͱ͖؆ܿͳهड़͕Մೳ Կ
  13. એݴత %FDMBSBUJWF w ͋Δग़ྗΛಘΔʹ͋ͨͬͯͦΕΛ࡞੒͢Δํ๏Ͱ͸ͳ͘ɺग़ྗͷੑ࣭Λه ड़͢Δ͜ͱΛʮએݴܕʯͱশ͢Δ w એݴతϓϩάϥϛϯάͷʮએݴతʯͬͯʁ   w

    IUUQTTIIBUFOBEJBSZPSHFOUSZ w )5.-͸એݴత
  14. "QQMFͱͯ͠͸

  15. એݴతͳهड़ΛՄೳͱ͠ એݴతͳهड़ʹ׳Ε͍ͯΔ ࡞Γख 8FC։ൃऀ Λݺͼد͍ͤͨ

  16. એݴతͳख๏Λఏڙ͢Δ͜ͱͰ ༷ʑͳ04 J04 NBD04 XBUDI04 Ͱ ಉ͡ख๏Λద༻Ͱ͖ΔΑ͏ʹ͍ͨ͠

  17. "QQMFͷ4XJGU6*ಋೖ w એݴతͳهड़ΛՄೳͱ͠એݴతͳهड़ʹ׳Ε͍ͯΔ࡞ΓखΛݺͼد͍ͤͨ w એݴతͳख๏Λఏڙ༷͠ʑͳ04Ͱಉ͡ख๏Λద༻Ͱ͖ΔΑ͏ʹ͍ͨ͠ w *OUFSGBDFCVJMEFSͰͷ6*࡞੒͔Β೥Ҏ্ܦͪٻΊΒΕΔ΋ͷΛఏڙ͠ ͨ

  18. "QQMFͷ4XJGU6*ಋೖ w એݴతͳهड़ΛՄೳͱ͠એݴతͳهड़ʹ׳Ε͍ͯΔ࡞ΓखΛݺͼد͍ͤͨ w એݴతͳख๏Λఏڙ༷͠ʑͳ04Ͱಉ͡ख๏Λద༻Ͱ͖ΔΑ͏ʹ͍ͨ͠ w *OUFSGBDFCVJMEFSͰͷ6*࡞੒͔Β೥Ҏ্ܦͪٻΊΒΕΔ΋ͷΛఏڙ͠ ͨ 8FC։ൃऀʹ·Ͱ։ൃऀͷؒޱΛ޿͛Δ

  19. ैདྷͷ6*෦඼ 4UPSZCPBSE YJC ΋૊Έ߹ΘͤՄೳ

  20. 04ʹ࠷దԽ͞ΕͨػೳΛ͜Ε·ͰͲ ͓ΓΞϓϦʹ૊ΈࠐΉ͜ͱ΋Ͱ͖Δ

  21. એݴతهड़಺ʹෳࡶͳػೳΛఏڙͰ͖Δ ͍͏ͱࢥ͍ग़͢

  22. 8FCϒϥ΢βʔ 'MBTI ೥୅લ൒

  23. 4XJGU6*ͱطଘ6*ϑϨʔϜϫʔΫ͸ڞଘ͠ ͭͭ4XJGU6*ͰϦϓϨʔεͰ͖Δ6*͸ ؆ܿʹهड़Ͱ͖ΔΑ͏ʹͳΔ J04͔Β͸ʜ

  24. 4XJGU6*ϥΠϒίʔσΟϯά

  25. 4XJGU6*͸؆ܿʹ هड़Ͱ͖Δͷ͕ڧΈ

  26. ͱ͸͍͑ҙਤͨ͠ϨΠΞ΢τ͕ ࡞Εͳ͚Ε͹࿩ʹͳΒͳ͍

  27. ࠓճ͸طଘͷ6*Λਅࣅͯ͠ΈΔ

  28. ਅࣅ͢Δର৅͸ λΠϦϯάϕʔεͷ6*

  29. ਅࣅ͢Δ6*͸

  30. (MPSJPVT#BUUFSZ w ୺຤୆·ͰͷόοςϦʔঢ়ଶΛ਺஋ͱഎܠ ৭Ͱݟ΍͘͢දࣔ w ΫϦʔϯͳΠϯλʔϑΣΠε w όοςϦʔঢ়ଶɺॆిঢ়ଶͷΈΛදࣔ w όοςϦʔ֬ೝ͍ͨ͠σόΠεΛট଴

    w ୺຤୆·Ͱొ࿥Մೳɻͭͷը໘Ͱ֬ೝͰ ͖·͢ɻ
  31. ࣮ࡍͷϨΠΞ΢τΛݟͯΈΔ

  32. None
  33. ηϧ 4BGF"SFB·Ͱ ృΓͭͿ͠

  34. None
  35. όοςϦʔྔ ୯Ґ ࣌ؒຖάϥϑ ॆిঢ়ଶ ୺຤໊ ԁάϥσʔγϣϯ

  36. (MPSJPVT#BUUFSZͷϨΠΞ΢τ w ηϧ w ηϧຖʹόοςϦʔ৘ใ w ηϧͷഎ໘ʹάϥσʔγϣϯ w ηϧ͸4BGF"SFBΛग़͍ͯΔ

  37. YDPEFͷ ςϯϓϨʔτ͔ΒσβΠϯΛ ͚ۙͮͯΈΔ

  38. ϨΪϡϨʔγϣϯ w ϑΥϯταΠζ w ౓਺ϑΥϯταΠζP⒎TFU  w ϑΥϯτશମΦϑηοτ w άϥσʔγϣϯΧϥʔ

    w $PMPS SFE HSFFO CMVF  w άϥσʔγϣϯΧϥʔ w $PMPS SFE HSFFO CMVF  w ԁάϥσʔγϣϯ։࢝൒ܘQYɺऴྃ൒ܘQY w ϓϩδΣΫτ໊͸.POJUPS w ΧελϜ7JFX͸ɺ$POUFOU7JFXɺ.POJUPS7JFXɺ(SBQI7JFXΛ࢖༻
  39. 7JFX

  40. import SwiftUI struct ContentView: View { var body: some View

    { Text("Hello World") } } #if DEBUG struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } #endif 4XJGU6*ͷςϯϓϨʔτίʔυ 7JFX͸CPEZͰͭͷ7JFXΛ೿ੜ ͨ͠એݴΛ౉͢ඞཁ͕͋Δɻ
  41. ૊ΈࠐΈ7JFX೿ੜ 5FYU *NBHF -JOFBS(SBEJFOU 3BEJBM(SBEJFOU 3FDU"OHMF $JSDMF &MMJQTF (FPNFUSZ3FBEFS "OHVMBS(SBEJFOU

    $BQTVMF
  42. ෳ਺ͷ7JFXΛ഑ஔ͢Δ৔߹͸ɺ 4UBDL )4UBDL 74UBDL ;4UBDL

  43. )4UBDL HStack { RectAngle() .foregroundColor(Color.red) RectAngle() .foregroundColor(Color.green) RectAngle() .foregroundColor(Color.blue) }

    ᶃ ᶄ ᶅ هड़ॱʹࠨ͔Βӈʹ഑ஔ ᶃ ᶄ ᶅ
  44. 74UBDL VStack { RectAngle() .foregroundColor(Color.red) RectAngle() .foregroundColor(Color.green) RectAngle() .foregroundColor(Color.blue) }

    ᶃ ᶄ ᶅ هड़ॱʹ্͔ΒԼʹ഑ஔ ᶃ ᶄ ᶅ
  45. ;4UBDL ZStack { RectAngle() .foregroundColor(Color.red) RectAngle() .foregroundColor(Color.green) RectAngle() .foregroundColor(Color.blue) }

    ᶃ ᶄ ᶅ هड़ॱʹԞʹ഑ஔ ᶃ ᶄ ᶅ
  46. 4UBDLͷ഑ஔ͸7JFXଆʹαΠζ ࢦఆ͕ͳ͍ݶΓ͸౳ഒ഑ஔ

  47. ٧ΊࠐΉ৔߹͸ 4QBDFS Λࢦఆ

  48. 7JFXFEHFT*HOPSJOH4BGF"SFB Λ࢖ ͏ͱ4BGF"SFBΛແࢹ͢ΔΑ͏ʹͳΔ

  49. 4UBDL )4UBDL 74UBDL )4UBDL Λ ࢖Θͳͯ͘΋഑ஔͰ͖Δ

  50. 7JFXʹ഑ஔ

  51. 7JFXʹ഑ஔ

  52. CBDLHSPVOE͸CPEZͷDMJQϑΟϧλʔʹ Өڹ͢Δɻ

  53. CBDLHSPVOE͸7JFXDMJQ ͷ ݁Ռ͕൓ө͞ΕΔ

  54. Rectangle() .fill( Color.clear ).background( എܠඳը͢ΔView ) .clipped()

  55. ϥΠϒίʔσΟϯάத

  56. Ϧιʔε w ϑΥϯταΠζ w ౓਺ϑΥϯταΠζP⒎TFU  w ϑΥϯτશମΦϑηοτ w άϥσʔγϣϯΧϥʔ

    w άϥσʔγϣϯΧϥʔ
  57. RadialGradient(gradient: .init(colors: [Self.gradientStart, Self.gradientEnd]), center: .init(x: 0.5, y: 0.5), startRadius:

    50, endRadius: 150) .aspectRatio(contentMode: .fill) static let gradientStart = Color(red: 102.0 / 255, green: 196.0 / 255, blue: 66.0 / 255) static let gradientEnd = Color(red: 87.0 / 255, green: 161.0 / 255, blue: 58.0 / 255) // .previewDevice(PreviewDevice(rawValue: "iPhone 8") ) .previewDevice(PreviewDevice(rawValue: "iPhone X") )
  58. import SwiftUI struct GraphView: View { var body: some View

    { HStack(spacing:0) { ForEach(0 ..< 12) { item in GraphLineView() } Spacer() } } } #if DEBUG struct GraphVioew_Previews: PreviewProvider { static var previews: some View { GraphView() // .previewDevice(PreviewDevice(rawValue: "iPhone 8") ) .previewDevice(PreviewDevice(rawValue: "iPhone X") ) } } #endif struct GraphLineView: View { var body: some View { ZStack { // Rectangle() // .foregroundColor(Color.green) ForEach(0 ..< 12 ) { item in GeometryReader { geometry in Path { path in let verticalOffset = 0.5 + (item == 0 ? 0 : (geometry.size.height * 0.2)) path.move( to: CGPoint( x: 0.5 + CGFloat(item) * 2.5, y: verticalOffset ) ) path.addLine( to: CGPoint( x: 0.5 + CGFloat(item) * 2.5, y: 0.5 + geometry.size.height ) ) } .stroke(Self.strokeColor, lineWidth: 1) } } }.frame(width:29.5, height:20) } static let strokeColor = Color(white: 1, opacity: 0.8) }
  59. ·ͱΊ w 4XJGU6*͸4XJGUͰهड़Ͱ͖Δ%4-Ͱ͋Δ4XJGUιʔείʔυͰ͢ w ೥ͿΓʹ"QQMF͕ॏ͍ࠊΛ্͛ͯ৽͍͠։ൃऀͷݺͼࠐΈத w 4XJGU6*ͷϨΠΞ΢τ͸8FCͷσβΠϯʹ͍͚ۙͲΫη΋͋Γ w 4XJGU6*͸ྲྀ͠ࠐΉσʔλιʔε͋Γ͖ͳͷͰϞοΫΞοϓ༻ͷσʔλ͸ ४උͨ͠΄͏͕͍͍͔΋