본문으로 이동
SwiftLayout을 소개합니다.: 선언형 문법으로 가독성 높은 UIKit 코드 작성하기 / if(kakao)2022
컨퍼런스

SwiftLayout을 소개합니다.: 선언형 문법으로 가독성 높은 UIKit 코드 작성하기 / if(kakao)2022

if kakao 카카오 · YouTube

원문 보기

AI 핵심 요약

스토리보드는 협업과 유지보수가 어렵고, UIKit을 코드로만 구성하면 명령형 코드와 분기 처리 때문에 화면 구조를 파악하기 어렵다는 문제에서 출발했습니다. 이를 개선하기 위해 UIKit의 뷰 구성 및 Auto Layout API를 감싸 선언형 문법으로 작성하는 오픈소스 라이브러리 SwiftLayout을 만들었습니다. 서브뷰 계층과 앵커 제약 조건을 선언하고, Activation과 업데이트를 통해 정적·상태 기반 화면을 적용하는 방법을 소개했습니다. 개발 과정에서는 기존 UIKit 사용성을 유지하고 사용자 동작을 방해하지 않는 설계를 지향했으며, 테스트와 PR 리뷰를 통해 안정성과 유지보수성을 높이는 경험을 공유했습니다.

  • 서브뷰를 중첩 클로저로 선언하면 코드 구조와 UIKit 뷰 계층을 일치시킬 수 있습니다.
  • 앵커 메서드로 제약 조건을 정의하고, 계층상 부모가 명확한 경우에는 대상 뷰 지정을 생략할 수 있습니다.
  • 레이아웃 정의와 활성화는 별도 단계입니다. 동적 화면에서는 Activation을 보관해 업데이트하고, 필요하면 비활성화해야 합니다.
  • 상태에 따른 화면 변경은 레이아웃 안의 조건문으로 표현할 수 있으며, Layoutable과 프로퍼티 래퍼를 활용하면 갱신을 일관되게 처리할 수 있습니다.
  • 오픈소스 라이브러리는 테스트와 필수 PR 리뷰로 안정성을 확보하고, 기존 API를 감싸되 사용자 프로젝트의 동작을 침해하는 기능은 피하는 것이 중요합니다.

소개

SwiftLayout은 UIKit을 사용하면서 아쉬웠던 부분들을 개선하기 위해 선언적인 구문으로 UIKit을 사용할 수 있도록 도와주는 오픈소스 라이브러리입니다. SwiftLayout의 사용법을 코드와 함께 살펴보며 저희가 라이브러리를 개발하는 과정에서 격은 여러 의미 있었던 경험도 함께 공유하고자 합니다. #iOS #OpenSource 저는 카카오톡을 개발하고 있는 iOS 개발자 aiden 입니다 저는 카카오톡을 개발하고 있는 iOS 개발자 jay 입니다 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-86 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022

비슷한 학습 자료

컨퍼런스 if kakao

카카오톡 인앱결제 프로세스를 StoreKit 1에서 StoreKit 2로 변경 적용 사례를 소개합니다. StoreKit 2에 새로워진 기능 개발도구, 카카오톡 인앱 결제에 적용할 수 있는 신규 기능에 대해서 공유하고, 테스트 환경 및 기능 개선의 과정을 공유합니다. #iOS #StoreKit 2 #InAppPurchase #KakaoTalk 톡iOS에서 클라이언트 개발을 진행하고 있는 감성 개발자 David와 Jaime입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-49 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

모바일 앱 개발

컨퍼런스 if kakao

Swift 6부터 본격적으로 지원되는 Swift Concurrency에 대한 전반적인 개념을 소개합니다. 동시성 환경에서 안전한 코드를 만들기 위한 Concurrency의 주요 개념들에 대해 다루며, 이들을 다룰 때 주의할 점과 카카오톡에서는 어떻게 이용하고 있는지를 알아봅니다. #Swift #Concurrency #iOS #KakaoTalk 톡iOS에서 톡캘린더 개발을 담당하여, 더 나은 서비스를 만들기 위해 노력하는 Hayden입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-48 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

프로그래밍 언어

컨퍼런스 if kakao

카카오뱅크 iOS 프로젝트 여정을 이야기하고 어떤 문제를 겪었으며, 왜 모듈화를 하게 되었는지, Tuist를 활용한 모듈 개발 방법 소개, 그리고 iOS 개발팀에서 그리고 있는 아키텍처를 공유하고자 합니다. #iOS #생산성 카카오뱅크에서 iOS 앱 개발을 하고 있는 데이먼입니다 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-88 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022

모바일 앱 개발

컨퍼런스 if kakao

Brunch Architecture / if(kakao)2022

컨퍼런스 if kakao

브런치 안드로이드 앱의 아키텍처가 어떻게 바뀌었는지 소개하고, 현재 변경 중인 내용에 대해서 공유합니다. #Android 작가들의 창작 활동을 펼칠 수 있도록 브런치와 티스토리를 개발하고 있는 아일라입니다. 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-85 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022

모바일 앱 개발

컨퍼런스 if kakao

Preview Mobile @if(kakao)2022

컨퍼런스 if kakao

if(kakao)2022 컨퍼런스에서 Mobile 관련 기술 발표 트랙을 소개합니다. 03:00 1. 다리는 걸을 뿐.. 만보기 서비스 개발기: 만보기 서비스를 개발하면서 겪은 이야기 by 이현재(cado.avo) 항상 성장을 하고픈 iOS 개발자 cado입니다 03:30 2. 카카오페이 iOS 웹뷰 소개 및 리팩토링 이야기 by 윤한울(joey.con) 카카오페이 사용자에게 더 나은 경험을 주고싶은 iOS 개발자 joey입니다. 카카오톡 내의 카카오페이 서비스와 카카오페이 앱을 개발하고 있습니다. 04:13 3. SwiftLayout을 소개합니다.: 선언형 문법으로 가독성 높은 UIKit 코드 작성하기 by 이희종(jay.choi), 최광훈(aiden.h) 저는 카카오톡을 개발하고 있는 iOS 개발자 aiden 입니다 저는 카카오톡을 개발하고 있는 iOS 개발자 jay 입니다 04:40 4. 카카오뱅크 iOS 프로젝트의 모듈화 여정: Tuist를 활용한 모듈 아키텍처 설계...

모바일 앱 개발

컨퍼런스 if kakao

Preview Web+Mobile @if(kakao)2021

컨퍼런스 if kakao

if (kakao) 2021 컨퍼런스에서 Data 관련 기술 발표 세션을 소개합니다. 1. 이게 진짜 일 리 없어 : 초보 리더가 프로젝트에서 마주치는 어려운 상황들 @effie.seo 올해 6월에 카카오맵 매장관리 서비스를 오픈했습니다. 매장관리 프로젝트 진행 과정을 통해서 카카오맵 FrontEnd 개발자들은 어떻게 협업하는지, 프로젝트에서 마주쳤던 상황들을 대처 하기 위해서 초보 리더인 제가 동료들과 함께 고민하고 시도했던 과정에 대해서 공유해보고자 합니다 2. Next.js와 Typescript를 이용한 프론트엔드 개발기 @jaden.js @luffy.yeon Next.js를 사용한 서버사이드 랜더링, Next.js 환경 Typescript 포팅을 하며 겪은 경험 공유 3. 톡패스워드 크롬 익스텐션 개발기 @felix.lee 입사 후 처음으로 혼자 프로젝트를 설계하면서 고민했던 구조선택과 고민거리에 대한 공유 4. UI 테스트 경험기 @jay.choi 리팩토링에 대한...

프론트엔드 소프트웨어 테스트 애자일 · 협업