Slide 1

Slide 1 text

QPUBUPUJQT !OBLBKJKBQBO "KJNJ ϓϩμΫτΛຯݟ͍ͯ͜͠͏

Slide 2

Slide 2 text

!OBLBKJKBQBO $PPLQBEJOD J04%$TUB⒎ 4PGUXBSF&OHJOFFS "CPVU.F %BJDIJ/BLBKJNB

Slide 3

Slide 3 text

/,+.VMUJ.PWJF$BQUVSF7JFX /,+.PWJF$PNQPTFS /,+1BHFS7JFX$POUSPMMFS 1IPUP4MJEFS 5FJUFO (JU)VC 4FOHJSJ 4IBSJ GSVTUSBUJPONF ,B[BHVSVNB

Slide 4

Slide 4 text

8IBUJT"KJNJ

Slide 5

Slide 5 text

"KJNJຯݟ wUFTUJOH wUBLJOHBTNBMMBNPVOUJOUPUIFNPVUI UPUFTUJUTRVBMJUZ UIFCFIBWJPSBOZPOFFBTJMZEPFT

Slide 6

Slide 6 text

"KJNJຯݟ w"OZPOF w"OZUJNF w&BTJMZ w$BOGFFECBDL w%FWFMPQNFOU5PPM

Slide 7

Slide 7 text

Feedback Tool IUUQTHJUIVCDPNOBLBKJKBQBO"KJNJ

Slide 8

Slide 8 text

8IZ

Slide 9

Slide 9 text

1SPCMFN

Slide 10

Slide 10 text

1SPCMFN *U`TBCPUIFS w5BLFBTDSFFOTIPU w0QFO()& w1PTUUIFJTTVF w1PTUUIFTDSFFOTIPU w"EE%FWJDF*OGPЋ

Slide 11

Slide 11 text

3FTFBSDI

Slide 12

Slide 12 text

3FTFBSDI wCBMUP wIUUQTXXXCBMUPJP w*OTUBCVH wIUUQTJOTUBCVHDPN w4VQQPSUFS,JU wIUUQTTVQQPSUFSLJUSFBENFJPEPDT

Slide 13

Slide 13 text

QSPTBOEDPOT

Slide 14

Slide 14 text

QSPT w4%, w)PTUJOHJNBHFTBOENPWJFT w$PMMBCPSBUJPO5PPMT w() ()& TMBDL

Slide 15

Slide 15 text

DPOT w5IFEJTDVTTJPOQMBDFJTTFQBSBUFE

Slide 16

Slide 16 text

-FU`TDPEF

Slide 17

Slide 17 text

%FWFMPQ &OWJSPONFOU

Slide 18

Slide 18 text

%FWFMPQ&OWJSPONFOU w(JU)VC&OUFSQSJTF wEFQMPZHBUF w(NBHF MJLF(ZB[P

Slide 19

Slide 19 text

6TBHF

Slide 20

Slide 20 text

4FUVQ #if DEBUG Ajimi.show(AjimiOptions( githubBasePath: “https://foo.bar/api/v3", githubAccessToken: "tokentokentokentoken", githubUser: "nakajijapan", githubRepo: "feedback", imageUploadURL: URL(string: “https://image.foo.bar”)!, imageUploadKey: "tokentokentokentoken" )) #endif

Slide 21

Slide 21 text

%FNP

Slide 22

Slide 22 text

TOBQTIPU

Slide 23

Slide 23 text

WJEFP

Slide 24

Slide 24 text

JTTVF

Slide 25

Slide 25 text

a ??

Slide 26

Slide 26 text

QSPTBOEDPOT

Slide 27

Slide 27 text

QSPT w$BOJOUFHSBUFUIFEJTDVTTJPOQMBDF w'SFF w$BOXBUDIUIFWJEFPPO()& wDPOWFSUJOHUP(*'BOJNBUJPO

Slide 28

Slide 28 text

DPOT w8FEPO`ULOPXXIPQPTUFEUPUIF JTTVF w8FOFFEUPDPOTJEFSVQMPBEJOHBO JNBHFPVUTJEFUIFDPNQBOZ

Slide 29

Slide 29 text

5FDI

Slide 30

Slide 30 text

8JOEPX wPCKD@ HFUcTFU "TTPDJBUFE0CKFDU

Slide 31

Slide 31 text

4DSFFO3FDPSE w$"%JTQMBZ-JOL w"TFUPGJNBHF OPUWJEFP UIGraphicsBeginImageContextWithOptions(keyWindow.bounds.size, true, 0) keyWindow.drawHierarchy(in: keyWindow.bounds, afterScreenUpdates: false) let image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() displayLink = CADisplayLink(target: self, selector: #selector(displayDidRefresh(_:))) displayLink.add(to: RunLoop.main, forMode: RunLoopMode.commonModes) keyWindow.drawHierarchy

Slide 32

Slide 32 text

4DSFFO3FDPSE w$PVMEOUVTF3FQMBZ,JU wDBO`UIBOEMFUIFWJEFPSFDPSEFE wPOMZTIBSFBOETBWFUPDBNFSBSPMM w$SBTIXIFOUIFQSPHSBNUSZUP DPOWFSUUP(*'VTJOHSBXTJ[FJNBHFT

Slide 33

Slide 33 text

8SBQVQ

Slide 34

Slide 34 text

8SBQVQ w5IJTJTKVTUPOFPGDIPJDFT w8BOUUPNBLFJUNPSFVTFGVM w"EE%FWJDF*OGPSNBUJPO w3FMFBTFUIFSFTUSJDUJPOTPGPQUJPO w5FTU

Slide 35

Slide 35 text

"KJNJ ϓϩμΫτΛຯݟ͍ͯ͜͠͏ IUUQTHJUIVCDPNOBLBKJKBQBO"KJNJ

Slide 36

Slide 36 text

5IBOLT