$30 off During Our Annual Pro Sale. View Details »

UIViewとUITextInputで作る縦書きのTextView / Vertical TextView based on UIView with UITextInput

cc4966
September 01, 2018

UIViewとUITextInputで作る縦書きのTextView / Vertical TextView based on UIView with UITextInput

iOSDC Japan 2018
2018/09/01 16:00〜 Track B レギュラートーク(15分)

UITextViewを使わずにUITextViewのようなViewを作ることで縦書きテキストエディタを作った話。

UITextViewのあの機能が実はUITextInput由来だったりといった話や、IME周りの挙動をAndroidやUWP, Windows / macOS / Gtkで同様の縦書きエディタを作った経験を交えてお話しします。

CfP: https://fortee.jp/iosdc-japan-2018/proposal/2323a68f-fcf5-42bd-8353-efc6fa583404

cc4966

September 01, 2018
Tweet

More Decks by cc4966

Other Decks in Programming

Transcript

  1. 6*7JFXͱ6*5FYU*OQVUͰ࡞Δ
    ॎॻ͖ͷ5FYU7JFX
    J04%$+BQBO5SBDL#ʙ
    ࿡ʑ!@
    ˞,FZOPUF͸ॎॻ͖Ͱ͖·ͤΜ

    View Slide

  2. ࣗݾ঺հ
    w ࿡ʑʢΖ͘Ζ͘ʣ
    w !@
    w झຯͰ5"5&EJUPSͱ͍͏ॎॻ͖ΤσΟλΛ࡞ͬͯΔ
    w 8JOEPXTNBD046CVOUV൛͸ެ։த
    w J04"OESPJE681൛͸࡞੒தʢϓϩτλΠϓ͸Ͱ͖ͯΔʣ
    !2

    View Slide

  3. ͜ͷൃදͰ఻͍͑ͨ͜ͱ
    w 5FYU7JFX͸ςΩετೖྗΛड͚෇͚Δ7JFXͰ͋Δ͜ͱ
    w J04ͷ6*5FYU7JFX͸ࣗ࡞Ͱ͖Δͱ͍͏͜ͱ
    w ॎॻ͖ͷ5FYU7JFXΛJ04Ͱ࡞Δͱ͖ʹؾΛ͚ͭΔ͜ͱ
    !3

    View Slide

  4. 0VUMJOF
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺
    !4

    View Slide

  5. 0VUMJOF
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺
    !5

    View Slide

  6. ॎॻ͖ͷ5FYU7JFX
    w ςΩετ͕ೖྗͰ͖ͯΔʂ
    w ॎॻ͖Ͱදࣔ͞ΕͯΔʂ
    w ؆୯ͳॎॻ͖ͷ5FYU7JFXͷ࡞Γํߨ࠲
    w 6*7JFXͰΩʔϘʔυ͔ΒͷςΩετೖྗ
    Λड͚औͬͯɺͦͷςΩετΛॎॻ͖ͷ
    ཁ݅ʹैͬͯඳըͯ͠දࣔ͢Δͱ׬੒ʂ
    !6

    View Slide

  7. ॎॻ͖ͷཁ݅
    w จࣈ͕ਫฏํ޲Ͱ͸ͳ͘ɺਨ௚ํ޲ʹਐΉ
    w ߦ͕ਨ௚ํ޲Ͱ͸ͳ͘ɺਫฏํ޲ʹਐΉ
    w ΞϧϑΝϕοτ౳ͷจࣈ͕౓ճస͢Δ
    w ϑΥϯτͷॎॻ͖༻ͷάϦϑ͕࢖༻͞ΕΔ
    w ॎॻ͖ͷࡍ͸ςΩετΛը૾Խ͢Δͱ͖ʹ
    ͜ͷ఺ʹ஫ҙ͢Ε͹ྑ͍
    !7

    View Slide

  8. ॎॻ͖ͷ5FYU7JFX
    w ԣॻ͖ͷ5FYU7JFXͱॎॻ͖ͷ5FYU7JFXͷຊ࣭తͳҧ͍ʹ͍ͭͯ
    w ͲͪΒ΋಺෦ͷจࣈྻ͸ಉ͡
    w දࣔ͞Ε͍ͯΔը૾͕ҧ͏͚ͩ
    !8

    View Slide

  9. ͜ͷൃදͰѻΘͳ͍࿩
    w ॎॻ͖ςΩετͷඳըʹ͍ͭͯ͸͜ΕҎ্ਂ۷Γ͠·ͤΜ
    w 0QFO5ZQFϑΥϯτͷ࢓༷ɺ6OJDPEFͷ࢓༷ɺ૊൛ͷཁ͕݅ؔΘΔ
    w ෼Ͱ͸ѹ౗తʹ଍Γͳ͍ʜʜ
    w 5XJUUFSͱ͔Ͱฉ͍ͯ͘ΕΕ͹ແݶʹճ౴͠·͢
    w J04NBD04ͩͱ$PSF5FYUΛ࢖͑͹͍͚ΔΒ͍͠
    w ࣗ࡞ͷจࣈྻඳըΤϯδϯΛར༻͍ͯ͠ΔͷͰৄ͘͠ͳ͍
    !9

    View Slide

  10. ͜Ε͔Β࿩͢͜ͱ
    w Ͳ͏΍ͬͯςΩετΛड͚औ͍ͬͯΔͷ͔
    w ʢ6*5FYU*OQVU͕͜ͷ໾ׂΛ୲ͬͯΔʣ
    w 6*5FYU7JFXͱಉ౳ͷ7JFX͸ࣗ࡞Ͱ͖Δͷ͔
    w ॎॻ͖ʹؔͯ͠ɺςΩετͷඳըҎ֎Ͱؾ
    Λ͚ͭͳ͚Ε͹͍͚ͳ͍͜ͱ
    !10

    View Slide

  11. 0VUMJOF
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺
    !11

    View Slide

  12. 5FYU7JFXͱ͸ʁ
    w Ͳͷ04Ͱ΋ඪ४ͷ5FYU7JFX͕༻ҙ͞Ε͍ͯ·͢
    w J04ͳΒ6*5FYU7JFXͰ͢
    w ۃΊͯඪ४తͳ7JFXͰ͢
    !12

    View Slide

  13. 5FYU7JFXͱ͸ʁ
    w γϯϓϧͳ΋ͷͩͱࢥΘΕ͍ͯΔ͔΋͠Εͳ͍͕ɺ5FYU7JFX͸

    ΞϓϦͱ04ͱ*.&ͱೖྗ૷ஔʢਓؒʣ͕ަΘΔຐ۸
    !13

    View Slide

  14. σεΫτοϓͷ5FYU7JFX
    !14
    ਓؒ
    ೖྗ૷ஔ
    ग़ྗ૷ஔ
    04
    ΞϓϦ
    5FYU7JFX
    ςΩετදࣔ
    ςΩετʁ

    View Slide

  15. σεΫτοϓͷ5FYU7JFX
    !15
    ਓؒ
    ೖྗ૷ஔ
    ग़ྗ૷ஔ
    04
    ΞϓϦ
    5FYU7JFX
    ςΩετදࣔ
    Ωʔίʔυ

    View Slide

  16. 5FYU7JFXͱ͸ʁ
    w ΩʔίʔυͷετϦʔϜ͔ΒͲ͏ʹ͔ςΩετΛੜ੒͠ͳ͍ͱ͍͚ͳ͍
    w ΞϧϑΝϕοτ͸͍͍ͱͯ͠೔ຊޠ͸ʜʜʁ
    w ͜ΕΛղܾ͢ΔͨΊʹ*.&ͱ͍͏΋ͷ͕͋Δ

    ʢJ04Ͱ͸͜Ε͕ΩʔϘʔυͱݺ͹Ε͍ͯΔʣ
    !16

    View Slide

  17. σεΫτοϓͷ5FYU7JFX
    !17
    ਓؒ
    ೖྗ૷ஔ
    ग़ྗ૷ஔ
    *.&
    ΞϓϦ
    5FYU7JFX
    04
    ςΩετදࣔ
    Ωʔίʔυ
    ςΩετ

    View Slide

  18. εϚϗͷ5FYU7JFX
    !18
    ਓؒ
    ೖग़ྗ૷ஔ
    *.&
    ΞϓϦ
    5FYU7JFX
    04
    ςΩετදࣔ
    ςΩετ

    View Slide

  19. 5FYU7JFXͱ͸ʁ
    w 5FYU7JFXͰ͢΂͖͜ͱ
    w จࣈྻͷදࣔ
    w *.&ΩʔϘʔυ͔ΒͷςΩετೖྗΛड৴
    w ͦͷଞͷࡉ͔͍ػೳ
    w จࣈྻͷબ୒ͱදࣔ
    w จࣈྻͷ੾ΓऔΓɾషΓ෇͚ͳͲͷฤूૢ࡞
    w ฤूૢ࡞ͷΞϯυΡɾϦυΡ
    w දࣔൣғͷεΫϩʔϧ
    !19

    View Slide

  20. ॎॻ͖ͷ5FYU7JFX͸ʁ
    w ॎॻ͖ͷ5FYU7JFX͕ԣॻ͖ͷ5FYU7JFXͱҧ͏ͱ͜Ζ
    w ςΩετද͕ࣔॎॻ͖ʢݟͨ໨͚ͩͷ໰୊ʣ
    w 04ඪ४Ͱ༻ҙ͞Εͯͳ͍
    w ॎॻ͖ͷ5FYU7JFXΛ࢖͍͚ͨΕ͹࡞Δඞཁ͕͋Δ
    w Ͳͷ04ʹ΋ॎॻ͖ͳͲɺಠࣗͷ5FYU7JFXΛ࡞ΔͨΊͷ౔৕͸͋Δ
    w ͦͷཁૉ͕Կ͔ɺԿΛ͢Δͱྑ͍ͷ͔Λ࿩͠·͢
    !20

    View Slide

  21. 0VUMJOF
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺
    !21

    View Slide

  22. 5FYU7JFXͷ͓͞Β͍
    w 5FYU7JFXͰ͢΂͖͜ͱ
    w จࣈྻͷදࣔ
    w *.&ΩʔϘʔυ͔ΒͷςΩετೖྗΛड৴
    !22

    View Slide

  23. 5FYU7JFXͱ*.&ͷؔ܎
    !23
    ਓؒ
    ೖྗ૷ஔ
    ग़ྗ૷ஔ
    *.&
    ΞϓϦ
    5FYU7JFX
    04
    ςΩετදࣔ
    Ωʔίʔυ
    ςΩετ

    View Slide

  24. 5FYU7JFXͱ*.&ͷؔ܎
    w Ͳ͏΍ͬͯ*.&ͱ7JFX͕৘ใΛ΍ΓऔΓ͢Δͷʁɹ4%,ʁ
    !24

    View Slide

  25. 5FYU7JFXͱ*.&ͷؔ܎
    !25
    ਓؒ
    ೖྗ૷ஔ
    ग़ྗ૷ஔ
    *.&
    ΞϓϦ
    04ͷ༻ҙͨ͠
    *.&"1*
    5FYU7JFX
    04
    ςΩετදࣔ

    View Slide

  26. *.&"1*ͱ͸
    w 04͕5FYU7JFX࣮૷ͷͨΊʹ༻ҙ͢Δ7JFXͱ*.&ͷΠϯλʔϑΣʔε
    w ۩ମతͳ࣮૷Λ஌Δ͜ͱͳ͘7JFX͕*.&Λར༻Ͱ͖Δ
    w *.&͸ઐ༻ͷ4%,ͳͲΛ༻ҙͤͣʹ7JFXʹػೳΛఏڙͰ͖Δ
    !26

    View Slide

  27. *.&"1*ͷ֓؍
    w *.&"1*͕7JFXʹཁٻ͢Δͷ͸
    w ςΩετͷऔಘͱมߋ
    w બ୒ൣғͷऔಘͱมߋ
    w 7JFX্ͰͷจࣈͷҐஔ৘ใ
    w ະ֬ఆจࣈྻͷ؅ཧʢྫɿεΫγϣͷʮม׵ʯ͕ະ֬ఆจࣈྻʣ
    w 7JFXʹΑΔςΩετɾબ୒ൣғɾϨΠΞ΢τมߋͷ௨஌
    !27

    View Slide

  28. *.&"1*ͷҰཡ
    !28
    *.&"1*ͷ໊শ 7JFXଆ

    ඪ४࣮૷
    ॎॻ͖ରԠ

    ʢॎॻ͖Ͱ͋ΔࣄΛ఻͑Δํ๏ʣ
    ίϝϯτ
    8JOEPXT
    *5FYU4UPSF"$1

    .4'5&%*5@$-"44
    ͋Γ ೉ղ͚ͩͲߴػೳ
    NBD04
    /45FYU*OQVU$MJFOU

    /45FYU7JFX
    ͋Γ BUUSJCVUFE4USJOH
    ͕ͭΒ͍
    (5,
    (UL*.$POUFYU
    (UL5FYU7JFX
    ͋Γ(ULҎ߱

    ʢͨͩ͠ରԠ*.&͕ͳ͍ؾ͕͢Δʣ
    ΍͚ʹυΩϡϝϯτ͕গͳ͍
    "OESPJE
    #BTF*OQVU$POOFDUJPO

    5FYU7JFX
    ෆՄೳͰ͸ͳ͍͸ͣ

    ʢ$VSTPS"ODIPS*OGPͷTFU.BUSJYʣ
    ᴈ໌ظͷҋ͕֞ؒݟ͑Δ
    681
    8JOEPXT6*5FYU$PSF

    5FYU#PY
    ͳ͠ ॎॻ͖͕͋Ε͹ʜʜ
    J04
    6*5FYU*OQVU

    6*5FYU7JFX
    ͳ͍ͷͱಉ͡ 6*5FYU1PTJUJPO͸ૉ੖Β͍͠

    View Slide

  29. จࣈΛೖྗ͢Δ
    w ਓ͕ؒΩʔϘʔυ͔ΒจࣈΛೖྗ͢Δࡍͷϧʔϓ
    ਓ͕ؒΩʔϘʔυΛୟ͘
    *.&͕ΩʔίʔυΛड͚औΔ
    *.&͕ΞϓϦʹ֬ఆͨ͠ςΩετ·ͨ͸ະ֬ఆจࣈྻΛ౉͢
    ΞϓϦ͕*.&͔ΒจࣈྻΛड͚औΔ
    ΞϓϦ͕ݱࡏͷςΩετΛσΟεϓϨΠʹදࣔ͢Δ
    *.&͕ඞཁͳม׵ީิ΢Οϯυ΢ͳͲΛσΟεϓϨΠʹදࣔ͢Δ
    ਓ͕ؒσΟεϓϨΠΛݟΔ
    !29

    View Slide

  30. 0VUMJOF
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺
    !30

    View Slide

  31. 6*5FYU*OQVU
    w J04Ͱ͸6*7JFXͰ6*5FYU*OQVUΛܧঝ͢Δͱɺ
    w ΩʔϘʔυΛදࣔͤ͞Δ͜ͱ͕Ͱ͖Δ
    w ΩʔϘʔυ͔ΒςΩετΛड͚औΔ͜ͱ͕Ͱ͖Δ
    w ΩʔϘʔυͱ͸ʁ
    !31

    View Slide

  32. J04ʹ͓͚ΔΩʔϘʔυ
    w ࣮࣭తʹ*.&
    w J04ʹ͸େผͯ͠छྨͷΩʔϘʔυ͕͋Δ
    w ඪ४ΩʔϘʔυʢֆจࣈɺӳޠɺ೔ຊޠʜʜʣ
    w ඪ४ΩʔϘʔυʢ෺ཧΩʔϘʔυϞʔυʣ
    w ΧελϜΩʔϘʔυʢ"QQ&YUFOTJPOʣ
    w ෺ཧΩʔϘʔυ͔ΒΧελϜΩʔϘʔυ͸࢖༻Ͱ͖ͳ͍
    !32

    View Slide

  33. ΧελϜΩʔϘʔυ
    w 6**OQVU7JFX$POUSPMMFSΛܧঝ͢Δ͜ͱͰ࣮૷Ͱ͖Δ
    w ςΩετΛฤूͰ͖Δʢ6*5FYU%PDVNFOU1SPYZܦ༝ʣ
    w ඪ४ΩʔϘʔυ͕Ͱ͖Δ͜ͱʹൺ΂ͯػೳ͕େ੍͖͘ݶ͞Ε͍ͯΔ
    w ςΩετɾબ୒ͷมߋ͕Θ͔Δʢ6*5FYU*OQVU%FMFHBUFܦ༝ʣ
    w ౉ͬͯ͘Δ6*5FYU*OQVU͸OJMʹͳΔʢ҆શͷͨΊʣ
    w ݺͼग़͠ݩ͕OJMʹͳΓ͏Δ௝͍͠EFMFHBUFͰ͢
    !33

    View Slide

  34. ΩʔϘʔυͷൺֱ
    !34
    ඪ४ΩʔϘʔυ
    ඪ४ΩʔϘʔυ
    ʢ෺ཧΩʔϘʔυϞʔυʣ
    ΧελϜΩʔϘʔυ
    จࣈྻͷૠೖ Մೳ Մೳ Մೳ
    จࣈྻૠೖҐஔͷҠಈ Մೳ Մೳ Մೳ
    จࣈྻͷ࡟আ ແ੍ݶ ແ੍ݶ CBDLTQBDFͷΈ
    จࣈྻͷऔಘ ແ੍ݶ ແ੍ݶ બ୒ൣғલޙͷจࣈྻͷΈ
    จࣈྻͷબ୒ Մೳ Մೳ ෆՄೳ
    ະ֬ఆจࣈྻͷදࣔ Մೳ Մೳ ෆՄೳ
    ύεϫʔυೖྗͰͷ࢖༻ Մೳ Մೳ ෆՄೳ
    ϑϩʔςΟϯάΩϟϨοτ Մೳ ෆՄೳ ෆՄೳ
    Ի੠ೖྗ݁Ռͷఏڙ Մೳ ෆՄೳ ෆՄೳ

    View Slide

  35. 6*5FYU*OQVUͷܧঝؔ܎
    w 6*5FYU*OQVUͷܧঝؔ܎͸ɺݖݶΛ෼཭͢ΔͨΊʹ͜͏ͳͬͯΔ
    w QSPUPDPM6*5FYU*OQVU5SBJUT
    w QSPUPDPM6*,FZ*OQVU6*5FYU*OQVU5SBJUT
    w ΧελϜΩʔϘʔυ͸͜͜·Ͱ͔͠࢖͑ͳ͍
    w QSPUPDPM6*5FYU*OQVU6*,FZ*OQVU
    !35

    View Slide

  36. 0VUMJOF
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺
    !36

    View Slide

  37. 6*5FYU7JFXͷػೳ
    w 6*5FYU*OQVUΛ࣮૷͢ΔͱςΩετΛड͚औΕΔΑ͏ʹͳΓ·͢
    w ඞཁ࠷௿ݶͷ5FYU7JFX͸࡞Ε·͢
    w ͚Ͳͦͷલʹɺ
    w ಠࣗͷ5FYU7JFXΛ࡞Δͱͯ͠΋ɺඪ४ͷ࢓༷Λ஌͓ͬͯ͘΂͖
    w ಉ͡Α͏ͳ6*ΛఏڙͰ͖Δͱྑ͍
    w J04ඪ४ͷ5FYU7JFXͰ͋Δ6*5FYU7JFXͷ֤छػೳʹ͍ͭͯ֬ೝ͠·͢
    !37

    View Slide

  38. 6*5FYU7JFXͷجຊػೳ
    w ςΩετ͕ඳը͞ΕΔ
    w ಺෦తʹ͸$PSF5FYUͱ͔Λ࢖͍ͬͯΔ͸ͣ
    w શମΛݟ౉ͤΔΑ͏ʹεΫϩʔϧ͞ΕΔ
    w 6*5FYU7JFX͸6*4DSPMM7JFXΛܧঝ͍ͯ͠Δ
    w ςΩετ͕ೖྗͰ͖Δ
    w 6*5FYU*OQVUΛૉ௚ʹ࣮૷͢Δͱ࣮ݱ͞ΕΔ
    !38

    View Slide

  39. 6*5FYU7JFXͷػೳ
    w ૠೖҐஔʹΩϟϨοτ͕දࣔ͞ΕΔ
    w จࣈྻΛબ୒Ͱ͖ɺͦͷൣғ͕දࣔ͞ΕΔ
    !39

    View Slide

  40. ΩϟϨοτͷදࣔ
    w 6*5FYU$POUBJOFS7JFXͷ্ʹ
    6*5FYU4FMFDUJPO7JFX͕৐͔͍ͬͬͯΔ
    w ςΩετͷબ୒ঢ়ଶΛදࣔ͢Δ7JFX
    w ෯ͷ6*7JFX͕ҰఆִؒͰ఺໓͢Δ
    w BMQIB͕มΘΔ
    w 6*5FYU7JFXͷΩϟϨοτͷ৭͸ࢦఆෆՄೳ
    !40
    ࣮૷Մೳ

    View Slide

  41. 6*5FYU7JFXͷػೳ
    w จࣈྻΛબ୒Ͱ͖ɺͦͷൣғ͕දࣔ͞ΕΔ
    !41

    View Slide

  42. બ୒ൣғͷදࣔ
    w 6*5FYU4FMFDUJPO7JFX
    w 6*5FYU3BOHF7JFX
    w ࠷ॳ࠷ޙͦΕҎ֎ͷߦͷ࠷େͭ
    ͷ൒ಁ໌ͳ6*7JFX
    w બ୒ͷઌ಄ͱ຤ඌʹθϩ෯ͷ6*7JFX
    w 6*4FMFDUJPO(SBCCFSºͷॎ๮
    w 6*4FMFDUJPO(SBCCFS%PUºͷؙ
    w ͜ΕΒͷ৭͸UJOU$PMPSʹै͏
    w ςΩετͷඳը݁Ռʹ͸ׯব͠ͳ͍ͷͰબ
    ୒தͷจࣈ৭Λม͑Δ͜ͱ͸Ͱ͖ͳ͍
    !42
    ࣮૷Մೳ

    View Slide

  43. 6*5FYU7JFXͷػೳ
    w ΩϟϨοτͷҐஔΛࢦఆ͢Δͱ͖ʹ֦େϨ
    ϯζ͕ϙοϓΞοϓ͞ΕΔ
    !43

    View Slide

  44. ςΩετૠೖҐஔͷબ୒
    w 6*5FYU&⒎FDUT8JOEPX্ʹදࣔ͞ΕΔ
    w 6*8JOEPXͳͷͰ7JFXͷ֎ʹ΋දࣔՄೳ
    w 6*5FYU.BHOJpFS$BSFUͷதʹ
    6*(SBQIJDT(FU$VSSFOU$POUFYU͔Βऔ
    ಘͰ͖Δը૾Λද͍ࣔͯ͠Δ
    !44
    ࣮૷Մೳ

    View Slide

  45. 6*5FYU7JFXͷػೳ
    w બ୒ൣғΛมߋ͢Δͱ͖લޙͷจষͷ֦େ
    Ϗϡʔ͕ϙοϓΞοϓ͞ΕΔ
    !45

    View Slide

  46. ςΩετૠೖҐஔͷબ୒
    w 6*5FYU&⒎FDUT8JOEPX্ʹදࣔ͞ΕΔ
    w 6*8JOEPXͳͷͰ7JFXͷ֎ʹ΋දࣔՄೳ
    w 6*5FYU.BHOJpFS3BOHFEͷதʹ
    6*(SBQIJDT(FU$VSSFOU$POUFYU͔Βऔ
    ಘͰ͖Δը૾Λද͍ࣔͯ͠Δ
    !46
    ࣮૷Մೳ

    View Slide

  47. 6*5FYU7JFXͷػೳ
    w جຊతͳฤूϝχϡʔ͕දࣔ͞ΕΔ
    !47

    View Slide

  48. 6*.FOV$POUSPMMFSTIBSFETFU.FOV7JTJCMF
    w DBO1FSGPSN"DUJPOͰରԠͨ͠جຊతͳฤूϝχϡʔΛදࣔͰ͖Δ
    w TFMFDUTFMFDU"MMDVUDPQZQBTUFEFMFUFͳͲ
    w ϝχϡʔͷ߲໨ͷݴޠ͸ΞϓϦͷMPDBMJ[F͔Βܾ·Δ
    w ͦΕҎ֎ͷϝχϡʔ͸खಈͰ௥ՃՄೳ
    !48
    ࣮૷Մೳ

    View Slide

  49. 6*5FYU7JFXͷػೳ
    w ςΩετͷυϥοάˍυϩοϓ͕Ͱ͖Δ
    ʢJ04Ҏ߱ʣ
    !49

    View Slide

  50. υϥοάˍυϩοϓ
    w 6*5FYU7JFX͸ҎԼΛܧঝ͍ͯ͠Δ
    w 6*5FYU%SPQQBCMF
    w 6*5FYU%SBHHBCMF
    w ಉ౳ͷ͜ͱΛ͍ͨ͠৔߹
    w 6*%SBH*OUFSBDUJPO
    6*%SPQ*OUFSBDUJPOΛొ࿥͢Δ
    ͷָ͕
    !50
    ࣮૷Մೳ

    View Slide

  51. 6*5FYU7JFXͷػೳ
    w εϖϧνΣοΫػೳ
    w ରԠݴޠͷΩʔϘʔυΛ࢖༻͍ͯ͠Δͱ
    ػೳ͢Δ
    w मਖ਼ީิ͕͋Δ୯ޠʹ͸੺ઢ
    w ର৅จࣈྻΛλοϓ͢Δͱमਖ਼ީิ͕ද
    ࣔ͞ΕΔ
    !51

    View Slide

  52. εϖϧνΣοΫػೳ
    w εϖϧνΣοΫ͸ΩʔϘʔυͱಠཱͯ͠
    6*5FYU7JFX಺Ͱ࣮૷͞Ε͍ͯΔ
    !52
    ࣮૷Մೳ

    View Slide

  53. 6*5FYU7JFXͷػೳ
    w Ի੠ೖྗ݁Ռ΁ͷ୅ସީิαδΣετػೳ
    w ରԠ͢ΔݴޠͷԻ੠ೖྗ݁Ռʹଞͷީิ
    ΛαδΣετͯ͘͠ΕΔػೳ
    w ผީิ͕͋Δ৔߹ɺ੨ઢ͕Ҿ͔ΕΔ
    w ର৅จࣈྻΛλοϓ͢Δͱଞͷީิ͕ද
    ࣔ͞ΕΔ
    !53

    View Slide

  54. Ի੠ೖྗͷमਖ਼ػೳ
    w 6*5FYU*OQVUΛ࣮૷͢Δͱɺඪ४ΩʔϘʔυ
    ͰͷԻ੠ೖྗऴྃ࣌ʹଞͷީิͷҰཡΛड
    ͚औΔ͜ͱ͕Մೳ
    w ͦΕΛར༻࣮ͯ͠૷͢Ε͹ྑ͍
    !54
    ࣮૷Մೳ

    View Slide

  55. 6*5FYU7JFXͷػೳ
    w ҎԼͷૢ࡞ͰΞϯυΡɾϦυΡ͕Ͱ͖Δ
    w ΩʔϘʔυ্ͷඪ४Ϙλϯ
    w J1BEͰͷΈදࣔ͞ΕΔ
    w ୺຤ͷγΣΠΫ
    w ઃఆʼΞΫηγϏϦςΟʼγΣΠΫͰ
    औΓফ͕͠ΦϯͳΒ
    w $PNNBOE;$PNNBOE4IJGU;
    w ෺ཧΩʔϘʔυ͔Β
    !55

    View Slide

  56. ΞϯυΡɾϦυΡ
    w 6OEP.BOBHFS
    w VOEP.BOBHFS6*5FYU*OQVU
    w ࣮૷͢ΔͱࣗಈͰݺ͹ΕΔ
    w ฤूཤྺͦͷ΋ͷ͸ࣗ෼Ͱ࣮૷
    !56
    ࣮૷Մೳ

    View Slide

  57. 6*5FYU7JFXͷػೳ
    w ΩʔϘʔυ্ͷૢ࡞ͰϑϩʔςΟϯάΧʔ
    ιϧΛग़ͤΔ
    w J1IPOFɿ'PSDFUPVDIͰεϫΠϓ
    w J1BEɿຊࢦͰεϫΠϓ
    w ඪ४ΩʔϘʔυͷΈͰ࢖͑Δ
    !57

    View Slide

  58. ϑϩʔςΟϯάΧʔιϧ
    w 6*5FYU*OQVUͰ࣮૷͞Ε͍ͯΔ
    w ϑϩʔςΟϯάΩϟϨοτΛදࣔͯ͠࠷
    ޙʹબ୒ҐஔΛมߋ͢Ε͹ྑ͍
    w ΧελϜΩʔϘʔυͰ͸ԣεϫΠϓ͢Δͱ
    εϫΠϓڑ཭ʹԠٖͯ͡ࣅతʹςΩετҐ
    ஔΛม͑Δػೳ͕͋ͬͨΓ͢Δ͕ɺͬͪ͜
    ͸ΩʔϘʔυଆ͕બ୒ҐஔΛมߋ͍ͯ͠Δ
    !58
    ࣮૷Մೳ

    View Slide

  59. 6*5FYU7JFXͷػೳ
    w ෺ཧΩʔϘʔυͩͱೖྗதͷ৔ॴʹม׵ީ
    ิ͕ग़Δ
    w ιϑτΩʔϘʔυͩͱΩʔϘʔυͷ্
    !59

    View Slide

  60. ม׵ީิ΢Οϯυ΢ͷදࣔ
    w ඪ४ΩʔϘʔυʴ෺ཧΩʔϘʔυͷΈ
    w 6*5FYU*OQVUܦ༝Ͱऔಘͨ͠৘ใΛݩʹඪ
    ४ΩʔϘʔυ͕දࣔͯ͘͠ΕΔ
    w 6*5FYU*OQVU͕ฦ͢UFYU*OQVU7JFXʹ
    6*,FZCPBSE$BOEJEBUF(SJE$PMMFDUJPO7
    JFX$POUSPMMFS͕উखʹ௥Ճ͞ΕΔ
    !60
    ࣮૷Մೳ

    View Slide

  61. 6*5FYU7JFX
    w 6*5FYU7JFXͷػೳͷૉ௚ʹ࣮૷Ͱ͖Δ͜ͱ͕֬ೝͰ͖ͨ
    w ͋ͱ͸จࣈೖྗΛड͚औΓɺඪ४ΩʔϘʔυͷͨΊͷػೳΛ࣮૷͢Δ͚ͩ
    !61
    ࣮૷Մೳ

    View Slide

  62. 0VUMJOF
    !62
    ॎॻ͖ͷ5FYU7JFX͸6*7JFX6*5FYU*OQVUͰ࡞ΕΔ
    ͦ΋ͦ΋5FYU7JFXͱ͸ʁ
    *.&"1*ͷ໾ׂ
    *.&"1*ͷ໾ׂʢJ04ʣ
    6*5FYU7JFXͰͰ͖Δ͜ͱͱͦͷ࣮૷
    J04Ͱॎॻ͖ͷ5FYU7JFXΛ࡞Δࡍͷ஫ҙ఺

    View Slide

  63. 6*7JFX6*5FYU*OQVU
    w جຊతʹ͸6*7JFXͰ6*5FYU*OQVUΛܧঝ࣮ͯ͠૷͢Δ͚ͩ
    w ॎॻ͖Ͱ΋ͳΜͰ΋޷͖ͳ5FYU7JFXΛ࡞Δ͜ͱ͕Մೳ
    w ͦΕҎ֎Ͱ๨Εͯ͸͍͚ͳ͍͜ͱ
    w DBO#FDPNF'JSTU3FTQPOEFS6*3FTQPOEFSͰUSVFΛฦ͢
    w *.&ͷͨΊʹJOQVU%FMFHBUFͰςΩετ΍બ୒ൣғͷมߋΛ௨஌͢Δ
    w ਓؒͷͨΊʹςΩετΛදࣔͯ͋͛͠Δ
    w ਓؒͷͨΊʹςΩετͷจࣈྻͷબ୒6*Λ༻ҙ͢Δ
    !63

    View Slide

  64. 6*5FYU*OQVUͷ࣮૷
    w 6*5FYU1PTJUJPOɿจࣈྻதͷҐஔΛදݱ͢ΔجఈΫϥε
    w ͜ΕΛܧঝͯ͠ઐ༻ͷදݱΫϥεΛ࡞Δ
    w ςΩετͷબ୒ҐஔΛίʔυϙΠϯτ਺ͳͲ͔Βૄ݁߹ʹͰ͖Δ
    w ଞͷ04ͷ*.&"1*ʹ͸ͳ͍J04͚ͩͷར఺
    !64

    View Slide

  65. 6*5FYU*OQVUͷ࣮૷
    w 6*5FYU*OQVU5PLFOJ[FS
    w จࣈɾ୯ޠɾจষɾߦͳͲͷڥք΁ͷΞΫηεΛఏڙ͢Δ
    w ࢖ΘΕΔλΠϛϯά
    w ඪ४ΩʔϘʔυͰߴ଎ʹҠಈ͢Δͱ͖
    w ΧελϜΩʔϘʔυ͔Β6*5FYU%PDVNFOU1SPYZܦ༝ͰલޙͷςΩε
    τʹΞΫηε͢Δͱ͖
    w 6*5FYU*OQVU4USJOH5PLFOJ[FS͕ඪ४ͷ࣮૷
    !65

    View Slide

  66. 6*5FYU*OQVU5SBJUTͷ஫ҙ఺
    w جຊతʹ͸ΩʔϘʔυ΁ͷཁٻ͕ͩɺྫ֎΋͋Δ
    w WBSJT4FDVSF5FYU&OUSZ#PPM
    w 04΁ͷཁٻʢ04ඪ४ͷΩʔϘʔυͷΈ࢖༻͞ΕΔΑ͏ʹͳΔʣ
    w WBSTQFMM$IFDLJOH5ZQF6*5FYU4QFMM$IFDLJOH5ZQF
    w 6*7JFXʢࣗ਎ʣ΁ͷཁٻ
    !66

    View Slide

  67. 6*5FYU*OQVUͷ஫ҙ఺
    w J04͸ະ֬ఆจࣈྻͷ૷০৘ใ͸*.&͔Βࢦఆ͞Εͳ͍
    w NBSLFE5FYU4UZMF3FRVJSFE
    w ະ֬ఆจࣈྻͷ૷০৘ใ͕౉͞ΕΔϓϩύςΟ
    w ࢖༻͞ΕΔ4UZMF%JDUJPOBSZ,FZT͕શͯEFQSFDBUFEͳͷͰ࣮࣭
    EFQSFDBUFE
    w ະ֬ఆจࣈྻͷ૷০͸7JFXଆ͕೚ҙʹߦ͏
    w ϔομʔϑΝΠϧʹVOJRVFʹදࣔ͠Ζͱॻ͔Ε͍ͯΔ
    w ͪͳΈʹɺ૷০৘ใ͕ࢦఆ͞Εͳ͍ͷ͸J04͚ͩ
    !67

    View Slide

  68. 6*5FYU*OQVUͷॎॻ͖ରԠ
    w 6*5FYU8SJUJOH%JSFDUJPOΛฦ͢ͱ͜Ζ
    w ԣॻ͖ઐ༻ͳͷͰؾʹ͠ͳ͍͍ͯ͘
    w 6*5FYU4FMFDUJPO3FDUΛฦ͢ͱ͜Ζ
    w JT7FSUJDBMΛUSVFʹ͢Δͷ͕ਖ਼ͦ͠͏ʢͨͩ͠ಛʹڍಈ͸มΘΒͳ͍ʣ
    !68

    View Slide

  69. εϚϗͱॎॻ͖ରԠ
    w ॎॻ͖͸ιϑτΩʔϘʔυͱͷ૬ੑ͕ඇৗʹѱ͍
    w ॎॻ͖ͷϦϑϩʔ͸ը໘෯Ͱ͸ͳ͘ɺදࣔྖҬͷߴ͞ͷมߋͰى͖Δ
    w ΩʔϘʔυͷදࣔͷ༗ແͰߴ͕͞มΘΔ
    w ΩʔϘʔυͷߴ͞΋*.&ͷม׵ީิͷ༗ແͰߴ͕͞มΘΔ͜ͱ͕͋Δ
    w Ϧϑϩʔൃੜʂ
    w ΩʔϘʔυͷߴ͞΁ͷ௥ैͱϦϑϩʔͷࢦ਑͸͖ͪΜͱߟ͑Δඞཁ͕͋Δ
    !69

    View Slide

  70. ·ͱΊ
    w ఻͔͑ͨͬͨ͜ͱ
    w 5FYU7JFX͸ςΩετೖྗΛड͚෇͚Δ7JFXͰ͋Δ͜ͱ
    w J04ͷ6*5FYU7JFX͸ࣗ࡞Ͱ͖Δͱ͍͏͜ͱ
    w ॎॻ͖ͷ5FYU7JFXΛJ04Ͱ࡞Δͱ͖ʹؾΛ͚ͭΔ͜ͱ
    w ࿩ͨ͜͠ͱ
    w 7JFXͱ*.&"1*ͷؔ܎ɺςΩετΛड͚औΔʹ͸
    w J04ͷΩʔϘʔυࣄ৘ʢΩʔϘʔυ㲈*.&ʣ
    w 6*5FYU7JFXͷػೳಉ౳ͳػೳͷ࣮૷ํ๏
    w ॎॻ͖ͷ5FYU7JFXΛJ04Ͱ࡞ΔࡍͷྲྀΕ
    !70

    View Slide