Slide 1

Slide 1 text

Nayami Enumerations 2016೥1݄23೔ ୈ65ճ Cocoaษڧձؔ੢ Martha 1

Slide 2

Slide 2 text

ࣗݾ঺հ @JPMartha_jp JPMartha 2

Slide 3

Slide 3 text

MarthaʢϚʔαʣ • ֨ಆՈͷ໊લͰڹ͖͕͍͍ͱࢥͬͯ
 ࢖͍͸͡Ί·ͨ͠ɻ • ͨͩঁੑͷ໊લͩͱ͋ͱ͔Β஌Γ·ͨ͠ɻ • ͝ཡͷͱ͓ΓΦδαϯͰ͢ɻ 3

Slide 4

Slide 4 text

Nayami Enumerations 4

Slide 5

Slide 5 text

೰Έྻڍܕʁ 5

Slide 6

Slide 6 text

લճͷؔϞόʹͯ 6 https://speakerdeck.com/sixeight/web-apinituitefalseza-tan ※ ؔϞόɿؔ੢ϞόΠϧΞϓϦݚڀձ

Slide 7

Slide 7 text

private enum Nayami: ErrorType { case GitHub case English case Instagram case Framework case Git case TravisCI(CocoaPods) case Documentation ... 7

Slide 8

Slide 8 text

͜ΕʹՃ͑ ϥΠϒϥϦΛ࡞ͬͨ࿩ 8

Slide 9

Slide 9 text

ൃදͷ֓ཁ ୈҰ෦ɿ೰Έͷྻڍ ୈೋ෦ɿϥΠϒϥϦΛ࡞ͬͨ࿩ 9

Slide 10

Slide 10 text

೰Έͷྻڍ ୈҰ෦ 10

Slide 11

Slide 11 text

ݸਓ։ൃͷ೰Έ ਓੜ૬ஊͰ͸͋Γ·ͤΜɻ 11

Slide 12

Slide 12 text

୯७ʹ ಡΈํ͕Θ͔Βͳ͍ ਖ਼֬ͳൃԻͱ͍͏ΑΓ೔ຊࠃ಺Ͱ௨͡ΔൃԻͰ͢ɻ 12

Slide 13

Slide 13 text

• enum • Realm • Carthage • CocoaPods • .podspec ΠφϜ / ΠʔφϜ Ϩ ϧ Ϝ Χϧλΰ / Χοηʔδ ί ί Ξ ϙ ο ζ ϙ ο υ εϖ ο Ϋ 13 • TravisCI • SwiftKitten • jazzy • SwiftLint • reflog τϥϏεγʔΞΠ εΠ ϑ τ Ω ο τ Ρϯ δ ϟ δ ʔ ε Π ϑ τ Ϧ ϯ τ Ϧ ϑ ϩ ά

Slide 14

Slide 14 text

ରࡦ • MacͰಡΈ্͛ • ษڧձʹࢀՃ ʢάάͬͯ΋ಡΈํ͸͋·Γॻ͍͍ͯ·ͤΜʣ 14

Slide 15

Slide 15 text

͜Μͳײ͡Ͱ ΏΔ͍಺༰͕ଓ͖·͢ 15

Slide 16

Slide 16 text

Git / GitHub ͷ೰Έ ΄ͱΜͲ࢖ͬͨ͜ͱ͕͋Γ·ͤΜͰͨ͠ɻ 16

Slide 17

Slide 17 text

ରࡦ • 2015೥12݄14೔ɺGitHub Patchwork KOBE ʹ ࢀՃ͠·ͨ͠ɻ
 http://patchwork-kobe.peatix.com • ͦͷ࣌఺Ͱۭ͖͕͋ͬͨͷͰཌ15೔ͷ Osaka×GitHub MEETUP!! ʹࢀՃ͠·ͨ͠ɻ
 https://www.facebook.com/events/ 1691655947787603/ 17

Slide 18

Slide 18 text

Scott Chacon ͞Μͷஶॻ ແྉͰμ΢ϯϩʔυͰ͖·͢ɻ ʰPro Git ೔ຊޠ൛ిࢠॻ੶ެ։αΠτʱ https://progit-ja.github.io ͜ΕͰษڧͰ͖·͢Ͷʂ 18

Slide 19

Slide 19 text

English ͷ೰Έ ͨͩ͜ͷͱ͖·ͬͨ͘ձ࿩Ͱ͖·ͤΜͰͨ͠ɻ 19

Slide 20

Slide 20 text

ରࡦ • ࠷ۙӳޠͰϒϩάΛॻ͖͸͡Ί·ͨ͠ɻ • τʔΫྗʹ௚݁͠·ͤΜ͕Կ΋͠ͳ͍ΑΓ͸Ϛγͩͱ
 ߟ͑·ͨ͠ɻ • ׳ΕΔͱӳޠͷυΩϡϝϯτΛݟͯ΋ు͖ؾ͕ܰݮ͞ΕΔ
 ޮՌ͕͋Γ·͢ɻ • AppleͷυΩϡϝϯτͰΩʔϫʔυݕࡧ
 ྫʣ”method”Ͱݕࡧ͢Δͱٕज़ܥͷྫจ͕ݟ͔ͭΓ·͢ɻ 20

Slide 21

Slide 21 text

ݕࡧ͸͜ͷΑ͏ͳײ͡Ͱ͢ɻ 21

Slide 22

Slide 22 text

ࠇྺ࢙Λফ͍ͨ͠ ਓੜͷ࿩Ͱ͸͋Γ·ͤΜɻ 22

Slide 23

Slide 23 text

࢑ఆରࡦʁ $ git reset --soft XXXX • αΫοͱ໭ͤ·͕͢νʔϜ։ൃͳΒNGͰ͠ΐ͏ɻ • ͨͩ͠Ή΍Έʹ࣮ߦ͢Δͱ… 23

Slide 24

Slide 24 text

ಉ͡಺༰ͷผίϛοτ͕࢒Γ·ͨ͠ɻ 24

Slide 25

Slide 25 text

࢑ఆରࡦʁ $ git reflog “git reflog ίϚϯυ͸ɺྺ࢙Λॻ͖׵͑Δࡍʹ ࣦΘΕͨՄೳੑͷ͋ΔίϛοτΛ୳ͨ͢Ίɺϒϥϯ νͷ͢΂ͯͷHEAD͕͋ͬͨ৔ॴͷϩάΛݟ͍͖ͯ ·͢ɻ” ൈਮɿ: Scott Chacon, Ben Straub “Pro Git”ɻ iBooks 25

Slide 26

Slide 26 text

418d1b4 HEAD@{0}: checkout: moving from develop to cocoa_kansai 418d1b4 HEAD@{1}: commit: Update SharingFlowResult.swift b259946 HEAD@{2}: commit: Fix Documentation/SharingFlowClassReference.md 5dfa503 HEAD@{3}: commit: Fix #21 and add test cases 93190a4 HEAD@{4}: reset: moving to 93190a4873a574e0973529517178dfce874a78a3 8bf764a HEAD@{5}: commit: Fix #21 and add test cases 93190a4 HEAD@{6}: ... dca5cad HEAD@{7}: ... 4239d94 HEAD@{8}: ... dca5cad HEAD@{9}: ... e6b1f43 HEAD@{10}: ... dca5cad HEAD@{11}: ... 5173a14 HEAD@{12}: ... dca5cad HEAD@{13}: ... b4ee1a6 HEAD@{14}: ... dca5cad HEAD@{15}: ... b8c2a43 HEAD@{16}: ... dca5cad HEAD@{17}: ... 2cdd5f3 HEAD@{18}: ... 1e0b0c4 HEAD@{19}: ... 97556b6 HEAD@{20}: ... 1e0b0c4 HEAD@{21}: ... 8d2233f HEAD@{22}: ... 818112a HEAD@{23}: ... 1e0b0c4 HEAD@{24}: ... 492c6f8 HEAD@{25}: ... 1e0b0c4 HEAD@{26}: ... f9136cf HEAD@{27}: ...

Slide 27

Slide 27 text

࣌ؒ੾ΕͰஅ೦͠·ͨ͠ɻʢѱԽʣ 27

Slide 28

Slide 28 text

Instagram ͷ೰Έ ެࣜΞϓϦ͕࢖͍ͮΒ͍Ͱ͢ɻ 28

Slide 29

Slide 29 text

ରࡦ Instagram API Λར༻ͯ͠ΫϥΠΞϯτΞϓϦΛ ࣗ෼Ͱ࡞Γ·ͨ͠ɻ • શίϝϯτΛ࣌ܥྻͰදࣔ • σʔλΛӬଓԽ ‣ओʹϑΥϩʔόοΫ௚ޙʹϑΥϩʔΛ֎͢
 ͍ͤ͜Ϣʔβʔ΁ͷର߅ࡦ 29

Slide 30

Slide 30 text

࢖༻ͨ͠ϥΠϒϥϦ • APIKitʢAPIΫϥΠΞϯτʣ
 https://github.com/ishkawa/APIKit • HimotokiʢJSONσίʔμʔʣ
 https://github.com/ikesyo/Himotoki • Realmʢσʔλϕʔεʣ
 https://realm.io/jp/ • SDWebImageʢը૾μ΢ϯϩʔυʣ
 https://github.com/rs/SDWebImage 30

Slide 31

Slide 31 text

ཤྺ͕ݟͮΒ͍ • දࣔ݅਺͕গͳ͘ݟಀ͢͜ͱ͕ ଟ͍Ͱ͢ɻ • ͍͍Ͷͱίϝϯτͷ൑ผ͕
 ͮ͠Β͍Ͱ͢ɻ 31

Slide 32

Slide 32 text

શίϝϯτΛ࣌ܥྻʹදࣔ • ౤ߘ͝ͱͷίϝϯτΛॱ൪ʹ औಘ͠·͢ɻ • ͦΕͧΕΛ·ͱΊͯ࣌ࠁͰ
 ιʔτ͠·ͨ͠ɻ • ͍͍Ͷ͸ API Ͱશ݅औಘ
 Ͱ͖ͳ͍ͷͰஅ೦͠·ͨ͠ɻ 32

Slide 33

Slide 33 text

σʔλΛӬଓԽʢRealmʣ 33

Slide 34

Slide 34 text

Travis CI ͱ .podspec ͷ೰Έ όʔδϣϯΛ্͛ͨͱ͖ͷ࿩Ͱ͢ɻ 34

Slide 35

Slide 35 text

Ͳ͏͍͏͜ͱ͔ • GitHub ΁ Push ͨ͠ͱ͖ʹ Travis CI ্Ͱ build ʹ
 ࣦഊ͠·͢ɻ ‣ཧ༝
 ·ͩ GitHub ্ͰόʔδϣϯΞοϓʢλά෇͚ʣͯ͠
 ͍ͳ͍ͨΊɺઌʹ৽͍͠όʔδϣϯͷ .podspec Λ 
 push ͢Δͱόʔδϣϯ͕Ұக͠·ͤΜɻ • ࣌ؒ੾ΕͰ͍͍౴͑Λ༻ҙ͍ͯ͠·ͤΜɻ
 ʢ࠶౓࣮ߦ͢Δ͚ͩͰ build ͸੒ޭ͠·͢ʣ 35

Slide 36

Slide 36 text

Pod::Spec.new do |s| s.name = "EggsBenedict" s.version = "0.9.9" s.summary = "EggsBenedict is a library for sharing picture on Instagram written in Swift." s.description = <<-DESC This library is following Instagram's sharing flow. > __Instagram's documentation__ > - [Document Interaction](https://www.instagram.com/developer/mobile-sharing/iphone-hooks/#document-interaction) DESC s.homepage = "https://github.com/JPMartha/EggsBenedict" s.license = { :type => "MIT", :file => "LICENSE" } s.author = "JPMartha" s.social_media_url = "https://twitter.com/JPMartha_jp" s.platform = :ios, "8.0" s.source = { :git => "https://github.com/JPMartha/EggsBenedict.git", :branch => 'develop', :tag => s.version } s.source_files = "EggsBenedict/**/*.swift" s.requires_arc = true end 36

Slide 37

Slide 37 text

HeaderDoc(?) ͷ೰Έ ྻڍܕͷઆ໌Λॻ͖͍ͨͰ͢ɻ 37

Slide 38

Slide 38 text

https://developer.apple.com/library/mac/documentation/ Xcode/Reference/xcode_markup_formatting_ref/

Slide 39

Slide 39 text

Symbol Section Commands ʹ enum ༻ͷه๏͕ ͋Γ·ͤΜɻ • Parameter • Parameters • Returns • Throws 39

Slide 40

Slide 40 text

ରࡦ ͍Ζ͍Ζࢼͯ͠Έ·͕ͨ͠… ͍͍౴͑͸ݟ͔ͭΓ·ͤΜͰͨ͠ɻ 40

Slide 41

Slide 41 text

/** - parameters: - NoInstagramApp: Not found Instagram app. - UTIIsEmpty: UTI is empty. - CannotManipulateImage: Cannot manipulate image. - CannotSaveImage: Cannot save image. - ImagePathIsEmpty: ImagePath is empty. */ ``ͰғΉͱ දࣔ͞Εͳ͍

Slide 42

Slide 42 text

/** - `NoInstagramApp` Not found Instagram app. - `UTIIsEmpty` UTI is empty. - `CannotManipulateImage` Cannot manipulate image. - `CannotSaveImage` Cannot save image. - `ImagePathIsEmpty` ImagePath is empty. */

Slide 43

Slide 43 text

/** __`NoInstagramApp`__: Not found Instagram app. __`UTIIsEmpty`__: UTI is empty. __`CannotManipulateImage`__: Cannot manipulate image. __`CannotSaveImage`__: Cannot save image. __`ImagePathIsEmpty`__: ImagePath is empty. */

Slide 44

Slide 44 text

/** _`NoInstagramApp`_ Not found Instagram app. _`UTIIsEmpty`_ UTI is empty. _`CannotManipulateImage`_ Cannot manipulate image. _`CannotSaveImage`_ Cannot save image. _`ImagePathIsEmpty`_ ImagePath is empty. */

Slide 45

Slide 45 text

/** __`NoInstagramApp`__ Not found Instagram app. __`UTIIsEmpty`__ UTI is empty. __`CannotManipulateImage`__ Cannot manipulate image. __`CannotSaveImage`__ Cannot save image. __`ImagePathIsEmpty`__ ImagePath is empty. */

Slide 46

Slide 46 text

/** ___`NoInstagramApp`___ Not found Instagram app. ___`UTIIsEmpty`___ UTI is empty. ___`CannotManipulateImage`___ Cannot manipulate image. ___`CannotSaveImage`___ Cannot save image. ___`ImagePathIsEmpty`___ ImagePath is empty. */

Slide 47

Slide 47 text

/** `.NotFoundInstagramApp` `.UTIisEmpty` `.CannotManipulateImage` `.CannotSaveImage` `.ImagePathIsEmpty` */

Slide 48

Slide 48 text

೰Μͩ݁Ռ • ͦΕͧΕͷ໊લΛΘ͔Γ΍͘͢͢Ε͹Α͍Ͱ͢ɻ • ԾʹHeaderDocʹઆ໌Λ௥هͯ͠΋Լʹ͸ग़ͯ ͖·ͤΜɻ 48

Slide 49

Slide 49 text

ୈҰ෦ ׬ 49

Slide 50

Slide 50 text

͍ͭͮͯ ϥΠϒϥϦΛ࡞ͬͨ࿩ ୈೋ෦ 50

Slide 51

Slide 51 text

ϥΠϒϥϦΛ࡞ͬͨ࿩ 1. ϥΠϒϥϦͷ࡞Γํʢ Carthage ରԠʣ 2. Instagram ΁ࣸਅΛγΣΞ͢Δ͚ͩͷ
 ϥΠϒϥϦ঺հ 3. υΩϡϝϯτࣗಈੜ੒πʔϧͷ঺հ
 ʢϥΠϒϥϦͰ͸ͳ͍Ͱ͕͢ʣ 51

Slide 52

Slide 52 text

ϥΠϒϥϦͷ࡞Γํ Himotoki ͱ APIKit Λࢀߟʹ ConnpassAPIClient Λ࡞Γ·ͨ͠ɻ 52

Slide 53

Slide 53 text

ϥΠϒϥϦଆ ConpassAPIClient 53

Slide 54

Slide 54 text

ϥΠϒϥϦଆͰ΍Δ͜ͱ ᶃ Framework Λ࡞੒ ᶄ Carthage.pkg ΛΠϯετʔϧʢ※ࠓճলུʣ ᶅ Cartfile Λ࡞੒ ᶆ carthage update Λ࣮ߦ ᶇ carthage build Λ࣮ߦ ᶈ GitHub Ͱ release 54

Slide 55

Slide 55 text

ᶃ Framework Λ࡞੒ 55

Slide 56

Slide 56 text

ᶃ Framework Λ࡞੒ ֎෦͔ΒࢀরͰ͖ΔΑ͏ public ʹ͠·͢ɻ public final class Connpass {
 
 public static func sendSearchEventRequest() {
 
 // ͝ʹΐ͝ʹΐ
 
 }
 
 } 56

Slide 57

Slide 57 text

ᶃ Framework Λ࡞੒ Manage Schemes Ͱ ☑ Shared ʹ͠·͢ɻ 57

Slide 58

Slide 58 text

ᶃ Framework Λ࡞੒ ґଘ͢Δ Framework ͕͋Ε͹
 Link Binary With Library ʹ௥Ճ͠·͢ɻ 58

Slide 59

Slide 59 text

ᶅ Cartfile Λ࡞੒ ґଘ͢Δ Framework ͕͋Ε͹௥ه͠·͢ɻ github "ishkawa/APIKit" ~> 1.1.2 github "ikesyo/Himotoki" ~> 1.3 59

Slide 60

Slide 60 text

ᶆ carthage update Λ࣮ߦ $ carthage update
 --use-submodules --platform iOS ⚠ Φϓγϣϯ͕ٯͩͱࣦഊ͠·ͨ͠ɻ • Φϓγϣϯ —-use-submodules ґଘ͢Δ Framework Λ Git ͷαϒϞδϡʔϧͱͯ͠௥Ճ͠·͢ɻ —-platform iOS ࠓճ iOS ͷΈΛର৅ͱͨ͠ͷͰࢦఆ͠·͢ɻ 60

Slide 61

Slide 61 text

ᶆ carthage update Λ࣮ߦ Carthage/Build ͱ Carthage/Checkouts ϑΥϧμ ಺ʹͦΕͧΕͷ Framework ͷϑΝΠϧ͕
 ੜ੒͞Ε·ͨ͠ɻ ‣Himotoki ‣APIKit ‣ResultʢAPIKit ͕ґଘ͍ͯ͠·͢ʣ 61

Slide 62

Slide 62 text

ᶇ carthage build Λ࣮ߦ $ carthage build
 —no-skip-current --platform iOS ⚠ Φϓγϣϯ͕ٯͩͱࣦഊ͠·ͨ͠ɻ ‣Cathage/Build/iOS/ ConnpassAPIClient.framework ͕
 ੜ੒͞Ε·ͨ͠ɻ 62

Slide 63

Slide 63 text

.gitmodules Λੜ੒ (Carthage) [submodule "Carthage/Checkouts/Himotoki"]
 path = Carthage/Checkouts/Himotoki
 url = https://github.com/ikesyo/Himotoki.git [submodule "Carthage/Checkouts/Result"]
 path = Carthage/Checkouts/Result
 url = https://github.com/antitypical/Result.git [submodule "Carthage/Checkouts/APIKit"]
 path = Carthage/Checkouts/APIKit
 url = https://github.com/ishkawa/APIKit.git ‣ࣗ෼Ͱઌʹ࡞͍ͬͯͨ৔߹͸௥ه͞Ε·ͨ͠ɻ 63

Slide 64

Slide 64 text

.git/config ʹ௥ه (Carthage) Carthage/Checkouts/ {Framework໊} ͷ
 submodule ͕௥ه͞Ε·ͨ͠ɻ 64

Slide 65

Slide 65 text

Carthage/Checkouts/ 65 ⚠ Himotoki ΍ APIKit ͱಉ༷ʹͳΓ·͕ͨ͠࢓૊Έ͸Θ͔Γ·ͤΜ…

Slide 66

Slide 66 text

ᶇ GitHub Ͱ release • Carthage ޲͚ʹʮv1.2.3ʯͷΑ͏ʹׂΓ౰ͯ·͢ɻ ʮv0.0.8-alphaʯͳͲ-alpha΍-beta ͸OKͰ͢ɻ
 v͸ͳͯ͘΋Α͍Ͱ͕͢༗ແΛ౷Ұ͠ͳ͍ͱצҧ͍͢ ΔՄೳੑ͕͋Γ·͢ɻ

Slide 67

Slide 67 text

࢖͏ଆ ͨͱ͑͹෇ଐͤ͞ΔDemoApp 67

Slide 68

Slide 68 text

࢖͏ଆͰ΍Δ͜ͱ ᶃ Cartfile Λ࡞੒ ᶄ carthage update Λ࣮ߦ ᶅ Framework Λ૊ΈࠐΈ 68

Slide 69

Slide 69 text

ᶃ Cartfile Λ࡞੒ ʮv0.0.8-alphaʯΛର৅ͱ͢Δ৔߹͸
 ࣍ͷͱ͓Γهड़͠·͢ɻ github "JPMartha/ConnpassAPIClient" ~> 0.0.8 69

Slide 70

Slide 70 text

ᶄ carthage update Λ࣮ߦ $ carthage update --platform iOS ‣ Carthage/Build/ iOS, MacOS, tvOS, watchOS ‣ Carthage/Checkouts/ Himotoki, ConnpassAPIClientʢࣗ࡞ʣ 70

Slide 71

Slide 71 text

APIKit ͸ϏϧυࡁΈόΠφϦ͕ μ΢ϯϩʔυ͞Ε·͢ *** Fetching ConnpassAPIClient *** Fetching Himotoki *** Fetching APIKit *** Fetching Result *** Checking out ConnpassAPIClient at "v0.0.8-alpha" *** Checking out Himotoki at "1.3.2" *** Downloading APIKit.framework binary at "1.1.2: Fix Content-Type" *** Downloading Result.framework binary at "1.0.1: A New Beginning" *** xcodebuild output can be found in ....log *** Building scheme "Himotoki-iOS" in Himotoki.xcodeproj *** Building scheme "ConnpassAPIClient" in ConnpassAPIClient.xcodeproj 71

Slide 72

Slide 72 text

APIKit ͷ release 72 ϏϧυࡁΈόΠφϦʢzipϑΝΠϧʣ͕͋ΔͨΊͰ͢ɻ

Slide 73

Slide 73 text

ࢀߟɿ Himotoki ͷ release 73

Slide 74

Slide 74 text

ᶅ Framework Λ૊ΈࠐΈ 74

Slide 75

Slide 75 text

؀ڥ͕੔͍·ͨ͠ 75

Slide 76

Slide 76 text

Framework Λ import ࣮ͯ͠ߦ import UIKit import ConnpassAPIClient // ࣗ࡞ϥΠϒϥϦ class ViewController: UIViewController { @IBAction func buttonTapped(sender: UIButton) {
 // Connpass͔Β”ؔ੢ϞόΠϧΞϓϦݚڀձ”Λݕࡧ Connpass.sendSearchEventRequest() 
 } } 76

Slide 77

Slide 77 text

੒ޭ
 ʢJSON Λσίʔυͯ͠ϩάग़ྗ͢Δ͚ͩͷΫιϥΠϒϥϦʣ results_returned: 9 results_available: 9 results_start: 1 event_id: 23958 title: ؔ੢ϞόΠϧΞϓϦݚڀձ #9 description:

iOS/AndroidΞϓϦ։ൃऀ޲͚ͷษڧձͰ͢ɻ

ձ৔

͸ͯͳژ౎ΦϑΟε8F ηϛφʔϧʔϜ

19࣌10෼ΑΓड෇Λ։࢝͠·͢ɻ

ೖΓํ

19࣌ʹͳΔͱϏϧͷਖ਼໘ೖΓޱͷγϟολʔ͕ԼΓ·͢ɻ޲͔ͬͯࠨखͷ௨Γʹ͋Δ௨༻ޱ͔Β͓ೖΓ͍ͩ͘͞ɻ௨༻ޱ͕ด·ͬ ͍ͯΔ৔߹ʹ͸Πϯλʔϗϯ͔Βʮ801ʯΛݺͼ͍ͩͯͩ͘͠͞ɻ

։࠵֓ཁ

࠷ߴͷϞόΠϧΞϓϦΛ࡞Γ͍ͨσϕϩούʔ͕ɺ͓ޓ͍ʹ࠷৽ͷ஌ݟΛ൸࿐ͯ͠ަྲྀ͢ΔݚڀձͰ͢ɻ

ͦΕͧΕͷൃද͸࣋ͪ࣌ؒ5෼ͷϥΠτχϯάτʔΫʢLTʣܗࣜͱ͠·͢ɻݪଇͱͯ͠5෼Ҏ಺ʹɺҴ࠺ͷΑ͏ͳ଎͞ͱ੎͍Ͱ͓࿩ ͍͖ͨͩ͠·͢ɻ

࠙਌ձ

ൃදऴྃޙʹ࠙਌ձΛاը͍ͯ͠·͢ɻฃͬͯ͝ࢀՃ͍ͩ͘͞ɻ

Ϗʔϧ΍ܰ৯Λ༻ҙ͍ͯ͠·͢ɻ

λΠϜςʔϒϧ

TBD

event_url: http://kanmoba.connpass.com/event/23958/

Slide 78

Slide 78 text

࠷ޙʹࣗ࡞ϥΠϒϥϦͰ͓ࢼ͠ $ carthage archive ConnpassAPIClient ‣࣮ߦ݁Ռ *** Found Carthage/Build/iOS/ConnpassAPIClient.framework *** Found Carthage/Build/iOS/ConnpassAPIClient.framework.dSYM *** Found Carthage/Build/iOS/2209388D-3339-30F6-B80B-A779B6C91550.bcsymbolmap *** Found Carthage/Build/iOS/3841BD75-0DB2-3250-8395-786A569C7368.bcsymbolmap *** Created ConnpassAPIClient.framework.zip ‣ϦϙδτϦͷ௚ԼʹzipϑΝΠϧ͕ੜ੒͞Ε·ͨ͠ɻ 78

Slide 79

Slide 79 text

GitHub ্ͰΞοϓϩʔυ͢Ε͹ Carthage Ͱμ΢ϯϩʔυͰ͖·͢ɻ Push ͚ͨͩ͠Ͱ͸ࣗಈతʹઃఆ͞Ε·ͤΜɻʢPushෆཁʁʣ

Slide 80

Slide 80 text

Instagram ΁ࣸਅΛ γΣΞ͢ΔϥΠϒϥϦ https://github.com/JPMartha/EggsBenedict 80

Slide 81

Slide 81 text

Slide 82

Slide 82 text

ͨͩͷԶಘϥΠϒϥϦͰ͢ Issues ͸͢΂ͯࣗ෼ͷϝϞͰ͢ɻ 82

Slide 83

Slide 83 text

υΩϡϝϯτ ࣗಈੜ੒πʔϧ ·ͩ׬੒͸͍ͯ͠ͳ͍ͷͰ؆ܿʹ͠·͢ɻ 83

Slide 84

Slide 84 text

ಈػ • ӳޠΛϕʔεʹ೔ຊޠͷυΩϡϝϯτ΋࡞Γ͍ͨͰ͢ɻ • ͨͩίʔυͷ෦෼ͳͲॏෳ͢ΔՕॴ͕ଟ͘໘౗Ͱ͢ɻ • ͦ΋ͦ΋ίʔυͷ্ʹίϝϯτͰॻ͍͍ͯ·͢ɻ • υΩϡϝϯτ͸෼཭ͨ͠ํ͕ݟ΍͍͢Ͱ͢ɻ
 ΋͠Appleඪ४ϥΠϒϥϦͷυΩϡϝϯτ͕
 ίʔυ্ʹ͔͠ͳ͔ͬͨΒݟͮΒ͍Ͱ͢ɻ 84

Slide 85

Slide 85 text

πʔϧΛάάΓ·ͨ͠ ͦ͏͍͏΋ͷ͸͢Ͱʹ͋Γ·͢ɻ 85

Slide 86

Slide 86 text

jazzy https://github.com/realm/jazzy • HTMLܗࣜͷϑΝΠϧΛੜ੒͠·͢ɻ ‣Markdown ʹ͍ͨ͠Ͱ͢ɻ • ΦʔϓϯιʔεͰ͢ɻʢRubyʣ ‣ Ruby ͸Θ͔Γ·ͤΜɻ 86

Slide 87

Slide 87 text

Swift Ͱ࡞Δ Զಘπʔϧ https://github.com/JPMartha/Pancake ʢԾʣ 87

Slide 88

Slide 88 text

ίʔυղੳ • ͸͡Ί͸ࣗྗͰ͠·͕ͨ͠ෳࡶͰͨ͠ɻ • SwiftKitten Λར༻͢Δ͜ͱʹ͠·ͨ͠ɻ
 ʢ jazzy ΍ SwiftLint ΋ར༻͍ͯ͠·͢ʣ https://github.com/jpsim/SourceKitten https://github.com/realm/jazzy https://github.com/realm/SwiftLint 88

Slide 89

Slide 89 text

[{ "\/Users\/sathachie\/Pancake\/DemoApp\/DemoApp\/ViewController.swift" : { "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.class", "key.offset" : 174, "key.parsed_declaration" : "class ViewController: NSViewController", "key.namelength" : 14, "key.bodyoffset" : 208, "key.bodylength" : 385, "key.length" : 14, "key.name" : "ViewController", "key.typename" : "ViewController.Type", "key.parsed_scope.end" : 34, "key.usr" : "s:C7DemoApp14ViewController", "key.nameoffset" : 174, "key.inheritedtypes" : [ { "key.name" : "NSViewController" } ], "key.annotated_decl" : "class ViewController : NSViewController<\/Type><\/ Declaration>", "key.accessibility" : "source.lang.swift.accessibility.internal", "key.substructure" : [ { "key.kind" : "source.lang.swift.decl.function.method.instance", 89

Slide 90

Slide 90 text

ߏ੒ 90 SourceKit ʢSwiftͷίʔυΛղੳɾύʔε͢Δʣ SourceKitten Զಘπʔϧ

Slide 91

Slide 91 text

Ͳ͏͍͏Χλνʹ͢Δ͔ • Mac App • Command Line Tool ྫɿCarthage, CocoaPods, SwiftLint • Xcode Plugin ྫɿLin
 https://github.com/questbeat/Lin 91

Slide 92

Slide 92 text

MarkdownܗࣜͰग़ྗ 92

Slide 93

Slide 93 text

ݱঢ়͸͜͜·ͰͰ͢… # ViewController ##### Declaration ```swift class ViewController: NSViewController ``` 93

Slide 94

Slide 94 text

ݱঢ়͸͜͜·ͰͰ͢… 94

Slide 95

Slide 95 text

ࢀߟ • Carthageʹ͍ͭͯ஌Γ͍ͨnݸͷ͜ͱ
 http://www.slideshare.net/syoikeda/carthagen • iOSͰͷFrameworkಋೖͷ͓͞Β͍
 http://www.slideshare.net/syoikeda/iosframework • SwiftͰϥΠϒϥϦΛެ։͢Δ
 http://qiita.com/morizotter/items/2e45f8f94c1010ebd69f • SwiftΛ࢖ͬͯϞμϯͳWeb APIΫϥΠΞϯτΛര଎Ͱ։ൃ͢Δ
 http://qiita.com/giginet/items/1e64f584f948661cffd1 • γϯϓϧͳґଘؔ܎؅ཧγεςϜ Carthage
 https://realm.io/jp/news/swift-dependency-management-with-carthage/ 95

Slide 96

Slide 96 text

ࢀߟ • jazzy
 https://github.com/realm/jazzy • SwiftLint
 https://github.com/realm/SwiftLint • SourceKitten
 https://github.com/jpsim/SourceKitten • Swift SourceKitΛ࢖ͬͯSwiftιʔείʔυΛϋΠϥΠτ͢Δ
 http://qiita.com/gfx/items/7f47e98762ecf6f53af5 • SourceKittenʹ͍ͭͯ
 http://www.slideshare.net/ssusera7b1a1/source-kitten 96

Slide 97

Slide 97 text

Ҏ্ ͋Γ͕ͱ͏͍͟͝·ͨ͠ 97