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

SwiftUIでハーフモーダルを表示するライブラリが
できたのでその紹介をします / ResizableSheet

F866c47f0761aac633225b6919538e1c?s=47 matsuji
September 18, 2021

SwiftUIでハーフモーダルを表示するライブラリが
できたのでその紹介をします / ResizableSheet

F866c47f0761aac633225b6919538e1c?s=128

matsuji

September 18, 2021
Tweet

More Decks by matsuji

Other Decks in Programming

Transcript

  1. SwiftUIͰϋʔϑϞʔμϧΛදࣔ͢ΔϥΠϒϥϦ͕ Ͱ͖ͨͷͰͦͷ঺հΛ͠·͢ ·ͭ͡ @mtj_j #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  2. ·ͭ͡ • αϥϦʔϚϯ ݉ ݸਓΞϓϦ։ൃऀ • ݸਓΞϓϦΛϦϦʔε → AppStoreແྉΞϓϦϥϯΩϯά1Ґ /

    150ສ DL 
 → 2ϲ݄લʹࣄۀৡ౉ • ਺ϲ݄લʹݸਓ։ൃͰ Widgetter for Twitter ΛϦϦʔε #iOSDC #f #͜ͷτʔΫ͕΍͹͍
  3. ·ͭ͡ • αϥϦʔϚϯ ݉ ݸਓΞϓϦ։ൃऀ • ݸਓΞϓϦΛϦϦʔε → AppStoreແྉΞϓϦϥϯΩϯά1Ґ /

    150ສ DL 
 → 2ϲ݄લʹࣄۀৡ౉ • ਺ϲ݄લʹݸਓ։ൃͰ Widgetter for Twitter ΛϦϦʔε • ڈ೥ͷiOSDCͰʮSwiftͰ࢝ΊΔʂ੩తղੳʯͱ͍͏ λΠτϧͰൃද #iOSDC #f #͜ͷτʔΫ͕΍͹͍
  4. ·ͭ͡ • αϥϦʔϚϯ ݉ ݸਓΞϓϦ։ൃऀ • ݸਓΞϓϦΛϦϦʔε → AppStoreແྉΞϓϦϥϯΩϯά1Ґ /

    150ສ DL 
 → 2ϲ݄લʹࣄۀৡ౉ • ਺ϲ݄લʹݸਓ։ൃͰ Widgetter for Twitter ΛϦϦʔε • ڈ೥ͷiOSDCͰʮSwiftͰ࢝ΊΔʂ੩తղੳʯͱ͍͏ λΠτϧͰൃද #iOSDC #f #͜ͷτʔΫ͕΍͹͍
  5. ·ͭ͡ • αϥϦʔϚϯ ݉ ݸਓΞϓϦ։ൃऀ • ݸਓΞϓϦΛϦϦʔε → AppStoreແྉΞϓϦϥϯΩϯά1Ґ /

    150ສ DL 
 → 2ϲ݄લʹࣄۀৡ౉ • ਺ϲ݄લʹݸਓ։ൃͰ Widgetter for Twitter ΛϦϦʔε • ڈ೥ͷiOSDCͰʮSwiftͰ࢝ΊΔʂ੩తղੳʯͱ͍͏ λΠτϧͰൃද #iOSDC #f #͜ͷτʔΫ͕΍͹͍
  6. ·ͭ͡ • αϥϦʔϚϯ ݉ ݸਓΞϓϦ։ൃऀ • ݸਓΞϓϦΛϦϦʔε → AppStoreແྉΞϓϦϥϯΩϯά1Ґ /

    150ສ DL 
 → 2ϲ݄લʹࣄۀৡ౉ • ਺ϲ݄લʹݸਓ։ൃͰ Widgetter for Twitter ΛϦϦʔε • ڈ೥ͷiOSDCͰʮSwiftͰ࢝ΊΔʂ੩తղੳʯͱ͍͏ λΠτϧͰൃද #iOSDC #f #͜ͷτʔΫ͕΍͹͍
  7. SwiftUIͰϋʔϑϞʔμϧΛදࣔ͢ΔϥΠϒϥϦ͕ Ͱ͖ͨͷͰͦͷ঺հΛ͠·͢ ·ͭ͡ @mtj_j #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  8. ϋʔϑϞʔμϧ • ը໘ͷԼ͔Βग़ͯ͘ΔView • υϥοάδΣενϟʔʹ߹Θͤͯը໘ͷ్தͰ ࢭ·ͬͨΓɺը໘͍ͬͺ͍ʹ޿͕ͬͨΓ͢Δ • ը໘ͷԼʹυϥοά͢Δ͜ͱͰӅ͢͜ͱ΋Ͱ͖Δ #iOSDC #f

    #͜ͷτʔΫ͕΍͹͍
  9. ϋʔϑϞʔμϧͷ࣮૷ͨ͜͠ͱ͋Γ·͔͢ʁ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  10. ͩΔ͍ͬ͢ΑͶ😮💨 #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  11. ϋʔϑϞʔμϧͷϥΠϒϥϦ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • scenee/FloatingPanel • slackhq/PanModal • AndreaMiotto/PartialSheet

  12. UIKitͰ࣮૷͞Ε͍ͯΔ (SwiftUIͰ࢖͍͍ͨ) ϋʔϑϞʔμϧͷϥΠϒϥϦ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • scenee/FloatingPanel • slackhq/PanModal

    • AndreaMiotto/PartialSheet
  13. ϋʔϑϞʔμϧͷϥΠϒϥϦ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • scenee/FloatingPanel • slackhq/PanModal • AndreaMiotto/PartialSheet

    υϥοάͰେ͖ͨ͘͠ΓͰ͖ͳ͍
  14. SwiftUIͰʂ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  15. ؆୯ʹʂʂ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  16. ΧελϚΠζੑͷ ߴ͍ϋʔϑϞʔμϧΛʂʂʂ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  17. #iOSDC #f #͜ͷτʔΫ͕΍͹͍ ResizableSheet

  18. Demo #iOSDC #f #͜ͷτʔΫ͕΍͹͍ (Ұ൪γϯϓϧͳ΍ͭ)

  19. ResizableSheetͷػೳ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • 3ͭͷঢ়ଶΛαϙʔτ (hidden, midium, large) •

    υϥοάʹ߹ΘͤͨViewͷߋ৽ • ϋʔϑϞʔμϧͷߴ͞ͷࣗಈܭࢉ • TrackableScrollViewΛ༻͍Δ͜ͱͰɺScrollViewʹ΋ରԠ • ෳ਺ͷϋʔϑϞʔμϧͷαϙʔτ
  20. ResizableSheetͷػೳ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • 3ͭͷঢ়ଶΛαϙʔτ (hidden, midium, large) •

    υϥοάʹ߹ΘͤͨViewͷߋ৽ • ϋʔϑϞʔμϧͷߴ͞ͷࣗಈܭࢉ • TrackableScrollViewΛ༻͍Δ͜ͱͰɺScrollViewʹ΋ରԠ • ෳ਺ͷϋʔϑϞʔμϧͷαϙʔτ
  21. ResizableSheetͷߏ଄ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  22. ResizableSheetͷߏ଄ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  23. ResizableSheetͷߏ଄ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  24. ResizableSheetͷߏ଄ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  25. ResizableSheetͷߏ଄ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  26. ResizableSheetͷߏ଄ #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  27. Demo #iOSDC #f #͜ͷτʔΫ͕΍͹͍ (ෳࡶͳsheetͷ΍ͭ)

  28. ResizableSheetͷػೳ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • 3ͭͷঢ়ଶΛαϙʔτ (hidden, midium, large) •

    υϥοάʹ߹ΘͤͨViewͷߋ৽ • ϋʔϑϞʔμϧͷߴ͞ͷࣗಈܭࢉ • TrackableScrollViewΛ༻͍Δ͜ͱͰɺScrollViewʹ΋ରԠ • ෳ਺ͷϋʔϑϞʔμϧͷαϙʔτ
  29. Demo #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  30. ResizableSheetͷػೳ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ • 3ͭͷঢ়ଶΛαϙʔτ (hidden, midium, large) •

    υϥοάʹ߹ΘͤͨViewͷߋ৽ • ϋʔϑϞʔμϧͷߴ͞ͷࣗಈܭࢉ • TrackableScrollViewΛ༻͍Δ͜ͱͰɺScrollViewʹ΋ରԠ • ෳ਺ͷϋʔϑϞʔμϧͷαϙʔτ
  31. Demo #iOSDC #f #͜ͷτʔΫ͕΍͹͍

  32. ·ͱΊ #iOSDC #f #͜ͷτʔΫ͕΍͹͍ ελʔ͍ͩ͘͞ https://github.com/mtj0928/ResizableSheet