クラスと構造体の違いからコード・データ・ヒープ・スタックまで by ヨンちゃん

iOSDC Japan 2025
ルーキーズLT(5分)

クラスと構造体の違いからコード・データ・ヒープ・スタックまで

ヨンちゃん
3

Swiftの勉強を始めたばかりの頃は、自分のアイデアをアプリとして形にすること自体がとても楽しく感じられました。 しかし、学習や開発を重ねるうちに、エンジニアにとって重要なのは単なる実装に留まらず、いかに効率的かつ安全に実装できるかであるという考えを持つようになりました。

その中で「クラスと構造体を使い分ける際、メモリの観点ではどのような違いがあるのだろう?」という疑問が生まれ、やがてそれはより根本的なメモリ構造、つまりハードウェアレベルでのメモリの仕組みへの関心へと広がっていきました。 メモリにはコード領域・データ領域・ヒープ領域・スタック領域があり、それぞれの役割について図解しながら調べて学習を進めました。

この学習を通して、COW(Copy-On-Write)構造、クラスと構造体の選定基準、ARCやクロージャのキャプチャの仕組みなど、これまで何となく知っていたけれどうまく説明できなかった概念を、より明確に理解し、自分の言葉で説明できるようになりました。 今回のルーキーセッションでは、こうした学びと気づきを皆さんに共有したいと思います。

トーク内容

  • コード・データ・ヒープ・スタックに関する概念の解説と図解
  • クラス vs 構造体、値型 vs 参照型 ― 実際のメモリ使用の違いと選定基準
  • Swiftにおける自動メモリ管理(ARC)とメモリリーク、クロージャのキャプチャ問題