watchOS App SwiftUI

watchOS App SwiftUI

WWDC2019でSwiftUI が発表されて10ヶ月目にして当初目的を達成した話。iOS App、Today Extension、watchOS でSwiftUI を使ってみる&利点欠点。

0fb0b8c6eecbc8e0a3981501f6a6fea6?s=128

notoroid

May 27, 2020
Tweet

Transcript

  1. XBUDI04"QQ4XJGU6* ϲ݄ͷཱྀ࿏

  2. ࣗݾ঺հ

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

    w ࠷ۙͷಈ޲ w +".4UBDLௐࠪத
  4. ॆిใࠂ͞Μ #BUUFSFDFJWFS w όοςϦʔϞχλʔ ϢʔςΟϦςΟʔ  w ࠷େ୆ ࣮ػ ϦϞʔτ୆

     w ख࣋ͪͷJ1IPOF͔Βଞʹ͍࣋ͬͯΔ J1IPOF J1BEͳͲͷػثͷόοςϦʔঢ়ଶ֬ ೝՄೳ w ࣗ୐ʹ͋ΔJ1IPOFͷόοςϦʔঢ়ଶ֬ೝՄ ೳ
  5. ॆిใࠂ͞Μ #BUUFSFDFJWFS w </FX>ॆి׬ྃ௨஌ w ॆి׬ྃΛ఻͑ͯ͘ΕΔ௨஌Λ௥Ճɻ w ҎԼʹࢦఆ͢Δ͜ͱͰόοςϦʔ ΛέΞ͢Δ͜ͱ͕Մೳ w

    Կ͔ͱߴ͍J1IPOFΛ௕࣋ͪͤ͞Δͷʹ༗ ༻
  6. ࿩͢͜ͱ w ࣮ݱͰ͖ͨ͜ͱ w XBUDI04֓ཁ w J1IPOFʙ"QQMF8BUDIσʔλ఻ୡͷ֓ཁ w 4XJGU6*ͷະདྷ

  7. ࿩͞ͳ͍͜ͱ w 4XJGU6*ͷৄࡉ w 8BUDI,JUͷৄࡉ࣮૷ w 8BUDI$POOFDUJWJUZΛ࢖ͬͨσʔλ௨৴ํ๏ w XBUDI04্Ͱ4XJGU6*Λ࢖͏ࡍͷ޻෉ w

    $PNQMJDBUJPOT
  8. ϝΠϯετϦʔϜͷΞϓϦ։ൃ ʹ໭Δ೔͸͘Δͷ͔

  9. 4XJGU6*ͱ͍͏ະ։ͷδϟϯάϧʹਐΜ ͩ୳ݕୂ͸͞ΒͳΔԞ஍ɺXBUDI04Ξϓ Ϧʹ଍Λ౿Έग़ͯ͠͠·ͬͨɻ

  10. ࣍ճ 4XJGU6*ऴᖼ

  11. ୊໨ w ࣍ճ༧ࠂ w ΞϓϦʹ͍ͭͯ w XBUDI04։ൃͷݱࡏ w 4XJGU6*ͳίʔσΟϯάελΠϧͰXBUDI04։ൃ w

    XBUDI04։ൃͷࡉ͔͍࿩ w 4XJGU6*ͷऴᖼ  w ·ͱΊ
  12. ΞϓϦʹ͍ͭͯ

  13. ॆిใࠂ͞Μ#BUUFSFDFJWFS w ೥݄ʹϦϦʔε w 4XJGU6*ϕʔεͷΞϓϦ w ೥݄ʹ"QQMF8BUDIରԠ w "QQMFରԠͰ౰ॳ໨తୡ੒ w

    88%$͔Βϲ݄ޙ
  14. λοϓͰ੾Γସ͑

  15. %λονͰϝχϡʔදࣔ

  16. $PNQMJDBUJPOରԠ

  17. 8BUDIܦ༝ͰJ1IPOFͷ όοςϦʔ৘ใ֬ೝՄೳʹ

  18. ԶಘΞϓϦ  4XJGU6*ػೳͷ$BUBMPHΞϓϦ

  19. XBUDI04։ൃͷݱࡏ

  20. "QQMF8BUDI͸ਓؾ͕ͩ ։ൃͷͨΊͷXBUDI04͸Ͳ͏ͳͷ

  21. XBUDI04։ൃͷݱࡏ w 'PVOEBUJPO w 8BUDI$POOFDUJWJUZ w 8BUDI,JUGSBNFXPSL w $MPDL,JU w

    4XJGU6* w 4DFOF,JU w 4QSJUF,JU "QQMFͷجຊػೳ XBUDI04༻ ΫϩεϓϥοτϑΥʔϜ J04XBUDI04ؒ઀ଓ༻
  22. XBUDI04։ൃͷݱࡏ 8BUDI$POOFDUJWJUZ 8BUDI,JUGSBNFXPSL $MPDL,JU ࣌ܭ൫

  23. XBUDI04։ൃͷݱࡏ 8BUDI$POOFDUJWJUZ 8BUDI,JUGSBNFXPSL $MPDL,JU XBUDI04 J04 wJ04ؒ௨৴ wXBUDI04ؒ௨৴ w6*ΤϨϝϯτ wΧελϚΠζ௨஌

    w࣌ܭ൫
  24. 8BUDI$POOFDUJWJUZͷػೳ 04ผ J04 XBUDI04 "QQMF8BUDIαϙʔτՄೳ൑ఆ JT4VQQPSUFE ಉ͡ ಉ͡ %FMFHBUF 04͚ͩͷΠϕϯτ͕ଘࡏ

    04͚ͩͷΠϕϯτ͕ଘࡏ ༗ޮԽ BDUJWBUF ಉ͡ ಉ͡ ϝοηʔδૹ৴΁ͷԠ౴ όοΫάϥϯυͰԠରՄೳ ϑΥΞάϥϯυͰԠରՄೳ Ϣʔβʔ৘ใϑΝΠϧసૹ ૹड৴Մೳ όοΫάϥϯυԠରՄೳ ૹड৴Մೳ खಈͰόοΫάϥϯυԠରՄೳ ॳظԽ৘ใ ૹड৴Մೳ XBUDI04ଆ΁ͷૹ৴ͷΈ ૹड৴Մೳ XBUDI04ىಈ࣌ͷΈಡΈऔΓ
  25. 8BUDI$POOFDUJWJUZͷ௨৴෼ྨ όοάϥ΢ϯυͰߋ৽VTFS*OGP5SBOTGFS  wΞϓϦ͸ૹ৴͢Δ͚ͩɺ͋ͱ͸04͕໘౗ΛΈΔ 8BUDI͕ϑΥΞάϥ΢ϯυͷΈ༗༻ w8BUDI͕ϝοηʔδૹ৴͢ΔͱଈϨεϙϯε͕ฦͬͯ͘Δ J1IPOFɺ"QQMF8BUDI૒ํͱ΋ϑΥΞάϥ΢ϯυ wJ1IPOF 8BUDIͱ΋ʹϝοηʔδૹ৴͢ΔͱଈϨεϙϯε͕ฦͬͯ͘Δ

  26. 8BUDI$POOFDUJWJUZ͸ ෳ਺ͷ௨৴ํ๏͕͋ͬͯԿΛ ࢖͍͍͔ͬͯ෼͔Βͳ͍

  27. 8BUDI$POOFDUJWJUZ͸ ෳ਺ͷ௨৴ํ๏͕͋ͬͯԿΛ ࢖͍͍͔ͬͯ෼͔Γʹ͍͘

  28. ༻్ผʹJ1IPOFͱ "QQMF8BUDIͷओैؔ܎͕มΘΔ ओैؔ܎͝ͱʹػೳΛ૊Έ߹ΘͤΔ

  29. ओैผ8BUDI$POOFDUJWJUZར༻ํ๏ ॳظԽ৘ใ "QQMJDBUJPO$POUFYU Ϣʔβʔ৘ใϑΝΠϧసૹ VTFS*OGPUSBOTGFS  ϝοηʔδૹ৴ TFOE.FTTBHF 8BUDIʹ ॳظঢ়ଶΛ౉͢

    ˓ ʔ ʔ J1IPOFΞϓϦ্ͷ৘ใΛ 8BUDIʹૹΔ ʔ ˓ ʔ 8BUDIΞϓϦ͔Β J1IPOFΛૢ࡞͢Δ ʔ ʔ ˓ J1IPOFɺ8BUDIΞϓϦΛ ૬ޓʹݟͳ͕Β֬ೝ͢Δ ʔ ʔ ˓
  30. ओैผ8BUDI$POOFDUJWJUZར༻ํ๏ ॳظԽ৘ใ "QQMJDBUJPO$POUFYU Ϣʔβʔ৘ใϑΝΠϧసૹ VTFS*OGPUSBOTGFS  ϝοηʔδૹ৴ TFOE.FTTBHF 8BUDIʹ ॳظঢ়ଶΛ౉͢

    ˓ ʔ ʔ ఱؾަ௨৘ใΛ 8BUDIʹ൓ө͢Δ ʔ ˓ ʔ ΧϝϥΞϓϦͰɺ 8BUDIԕִγϟολʔػೳ ʔ ʔ ˓ J1IPOFΞϓϦ্Ͱɺ 8BUDIΞϓϦͷදࣔઃఆ Λଈ࠲ʹ൓ө ʔ ʔ ˓
  31. XBUDI04։ൃ Y w XBUDI04ΞϓϦࣗମ͸֓ཁ৘ใɺ6*Ϧιʔε͕ຊମ w ΞϓϦͱͯ͠ೝ͍ࣝͯ͠Δͷ͸FYUFOTJPO্Ͱ࣮ݱ͞Ε͍ͯΔ w ୯ಠͰωοτϫʔΫ௨৴΋Մೳ͕ͩɺλεΫͰ؅ཧ͞ΕΔ w XBUDI04Ͱ͸4XJGU6*͕࢖͑Δ͜ͱ͕େ͖ͳΞοϓσʔτ

    w ࣍ͷϝδϟʔΞοϓσʔτͰԿ͔͋Δ͔΋
  32. 4XJGU6*ͳίʔσΟϯάελΠϧͰ XBUDI04։ൃ

  33. ΞϓϦͰ4XJGU6*Λ࠾༻͢Δͱ XBUDI04ͷ։ൃ͕֨ஈʹָʹͳΔ

  34. 4XJGU6*ͷΞϓϦͰͷ େ·͔ͳಈ͖

  35. None
  36. ΞϓϦͷσʔλߏ଄Λ ؂ࢹ6*ʹ൓ө͢Δ

  37. None
  38. None
  39. ˠ"QQMF8BUDI J1IPOFˡ J1IPOF͔Β #BUUFSZ৘ใΛ సૹ ಉ͡ߏ଄ମ

  40. ಉ͡σʔλߏ଄͕ಉ͡ͳΒ͹ɺ σʔλΛసૹͰ͖Ε͹ 4XJGU6*ͰදࣔΛ࠶ݱͰ͖Δ

  41. XBUDI04։ൃͷࡉ͔͍࿩

  42. XBUDI04։ൃͷࡉ͔͍࿩ w BWBJMBCMFͱϓϩδΣΫτઃఆͷλʔήοτ w BWBJMBCMFίʔυதͷॲཧ੾Γ෼͚ w λʔήοτͰιʔεϑΝΠϧͰϏϧυର৅੾Γ෼͚ w DPNQMJDBUJPOͷߋ৽ w

    J04ଆͰ$PNQMJDBUJPOTΛߋ৽ϦΫΤετՄೳ ճ਺੍ݶ͋Γ  w ΞϓϦਃ੥ w ϨϏϡϫʔ͔Β࣮ػͰͷಈ࡞ϜʔϏʔΛఏग़ʹରԠ
  43. ղܾͰ͖͍ͯͳ͍͜ͱ w ಛఆͷ$MPDL'BDFͰ$PNQMJDBUJPOͷදࣔ൓ө͕஗͍ w ΠϯϑΥάϥϑϞδϡϥʔͰͷߋ৽͕஗͍ݪҼ͕Θ͔Βͳ͍

  44. 4XJGU6*ͷऴᖼ

  45. 4XJGU6*͸ऴΘΔɻ

  46. ͳͥͳΒ

  47. 4XJGU6* Ծ ͕ग़ͯ͘Δ͔Β

  48. 4XJGU6* Ծ ͷ վળཁ๬ͱ͔Λڍ͛ͯΈΔ

  49. 4XJGU6*վળͯ͠ཉ͍͠఺ w .PEBM6*ͷੜ੒λΠϛϯά͕ଟॏͰൃੜ͢Δ͜ͱ͕͋Δ w طଘ6*,JUͷੜ੒λΠϛϯά͕ଟॏͰൃੜ͢Δ͜ͱ͕͋Δ w ৭ $PMPS ͕؂ࢹର৅ͱͳ͍ͬͯΔͳ͍ w

    จࣈྻɺ਺஋ɺ#PPM஋͕࣮֬ w 1BHF6*ͷରԠ w $PMMFDUJPO7JFXͷରԠ
  50. 4XJGU6*͸ΫϩεϓϥοτϑΥʔϜલఏͳͷͰ "QQMF͕༻ҙͯ͠Δ࣍ͷҰख΋ αϙʔτͯ͘͠ΕΔՄೳੑେ

  51. ·ͱΊ w 4XJGU6*Λशಘ͢ΔͱΞϓϦͷԣల։ָ͕Ͱ͢ w XBUDI04΁ͷରԠ࣌ʹز͔ͭͷ޻෉͕ඞཁͰ͢ w 4XJGU6*͕ऴΘΓɻ4XJGU6*͕΍ͬͯ͘Δ w ։ൃपΓ͸ઑͬͨํ޲ʹશৼΓத