A web service is a system that allows an iOS app to communicate with a server over the internet to send or receive data.
👉 Example:
It means requesting data from a server (API) and using it inside your app.
Parsing means converting raw server data (JSON/XML) into usable Swift objects.
iOS App
↓
URL Request
↓
Server (API)
↓
Response (JSON/XML)
↓
Parsing
↓
Display in App
JSON = JavaScript Object Notation It stores data in key-value format.
{
"name": "Ali",
"age": 20
}
let url = URL(string: "https://api.example.com/user")!
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
print(data)
}
}.resume()
if let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
let name = json["name"] as? String
let age = json["age"] as? Int
print(name ?? "", age ?? 0)
}
XML = Extensible Markup Language It uses tags like HTML.
<user>
<name>Ali</name>
<age>20</age>
</user>
let url = URL(string: "https://api.example.com/user.xml")!
class XMLParserDelegateClass: NSObject, XMLParserDelegate {
var currentElement = ""
var name = ""
var age = ""
func parser(_ parser: XMLParser, foundCharacters string: String) {
if currentElement == "name" {
name += string
} else if currentElement == "age" {
age += string
}
}
func parser(_ parser: XMLParser, didStartElement elementName: String,
namespaceURI: String?, qualifiedName qName: String?,
attributes attributeDict: [String : String] = [:]) {
currentElement = elementName
}
}
let parser = XMLParser(contentsOf: url)!
let delegate = XMLParserDelegateClass()
parser.delegate = delegate
parser.parse()
| Feature | JSON | XML |
|---|---|---|
| Size | Small | Large |
| Speed | Fast | Slow |
| Readability | Easy | Complex |
| Usage | Modern APIs | Legacy systems |
struct User: Codable {
let name: String
let age: Int
}
URLSession for networkingCodable for JSON parsingWeb service = server communication
Data formats:
Steps:
Use URLSession for networking
Use Codable for modern JSON parsing
Open this section to load past papers