【SwiftUI】 外部APIを叩いて取得した結果を List に表示してみる

D8ebaa64c3016b1212d071ccaba715a2?s=47 Takuya Aso
November 08, 2019

【SwiftUI】 外部APIを叩いて取得した結果を List に表示してみる

2019-11-08 に Enjoy SwiftUI vol2 で発表した内容です。
https://yumemi.connpass.com/event/151594/

SwiftUI のチュートリアルになかったので
実際に通信して取得したデータを使ってListに表示させてみた。
connpass のイベントサーチAPIを叩いて取得した勉強会の情報をListに展開した。
ObservableObject と @ObservedObject,@Published の使い方を
簡単に説明しています。

サンプルコードは下記です。
GitHub: https://github.com/MilanistaDev/StudyGroupEventFetcherForSwiftUI

D8ebaa64c3016b1212d071ccaba715a2?s=128

Takuya Aso

November 08, 2019
Tweet

Transcript

  1. 2019 11 &OKPZ4XJGU6*WPM !ΏΊΈ ʲ4XJGU6*ʳ ֎෦"1*Λୟ͍ͯऔಘͨ݁͠ՌΛ -JTUʹදࣔͯ͠ΈΔ :6.&.**OD 5BLVZB"TP

  2. ࣗݾ঺հ ຑੜ୓໻ ɾ๺۝भग़਎େֶ͸۽ຊେֶ ɾגࣜձࣾΏΊΈJ04ΤϯδχΞ ɾݸਓͰ΋J04ΞϓϦ։ൃ LT 01 !NJMBOJTUB@OE .JMBOJTUB%FW -

    Takuya Aso - FLAT Weather Clock iPad iPhone Color Convertor iPhone/iPad ɾ"QQMF "$.JMBO ౦ژϝτϩ޷͖
  3. 5PEBZ`T(PBM LT 02 ɾ0CTFSWFE0CKFDUͱ0CTFSWBCMF0CKFDUͷ࢖͍ํ ɾجຊతͳ4XJGU6*ͷॻ͖ํ ɾ௨৴͕བྷΉ৔߹ͷσʔλͷѻ͍ ࣄલʹ༻ҙͨ͠ϞοΫͷσʔλΛ࢖͍ͬͯΔ෦෼Λ ࣮ࡍʹ"1*Λୟ͍ͯऔಘͨ͠σʔλΛ࢖͏Α͏ʹ ॻ͖׵͑Δ෦෼ΛϥΠϒίʔσΟϯάͰߦ͍·͢ɻ

  4. ࠓճͭ͘ΔαϯϓϧΞϓϦ LT 03 DPOOQBTTͷ"1*Λୟ͍ͯ औಘͨ͠σʔλΛ-JTUʹදࣔ IUUQTHJUIVCDPN.JMBOJTUB%FW 4UVEZ(SPVQ&WFOU'FUDIFS'PS4XJGU6* ίʔυ͸(JU)VCʹ͋Γ·͢ ɾ9DPEF ɾ4XJGU6*

    ɾ63-4FTTJPO
  5. DPOOQBTTΠϕϯταʔνAPI LT 04 DPOOQBTTͷΠϕϯταʔν"1*࢓༷ ϦΫΤετURL IUUQTDPOOQBTTDPNBCPVUBQJ IUUQTDPOOQBTTDPNBQJWFWFOU ݕࡧΫΤϦ LFZXPSE:6.&.*TXJGU

  6. DPOOQBTTΠϕϯταʔνAPI LT 05 ࣮ࡍʹϦΫΤετ͢Δ63- IUUQTDPOOQBTTDPNBQJWFWFOU LFZXPSE:6.&.*TXJGU

  7. { "events": [ { "event_url": "https://ΠϕϯτͷURL", "started_at": “yyyy-mm-ddThh:mm:ss+09:00", "hash_tag": "Twitterͷϋογϡλά",

    "title": "ษڧձλΠτϧ", "event_id": 123456, "owner_display_name": "؅ཧऀͷdisplayωʔϜ", "address": "ॅॴ", }, … ] } DPOOQBTTΠϕϯταʔνAPI Ϩεϙϯε(ൈਮ) LT 06 ͜ΕΛ΋ͱʹ&WFOUϞσϧΛ࡞੒
  8. 0CTFSWFE0CKFDUͱ0CTFSWBCMF0CKFDU LT 07 0CTFSWBCMF0CKFDUϓϩτίϧʹ४ڌ͢Δ͜ͱͰ ͦͷΫϥε͸ΠϕϯτΛൃߦͰ͖ΔΑ͏ʹͳΔɻ !1VCMJTIFEΛએݴͨ͠ϓϩύςΟʹ஋͕ ׂΓ౰ͯΒΕΔͨͼʹมߋ͞Εͨ͜ͱΛࣔ͢ Πϕϯτ͕ൃߦ͞ΕΔɻ !0CTFSWFE0CKFDUΛϓϩύςΟʹ͚ͭΔͱ ͦͷΫϥεͰൃߦ͞ΕͨΠϕϯτ௨஌Λड͚औΕΔΑ͏ʹͳΔɻ

  9. LT 08 ϥΠϒίʔσΟϯά (JU)VCͷϦϙδτϦͷ4UBSU1PJOUͱ͍͏ UBHͷίϛοτ͔Β࢝Ί·͢

  10. ·ͱΊ LT 09 0CTFSWFE0CKFDUͱ0CTFSWBCMF0CKFDUΛ ཧղ࣮ͯ͠ࡍʹίʔυॻ͍ͯΈΑ͏ʂ (JU)VCͰ͸.77.ʹ͢Δͱ͜Ζ·Ͱ΍ͬͯΈ·ͨ͠

  11. LT 10 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ