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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryan Chung
December 11, 2014
Technology
0
120
iOS - NetworkService
Ryan Chung
December 11, 2014
Tweet
Share
More Decks by Ryan Chung
See All by Ryan Chung
MovieBot Development
ryan403
0
320
Design Voice-First Games for Alexa
ryan403
0
75
AI Teaching Talk
ryan403
0
130
Cognitive Service
ryan403
0
110
jQuery & API Practices
ryan403
0
150
CSS Practices
ryan403
1
170
JavaScript Practices
ryan403
0
110
Web Programming - Lesson 6
ryan403
1
650
Web Programming - Lesson 7
ryan403
1
650
Other Decks in Technology
See All in Technology
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
450
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
2.7k
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
150
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
360
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
120
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
4.7k
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
150
Context Engineeringの取り組み
nutslove
0
280
Webhook best practices for rock solid and resilient deployments
glaforge
1
270
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
6
5.5k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
340
データの整合性を保ちたいだけなんだ
shoheimitani
8
2.9k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
A designer walks into a library…
pauljervisheath
210
24k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
New Earth Scene 8
popppiees
1
1.5k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Evolving SEO for Evolving Search Engines
ryanjones
0
120
Deep Space Network (abreviated)
tonyrice
0
45
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