Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SwiftUIメインの開発者がUIKitの画面を実装するときに役立った3つの工夫
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuya Harada
July 24, 2025
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwiftUIメインの開発者がUIKitの画面を実装するときに役立った3つの工夫
Yuya Harada
July 24, 2025
More Decks by Yuya Harada
See All by Yuya Harada
KMP導入後の運用で 見えてきた課題と次の一手 / KMP Ops Night
yuyah29
1
230
ウォンテッドリーのAI活用: 開発現場での取り組み
yuyah29
0
1.1k
Xcode 26 の Coding Intelligence で感じた これからの自分に求められる変化
yuyah29
0
170
日々の振り返りで パフォーマンスを向上させる
yuyah29
0
230
多言語対応アプリの負債返済 -文字列管理の見直しで得た学び-
yuyah29
0
880
Introduction to Kotlin Multiplatform
yuyah29
0
760
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Accessibility Awareness
sabderemane
1
240
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Agile that works and the tools we love
rasmusluckow
331
22k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
The agentic SEO stack - context over prompts
schlessera
0
970
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
420
Building an army of robots
kneath
307
47k
The Curious Case for Waylosing
cassininazir
1
550
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Transcript
© 2025 Wantedly, Inc. SwiftUIメインの開発者がUIKitの画面を実 装するときに役立った3つの工夫 Mobile勉強会 #21 ウォンテッドリー ×
チームラボ × Sansan Jul.24 2025 - Yuya Harada
名前 Wantedly 入社 ポジション 趣味 性格診断 : 原田 祐也 :
2024年 7月 : iOS エンジニア : バドミントン : モチベーター
© 2025 Wantedly, Inc. • 対象 ◦ SwiftUI 中心に開発していて、UIKitに久しぶりに触れる 方
◦ Swiftを学び始めた 方(SwiftUIから入った方) • 背景 ◦ 普段はSwiftUIの実装メイン 、久しぶりに本格的に UIKit に触れる 機会があった ◦ 担当した施策ではスピードが求められて おり、不安があった 本日話すこと 工夫次第で効率を上げることができ、UIKit実装にも対応できる
© 2025 Wantedly, Inc. CONTENTS 01 SwiftUI と UIKit の違い
02 工夫①:Previewマクロで UI を即時確認できるようにする 03 工夫②:UIの制約の付け方は最小限を覚えて使う 04 工夫③:RxSwiftは「やりたいことベース」で学習する 05 まとめ
© 2025 Wantedly, Inc. SwiftUI と UIKit の違い 01
© 2025 Wantedly, Inc. SwiftUI と UIKit の違い • 宣言的
UI ◦ UI の最終状態を宣言 する ◦ 状態に応じた UI が表示される ◦ • UI の組み方 ◦ VStack や .padding() などを使 用する SwiftUI • 命令的 UI ◦ 自分で状態に応じて UIを更新する ◦ 状態が変わるたびに 「何を」 「どう変えるか」 を命令する必要がある • UI の組み方 ◦ UIStackView や NSLayoutConstraint などを用いてUIの作成 & 制約をつける • リアクティブプログラミング ◦ Combine や RxSwift を使うと、 状態変化を購読して UIの更新が可能 UIKit
© 2025 Wantedly, Inc. 例) テキストとボタンを表示する SwiftUI UIKit
© 2025 Wantedly, Inc. 工夫①:Previewマクロで UI を即時確認できるようにする 02
© 2025 Wantedly, Inc. • 課題 ◦ ビルド → シミュレータ起動
→ 画面遷移でUIの確認が 面倒で時間のかかるプロセス • 工夫 ◦ Previewマクロで状態ごとのUI を直接確認できるようにする • ポイント ◦ SwiftUIに近い体験でUIの開発が 可能になった 工夫① Previewマクロで UI を即時確認できるようにする https://developer.apple.com/documentation/uikit/preview(_:traits:body:)-c7kr
© 2025 Wantedly, Inc. UI実装のイメージ UIを更新するメソッド 状態に応じたプレビューを⽤意
© 2025 Wantedly, Inc. 工夫②:UIの制約の付け方は最小限を覚えて使う 03
© 2025 Wantedly, Inc. • 課題 ◦ 制約の付け方は自分がやったことないやり方だったため キャッチアップが必要だった ◦
NSLayoutAnchor を使った実装しか知らなかった • 工夫 ◦ プロジェクトで使っていた SnapKit を必要な部分だけ調べて書いた • ポイント ◦ 「全部理解する」より、「必要な箇所を調べながら学ぶ」ことで、 そこまで時間をかけずに開発した 工夫② UIの制約の付け方は最小限を覚えて使う
© 2025 Wantedly, Inc. SnapKit の実装イメージ • まずは基本的な構文を理解する ◦ inset
◦ equalToSuperview ◦ equalTo • NSLayoutAnchor での書き方を SnapKitでどう実装するか調べる ◦ 必要に応じて対応 行ったこと
© 2025 Wantedly, Inc. 工夫③:RxSwiftは「やりたいことベース」で学習する 04
© 2025 Wantedly, Inc. • 課題 ◦ (恥ずかしながら...😓) Rxがそもそも初めてだった ◦
オペレーターなどは無知の状態からスタート • 工夫 ◦ 簡単な記事を読み、内容を簡単にドキュメントにまとめた ◦ 実装で必要な機能を最低限理解した ◦ AIを活用し、オペレーターのより良い書き方を模索した • ポイント ◦ 目的に沿った学びで最短で業務に活かせた 工夫③ RxSwiftは「やりたいことベース」で学習する
© 2025 Wantedly, Inc. 基本のオペレーターのイメージ • filter ◦ 条件に合う値だけ通す ◦
例) x > 10 • distinctUntilChanged ◦ 値が変わったときだけ通知する
© 2025 Wantedly, Inc. 読んで理解を深めることができた記事 • RxSwiftが訳わからんすぎる。 ◦ ストリームの処理がベルトコンベアと作業員で例えられており、イメージしやすい ◦
RxSwiftの雰囲気を掴むことができる • Introduction to RxSwift ◦ RxSwiftの概要が書かれた記事 ◦ 基本概念のオブザーバブルやオペレーターが丁寧に解説されている
© 2025 Wantedly, Inc. まとめ 05
© 2025 Wantedly, Inc. • 工夫①:Previewマクロで UI を即時確認できるようにする • 工夫②:UIの制約の付け方は最小限を覚えて使う
• 工夫③:RxSwiftは「やりたいことベース」で学習する まとめ 工夫次第で効率を上げることができ、UIKit実装にも対応できる 今後同じような場面に遭遇した際は ぜひ参考にしてみてください!
© 2025 Wantedly, Inc. ご清聴 ありがとうございました😊 : @yuya_h_x : @yuya-h-29
X GitHub