Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS - NetworkService
Search
Ryan Chung
December 11, 2014
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOS - NetworkService
Ryan Chung
December 11, 2014
More Decks by Ryan Chung
See All by Ryan Chung
MovieBot Development
ryan403
0
330
Design Voice-First Games for Alexa
ryan403
0
89
AI Teaching Talk
ryan403
0
150
Cognitive Service
ryan403
0
120
jQuery & API Practices
ryan403
0
160
CSS Practices
ryan403
1
180
JavaScript Practices
ryan403
0
110
Web Programming - Lesson 6
ryan403
1
670
Web Programming - Lesson 7
ryan403
1
660
Other Decks in Technology
See All in Technology
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.5k
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
830
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
3.2k
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
290
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
340
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
400
金融の未来を考える / Thinking About the Future of Finance
ks91
PRO
0
180
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
140
KiCAD講習会②
tutcreators
0
100
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
2
300
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Amusing Abliteration
ianozsvald
1
220
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Designing Experiences People Love
moore
143
24k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Transcript
Network Service http://MobileDev.TW iOS APP Developer 網路服務 – 資料傳送與接收
[email protected]
1
Network Service http://MobileDev.TW 大綱 1. 基本網路傳輸方式 • 同步傳輸 •
非同步傳輸 2. 網路常見資料格式一:JSON • NSJSONSerialization 3. 網路常見資料格式二:XML • XML Parser • XML與Master-Detail ViewController 4. 資料來源與介接 • Open Data API • 自己提供資料 2
Network Service http://MobileDev.TW 1-1.同步傳輸取得網路資料 • 透過NSURLConnection的同步請求,直接取得網 路資料 • 缺點:資料量大時,會造成App停頓
3
Network Service http://MobileDev.TW 同步傳輸取得網路資料 1. 在Storyboard上新增一顆按鈕,並建立程式關聯性 2. 在對應按鈕Action的方法中,加入以下內容 4
Network Service http://MobileDev.TW 1-1.Lab 取得網路圖片 • 取得網路上的一張圖片,顯示在 畫面上 5
Network Service http://MobileDev.TW Lab 取得網路圖片 1. 在storyboard中加入一個imageView,並建立程式 關聯性(Outlet) 2.
修改按鈕按下後所執行的方法 6
Network Service http://MobileDev.TW PS.避免圖像比例失真 7 • UIViewContentModeScaleToFill • 完全滿版(可能比例會失真)
• UIViewContentModeScaleAspectFit • 維持影像比例與完整圖,其他顯示區域以透明顯示 • UIViewContentModeScaleAspectFill • 滿版+維持影像比例(但部分圖像內容可能會截掉)
Network Service http://MobileDev.TW 1-2.非同步傳輸 • 不會Hold住使用者畫面 8
Network Service http://MobileDev.TW 非同步傳輸 1. 在ViewController.h中加入2個iVar: • returnData (NSMutableData)
• myIndicator (UIActivityIndicatorView) 9
Network Service http://MobileDev.TW 非同步傳輸 2. 修改按鈕方法,設定Indicator,疊到ImageView上 ,開始運轉 10
Network Service http://MobileDev.TW 非同步傳輸 3. 繼續撰寫在按鈕方法中,設定網址、Request,啟動 連線,開始取得資料 11
Network Service http://MobileDev.TW 非同步傳輸 4. 實作以下4個Delegate方法(接收回應、接收資料 、完成接收、發生錯誤) 12
Network Service http://MobileDev.TW Lab1 • 如何顯示出下載進度? 線索: 1. 接收到的response中有一個屬性可取得欲接收內容長度
2. NSData有一個屬性可得知data的檔案大小 3. 注意數值型態 13
Network Service http://MobileDev.TW Lab2 • 使用sendAsynchronousRequest 14
Network Service http://MobileDev.TW 2.網路常見資料格式一:JSON 這誰? 15
Network Service http://MobileDev.TW 台北市立動物園資料 16
Network Service http://MobileDev.TW 資料來源 http://data.taipei.gov.tw/opendata/apply/json /RjYyMDdCMzUtRDE5Ny00MTg1LTg4ODgtOEMyNkE1NDEyMkY0 17
Network Service http://MobileDev.TW 單機 -> 網路 1. 以先前TableView的例子為基礎開始修改 2.
增加接收資料用的responseData以及tableView 要用的資料來源dataArray 18
Network Service http://MobileDev.TW 單機 -> 網路 3. 在viewDidLoad中增加資料請求、來源設定 19
Network Service http://MobileDev.TW 單機 -> 網路 4. 在非同步接收資料的方法實作中,完成接收時,使 用NSJSONSerialization來轉換資料放入陣列
,tableView重新整理 20
Network Service http://MobileDev.TW 單機 -> 網路 5. 設定tableView的顯示與資料陣列的關聯性: •
資料筆數:依據陣列元素數量 • 項目文字:依據陣列每間房間裡頭用A_Name_Ch對應的值 21
Network Service http://MobileDev.TW Lab • 找到圖片的資料來源,設定好第二頁可以呈現動物的 圖片 • 有值與無值該如何處理?
22
Network Service http://MobileDev.TW NSJSONSerialization 使用 23
Network Service http://MobileDev.TW 3.處理XML資料 24
Network Service http://MobileDev.TW 處理XML資料 25
Network Service http://MobileDev.TW 處理XML資料 arrayResultObjects 26 NewsItemObject stringTitle stringLink
stringPubDate stringDescription
Network Service http://MobileDev.TW 處理XML資料 1. 建立一個專案,選擇Master-Detail 2. 新建檔案,繼承NSObject,命名為NewsItemObject 3.
NewsItemObject.h (依要處理的XML進行調整) 27
Network Service http://MobileDev.TW 處理XML資料 28 4. 新增檔案,繼承至NSObject,命名 為MyXMLParserDelegate
Network Service http://MobileDev.TW 處理XML資料 5. MyXMLParserDelegate.m,初始化方法 29
Network Service http://MobileDev.TW 處理XML資料 6. MyXMLParserDelegate.m,實作三個方法 didStartElement:遇到一個元件的開始標籤 30
Network Service http://MobileDev.TW 處理XML資料 7. MyXMLParserDelegate.m,實作三個方法 foundCharacters:遇到一個元件的內容 31
Network Service http://MobileDev.TW 處理XML資料 8. MyXMLParserDelegate.m,實作三個方法 didEndElement:遇到一個元件的結束標籤 32
Network Service http://MobileDev.TW 處理XML資料 9. MasterViewController.h 33
Network Service http://MobileDev.TW 處理XML資料 10. MasterViewController.m的viewDidLoad 34
Network Service http://MobileDev.TW 處理XML資料 11. 實作非同步傳輸的四個方法 35
Network Service http://MobileDev.TW 處理XML資料 12. 實作非同步傳輸的四個方法 36
Network Service http://MobileDev.TW 處理XML資料 13. 設定tableView的顯示內容 37
Network Service http://MobileDev.TW 3.Lab • 修改範例,讓使用者按下該則新聞時,能在下一個 畫面呈現該則新聞網頁 38
Network Service http://MobileDev.TW Lab 1. 在第二個畫面中,增加一個webView,一個NSString 39
Network Service http://MobileDev.TW Lab 2. 第二個畫面元件載入完成時,就載入網頁 40
Network Service http://MobileDev.TW Lab 3. 回到第一個畫面,設定prepareForSegue 41
Network Service http://MobileDev.TW 資料介接 42 別人家的Server XML or JSON
自己架的Server PHP + MySQL XML Parser JSON Array & Dic
Network Service http://MobileDev.TW 台北市政府公開資料平台 • 網址:http://data.taipei.gov.tw/ • 提供資料格式:XML or
jSON 43
Network Service http://MobileDev.TW 一般介接 44
Network Service http://MobileDev.TW 進階顯示與過濾 45
Network Service http://MobileDev.TW 進階顯示與過濾 46
Network Service http://MobileDev.TW 進階顯示與過濾 47
Network Service http://MobileDev.TW 如果資料來源是自己的SERVER… 48
Network Service http://MobileDev.TW 自建Server提供內容 49
Network Service http://MobileDev.TW 建構順序 1. 建構資料庫資料 2. 撰寫API,吐出XML or
JSON 3. 行動端程式接收資料 4. 顯示於手機畫面 50
Network Service http://MobileDev.TW Data API By PHP 51 資料庫連線
撈出資料 儲存資料 資料呈現
Network Service http://MobileDev.TW 不想自建SERVER但又想自己維護資料 52
Network Service http://MobileDev.TW Parse 53