Slide 1

Slide 1 text

จࣈྻΛίϐʔͰ͖Δ εΫϦʔϯγϣοτΛ࡞Δ גࣜձࣾZOZOςΫϊϩδʔζ ZOZOTOWN෦ ͑ΜͲ͏ Copyright © ZOZO Technologies, Inc.

Slide 2

Slide 2 text

© ZOZO Technologies, Inc. גࣜձࣾZOZOςΫϊϩδʔζ ZOZOTOWN෦ ͑ΜͲ͏ ▶ ZOZOTOWN / iOSΞϓϦ։ൃ ▶ Twitter: re___you 2

Slide 3

Slide 3 text

© ZOZO Technologies, Inc. ͝ଘ஌Ͱ͠ΐ͏͔ʁ 3

Slide 4

Slide 4 text

© ZOZO Technologies, Inc. 4 ͝ଘ஌Ͱ͠ΐ͏͔ʁ - iOS 13͔ΒϑϧϖʔδͷεΫϦʔϯγϣοτ͕Մೳʹʂ

Slide 5

Slide 5 text

© ZOZO Technologies, Inc. 5 - iOS 13͔ΒϑϧϖʔδͷεΫϦʔϯγϣοτ͕Մೳʹʂ - αʔυύʔςΟΞϓϦ΋ରԠͰ͖Δ ͝ଘ஌Ͱ͠ΐ͏͔ʁ

Slide 6

Slide 6 text

© ZOZO Technologies, Inc. 6 - iOS 13͔ΒϑϧϖʔδͷεΫϦʔϯγϣοτ͕Մೳʹʂ - αʔυύʔςΟΞϓϦ΋ରԠͰ͖Δ - อଘܗࣜ͸PDF ͝ଘ஌Ͱ͠ΐ͏͔ʁ

Slide 7

Slide 7 text

© ZOZO Technologies, Inc. 7 εΫϦʔϯγϣοτͰ΋จࣈΛ ίϐʔ΋ݕࡧ΋Ͱ͖Δɻ ͦ͏ɺPDFͳΒͶɻ

Slide 8

Slide 8 text

© ZOZO Technologies, Inc. 8 ͦ͏ɺPDFͳΒͶ SafariͷϑϧϖʔδεΫϦʔϯγϣοτͰ͸
 จࣈྻͷίϐʔ&ݕࡧ͕Ͱ͖Δ

Slide 9

Slide 9 text

© ZOZO Technologies, Inc. 9

Slide 10

Slide 10 text

© ZOZO Technologies, Inc. 10 จࣈͷίϐʔ͕ Ͱ͖ͳ͍

Slide 11

Slide 11 text

© ZOZO Technologies, Inc. 11 จࣈΛίϐʔͰ͖ͳ͍ PDF͸ͨͩͷը૾ͩ

Slide 12

Slide 12 text

© ZOZO Technologies, Inc. 12 ࠓ೔࿩͢͜ͱ - ͳͥPDF͸จࣈྻΛίϐʔͰ͖Δͷ͔ʁ - ͳͥจࣈྻΛίϐʔͰ͖ͳ͔ͬͨͷ͔ʁ - จࣈྻΛίϐʔͰ͖ΔPDFΛ࡞Δʹ͸ʁ

Slide 13

Slide 13 text

© ZOZO Technologies, Inc. 13 ࠓ೔࿩͞ͳ͍͜ͱ - ϑϧϖʔδͷεΫϦʔϯγϣοτͷ࡞੒ʹ͍ͭͯ - TECH BLOGʹ౤ߘ͍ͯ͠·͢ https://techblog.zozo.com/entry/ios_fullpage_screenshot

Slide 14

Slide 14 text

© ZOZO Technologies, Inc. ͳͥPDF͸จࣈྻΛ ίϐʔͰ͖Δͷ͔ʁ 14 Episode 1.

Slide 15

Slide 15 text

© ZOZO Technologies, Inc. 15 PDF͸ จࣈ৘ใΛ͍࣋ͬͯΔ

Slide 16

Slide 16 text

© ZOZO Technologies, Inc. 16 PDFͷจࣈͷඳը จࣈ৘ใ

Slide 17

Slide 17 text

© ZOZO Technologies, Inc. 17 PDFͷத਎

Slide 18

Slide 18 text

© ZOZO Technologies, Inc. 18 PDFͷத਎

Slide 19

Slide 19 text

© ZOZO Technologies, Inc. 19 PDFͷத਎

Slide 20

Slide 20 text

© ZOZO Technologies, Inc. ͳͥจࣈྻΛ ίϐʔͰ͖ͳ͔ͬͨͷ͔ʁ 20 Episode 2.

Slide 21

Slide 21 text

© ZOZO Technologies, Inc. 21 จࣈ৘ใΛ ͍࣋ͬͯͳ͔ͬͨ

Slide 22

Slide 22 text

© ZOZO Technologies, Inc. 22 จࣈྻΛίϐʔͰ͖ͳ͍PDF ը૾ ը૾ ը૾ ը૾

Slide 23

Slide 23 text

© ZOZO Technologies, Inc. 23 จࣈྻΛίϐʔͰ͖ͳ͍PDF ը૾ ը૾ ը૾ ը૾ จࣈ΋ը૾ʹͳ͍ͬͯͨ

Slide 24

Slide 24 text

© ZOZO Technologies, Inc. 24 จࣈྻΛίϐʔͰ͖ͳ͍PDF ը૾ ը૾ ը૾ ը૾ ͳͥͳͷ͔ʁ

Slide 25

Slide 25 text

© ZOZO Technologies, Inc. iOSͷඳըʹ͍ͭͯ 25 - iOS͸contextʹΑͬͯඳըܗ͕ࣜมΘΔ - PDFContext → PDF - ImageContext → ը૾ https://developer.apple.com/library/archive/documentation/ GraphicsImaging/Conceptual/drawingwithquartz2d/dq_overview/ dq_overview.html

Slide 26

Slide 26 text

© ZOZO Technologies, Inc. 26 iOSͷඳըʹ͍ͭͯ PDFContextʹඳը͢Ε͹ ͍͍ײ͡ʹͳΔͱࢥ͍ͬͯͨ

Slide 27

Slide 27 text

© ZOZO Technologies, Inc. 27 let renderer = UIGraphicsPDFRenderer(bounds: view.bounds) let data = renderer.pdfData { context in context.beginPage() view.layer.render(in: context.cgContext) } UIGraphicsEndPDFContext() ίʔυΛݟ௚ͯ͠ΈΔ

Slide 28

Slide 28 text

© ZOZO Technologies, Inc. 28 let renderer = UIGraphicsPDFRenderer(bounds: view.bounds) let data = renderer.pdfData { context in context.beginPage() view.layer.render(in: context.cgContext) } UIGraphicsEndPDFContext() ίʔυΛݟ௚ͯ͠ΈΔ ո͍͠

Slide 29

Slide 29 text

© ZOZO Technologies, Inc. 29 view.layer.render ͸ԿΛඳը͍ͯ͠Δͷ͔ʁ

Slide 30

Slide 30 text

© ZOZO Technologies, Inc. 30 view.layer.render͸ UIViewͷίϯςϯπͷ ϏοτϚοϓΛඳը͍ͯ͠Δ

Slide 31

Slide 31 text

© ZOZO Technologies, Inc. 31 UIViewͱCALayerͷؔ܎ CALayer PDFContext drawRect render ίϐʔͰ͖ͳ͍ PDF BitmapContext ϏοτϚοϓ UIView

Slide 32

Slide 32 text

© ZOZO Technologies, Inc. จࣈྻΛίϐʔͰ͖Δ PDFΛ࡞Δʹ͸ʁ 32 Episode 3.

Slide 33

Slide 33 text

© ZOZO Technologies, Inc. 33 ViewΛඳը͢Δ

Slide 34

Slide 34 text

© ZOZO Technologies, Inc. 34 UIView CALayer PDFContext drawRect render ίϐʔͰ͖ͳ͍ PDF BitmapContext ϏοτϚοϓ PDFContext ίϐʔͰ͖Δ PDF viewΛඳը͢Δ

Slide 35

Slide 35 text

© ZOZO Technologies, Inc. 35 let renderer = UIGraphicsPDFRenderer(bounds: view.bounds) let data = renderer.pdfData { context in context.beginPage() view.layer.render(in: context.cgContext) } UIGraphicsEndPDFContext() viewΛඳը͢Δ

Slide 36

Slide 36 text

© ZOZO Technologies, Inc. 36 let renderer = UIGraphicsPDFRenderer(bounds: view.bounds) let data = renderer.pdfData { context in context.beginPage() view.draw(view.bounds) } UIGraphicsEndPDFContext() viewΛඳը͢Δ

Slide 37

Slide 37 text

© ZOZO Technologies, Inc. 37

Slide 38

Slide 38 text

© ZOZO Technologies, Inc. Կ΋ඳը͞Εͳ͍

Slide 39

Slide 39 text

© ZOZO Technologies, Inc. 39 let renderer = UIGraphicsPDFRenderer(bounds: view.bounds) let data = renderer.pdfData { context in context.beginPage() view.draw(view.bounds) } UIGraphicsEndPDFContext() viewΛඳը͢Δ

Slide 40

Slide 40 text

© ZOZO Technologies, Inc. 40 let renderer = UIGraphicsPDFRenderer(bounds: view.bounds) let data = renderer.pdfData { context in context.beginPage() view.subviews.forEach { $0.draw($0.bounds) } } UIGraphicsEndPDFContext() viewΛඳը͢Δ

Slide 41

Slide 41 text

© ZOZO Technologies, Inc. 41

Slide 42

Slide 42 text

© ZOZO Technologies, Inc. ϨΠΞ΢τ͕ ࠨ্ʹີͰ͢

Slide 43

Slide 43 text

© ZOZO Technologies, Inc. 43 view.layer.render͸ ϨΠΞ΢τ എܠͷඳը ಁաॲཧ Ϙʔμͷඳը AspectFill ରԠ

Slide 44

Slide 44 text

© ZOZO Technologies, Inc. 44 ͋ͱ͸࣮૷͢Δ͚ͩ

Slide 45

Slide 45 text

© ZOZO Technologies, Inc. 45

Slide 46

Slide 46 text

© ZOZO Technologies, Inc. 46 ৄ͍࣮͠૷͸GitHub΁ https://github.com/EndouMari/ SampleScreenshot

Slide 47

Slide 47 text

No content