WWDC 25 iOS 개발자를 위한 정리

liko apps·2025년 6월 11일
1

어제 WWDC25 발표가 있었는데요,
어제는 다른 개발 안하고 하루 종일 주요 개발 세션들을 간단하게 보았습니다.

https://developer.apple.com/wwdc25/sessions-and-labs/topics

제가 본건 위에서부터 쭉 봤습니다.
관심사만 본거라서 제가 정리한거 외에는 직접 링크를 보고 찾아보시길 바랍니다.

1. 추천 세션

  • 이번 핵심은 UX 변화 (리퀴드 글래스 UX)입니다. (체감적으로)
    • 그래서 일단 1. 디자인 관련 세션 추천합니다.
  • 추가적으로 Foundation Models Framework는 AI 모델 사용에 관심이 있다면 관련 세션은 반드시 보세요.
    • 개인개발자나 작은 개발사라면 무료 사용 가능한 AI도구가 생겼으니 안 쓸 수가 없다고 봅니다.
  • UIKit / SwiftUI 관련 세션도 추천합니다.
  • Instrument에 대한 강화가 주요 세션에 계속 나옵니다. 이것도 추천 드립니다.

  • 정리하면 '디자인', 'Foundation Models Framework', 'UIKit', 'SwiftUI', 'Swift 6.2관련' 추천 드립니다.
  • 추천 세션은 각 항목 뒤에 (추천) 이라고 붙여놓았습니다 :)

2. 주요 세션 정리 (본것만)

# Design

  • What’s new in SF Symbols 7

    • Draw/Magic Replace 같은 애니메이션이 추가 되었고,
    • Gradients 드로우 모드가 추가 됨
    • Custom SF Symbol을 만들 때 Draw Animation 설정 방법 같은걸 알려줌
  • Get to know the new design system (추천)

    • 새로운 디자인 시스템 (리퀴드 글라스)에 대한 설명
    • 곡선 쓰는 법, 패딩 영역, 액션 영역 등에 대한 새로운 접근.
    • 새로운 'UX' 제안. 디자인만 바꾼게 아니라 UX 를 바꿨음.
      (애플이 제공하는 Navigation Bar / Toolbar 등을 사용하지 않으면 올드한 앱 처럼 보이게 될거 같네요.)
      (직접 구현해서는 리퀴드 글라스 타입의 네비게이션을 구현하기는 쉽지 않아 보이네요.)
  • Create icons with Icon Composer

    • 앱 아이콘을 만드는 툴 'Icon Composer'
    • 새로운 리퀴드 글라스 UI에 어울리는 앱 아이콘을 만들 수 있게 도와 줌.

# Developer Tools

  • What’s new in Xcode (추천)

    • Xcode 26 - 26% 더 작아짐. 텍스트 입력 빨라짐, 워크스페이스 로드 40% 빨라짐.
    • Coding by Voice (... 기대는 안됨, 시연 보고... 이걸 하겠냐 싶음)
    • Intelligence - Cursor 비슷한 것, ChatGPT/Claude/Ollma 등등 연결해서 사용 가능.
      에러 난 코드에 AI 도움으로 해결하는 기능 추가
    • 디버깅 - Swift Concurrency 관련 디버깅 기능 추가, 기타 Instrument 기능 대폭 강화 됨.
    • Trending Insights 기능 추가
  • Profile and optimize power usage in your app

    • instrument 를 사용해 에너지 많이 쓰는 걸 찾을 수 있음.
    • Developer Mode 에 Power Profiler 가 추가 됨.
    • Power 사용 비교
    • (에너지 소비 많은 앱은 유용할 듯)
  • Optimize SwiftUI performance with Instruments (추천)

    • Instrument 에 SwiftUI 항목에 Long View Body Updated 나 기타 체크 항목 추가 됨
    • render loop 에 대해 설명하면서 cause & effect 로 구분해서 어떻게 SwiftUI 를 빠르게 그릴 것인가 알려줌
      (SwiftUI 에 대한 Best Practice 같은걸 애플에서 주면 좋겠음)
  • Optimize CPU performance with Instruments
    • 느린 원인을 트리 구조로 만들어서 원인을 찾게 해줌. (주니어 레벨은 봐두면 좋을 듯)
    • binary search tree 를 딥~하게 분석해가면서 빠르게 만드는 과정을 보여줌

# Machine Learning & AI

  • Meet the Foundation Models framework (강력추천)
    • (참고: https://developer.apple.com/documentation/foundationmodels)
    • 내부 모델은 온디바이스의 3b + 2bit 양자화 모델이다.
    • 생성, 인앱 유저 가이드, 생성형 퀴즈, 개인화, Classification, 요약,
      Semantic seach, 태그 생성, 주제 인식 ... 등등 할 수 있음
    • 가이드 기반 생성 - struct 에 가이드와 제약을 걸어서 결과로 받을 수 있다.
    • 스냅샷 스트리밍 - Partially 생성된 결과를 스트리밍으로 받아서 사용할 수 있다.
    • Tool calling - MapKit 으로부터 장소를 받아오거나, ContactKit에서 연락처를 가져오거나. 해서 사용 가능.
      (필요한 경우 Tool call 해서 그 결과를 받아서 모델에서 사용하는 방식)
    • Stateful sessions 으로 동작함
    • instruction : 모델의 역할을 정의해 줌. 스타일과 길이등 - come from developer, 우선 순위 높음
    • prompt - come from developer OR client
    • multi-turn interactions 은 같은 세션을 계속 쓰면 됨
	# 날씨를 가져오는 모델을 만들 경우
		1. 입력한 도시에 대한 gps 좌표를 가져온다. (CLLocation 을 이용한 geocoding)
		2. 해당 도시의 현재 날씨를 가져온다. (WeatherKit)
		3. 이를 반환한다. 
		여기까지가 Tool call 기능 활용.
		LLM에서는 이 정보를 이용해 결과를 반환해준다. 
		
		- 예를 들어 prompt 가 뉴욕의 현재 온도가 추운지 알려줘. 라는 문장이라면
		Tool calling 으로 뉴욕의 온도를 반환하면 LLM 에서 해당 온도 정보로 문장을 만들 수 있음.

  • Deep dive into the Foundation Models framework (강력추천)
    • 간단한 대화형 게임을 예제로 소개.
    • 세션 사용하다가 세션 한도를 넘으면 summry 해서 새로운 세션에 넘겨주는 형태로 구현도 가능
    • @Generable / @Guide 작성 방법들 안내.
    • Tool call 기능으로 내 연락처에서 정보를 가져와서 캐릭터를 생성하는 식의 사용이 가능
      • 외부 정보를 (LLM)모델에 전달할 수 있는 기능
      • Tool 은 상태를 저장할 수 있음.
  • Explore prompt design & safety for on-device foundation models (추천)

    • On-device language model (요약, 분류, 대화, 글쓰기, 교정, 라벨링)
    • (참고: https://developer.apple.com/documentation/foundationmodels/languagemodelsession)
    • 온디바이스 3B모델이므로, 한계가 있다. (ChatGPT같은 서버 모델은 100B+ 이상 모델)
    • 한계를 잘 알고 사용해야 한다.
      (계산 같은거 맡기지 말고, 코드 작성 같은거 맡기지 말라, 최근 세상의 이벤트,
      특정 세세한 지식 검증용으로는 한계, 환각도 있음)
    • Guided generation에는 적합함
    • Prompting Best practices
      • 숫자 지정하기 (하나의 문장으로 써줘)
      • 스타일 지정해주기, 역할 지정해주기 (너는 여우야, 스타일을 좋아하는 여우이고, 셰익스피어 스타일의 영어를 써)
      • 명령형 문장 쓰기, 하나의 구체적인 사항을 요구하고, 요청에 대한 예시를 들어주기.
      • 강한 언어를 사용하기 (MUST or DO NOT 같은)
    • instruction / prompt 2가지를 전달하는 형태로 구현
    • 가드레일이 있음. (입력 전, 출력 후에 안전에 대한 가드레일 있음, 에러 처리됨)
  • Code-along: Bring on-device AI to your app using the Foundation Models framework (추천)

    • swift struct 에 @Generable 을 붙여서 Foundation Moels Framework의 결과물로 지정 가능. (출력 형태)
    • 해당 struct 의 property 에 @Guide() 를 붙여서 property 별로 prompt 를 지정할 수 있음. (갯수나 명령)
    • Prompt engineering
      • 예시가 중요하다.
      • 예시와 프롬프트, 그리고 출력 struct 타입을 던져서 결과를 받는 형태로 구현
    • Tool calling
      • map kit 이나 contact 같은걸 연결 할 수 있음
      • Tool protocol 을 받아서 구현해주면 됨.
    • Xcode 에서 Founation Models framework 의 모델을 선택 / 끄거나 할 수 있음 (테스트 가능)
    • Streaming output
      • 부분 결과를 이용하도록 구현 가능함.
      • 한꺼번에 결과를 보여주는게 느릴 수 있으므로 이렇게 처리
    • Profiling : instrument 에서 Foundation Models framework 지원 함
  • Discover machine learning & AI frameworks on Apple platforms

    • ML-Powered APIs
    • FoundationModels framework (new)
    • Vision / Natural Language / Translation / Sound Analysis / Speech 등에 사용
    • Document Recognition (new) - 문서에서 이미지, 텍스트 등 찾아주기 (기존 카메라나 사진에서 쓰이던 기능 으로 보임)
    • ML Models - mlpackage 뷰어에 Structure 항목 추가 됨.

# Swift

  • What’s new in Swift

  • Explore concurrency in SwiftUI

    • Swift 6.2 에서 Main actor 가 기본이 되었음.
    • 위에꺼 반복, 초심자라면 한본 볼만함.
  • Embracing Swift concurrency (추천)

    • Swift 동시성에 대한 컨셉, 어떻게 동작하는지, 구현하는지 정리.
    • main thread 기본 동작하는 코드를 어떻게 concurrency 하게 변경하는지 과정을 보여줌.
    • @concurrent - alwyas run in the background
    • actors protect non-Sendable state
  • Code-along: Elevate an app with Swift concurrency (초심자추천)

    • main actor로만 구성된 샘플앱을 Swift concurrency 구현하면서 앱 최적화를 하는 과정 보여줌
      (초심자에게 추천)

# SwiftUI & UI Frameworks

  • What’s new in UIKit (UIKit사용중이라면 추천)
    • @Observable 에 대한 감시를 UIKit 에서 사용 가능해짐. layoutSubviews(), updateProperties()
      (UIObservationTrackingEnabled: Yes)
    • HDR Color picking 가능.
  • What’s new in SwiftUI (SwiftUI 사용자라면 추천)
    • 새 UI 디자인 .glassEffect() 로 리퀴드 글래스 처리 가능.
    • SwiftUI performance - 빨라짐!
      • 리스트 업데이트 16배 이상 빨라짐. 스크롤도 빨라짐.
      • Nested scroll view 도 lazy 로딩이 가능해짐.
    • @Animatable macro 추가 됨. (@AnimatableIgnored 도 추가됨)
    • WebView 추가

# App Services

  • AlarmKit API

    • 알람을 관리할 수 있는 별도의 프레임워크, 사용자에게 알람을 주는 앱을 만들고 있다면 반드시 살펴볼 것.
    • 사용자 동의가 필요한 점이 특이사항
  • Meet WebKit for SwiftUI

    • 이제 WebView 때문에 UIKit 안써도 됨
  • PaperKit

    • 기존 PencitKit + PDFKit 을 합친 형태
    • SwiftUI로도 제공되는 인터페이스
    • PencilKit을 사용하는데 배경 이미지를 템플릿으로 쉽게 올릴 수 있다.
  • What’s new in StoreKit and In-App Purchase

    • Offer Codes 사용 범이가 늘어남. 이제 소모성, 비소모성, 자동 구독 연장없는 구독 상품에도 사용 가능해짐.
    • 개인개발자들에게는 홍보 수단으로 적절히 쓰일 것 같음.
    • 구독 관련 View들이 추가됨

#Audio & Video

# 기타

  • Get started with Game Center [Graphics & Games 세션]

    • 업적, 리더보드, (챌린지, 활동 - 새로 추가됨)
    • GameKit Bundle 이 새로 추가됨. (StoreKit Bundle 같은) 테스트 가능해짐.
  • Finish tasks in the background [System Services 세션]

    • Background 진입 해도 계속 동작하는 작업 하나를 만들 수 있게 됐다.
      (BGContinuedProcessingTaskRequest)
      (동영상 내보내기 같은거, 오래걸리는 작업이 있는 앱 개발자라면 참고)
  • Discover Apple-Hosted Background Assets [System Services 세션]

    • new capability to download asset packs of content for games and other applications.
    • Managed Background Assets (200기가까지 애플에서 호스팅 가능, 셀프 호스팅도 가능)
    • 게임 DLC나 튜토리얼이나, 머신러닝 모델이나 기타 등등에 사용

총평

  • 개인적으로는 Founation Models Framework가 이번 세션의 핵심이라고 생각됩니다.(개발자 관점)
  • AI 모델 사용의 새로운 방향을 열었고, 어떻게 사용하면 될지 상상이 막 되는 형태라고 해야할까요.
  • iOS26이 가을에 나오고, 개발자들이 이를 활용한 새로운 앱을 내기 시작할 때 애플의 AI가 플랫폼으로서의 역할을 잘 해줄거라는 생각이 듭니다.
    • (개인적으로는 OS단에서 AI로 뭔가를 해주는것도 좋긴 한데, OS는 어쨌든 플랫폼으로서의 역할을 더 해주길 바라는게 앱 개발자의 마음입니다 ㅎㅎ;)
  • 저는 다음 개발자 베타가 나올 때쯤 써볼 예정이네요. (일단 이 재밌는걸로 뭘 만들지 아이디어 정리를 좀 해봐야겠습니다.)

끝.

profile
제주에서 앱을 만들고 있습니다. 개발관련 정리 블로그

0개의 댓글