Presented at Bonfire iOS #4
ϢʔβΠϯλʔϑΣΠεͱ ඇಉظॲཧ
View Slide
id:cockscombՃ౻ਘथגࣜձࣾͯͳγχΞΞϓϦέʔγϣϯΤϯδχΞ
ࡢࠓw (PPHMF*0Ͳ͏Ͱ͔ͨ͠ʁw 88%$͕͍͖ۙͮͯ·ͨ͠Ͷw ͳʹ͕ൃද͞ΕΔָ͔͠ΈͰ͢Ͷw Έͳ͞ΜͲΜͳظΛ͍࣋ͬͯ·͔͢ʁw 88%$Ͳ͏Ͱ͚ͨͬ͠
J04w "3,JU$PSF.-w 6*,JUw %SBHBOE%SPQw 'JMFT
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ؔ࿈ ৽ϑϨʔϜϫʔΫͱΞοϓσʔτ Ӭٱ
63-4FTTJPO5BTLopen class URLSessionTask : NSObject, NSCopying, ProgressReporting {@available(iOS 11.0, *)open var progress: Progress { get }}
public protocol ProgressReporting : NSObjectProtocol {public var progress: Progress { get }}
%SBHBOE%SPQopen class NSItemProvider : NSObject, NSCopying {@available(iOS 11.0, *)open func registerDataRepresentation(forTypeIdentifiertypeIdentifier: String,visibility: NSItemProviderRepresentationVisibility,loadHandler:@escaping ((Data?, Error?) -> Swift.Void) -> Progress?)}
1SPHSFTT3FQPSUJOHw ඇಉظॲཧͷঢ়گΛϢʔβΠϯλʔϑΣΠεʹөͰ͖Δw "DUJWJUZ*OEJDBUPS1SPHSFTT#BSΛදࣔ͢ΔͱΑ͍w l)VNBO*OUFSGBDF(VJEFMJOFTr1SPHSFTT*OEJDBUPSTzΑΓw ݱࡏͷ3Y4XJGUͰѻ͏ͷ͍͠
<2>ͳͥඇಉظʹ͢Δͷʁ
<2>ͳͥඇಉظʹ͢ΔͷʁϝΠϯεϨουͷ3VO-PPQΛࢭΊͨ͘ͳ͍͔ΒࢭΊͯ͠·͏ͱΧΫΧΫ͢Δ
<2>ΈΜͳͲ͏ͯ͠Δʁ
3FBDUlTVTQFOTFzconst movieDetailsFetcher = createFetcher(fetchMovieDetails)const MovieDetails: React.SFC = ({id}) => {const movie = movieDetailsFetcher.read(id)return ({movie.title})}
'MVUUFSw 3FBDUʹΠϯεύΠΞw %BSUΛ͏
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);@overrideWidget 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,);}}
w એݴతͳ6*ϑϨʔϜϫʔΫ͕ྲྀߦw 3FBDU 'MVUUFSw ඇಉظॲཧΛѻ͍͘͢͢ΔΈw 3FBDUͷTVTQFOTFw 'MVUUFSͷ'VUVSF#VJMEFSw .BS[JQBOͲ͏ͳΔʁ
.BS[JQBOw Ͳ͏͍͏ͷ͔w 6*,JUͷҠ২ʁw ৽͍͠6*ϑϨʔϜϫʔΫʁw 4XJGUͱͷੑw ͦͦൃද͞ΕΔͷ͔