Slide 1

Slide 1 text

4XJGUѪ޷ձ ॳ৺ऀϋϯζΦϯ  SwiftѪ޷ձ #31

Slide 2

Slide 2 text

ΨΠμϯε • SwiftѪ޷ձͷ৽͍͠औΓ૊Έͱͯ͠ɺॳ৺ऀϋϯ ζΦϯΛ΍ͬͯΈΑ͏ͱ͍͏͜ͱʹͳΓ·ͨ͠ɻ • ༗ࢤʹΑΔϋϯζΦϯͱͳΓ·͢ͷͰɺࢸΒͳ͍ ఺ͳͲ͋Δ͔΋͠Ε·ͤΜɻ͝ڠྗɺ͝ཧղ͍ͨͩ ͖·͢Α͏͓ئ͍͍ͨ͠·͢ɻ

Slide 3

Slide 3 text

ࣗݾ঺հ • ࢘ձਐߦ໾ͷ঺հ • Reiko Goto(@burakon) • Satoru Ohguchi(@o_chicchi) • ϝϯλʔਞͷ঺հ • Ұݴͣͭࣗݾ঺հԼ͍͞ɻ

Slide 4

Slide 4 text

͸͡Ίʹ • ຊ೔ͷਐΊํ • αϯϓϧϓϩάϥϜΛ׬੒͢Δ͜ͱΛΰʔϧͱ͠·͢ɻ • ࠷ॳʹ֓ཁͳͲΛઆ໌͠·͢ɻ • ͻͱ·ͱ·Γຖʹઆ໌ɺ࣮ࡍ΍ͬͯ௖͘ͷ܁Γฦ͠Ͱ͢ɻ • ਵ࣌ɺ࣭໰͍ͯͩ͘͠͞ɻ • ૢ࡞ͷ෼͔Βͳ͍఺ͳͲ͸ɺϝϯλʔʹϔϧϓΛٻΊͯ Լ͍͞ɻ • άϧʔϓͰॿ͚߹͍ͳ͕ΒਐΊ͍͚ͯͨͩΔ͜ͱ΋ظ଴͠ ͍ͯ·͢ɻ •

Slide 5

Slide 5 text

ࣗݾ঺հ • ໊͓લɺχοΫωʔϜͰ΋Α͍Ͱ͢ɻ • ֶੜ? ࣾձਓ? • ;ͩΜ΍͍ͬͯΔ͜ͱ(࢓ࣄ΍झຯͷ͜ͱͱ͔ɺઐ ߈ͷ͜ͱͱ͔) • SwiftҎ֎ͷݴޠͷܦݧͱɺSwiftͷܦݧ

Slide 6

Slide 6 text

ࢀՃऀΞϯέʔτ(1) •ֶੜͰ͋Δ •ए͍ࣾձਓͰ͋Δ •΋͏ए͘ͳ͍ࣾձਓͰ͋Δ •·ͩ·ͩݩؾͳ೥دΓͰ͋Δ

Slide 7

Slide 7 text

ࢀՃऀΞϯέʔτ(2) • ࢲ͸ɺ·ͬͨ͘ͷॳ৺ऀͰɺMacΛ৮Δͷ΋ɺϓ ϩάϥϜ͢Δͷ΋ॳΊͯͩɻ(͓͓ΉͶ1೥ະຬ) • ଞͷݴޠͰͷϓϩάϥϛϯάܦݧ͸͋Δ(ઙͯ͘΋ Մ)ɺiOSͷϓϩάϥϜΛॻ͍ͯΈ͍͔ͨΒɺࠓ೔͸ དྷͯΈͨɻ • ΞϓϦΛ࡞ͬͯΈͨͯ͘ɺॻ੶ͳͲͰֶश͍ͯ͠ Δ͕ɺͳ͔ͳ͔शಘʹࢸΒͣɺۤ࿑͍ͯ͠Δɻ

Slide 8

Slide 8 text

࿩͞ͳ͍͜ͱ • Storyboard ΋গ͚͔ͩ͠͠΍Γ·ͤΜɻ • ڽͬͨϨΠΞ΢τ΍ɺਂ͍ϓϩάϥϛϯάʹ͍ͭ ͯ͸ѻ͍·ͤΜɻ • ઃܭख๏ͱ͍ͬͨ͜ͱʹ͸৮Ε·ͤΜɻςετप ลͷίʔυ΋৮Ε·ͤΜɻ • ΞϓϦͷϦϦʔεʹ޲͚ͨొ࿥ํ๏ɺసૹํ๏ʹ ͍ͭͯ͸৮Ε·ͤΜɻ

Slide 9

Slide 9 text

ϓϩάϥϛϯάֶशʹ͍ͭͯ

Slide 10

Slide 10 text

ϓϩάϥϜΛश͏ಈػ • Կ͔࡞ͬͯΈ͍ͨαʔϏεɺΞϓϦ͕͋ͬͯɺͦ ͷͨΊʹֶश͢Δɻ • ब৬ɺస৬׆ಈʹ༗ར͔ͩΒɺֶशͯ͠༗རʹਐ Ί͍ͨɻ • Ͱ΋ɺαʔϏε΍ΞϓϦΛ׬੒ͤ͞Δ͜ͱ͕ॏཁ ͰɺʮJavaΛश͍ͬͯ·͢ʯͱ͍͏ΑΓɺ੒Ռ෺͕ ͋Δ΄͏͕Α͍ɻ

Slide 11

Slide 11 text

ϓϩάϥϛϯάݴޠʹ͍ͭͯ • Ͳͷݴޠ͔Βೖͬͯ΋ɺͲΕͰ΋͍͍ͱࢥ͏ɻͰ ΋ɺࠓ೔͸ɺSwiftɻSwift ͸ਪ঑Ͱ͖ΔɺΑ͘Ͱ͖ ͨݴޠͩͱࢥ͏ɻ • ಘҙͳݴޠΛɺ1ͭ࣋ͭ͜ͱ͕ॏཁɻಘҙͳݴޠΛ ෳ਺ʹͰ͖ͨΒɺͰ͖Δ͜ͱ͕޿͕Δɻ • 1ͭͷݴޠΛशಘͰ͖Ε͹ɺଞͷݴޠʹ޿͍͛ͯ͘ ͜ͱ͸ɺͦΜͳʹ೉͘͠ͳ͍ɻ

Slide 12

Slide 12 text

ϓϩάϥϛϯάֶशͷίπ • ίϐʔ&ϖʔετ͚ͩͰ͸ɺͳ͔ͳֶ͔श͸೉͍͠ɻ • ࣮ࡍʹɺλΠϓͯ͠ɺಈ͖Λ֬ೝ͠ͳ͕Β΍Δͷ͕ Α͍ɻ • ͳͥɺ͜͏ಈ͘ͷ͔ɺϩδοΫ͕Ͳ͏ͳ͍ͬͯΔͷ ͔ɺཧղͯ͠ਐΊΔ͜ͱ͕ॏཁɻࢴʹॻ͍ͯΈͨΓɺ ੔ཧͯ͠ΈͨΓɻ • ޠֶͱҰॹͰগͣͭ͠Ͱ΋ຖ೔ɺຊಡΜͩΓɺ৮Ε ͨΓ͢Δ͜ͱ͕ਐาʹܨ͕Δɻ

Slide 13

Slide 13 text

ݸਓతʹ͸… • ϓϩάϥϛϯά͸ɺࠓޙɺখֶੜͷΧϦΩϡϥϜʹ ೖ͖ͬͯͯ޿͕͍ͬͯ͘͜ͱ͕༧૝͞ΕΔɻجຊ஌ ࣝͷྖҬʹۙ͘ͳ͍ͬͯ͘ͱࢥ͏ɻ • ΞϓϦΛ࡞ͬͨΓɺશੈքʹϦϦʔεͰ͖ͨΓ͢Δ ࢓૊Έ͸໘ന͍ɻपล஌ࣝ͸͍Ζ͍ΖඞཁͰ͕͢ɺ νϟϨϯδ͢ΔՁ஋͸͋Δͱࢥ͍·͢ɻ • ੲ͔Βɺίϯϐϡʔλʔ͕޷͖ͳਓͱͯ͠͸ɺίϯ ϐϡʔλʔ΍ϓϩάϥϛϯά͕ɺ޷͖ʹͳͬͯ͘Ε Δਓ͕ҰਓͰ΋૿͑ͨΒخ͍͠ɻ

Slide 14

Slide 14 text

ϋϯζΦϯͷਐΊํ

Slide 15

Slide 15 text

ϋϯζΦϯࢿྉ w $PNNQBTT্ͷϦϯΫ͔ΒɺHJUIVC্ͷखॱΛࢀরԼ ͍͞ɻ w εϥΠυ্Ͱ͸ɺओͳखॱͷΈࣔ͠·͢ɻ w ਐΊΒΕΔํ͸ɺखॱΛݟͳ͕Βઌ΁ਐΊͯԼ͍͞ɻ

Slide 16

Slide 16 text

Xcodeͷॳظઃఆ

Slide 17

Slide 17 text

XcodeΛىಈ͢Δ • ΞϓϦέʔγϣϯ → Xcode ͱબΜͰىಈ

Slide 18

Slide 18 text

ઃఆը໘Λબ୒ w 9DPEFˠ1SFGFSFODFTͱબΜͰىಈ

Slide 19

Slide 19 text

Xcodeͷॳظઃఆ(1) • Accounts Λબ୒͢Δɻ

Slide 20

Slide 20 text

Xcodeͷॳظઃఆ(1) • ࠨԼʹ͋ΔʮʴʯΛબ୒͢Δɻ

Slide 21

Slide 21 text

Xcodeͷॳظઃఆ(1) • Apple ID Λબ୒͠ɺContinue Λબ୒͢Δɻ

Slide 22

Slide 22 text

Xcodeͷॳظઃఆ(1) • AppleIDͷΞΧ΢ϯτΛઃఆ͠ɺSign In Λબ୒͢Δɻ

Slide 23

Slide 23 text

Xcodeͷॳظઃఆ(2) •ߦදࣔΛग़͢ Text Editing ͷதͷ Line Number Λબ୒͢Δɻ

Slide 24

Slide 24 text

Xcodeͷॳظઃఆ(3) w %PVCMF$MJDL/BWJHBUJPOΛઃఆ͢Δɻ

Slide 25

Slide 25 text

Hello World Λग़ͯ͠ΈΔ

Slide 26

Slide 26 text

ϓϩδΣΫτΛ࡞੒͢Δ • File → New → Project

Slide 27

Slide 27 text

ΞϓϦͷλΠϓΛબ୒͢Δ • Single View App → Next Λબ୒

Slide 28

Slide 28 text

ϓϩδΣΫτͷඞཁࣄ߲Λઃఆ •ҎԼͷΑ͏ʹهೖͯ͠ɺNext Λબ୒ɻ

Slide 29

Slide 29 text

อ؅ઌΛબ୒ • อ؅৔ॴΛઃఆͯ͠ɺʮCreateʯΛબ୒͢Δɻ

Slide 30

Slide 30 text

Storyboard Λબ୒ •Xcode͕։͘ͷͰɺStoryboard Λબ୒

Slide 31

Slide 31 text

SafeAreaΛબ୒ •Safe Area Λબ୒͢Δ

Slide 32

Slide 32 text

Hello World ͷϥϕϧΛ഑ஔ͢Δ • Xcode ͷӈԼʹ͋Δը໘ͷը໘Ͱɺʮshow the object libraryʯΛબ୒ • Filter ʹ Label ͱೖྗ • Label ͕දࣔ͞ΕΔ͜ͱΛ֬ೝ

Slide 33

Slide 33 text

Hello World ͷϥϕϧΛ഑ஔ͢Δ

Slide 34

Slide 34 text

Hello World ʹจࣈྻΛॻ͖׵͑Δ

Slide 35

Slide 35 text

੍໿Λઃఆ͢Δ

Slide 36

Slide 36 text

ԼهͷΑ͏ʹͳ͍ͬͯΔ͜ͱΛ֬ೝ

Slide 37

Slide 37 text

Ϗϧυ࣮ͯ͠ߦͯ͠ΈΔ • iPhoneX ͷγϛϡϨʔλʔΛબΜͰʮ⾣ʯΛબ୒͢Δɻ

Slide 38

Slide 38 text

ΫΠζΞϓϦ

Slide 39

Slide 39 text

ૉࡐͷμ΢ϯϩʔυ • ΫΠζͷ໰୊ͷcsvٴͼɺը૾Λ༻ҙͨ͠ͷͰɺμ ΢ϯϩʔυ͓ئ͍͠·͢ɻ

Slide 40

Slide 40 text

શମͷྲྀΕͷઆ໌ • ࠓճͷΞϓϦͷશମతͳྲྀΕΛҎԼʹࣔ͠·͢ɻ ? ?

Slide 41

Slide 41 text

4UPSZ#PBSE

Slide 42

Slide 42 text

Xcode Ͱ৽͍͠ϓϩδΣΫτΛ։͘

Slide 43

Slide 43 text

ը໘ͷૉࡐΛొ࿥͢Δ w "TTFUTYDBTTFUTΛબ୒͢Δɻ "TTFUTYDBTTFUT

Slide 44

Slide 44 text

ը໘ͷૉࡐΛొ࿥͢Δ •ը໘ͷૉࡐΛ഑ஔ͢Δɻ

Slide 45

Slide 45 text

ViewControllerͷ഑ஔ • StoryBoard Λબ୒ͯ͠ɺදࣔ͠ɺViewController Λ഑ஔ͢Δɻ

Slide 46

Slide 46 text

֤ը໘༻ͷίʔυΛ४උ w 'JMFΛબ୒͠·͢ɻ

Slide 47

Slide 47 text

֤ը໘༻ͷίʔυΛ४උ w $PDPB5PVDIΛબ୒͢Δ

Slide 48

Slide 48 text

w ΫϥεΛࢦఆ͠·͢ɻ2VJ[7JFX$POUSPMMFSͱࢦఆ͢Δɻ ֤ը໘༻ͷίʔυΛ४උ

Slide 49

Slide 49 text

֤ը໘༻ͷίʔυΛ४උ w ʮ$SFBUFʯΛબ୒͠·͢ɻ

Slide 50

Slide 50 text

֤ը໘༻ͷίʔυΛ४උ w ಉ༷ʹɺ3FTVMU7JFX$POUSPMMFSΛ࡞੒͠·͢ɻ

Slide 51

Slide 51 text

$VTUPN$MBTTͷࢦఆ w ֤ετʔϦʔϘʔυʹࢦఆ͠·͢ɻ

Slide 52

Slide 52 text

$VTUPN$MBTTͷࢦఆ w ಉ༷ʹɺ3FTVMU7JFX$POUSPMMFS΋ࢦఆ

Slide 53

Slide 53 text

෦඼഑ஔ

Slide 54

Slide 54 text

શମ׬੒ਤ

Slide 55

Slide 55 text

τοϓը໘ w *NBHF7JFXͱ#VUUPOΛ഑ஔ͠·͢ɻ

Slide 56

Slide 56 text

ΫΠζදࣔը໘ w ҎԼ഑ஔ͠·͢ɻ w ϥϕϧ͇ w Ϙλϯ͇ w UBHΛઃఆ w *NBHF7JFXº

Slide 57

Slide 57 text

݁Ռදࣔը໘ w ҎԼΛ഑ஔ͠·͢ɻ w *NBHF7JFX w ϥϕϧ w Ϙλϯ

Slide 58

Slide 58 text

֤ը໘ͷඥ෇͚ w ελʔτϘλϯ͔Βɺ 2VJ[7JFX$POUSPMMFS ΁Ή͔ͬͯɺTFHVF Λઃఆ͢Δɻ

Slide 59

Slide 59 text

ը໘ͱͷඥ෇͚ w 2VJ[7JFX$POUSPMMFS ͔Βɺ 3FTVMU7JFX$POUSPMMFS ʹ޲͔ͬͯɺTFHVF Λઃఆ͢Δɻ

Slide 60

Slide 60 text

ը໘ͱͷඥ෇͚ w *EFOUJpFSΛఆٛ͢Δ

Slide 61

Slide 61 text

2VJ[7JFX$POUSPMMFSͷιʔεͱͷඥ෇͚

Slide 62

Slide 62 text

2VJ[7JFX$POUSPMMFSͷιʔεͱͷඥ෇͚

Slide 63

Slide 63 text

3FTVMU7JFX$POUSPMMFSͷιʔεͱͷඥ෇͚

Slide 64

Slide 64 text

ϓϩάϥϛϯά

Slide 65

Slide 65 text

ม਺Λఆٛ // ໰୊Λ֨ೲ var csvArray:[String] = [] // औΓग़ͨ͠໰୊Λ֨ೲ var questionArray:[String] = [] // ม਺ var questionCount = 0 // ग़୊਺ var correctCount = 0 // ਖ਼ղ // ఆ਺ let total = 3 // ग़୊਺ let waitQuestion = 0.8 // දࣔͷִؒ

Slide 66

Slide 66 text

໰୊ΛDTW͔Β഑ྻʹ // CSVϑΝΠϧͷಡΈࠐΈ func loadCSV(filename : String)->[String] { // ฦ٫஋ͷॳظԽ var csvStr:[String] = [] // CSVΛಡΈࠐΜͰArrayʹ if let csvPath = Bundle.main.path(forResource: filename, ofType: "csv") { do { var csvData = try String(contentsOfFile: csvPath, ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹencoding: String.Encoding.utf8) csvData = csvData.replacingOccurrences(of: "\n", with: "") csvStr = csvData.components(separatedBy: .newlines) } catch let error as NSError { print(error.localizedDescription) } } return csvStr }

Slide 67

Slide 67 text

໰୊දࣔ // ໰୊දࣔ func nextProblem() { // questionArrayͷॳظԽ questionArray.removeAll(keepingCapacity: true) if questionCount < total { // questionArrayʹ৽ن໰୊Λ֨ೲ questionArray = csvArray[questionCount].components(separatedBy: ",") // දࣔ಺༰Ληοτ quizNumberLabel.text = "ୈ\(questionCount+1)໰" quizQuestion.text = questionArray[0] uiButton1.setTitle(questionArray[2], for: .normal) uiButton2.setTitle(questionArray[3], for: .normal) uiButton3.setTitle(questionArray[4], for: .normal) uiButton4.setTitle(questionArray[5], for: .normal) } else { // ໰୊Λશͯදࣔͨ͠ޙͷॲཧ(ޙͰهड़) } } }

Slide 68

Slide 68 text

ճ౴Λબ୒ͨ͠Β൑ఆ // ਖ਼ޡ൑ఆ @IBAction func btnAction(_ sender: UIButton) { // ਖ਼ղͱϘλϯͷλά൪߸͕ಉ͡ͳΒਖ਼ղ if sender.tag == Int(questionArray[1]) { answerImage.image = UIImage(named: "correct.png") correctCount += 1 } else { answerImage.image = UIImage(named: "incorrect.png") } // ճ౴දࣔͷ༗ޮԽ(0.8ඵؒ) answerImage.isHidden = false DispatchQueue.main.asyncAfter(deadline: .now() + waitQuestion) { self.answerImage.isHidden = true } // ࣍ͷ໰୊จݺͼग़͠ questionCount += 1 nextProblem() }

Slide 69

Slide 69 text

ը໘ભҠΛهड़ w 4FRVFΛ࢖ͬͯ஋Λ౉͢ͷͰ౉͢஋Λఆٛ w ը໘ભҠΛ͢Δ // Segue Ͱ஋Λ౉͢ override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let sVC: ResultViewController = (segue.destination as? ResultViewController)! sVC.correct = correctCount } // Storyboard Segue ͷ Identifier ΛҾ਺ʹఆٛͯ͠ը໘ભҠ DispatchQueue.main.asyncAfter(deadline: .now() + waitQuestion) { self.performSegue(withIdentifier: "toResultViewController", sender: nil) }

Slide 70

Slide 70 text

2VJ[ͷWJFX%JE-PBEΛهड़ // ը໘දࣔ׬ྃޙʹಈ͘ϝιου override func viewDidLoad() { super.viewDidLoad() // ໰୊ͷಡΈࠐΈ csvArray = loadCSV(filename: "loveswift") // ը໘ͷॳظԽ answerImage.isHidden = true // ໰୊දࣔ nextProblem() }

Slide 71

Slide 71 text

ը໘Λ໭ΔఆٛΛ͢Δ ViewControllerʹҎԼɺ௥ه͠·͢ɻ @IBAction func unWindSegue(_ sender: UIStoryboardSegue) { print("topwindow") }

Slide 72

Slide 72 text

4UPSZCPBSE্Ͱ໭ΔఆٛΛ͢Δ w VO8JOE4FRVFͱ݁ͼ͚ͭΔ

Slide 73

Slide 73 text

Ϗϧυ • iPhoneX ͷγϛϡϨʔλʔΛબΜͰʮ⾣ʯΛબ୒ ͢Δɻ

Slide 74

Slide 74 text

Τϥʔͷ֬ೝํ๏ w ը໘ͷԼ෦ʹҎԼͷ૭Λදࣔͤ͞Δ͜ͱͰɺΤϥʔΛ֬ೝ Ͱ͖·͢ɻ

Slide 75

Slide 75 text

׬੒Ͱ͖·͔ͨ͠

Slide 76

Slide 76 text

ֶशΛଓ͚͍ͯ͘ʹ͸

Slide 77

Slide 77 text

ֶशܧଓͷख๏ w ॻ੶ͰֶͿ w ωοτͰฉ͘ w ษڧձɺΧϯϑΝϨϯεʹࢀՃ͢Δ

Slide 78

Slide 78 text

J1IPOFΞϓϦ௒։ൃೖ໳ w ࠓճͷϋϯζΦϯʹɺ͔ͳΓ ͍ۙ಺༰ͰͷΞϓϦ։ൃͷํ ๏Λઆ໌͍ͯ͠·͢ɻ w ࠓճͷϋϯζΦϯͷ෮श΍ɺ ೖ໳ऀ޲͚ͷॻ੶ͱͯ͠͸ɺ ࠷దͩͱࢥ͍·͢ɻ w ͜ͷॻ੶Λҙࣝͯ͠ࠓճͷϋ ϯζΦϯΛͨ͠༁Ͱ͸ͳ͍Ͱ ͕͢ɺهड़Ϩϕϧ͸ɺ΄΅ಉ ͡Ͱ͢ɻ

Slide 79

Slide 79 text

J04ΞϓϦ։ൃूதߨ࠲ w ͍Ζ͍ΖͳΞϓϦͷ։ൃྫ͕ ܝࡌ͞Ε͍ͯ·͢ɻ೔Ͱ͸ऴ ΘΒͳ͍ϘϦϡʔϜͰ͢ɻ w ҰͭҰͭखॱʹԊͬͯ࡞ͬͯ ͍͘͜ͱͰ੡࡞ՄೳͰ͢ɻ w ೖ໳ऀ޲ֶ͚शॻ੶ͷ࡭໨ͱ ͓ͯ͠קΊͰ͢ɻ

Slide 80

Slide 80 text

ຊؾͰ͸͡ΊΔJ1IPOFΞϓϦ࡞Γ w ௨শɺࠇଳຊͱݺ͹Ε͍ͯΔ ఆ൪ॻ੶Ͱ͢ɻ w جຊతͳςΫχοΫͱ͔Α͘ ॻ͔Ε͍ͯ·͢ɻ w ॳڃऀ͕தڃऀʹͳΔͨΊʹ ͸ɺඞಡͷ࡭ͱࢥ͍·͢ɻ

Slide 81

Slide 81 text

4XJGU࣮ફೖ໳ w ࠓճ͸ɺϓϩάϥϜίʔυͷ આ໌͸ল͍͍ͯ·͕͢ɺ4XJGU ͷॻ͖ํΛֶश͍ͨ͠ͷͰ͋ Ε͹ɺ࣮ફೖ໳͕ྑ͍ͱࢥ͍ ·͢ɻ w தڃऀʹͳΔͨΊʹ͸ಡΉ΂ ͖ॻ੶ͱࢥ͍·͢ɻ w ݸਓతʹ͸ಡΈ΍ͯ͘͢޷͖ ͳॻ੶Ͱ͢ɻ

Slide 82

Slide 82 text

J041SPHSBNJOH w ॻళͷళ಄ʹ͸ฒΜͰ͍·ͤΜ ͕ɺQFBLT͔ΒΫϥ΢υϑΝϯ σΟϯάͰൢച͞Εͨॻ੶Ͱ͢ɻ w J04%FWFMPQFSͰ༗໊ͳํ͕ த৺ͱͳͬͯॻ͔Ε͍ͯΔͷͰɺ ͱͯ΋ࢀߟʹͳΔ࡭Ͱ͢ɻ w ͲͪΒ͔ͱ͍͏ͱɺதʙ্ڃऀ ޲͚ͱࢥ͍·͢ɻ w IUUQTQFBLTDDJ04

Slide 83

Slide 83 text

UFSBUBJM w ࠔͬͨΒɺUFSBUBJMͰฉ͍ͯΈΔɻ

Slide 84

Slide 84 text

5IBOLZPV