SlideShare a Scribd company logo
iOS Swift 接力使力之玩 Open Data
ALAMOFIRE、COCOAPODS、JSON、OPEN DATA之程式運用
學習主題
• 社群成立目的簡介
• 自我介紹與哈啦
• 功力複習
• 程式實作(Swift)
• 問題與交流
個人簡介
諸葛魔斌
工作室:諸葛魔斌科技創作室
學歷:高應大---工管系(非資訊科系)
E-Mail:chugermobin@gmail.com
官方網站:http://twcts.com
Facebook:https://goo.gl/volM7Z
粉絲團 :https://goo.gl/LI08wh
社群 :https://goo.gl/kjCsz1
Line (id) :http://goo.gl/ayGW7d
Line@ :http://goo.gl/pQHjWH
Line Bot :http://goo.gl/ljdxfV
Play商店:http://goo.gl/CkVdsd
App Store:http://apple.co/1Qehd64
專長:VB(VBA)、C#、Java(Android)、Swift(iOS)、PHP、Python、Conrona、
Golang、HTML/CSS、MySQL、FreeBSD、Server架設、CAD 、 ……
楊政斌
Open Data & JSON
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Open Data:指的是一種經過挑選與許可的資料,這些資料不受著作權、專
利權,以及其他管理機制所限制,可以開放給社會公眾,任何人都可以自由
出版使用,不論是要拿來出版或是做其他的運用都不加以限制。
Alamofire、Cocoapods、JSON、Open Data
之程式運用
XML:可延伸標記式語言(英語:Extensible Markup Language,簡稱:
XML),是一種標記式語言。標記指電腦所能理解的資訊符號,通過此種
標記,電腦之間可以處理包含各種資訊的文章等。如何定義這些標記,既可
以選擇國際通用的標記式語言,比如HTML,也可以使用像XML這樣由相關
人士自由決定的標記式語言,這就是語言的可延伸性。XML是從標準通用
標記式語言(SGML)中簡化修改出來的。它主要用到的有可延伸標記式語
言、可延伸樣式語言(XSL)、XBRL和XPath等。
Alamofire、Cocoapods、JSON、Open Data
之程式運用
JSON(JavaScript Object Notation)是一種由道格拉斯·克羅克福特構想設
計、輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。儘管JSON
是Javascript的一個子集,但JSON是獨立於語言的文字格式,並且採用了
類似於C語言家族的一些習慣。
Alamofire、Cocoapods、JSON、Open Data
之程式運用
JSON用於描述資料結構,有以下形式存在。
•物件(object):一個物件以「{」開始,並以「}」結束。一個物件包含一系列非排序的名稱/值對
,每個名稱/值對之間使用「,」分割。
•名稱/值(collection):名稱和值之間使用「:」隔開,一般的形式是:
{name:value}
一個名稱是一個字串; 一個值可以是一個字串,一個數值,一個物件,一個布林值,一個有序列表
,或者一個null值。
•值的有序列表(Array):一個或者多個值用「,」分割後,使用「[」,「]」括起來就形成了這樣的
列表,形如:
[collection, collection]
•字串:以""括起來的一串字元。
•數值:一系列0-9的數字組合,可以為負數或者小數。還可以用「e」或者「E」表示為指數形式。
•布林值:表示為true或者false。
Alamofire、Cocoapods、JSON、Open Data
之程式運用
{ "firstName": "John", "lastName": "Smith", "sex": "male",
"age": 25, "address": { "streetAddress": "21 2nd Street",
"city": "New York", "state": "NY", "postalCode": "10021" },
"phoneNumber": [ { "type": "home", "number": "212 555-1234" },
{ "type": "fax", "number": "646 555-4567" } ] }
[ { "text":"This is the
text","color":"dark_red","bold":"true","strikethough":"true","c
lickEvent": {"action":"open_url","value":"zh.wikipedia.org"},
"hoverEvent": {"action":"show_text","value":
{"extra":"something"} } }, {
"translate":"item.dirt.name","color":"blue","italic":"true" } ]
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire的安装與配置
第一種方法
(1)從 GitHub 上下載最新的代碼:https://github.com/Alamofire/Alamofire
(2)將下載下來的程式包中 Alamofire.xcodeproj 拖曳至你的專案中
(3)Show the Project navigator -> General -> Embedded Binaries,把iOS版的framework添加進來
: Alamofire.framework
(4)重啟專案
第二種方法
(1)brew install ruby
(2)sudo gem install cocoapods
(3)cd 到你的專案所在位置。輸入下列的命令:pod init
(4)CocoaPods會製作一個 Podfile ,這是 Cocoapods 每次在更新專案的 Pods (亦即不同的相依性套件)時
都會檢視的檔案。之後,修改Podfile並加入Alamofire (vim Podfile):
(5)輸入下列指令以便安裝 Cocoapods :pod install
(6)關閉 Xcode
(7)開啟 Finder 視窗,然後選取 Cocoapods 所產生的副檔名為 yourproject.xcworkspace 的檔案。
(8)打開 ViewController.swift ,讓我們開始寫點程式吧。
第一種方法
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
將下載下來的程式包中
Alamofire.xcodeproj 拖曳至你
的專案中
Show the Project navigator -> General -> Embedded Binaries,把iOS版的framework添加進來:Alamofire.framework
重啟專案
Alamofire、Cocoapods、JSON、Open Data
之程式運用
拖曳TableView至佈
局中
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
http 網站安全權限設定
(https 不需設定)
import UIKit
importAlamofire
classViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView! //TableView元件宣告
var jsonArray:NSMutableArray? //Json陣列宣告
var newArray: Array<String> = [] //陣列宣告
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView.delegate = self//表格代理指定
tableView.dataSource = self //資料來源指定
Alamofire、Cocoapods、JSON、Open Data
之程式運用
//使用 Alamofire 取得網站資料的 Rrquest
Alamofire.request(.GET,
"http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AV&CaseNo2=1&FileType=1&Lang=C&FolderType=") .responseJSON
{ response in
print(response.request) // 原始的 URL 要求
print(response.response) // URL 回應
print(response.data) // 伺服器資料
print(response.result) // 回應的序列化結果
if let JSON = response.result.value { //取得網頁回傳值放入 JSON
self.jsonArray = JSON as? NSMutableArray //存入 JSON 陣列
for item in self.jsonArray! { //從陣列中逐一取值
if let name = item["Name"], myName = name as? String { //取得某欄位值
print(myName) //印出查看
self.newArray.append(myName) //將值放入陣列變數
}
}
self.tableView.reloadData() //表格重載
}
}
}
Alamofire、Cocoapods、JSON、Open Data
之程式運用
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.newArray.count //回傳陣列長度
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
cell.textLabel?.text = self.newArray[indexPath.row] 顯示欄位值(從陣列中)
return cell
}
}
Alamofire、Cocoapods、JSON、Open Data
之程式運用
執行結果
Alamofire、Cocoapods、JSON、Open Data
之程式運用
第二種方法
Alamofire、Cocoapods、JSON、Open Data
之程式運用
啟動終端機,輸入 brew install ruby 安裝 Ruby
接著輸入 sudo gem install cocoapods 安裝 cocoapods
cd 到你的專案所在位置。輸入 pod init
Alamofire、Cocoapods、JSON、Open Data
之程式運用
CocoaPods會製作一個 Podfile ,這是 Cocoapods 每次在更新專案的 Pods (亦即不同的相依
性套件)時都會檢視的檔案。之後,修改Podfile並加入Alamofire (vim Podfile)
輸入 pod install 以便安裝 Alamofire
Alamofire、Cocoapods、JSON、Open Data
之程式運用
開啟 Finder 視窗,然後選取 Cocoapods 所產生的副檔名
為 yourproject.xcworkspace 的檔案。
Alamofire、Cocoapods、JSON、Open Data
之程式運用
拖曳TableViewController至佈局中
新增 UITableViewController.swift
和 TableViewCell.swift
Alamofire、Cocoapods、JSON、Open Data
之程式運用
建立連結
Alamofire、Cocoapods、JSON、Open Data
之程式運用
建立連結
拖曳三個 Label
Alamofire、Cocoapods、JSON、Open Data
之程式運用
建立連結
宣告 Label 元件
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data
之程式運用
http 網站安全權限設定
(https 不需設定)
import UIKit
class dataTableViewCell: UITableViewCell {
@IBOutlet weak var lblName: UILabel! //Label 元件宣告
@IBOutlet weak var lblTel: UILabel! //Label 元件宣告
@IBOutlet weak var lblAddress: UILabel! //Label 元件宣告
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
Alamofire、Cocoapods、JSON、Open Data
之程式運用
import UIKit
importAlamofire
class dataTableViewController: UITableViewController {
var jsonArray:NSMutableArray? //Json 陣列宣告
var nameArray: Array<String> = [] //Name 陣列變數宣告
var telArray: Array<String> = [] //Tel 陣列變數宣告
var addressArray: Array<String> = [] //Address 陣列變數宣告
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
Alamofire、Cocoapods、JSON、Open Data
之程式運用
tableView.delegate = self //表格代理指定
tableView.dataSource = self //資料來源指定
Alamofire.request(.GET,
"http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AV&CaseNo2=1&F
ileType=1&Lang=C&FolderType=") .responseJSON { response in
print(response.request) // 原始的 URL 要求
print(response.response) // URL 回應
print(response.data) // 伺服器資料
print(response.result) // 回應的序列化結果
if let JSON = response.result.value { //取得網頁回傳值放入 JSON
self.jsonArray = JSON as? NSMutableArray //存入 JSON 陣列
Alamofire、Cocoapods、JSON、Open Data
之程式運用
for item in self.jsonArray! { //從陣列中逐一取值
if let name = item["Name"], myName = name as? String { //取得 Name 欄位值
print(myName) //印出查看
self.nameArray.append(myName) //將值放入 Name 陣列變數
let tel = item["Tel"], myTel = tel as? String //取得Tel 欄位值
print(myTel) //印出查看
self.telArray.append(myTel!) //將值放入Tel 陣列變數
let address = item["Add"], myAddress = address as? String
print(myAddress) //印出查看
self.addressArray.append(myAddress!) //將值放入 Address 陣列變數
}
}
self.tableView.reloadData() //表格重載
}
}
}
Alamofire、Cocoapods、JSON、Open Data
之程式運用
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
//return 0
return self.nameArray.count //回傳陣列長度
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
UITableViewCell {
let cellIdentifer = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifer , forIndexPath: indexPath) as!
dataTableViewCell
cell.lblName?.text = self.nameArray[indexPath.row] //顯示 Name 欄位值(從 Name 陣列中)
cell.lblTel?.text = self.telArray[indexPath.row] //顯示Tel 欄位值(從Tel 陣列中)
cell.lblAddress?.text = self.addressArray[indexPath.row] //顯示 Address 欄位值(從 Address陣列中)
return cell
}
}
Alamofire、Cocoapods、JSON、Open Data
之程式運用
執行結果
Alamofire、Cocoapods、JSON、Open Data
之程式運用
結論: 1. 安裝 Ruby、cocoapods、Alamofire
2. 表格元件/佈局使用
3. Alamofire 網站資料取得
6. 學習階段,務必一字一字『抄』,切勿『複製貼上』
7. 大膽嘗試,好奇無罪
8. 不怕失敗,學習除錯
9. 勇於分享
4. JSON 解析,Array/Object
5. JSON Array 取出資料存入一般陣列
Alamofire、Cocoapods、JSON、Open Data
之程式運用
Alamofire、Cocoapods、JSON、Open Data之
程式運用
第六、七次聚會學習課程
Android App接力使力之玩 Open Data
iOS Swift & FireBase 玩上雲端囉
學習不能中斷,卡關不要氣餒,
讓我們的熱血繼續揮撒在程式的樂趣吧!!
帶著你的筆電,和我們一起享受Coding Fun
註:我們學習的是多系統,所以筆電最好是Macbook哦!
日期:8/24(星期三) 18:30~21:30 Android App 接力使力之玩Open Data
8/31(星期三) 18:30~21:30 iOS Swift & FireBase 玩上雲端囉
地點:高雄市前鎮區一心二路157號10樓之4(微盛科技)
捷運三多商圈站4號出口,步行約10分鐘
歡迎踴躍報名,也歡迎高手協助指導
費用:0元(珍惜學習資源)

More Related Content

PPTX
再接再勵學 Swift 程式設計
PPTX
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
PPTX
Android studio 接力使力之玩 open data
PPTX
程式設計首日封
PPTX
咖啡 創業 愛 - 諾基米的蘋果生活
PDF
如何開發破百萬下載的app - 沒人知道的金礦山open data│陳坤助 | WorkFace 2015-09-17 | 市長官邸藝文沙龍
PDF
App 產品製作心得 - 我的 App 創業之路
PPTX
資料經濟:開放資料的下一步 黃彥男博士
再接再勵學 Swift 程式設計
iOS App 開發 -- Storybard 基礎練習、APP 上架、IAP
Android studio 接力使力之玩 open data
程式設計首日封
咖啡 創業 愛 - 諾基米的蘋果生活
如何開發破百萬下載的app - 沒人知道的金礦山open data│陳坤助 | WorkFace 2015-09-17 | 市長官邸藝文沙龍
App 產品製作心得 - 我的 App 創業之路
資料經濟:開放資料的下一步 黃彥男博士

Viewers also liked (11)

PDF
SwiftyJSON 慘痛經驗
PPTX
iOS Swift & FireBase 玩上雲端囉
PDF
How I learn APP (2015)
PPTX
千里之行,始於足下:動手寫自己的App
PDF
為何學程式?
PPTX
Vpon - 廣告效果導向為基礎的行動廣告系統
PDF
那些年、我們還沒學會就已經過時的那些技術
PDF
手機自動化測試和持續整合
PDF
困境與轉型:一個小型開發團隊的 DevOps 學習之旅
PPTX
iOS Swift & OCR 玩文字辨識
PDF
ECX2014 Pinkoi 網站使用者經驗設計的二三事
SwiftyJSON 慘痛經驗
iOS Swift & FireBase 玩上雲端囉
How I learn APP (2015)
千里之行,始於足下:動手寫自己的App
為何學程式?
Vpon - 廣告效果導向為基礎的行動廣告系統
那些年、我們還沒學會就已經過時的那些技術
手機自動化測試和持續整合
困境與轉型:一個小型開發團隊的 DevOps 學習之旅
iOS Swift & OCR 玩文字辨識
ECX2014 Pinkoi 網站使用者經驗設計的二三事
Ad

Similar to iOS swift 接力使力之玩 open data (8)

PDF
Use Firebase on iOS
PPTX
Tku-網路資料的串接與資料儲存
PDF
Swift girls20180414_new
PPTX
Python vs json 玩open data
PDF
Swift girls20180414
PDF
給 iOS 工程師的 Flutter 開發
PPTX
程式設計初體驗
PDF
Swift girls to_codeforgender20171111
Use Firebase on iOS
Tku-網路資料的串接與資料儲存
Swift girls20180414_new
Python vs json 玩open data
Swift girls20180414
給 iOS 工程師的 Flutter 開發
程式設計初體驗
Swift girls to_codeforgender20171111
Ad

More from 政斌 楊 (16)

PPTX
iOS swift 玩 soket 聊天通訊程式
PPTX
深入學習 iBeacon 之 iOS swift 程式設計
PPTX
Android Studio & Cloud Vision API 玩圖像辨識
PPTX
iOS swift & Cloud Vision API 玩圖像辨識
PPTX
Android studio 之 i beacon 藍芽應用開發學習
PPTX
iOS swift 之 iBeacon 藍芽應用開發學習
PPTX
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
PPTX
Golang 入門初體驗
PPTX
Android studio 2.2 初體驗 &amp; 玩 face book sdk
PPTX
Python 入門初體驗
TXT
Python 入門初體驗(程式語法)
PPTX
I os swift 3.0 初體驗 &amp; 玩 facebook sdk
PPTX
Android studio 之 fcm 推播服務
PPTX
I os swift 之 fcm 推播服務
PPTX
Android &amp; fire base 玩上雲端囉
PPTX
Android app 入門第一步
iOS swift 玩 soket 聊天通訊程式
深入學習 iBeacon 之 iOS swift 程式設計
Android Studio & Cloud Vision API 玩圖像辨識
iOS swift & Cloud Vision API 玩圖像辨識
Android studio 之 i beacon 藍芽應用開發學習
iOS swift 之 iBeacon 藍芽應用開發學習
Corona 初探 lua 語言,玩跨平台(iOS & android) 行動裝置開發工具
Golang 入門初體驗
Android studio 2.2 初體驗 &amp; 玩 face book sdk
Python 入門初體驗
Python 入門初體驗(程式語法)
I os swift 3.0 初體驗 &amp; 玩 facebook sdk
Android studio 之 fcm 推播服務
I os swift 之 fcm 推播服務
Android &amp; fire base 玩上雲端囉
Android app 入門第一步

Recently uploaded (20)

PPTX
3分钟读懂伦敦政治经济学院毕业证LSE毕业证学历认证
PPTX
3分钟读懂圣安德鲁斯大学毕业证StAnd毕业证学历认证
PPTX
3分钟读懂诺里奇艺术大学毕业证NUA毕业证学历认证
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PDF
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
PPTX
3分钟读懂利物浦约翰摩尔大学毕业证LJMU毕业证学历认证
PPTX
ONU and OLT from Baudcom Jenny training PPT
PPTX
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
PPTX
3分钟读懂拉夫堡大学毕业证LU毕业证学历认证
PPTX
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
PDF
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
PPTX
3分钟读懂伦敦大学学院毕业证UCL毕业证学历认证
PPTX
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
PPTX
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
PPTX
3分钟读懂伦敦南岸大学毕业证LSBU毕业证学历认证
PPTX
3分钟读懂索尔福德大学毕业证Salford毕业证学历认证
PPTX
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
PDF
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PPTX
A Digital Transformation Methodology.pptx
3分钟读懂伦敦政治经济学院毕业证LSE毕业证学历认证
3分钟读懂圣安德鲁斯大学毕业证StAnd毕业证学历认证
3分钟读懂诺里奇艺术大学毕业证NUA毕业证学历认证
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
3分钟读懂利物浦约翰摩尔大学毕业证LJMU毕业证学历认证
ONU and OLT from Baudcom Jenny training PPT
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
3分钟读懂拉夫堡大学毕业证LU毕业证学历认证
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
3分钟读懂伦敦大学学院毕业证UCL毕业证学历认证
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
3分钟读懂伦敦南岸大学毕业证LSBU毕业证学历认证
3分钟读懂索尔福德大学毕业证Salford毕业证学历认证
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
A Digital Transformation Methodology.pptx

iOS swift 接力使力之玩 open data