Slide 1

Slide 1 text

ϢʔβΠϯλʔϑΣΠεͱ
 ඇಉظॲཧ

Slide 2

Slide 2 text

id:cockscomb Ճ౻ਘथ גࣜձࣾ͸ͯͳ γχΞΞϓϦέʔγϣϯΤϯδχΞ

Slide 3

Slide 3 text

ࡢࠓ w (PPHMF*0͸Ͳ͏Ͱ͔ͨ͠ʁ w 88%$͕͍͖ۙͮͯ·ͨ͠Ͷ w ͳʹ͕ൃද͞ΕΔָ͔͠ΈͰ͢Ͷ w Έͳ͞Μ͸ͲΜͳظ଴Λ͍࣋ͬͯ·͔͢ʁ w 88%$͸Ͳ͏Ͱ͚ͨͬ͠

Slide 4

Slide 4 text

J04 w "3,JU΍$PSF.- w 6*,JU w %SBHBOE%SPQ w 'JMFT

Slide 5

Slide 5 text

J04ͷ֓ཁ Ӭ໺఩ٱ "3,JU అमҰ $PSF.- ٢ా༔Ұ 4XJGUͷ৽ػೳͱΞοϓσʔτ ஑ాᠳ 9DPEFͷ৽ػೳ ࡔాߊҰ %SBHBOE%SPQ Ճ౻ਘथ 'JMFTͱ%PDVNFOU#BTFE"QQMJDBUJPO Ճ౻ਘथ 6*,JUͷΨΠυϥΠϯͷมߋ఺ͱ
 "VUP-BZPVUͷ৽ػೳɺΞοϓσʔτ઒ᬒ༤հ $PSF/'$ ؛઒ࠀݾ 1%',JU ؛઒ࠀݾ 4JSJ,JU ؛઒ࠀݾ )PNF,JUೖ໳ͱJ04ʹ͓͚Δ৽ػೳ ॴ༑ଠ .FUBM అमҰ "VEJP.FEJBؔ࿈
 ৽ϑϨʔϜϫʔΫͱΞοϓσʔτ Ӭ໺఩ٱ

Slide 6

Slide 6 text

63-4FTTJPO5BTL open class URLSessionTask : NSObject, NSCopying, ProgressReporting { @available(iOS 11.0, *) open var progress: Progress { get } }

Slide 7

Slide 7 text

public protocol ProgressReporting : NSObjectProtocol { public var progress: Progress { get } }

Slide 8

Slide 8 text

%SBHBOE%SPQ open class NSItemProvider : NSObject, NSCopying { @available(iOS 11.0, *) open func registerDataRepresentation(forTypeIdentifier typeIdentifier: String, visibility: NSItemProviderRepresentationVisibility, loadHandler: @escaping ((Data?, Error?) -> Swift.Void) -> Progress?) }

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

1SPHSFTT3FQPSUJOH w ඇಉظॲཧͷঢ়گΛϢʔβΠϯλʔϑΣΠεʹ൓өͰ͖Δ w "DUJWJUZ*OEJDBUPS΍1SPHSFTT#BSΛදࣔ͢ΔͱΑ͍ w l)VNBO*OUFSGBDF(VJEFMJOFTr1SPHSFTT*OEJDBUPSTzΑΓ w ݱࡏͷ3Y4XJGUͰѻ͏ͷ͸೉͍͠

Slide 11

Slide 11 text

<2>ͳͥඇಉظʹ͢Δͷʁ

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

<2>ͳͥඇಉظʹ͢Δͷʁ ϝΠϯεϨουͷ3VO-PPQΛࢭΊͨ͘ͳ͍͔Β ࢭΊͯ͠·͏ͱΧΫΧΫ͢Δ

Slide 14

Slide 14 text

<2>ΈΜͳ͸Ͳ͏ͯ͠Δʁ

Slide 15

Slide 15 text

3FBDUlTVTQFOTFz const movieDetailsFetcher = createFetcher( fetchMovieDetails ) const MovieDetails: React.SFC = ({id}) => { const movie = movieDetailsFetcher.read(id) return (

{movie.title}

) }

Slide 16

Slide 16 text

'MVUUFS w 3FBDUʹΠϯεύΠΞ w %BSUΛ࢖͏

Slide 17

Slide 17 text

Future fetchAtom(String atomUrl) async { var atomXml = await http.read(atomUrl); return parse(atomXml); } class Feed extends StatelessWidget { final String url; const Feed({Key key, this.url}) : super(key: key); @override Widget build(BuildContext context) { var entries = new FutureBuilder( future: fetchAtom(url), builder: (context, snapshot) { if (snapshot.hasData) { var feed = snapshot.data; return new Entries(feed: feed); } else if (snapshot.hasError) { return new Text("${snapshot.error}"); } return new CircularProgressIndicator(); }); return new Scaffold( appBar: new AppBar(title: new Text("Feed")), body: entries, ); } }

Slide 18

Slide 18 text

w એݴతͳ6*ϑϨʔϜϫʔΫ͕ྲྀߦ w 3FBDU 'MVUUFS w ඇಉظॲཧΛѻ͍΍͘͢͢Δ࢓૊Έ w 3FBDUͷTVTQFOTF w 'MVUUFSͷ'VUVSF#VJMEFS w .BS[JQBO͸Ͳ͏ͳΔʁ

Slide 19

Slide 19 text

.BS[JQBO w Ͳ͏͍͏΋ͷ͔ w 6*,JUͷҠ২ʁ w ৽͍͠6*ϑϨʔϜϫʔΫʁ w 4XJGUͱͷ਌࿨ੑ͸ w ͦ΋ͦ΋ൃද͞ΕΔͷ͔