Swift アプリ開発とバックエンド連携|API通信の基本
生徒
「iOSアプリって、どうやって外部のサーバーと情報をやり取りしているんですか?」
先生
「良い質問ですね。Swiftでアプリを作るとき、API通信を使ってバックエンドと連携します。これによってデータの取得や送信ができるんですよ。」
生徒
「API通信ってなんだか難しそうです。具体的にはどういうことですか?」
先生
「簡単に言えば、『アプリがサーバーにお願いしてデータをもらう』仕組みです。例えば天気予報アプリなら、サーバーから天気データを取ってきて表示しているんです。」
1. API通信とは?
API通信とは、アプリとサーバーがデータをやり取りする仕組みです。APIは「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略で、アプリと外部のサービスをつなぐ「窓口」のような役割を持っています。
例えば、飲食店で「店員さんに料理を注文する」と考えてみましょう。お客さん(アプリ)は料理(データ)が欲しいですが、直接キッチン(サーバー)に入れません。そこで店員さん(API)が注文を受け取り、キッチンに伝えて料理を持ってきます。これがAPI通信のイメージです。
2. バックエンド連携の流れ
Swiftで作ったiOSアプリがバックエンドと連携するときの流れは次のようになります。
- アプリが「データをください」とサーバーにリクエストを送る
- サーバーがリクエストを処理してデータを準備する
- サーバーがレスポンス(返事)を返す
- アプリがレスポンスを受け取り、画面に表示する
このやり取りの中で使われるのがHTTP通信です。ウェブサイトを見るときと同じ仕組みを使って、アプリもデータを取りに行きます。
3. SwiftでAPI通信をする方法
Swiftでは、URLSessionというクラスを使ってAPI通信を行います。これはAppleが用意してくれている仕組みで、初心者でも簡単に使えます。
import Foundation
let url = URL(string: "https://jsonplaceholder.typicode.com/todos/1")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
if let jsonString = String(data: data, encoding: .utf8) {
print(jsonString)
}
}
}
task.resume()
この例では、サンプルのAPIにアクセスしてJSON形式のデータを取得しています。JSON(ジェイソン)は「データの入れ物」のような形式で、サーバーとアプリの間でよく使われます。
4. JSONデータを扱う
APIから返ってくるデータはJSON形式が多いです。JSONは「キーと値」の組み合わせでデータを整理しています。例えば次のような形です。
{
"id": 1,
"title": "買い物に行く",
"completed": false
}
SwiftでJSONを扱うときは、Codableという仕組みを使うと便利です。
struct Todo: Codable {
let id: Int
let title: String
let completed: Bool
}
let url = URL(string: "https://jsonplaceholder.typicode.com/todos/1")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
let decoder = JSONDecoder()
if let todo = try? decoder.decode(Todo.self, from: data) {
print(todo.title)
}
}
}
task.resume()
このように構造体を定義しておくと、JSONのデータを自動で変換して扱いやすくなります。
5. POSTリクエストでデータを送る
API通信はデータを受け取るだけでなく、送ることもできます。例えば「新しいユーザー登録」や「コメントの投稿」などは、サーバーにデータを送る処理です。
let url = URL(string: "https://jsonplaceholder.typicode.com/posts")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let parameters = ["title": "テスト", "body": "Swiftから送信", "userId": 1] as [String : Any]
request.httpBody = try? JSONSerialization.data(withJSONObject: parameters)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
let responseString = String(data: data, encoding: .utf8)
print(responseString ?? "")
}
}
task.resume()
ここではPOSTリクエストを使ってデータを送っています。API通信ではGET(データを取得)とPOST(データを送信)がよく使われる基本です。
6. API通信で気をつけるポイント
初心者がAPI通信を行うときに気をつけたいポイントを整理しておきましょう。
- インターネット接続がないと通信できないので、エラー処理を入れる
- サーバーが返すデータが正しいかどうか確認する
- 大量のデータを一度に扱うとアプリが重くなるので工夫する
- セキュリティのためにHTTPS(暗号化された通信)を使う
これらを守るだけでも、アプリの安定性と安全性がぐっと高まります。
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。
Windowsで実現する開発環境
【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。
【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。
この60分で得られる3つの理解
OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。
iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。
将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。
※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。
Windowsで始めるiPhoneアプリ開発入門