SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
SwiftyJSON
Hokila
star module
parser
app load
API response
parse
1.
2. api spec
3. parser
NSData Model
NSData ModelNSDictionary
Objective-C
NSData ModelNSDictionary
Swift
NSData Model
Swift
NSData Model
Swift
[String:AnyObject]
NSData Model
Swift
[String:AnyObject]
JSON
NSData Model
Swift
JSON
NSData ModelJSON
SwiftyJSON Parser
SwiftyJSON
NSDictionary
parser 3
private func parseAndReloadUI(json:JSON){
let start = CACurrentMediaTime()
let candidateItems = self.parseJSON(json)
print("time parse = (CACurrentMediaTime() - start)")
self.items = candidateItems
self.reloadUI()
}
private func parseAndReloadUI(json:JSON){
let start = CACurrentMediaTime()
let candidateItems = self.parseJSON(json)
print("time parse = (CACurrentMediaTime() - start)")
self.items = candidateItems
self.reloadUI()
}
time parse = 3.6
private func parseAndReloadUI(json:JSON){
let start = CACurrentMediaTime()
let candidateItems = self.parseJSON(json)
print("time parse = (CACurrentMediaTime() - start)")
self.items = candidateItems
self.reloadUI()
}
time parse = 3.6
time parse = 0.28
private func parseAndReloadUI(json:JSON){
let start = CACurrentMediaTime()
let candidateItems = self.parseJSON(json)
print("time parse = (CACurrentMediaTime() - start)")
self.items = candidateItems
self.reloadUI()
}
time parse = 3.6
time parse = 0.28
code
parser
• as? SwiftyJSON
• SwiftyJSON NSDictionary
• parse node cache reuse
NSData ModelJSON
SwiftyJSON Parser
NSData ModelNSDictionary
NSJSONSerialization Parser
• SwiftyJSON NSJSONSerialization
• variable lazy 


Más contenido relacionado

La actualidad más candente

Streaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchStreaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchKeira Zhou
 
Game Analytics Cluster Scheduler
Game Analytics Cluster SchedulerGame Analytics Cluster Scheduler
Game Analytics Cluster Schedulercmmdevries
 
FIWARE Real-time Processing of Historic Context Information using Apache Flin...
FIWARE Real-time Processing of Historic Context Information using Apache Flin...FIWARE Real-time Processing of Historic Context Information using Apache Flin...
FIWARE Real-time Processing of Historic Context Information using Apache Flin...sonsoleslp
 
ActiveRecord Query Interface
ActiveRecord Query InterfaceActiveRecord Query Interface
ActiveRecord Query Interfacemrsellars
 
VBA API for scriptDB primer
VBA API for scriptDB primerVBA API for scriptDB primer
VBA API for scriptDB primerBruce McPherson
 
Thinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.jsThinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.jsArtur Skowroński
 
Deep Dumpster Diving
Deep Dumpster DivingDeep Dumpster Diving
Deep Dumpster DivingRonnBlack
 
Logging rails application behavior to MongoDB
Logging rails application behavior to MongoDBLogging rails application behavior to MongoDB
Logging rails application behavior to MongoDBAlexey Vasiliev
 
Do something in 5 with gas 2-graduate to a database
Do something in 5 with gas 2-graduate to a databaseDo something in 5 with gas 2-graduate to a database
Do something in 5 with gas 2-graduate to a databaseBruce McPherson
 
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...Bruce McPherson
 
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheet
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheetDo something in 5 with gas 4- Get your analytics profiles to a spreadsheet
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheetBruce McPherson
 
Do something in 5 with gas 3-simple invoicing app
Do something in 5 with gas 3-simple invoicing appDo something in 5 with gas 3-simple invoicing app
Do something in 5 with gas 3-simple invoicing appBruce McPherson
 
Advanced realm in swift
Advanced realm in swiftAdvanced realm in swift
Advanced realm in swiftYusuke Kita
 
Useful and Practical Functionalities in Realm
Useful and Practical Functionalities in RealmUseful and Practical Functionalities in Realm
Useful and Practical Functionalities in RealmYusuke Kita
 
Realm.io par Clement Sauvage
Realm.io par Clement SauvageRealm.io par Clement Sauvage
Realm.io par Clement SauvageCocoaHeads France
 
Do something in 5 with gas 7-email log
Do something in 5 with gas 7-email logDo something in 5 with gas 7-email log
Do something in 5 with gas 7-email logBruce McPherson
 
Javascript Execution Context Flow
Javascript Execution Context FlowJavascript Execution Context Flow
Javascript Execution Context Flowkang taehun
 

La actualidad más candente (20)

Rxjs ngvikings
Rxjs ngvikingsRxjs ngvikings
Rxjs ngvikings
 
Oop assignment 02
Oop assignment 02Oop assignment 02
Oop assignment 02
 
Streaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchStreaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & Elasticsearch
 
Game Analytics Cluster Scheduler
Game Analytics Cluster SchedulerGame Analytics Cluster Scheduler
Game Analytics Cluster Scheduler
 
FIWARE Real-time Processing of Historic Context Information using Apache Flin...
FIWARE Real-time Processing of Historic Context Information using Apache Flin...FIWARE Real-time Processing of Historic Context Information using Apache Flin...
FIWARE Real-time Processing of Historic Context Information using Apache Flin...
 
ActiveRecord Query Interface
ActiveRecord Query InterfaceActiveRecord Query Interface
ActiveRecord Query Interface
 
VBA API for scriptDB primer
VBA API for scriptDB primerVBA API for scriptDB primer
VBA API for scriptDB primer
 
Thinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.jsThinking in Sequences - Streams in Node.js & IO.js
Thinking in Sequences - Streams in Node.js & IO.js
 
Deep Dumpster Diving
Deep Dumpster DivingDeep Dumpster Diving
Deep Dumpster Diving
 
Logging rails application behavior to MongoDB
Logging rails application behavior to MongoDBLogging rails application behavior to MongoDB
Logging rails application behavior to MongoDB
 
Do something in 5 with gas 2-graduate to a database
Do something in 5 with gas 2-graduate to a databaseDo something in 5 with gas 2-graduate to a database
Do something in 5 with gas 2-graduate to a database
 
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
 
Goa tutorial
Goa tutorialGoa tutorial
Goa tutorial
 
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheet
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheetDo something in 5 with gas 4- Get your analytics profiles to a spreadsheet
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheet
 
Do something in 5 with gas 3-simple invoicing app
Do something in 5 with gas 3-simple invoicing appDo something in 5 with gas 3-simple invoicing app
Do something in 5 with gas 3-simple invoicing app
 
Advanced realm in swift
Advanced realm in swiftAdvanced realm in swift
Advanced realm in swift
 
Useful and Practical Functionalities in Realm
Useful and Practical Functionalities in RealmUseful and Practical Functionalities in Realm
Useful and Practical Functionalities in Realm
 
Realm.io par Clement Sauvage
Realm.io par Clement SauvageRealm.io par Clement Sauvage
Realm.io par Clement Sauvage
 
Do something in 5 with gas 7-email log
Do something in 5 with gas 7-email logDo something in 5 with gas 7-email log
Do something in 5 with gas 7-email log
 
Javascript Execution Context Flow
Javascript Execution Context FlowJavascript Execution Context Flow
Javascript Execution Context Flow
 

Destacado

IAP auto renewable in practice
IAP auto renewable  in practiceIAP auto renewable  in practice
IAP auto renewable in practiceHokila Jan
 
程式設計首日封
程式設計首日封程式設計首日封
程式設計首日封政斌 楊
 
Starting mongo db on hosting services
Starting mongo db on hosting servicesStarting mongo db on hosting services
Starting mongo db on hosting servicesYuji Isobe
 
iOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open dataiOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open data政斌 楊
 
咖啡 創業 愛 - 諾基米的蘋果生活
咖啡  創業  愛 - 諾基米的蘋果生活咖啡  創業  愛 - 諾基米的蘋果生活
咖啡 創業 愛 - 諾基米的蘋果生活Nokimi Lai
 
Pattern Recognition midterm Proposal
Pattern Recognition midterm ProposalPattern Recognition midterm Proposal
Pattern Recognition midterm ProposalWin Yu
 
再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計政斌 楊
 
App 產品製作心得 - 我的 App 創業之路
App 產品製作心得 - 我的 App 創業之路App 產品製作心得 - 我的 App 創業之路
App 產品製作心得 - 我的 App 創業之路Nokimi Lai
 
資料經濟:開放資料的下一步 黃彥男博士
資料經濟:開放資料的下一步 黃彥男博士資料經濟:開放資料的下一步 黃彥男博士
資料經濟:開放資料的下一步 黃彥男博士Taoyuan City Government
 
MongoDB日本語紹介資料
MongoDB日本語紹介資料MongoDB日本語紹介資料
MongoDB日本語紹介資料ippei_suzuki
 
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)Win Yu
 
RESTful API的设计与开发
RESTful API的设计与开发RESTful API的设计与开发
RESTful API的设计与开发Ace Lee
 
How I learn APP (2015)
How I learn APP (2015)How I learn APP (2015)
How I learn APP (2015)Ryan Chung
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CMaksym Davydov
 
唇顎裂的重建手術
唇顎裂的重建手術唇顎裂的重建手術
唇顎裂的重建手術慧夫 羅
 
千里之行,始於足下:動手寫自己的App
千里之行,始於足下:動手寫自己的App千里之行,始於足下:動手寫自己的App
千里之行,始於足下:動手寫自己的AppSmallr Huang
 
萬分之一的天使─先天罕見顱顏疾病
萬分之一的天使─先天罕見顱顏疾病萬分之一的天使─先天罕見顱顏疾病
萬分之一的天使─先天罕見顱顏疾病慧夫 羅
 
唇顎裂患者0~18歲的口腔照護
唇顎裂患者0~18歲的口腔照護唇顎裂患者0~18歲的口腔照護
唇顎裂患者0~18歲的口腔照護慧夫 羅
 
Vpon - 廣告效果導向為基礎的行動廣告系統
Vpon - 廣告效果導向為基礎的行動廣告系統Vpon - 廣告效果導向為基礎的行動廣告系統
Vpon - 廣告效果導向為基礎的行動廣告系統Vpon
 

Destacado (20)

IAP auto renewable in practice
IAP auto renewable  in practiceIAP auto renewable  in practice
IAP auto renewable in practice
 
程式設計首日封
程式設計首日封程式設計首日封
程式設計首日封
 
Starting mongo db on hosting services
Starting mongo db on hosting servicesStarting mongo db on hosting services
Starting mongo db on hosting services
 
iOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open dataiOS swift 接力使力之玩 open data
iOS swift 接力使力之玩 open data
 
咖啡 創業 愛 - 諾基米的蘋果生活
咖啡  創業  愛 - 諾基米的蘋果生活咖啡  創業  愛 - 諾基米的蘋果生活
咖啡 創業 愛 - 諾基米的蘋果生活
 
Pattern Recognition midterm Proposal
Pattern Recognition midterm ProposalPattern Recognition midterm Proposal
Pattern Recognition midterm Proposal
 
再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計再接再勵學 Swift 程式設計
再接再勵學 Swift 程式設計
 
App 產品製作心得 - 我的 App 創業之路
App 產品製作心得 - 我的 App 創業之路App 產品製作心得 - 我的 App 創業之路
App 產品製作心得 - 我的 App 創業之路
 
In-App Purchase
In-App PurchaseIn-App Purchase
In-App Purchase
 
資料經濟:開放資料的下一步 黃彥男博士
資料經濟:開放資料的下一步 黃彥男博士資料經濟:開放資料的下一步 黃彥男博士
資料經濟:開放資料的下一步 黃彥男博士
 
MongoDB日本語紹介資料
MongoDB日本語紹介資料MongoDB日本語紹介資料
MongoDB日本語紹介資料
 
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
 
RESTful API的设计与开发
RESTful API的设计与开发RESTful API的设计与开发
RESTful API的设计与开发
 
How I learn APP (2015)
How I learn APP (2015)How I learn APP (2015)
How I learn APP (2015)
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
 
唇顎裂的重建手術
唇顎裂的重建手術唇顎裂的重建手術
唇顎裂的重建手術
 
千里之行,始於足下:動手寫自己的App
千里之行,始於足下:動手寫自己的App千里之行,始於足下:動手寫自己的App
千里之行,始於足下:動手寫自己的App
 
萬分之一的天使─先天罕見顱顏疾病
萬分之一的天使─先天罕見顱顏疾病萬分之一的天使─先天罕見顱顏疾病
萬分之一的天使─先天罕見顱顏疾病
 
唇顎裂患者0~18歲的口腔照護
唇顎裂患者0~18歲的口腔照護唇顎裂患者0~18歲的口腔照護
唇顎裂患者0~18歲的口腔照護
 
Vpon - 廣告效果導向為基礎的行動廣告系統
Vpon - 廣告效果導向為基礎的行動廣告系統Vpon - 廣告效果導向為基礎的行動廣告系統
Vpon - 廣告效果導向為基礎的行動廣告系統
 

Similar a SwiftyJSON 慘痛經驗

Client Server Communication on iOS
Client Server Communication on iOSClient Server Communication on iOS
Client Server Communication on iOSMake School
 
Modern Networking with Swish
Modern Networking with SwishModern Networking with Swish
Modern Networking with Swishjakecraige
 
ReactiveCocoa and Swift, Better Together
ReactiveCocoa and Swift, Better TogetherReactiveCocoa and Swift, Better Together
ReactiveCocoa and Swift, Better TogetherColin Eberhardt
 
Scaladroids: Developing Android Apps with Scala
Scaladroids: Developing Android Apps with ScalaScaladroids: Developing Android Apps with Scala
Scaladroids: Developing Android Apps with ScalaOstap Andrusiv
 
Making Swift even safer
Making Swift even saferMaking Swift even safer
Making Swift even saferDenis Fileev
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeMacoscope
 
Spray Json and MongoDB Queries: Insights and Simple Tricks.
Spray Json and MongoDB Queries: Insights and Simple Tricks.Spray Json and MongoDB Queries: Insights and Simple Tricks.
Spray Json and MongoDB Queries: Insights and Simple Tricks.Andrii Lashchenko
 
JSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret WeaponJSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret WeaponPete Gamache
 
Scala uma poderosa linguagem para a jvm
Scala   uma poderosa linguagem para a jvmScala   uma poderosa linguagem para a jvm
Scala uma poderosa linguagem para a jvmIsaias Barroso
 
NLJUG University Sessie: Java Reborn, Powered by Ordina
NLJUG University Sessie: Java Reborn, Powered by OrdinaNLJUG University Sessie: Java Reborn, Powered by Ordina
NLJUG University Sessie: Java Reborn, Powered by OrdinaMartijn Blankestijn
 
Improving Correctness with Types
Improving Correctness with TypesImproving Correctness with Types
Improving Correctness with TypesIain Hull
 
Swift で JavaScript 始めませんか? #iOSDC
Swift で JavaScript 始めませんか? #iOSDCSwift で JavaScript 始めませんか? #iOSDC
Swift で JavaScript 始めませんか? #iOSDCTomohiro Kumagai
 
JDD 2016 - Pawel Byszewski - Kotlin, why?
JDD 2016 - Pawel Byszewski - Kotlin, why?JDD 2016 - Pawel Byszewski - Kotlin, why?
JDD 2016 - Pawel Byszewski - Kotlin, why?PROIDEA
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsFrancois Zaninotto
 
Swift와 Objective-C를 함께 쓰는 방법
Swift와 Objective-C를 함께 쓰는 방법Swift와 Objective-C를 함께 쓰는 방법
Swift와 Objective-C를 함께 쓰는 방법Jung Kim
 
Improving Correctness with Types Kats Conf
Improving Correctness with Types Kats ConfImproving Correctness with Types Kats Conf
Improving Correctness with Types Kats ConfIain Hull
 

Similar a SwiftyJSON 慘痛經驗 (20)

Client Server Communication on iOS
Client Server Communication on iOSClient Server Communication on iOS
Client Server Communication on iOS
 
Modern Networking with Swish
Modern Networking with SwishModern Networking with Swish
Modern Networking with Swish
 
ReactiveCocoa and Swift, Better Together
ReactiveCocoa and Swift, Better TogetherReactiveCocoa and Swift, Better Together
ReactiveCocoa and Swift, Better Together
 
Scaladroids: Developing Android Apps with Scala
Scaladroids: Developing Android Apps with ScalaScaladroids: Developing Android Apps with Scala
Scaladroids: Developing Android Apps with Scala
 
Making Swift even safer
Making Swift even saferMaking Swift even safer
Making Swift even safer
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, Macoscope
 
Spray Json and MongoDB Queries: Insights and Simple Tricks.
Spray Json and MongoDB Queries: Insights and Simple Tricks.Spray Json and MongoDB Queries: Insights and Simple Tricks.
Spray Json and MongoDB Queries: Insights and Simple Tricks.
 
JSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret WeaponJSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret Weapon
 
Scala uma poderosa linguagem para a jvm
Scala   uma poderosa linguagem para a jvmScala   uma poderosa linguagem para a jvm
Scala uma poderosa linguagem para a jvm
 
Codable routing
Codable routingCodable routing
Codable routing
 
NLJUG University Sessie: Java Reborn, Powered by Ordina
NLJUG University Sessie: Java Reborn, Powered by OrdinaNLJUG University Sessie: Java Reborn, Powered by Ordina
NLJUG University Sessie: Java Reborn, Powered by Ordina
 
Scala coated JVM
Scala coated JVMScala coated JVM
Scala coated JVM
 
Prototype Framework
Prototype FrameworkPrototype Framework
Prototype Framework
 
Improving Correctness with Types
Improving Correctness with TypesImproving Correctness with Types
Improving Correctness with Types
 
Swift で JavaScript 始めませんか? #iOSDC
Swift で JavaScript 始めませんか? #iOSDCSwift で JavaScript 始めませんか? #iOSDC
Swift で JavaScript 始めませんか? #iOSDC
 
CAVE Overview
CAVE OverviewCAVE Overview
CAVE Overview
 
JDD 2016 - Pawel Byszewski - Kotlin, why?
JDD 2016 - Pawel Byszewski - Kotlin, why?JDD 2016 - Pawel Byszewski - Kotlin, why?
JDD 2016 - Pawel Byszewski - Kotlin, why?
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js
 
Swift와 Objective-C를 함께 쓰는 방법
Swift와 Objective-C를 함께 쓰는 방법Swift와 Objective-C를 함께 쓰는 방법
Swift와 Objective-C를 함께 쓰는 방법
 
Improving Correctness with Types Kats Conf
Improving Correctness with Types Kats ConfImproving Correctness with Types Kats Conf
Improving Correctness with Types Kats Conf
 

Más de Hokila Jan

Unit Test 最後一哩路
Unit Test 最後一哩路Unit Test 最後一哩路
Unit Test 最後一哩路Hokila Jan
 
Refactor code to testable
 Refactor code to testable Refactor code to testable
Refactor code to testableHokila Jan
 
Tracking Event validator
Tracking Event validatorTracking Event validator
Tracking Event validatorHokila Jan
 
Preparation for wwdc and not waste it
Preparation for wwdc and not waste itPreparation for wwdc and not waste it
Preparation for wwdc and not waste itHokila Jan
 
Third party module strategy
Third party module strategyThird party module strategy
Third party module strategyHokila Jan
 
How to cheat jb detector and detect cheating
How to cheat jb detector and detect cheatingHow to cheat jb detector and detect cheating
How to cheat jb detector and detect cheatingHokila Jan
 
進擊的帳單
進擊的帳單進擊的帳單
進擊的帳單Hokila Jan
 
讓你的App優雅的crash三部曲
讓你的App優雅的crash三部曲讓你的App優雅的crash三部曲
讓你的App優雅的crash三部曲Hokila Jan
 
iOS app security
iOS app security  iOS app security
iOS app security Hokila Jan
 
接案公司的日子
接案公司的日子接案公司的日子
接案公司的日子Hokila Jan
 
快思慢想Ch13 14
快思慢想Ch13 14快思慢想Ch13 14
快思慢想Ch13 14Hokila Jan
 
從Scrum到放棄scrum
從Scrum到放棄scrum從Scrum到放棄scrum
從Scrum到放棄scrumHokila Jan
 
快思慢想讀書會Ch9 10
快思慢想讀書會Ch9 10快思慢想讀書會Ch9 10
快思慢想讀書會Ch9 10Hokila Jan
 

Más de Hokila Jan (13)

Unit Test 最後一哩路
Unit Test 最後一哩路Unit Test 最後一哩路
Unit Test 最後一哩路
 
Refactor code to testable
 Refactor code to testable Refactor code to testable
Refactor code to testable
 
Tracking Event validator
Tracking Event validatorTracking Event validator
Tracking Event validator
 
Preparation for wwdc and not waste it
Preparation for wwdc and not waste itPreparation for wwdc and not waste it
Preparation for wwdc and not waste it
 
Third party module strategy
Third party module strategyThird party module strategy
Third party module strategy
 
How to cheat jb detector and detect cheating
How to cheat jb detector and detect cheatingHow to cheat jb detector and detect cheating
How to cheat jb detector and detect cheating
 
進擊的帳單
進擊的帳單進擊的帳單
進擊的帳單
 
讓你的App優雅的crash三部曲
讓你的App優雅的crash三部曲讓你的App優雅的crash三部曲
讓你的App優雅的crash三部曲
 
iOS app security
iOS app security  iOS app security
iOS app security
 
接案公司的日子
接案公司的日子接案公司的日子
接案公司的日子
 
快思慢想Ch13 14
快思慢想Ch13 14快思慢想Ch13 14
快思慢想Ch13 14
 
從Scrum到放棄scrum
從Scrum到放棄scrum從Scrum到放棄scrum
從Scrum到放棄scrum
 
快思慢想讀書會Ch9 10
快思慢想讀書會Ch9 10快思慢想讀書會Ch9 10
快思慢想讀書會Ch9 10
 

SwiftyJSON 慘痛經驗