안녕하세요.
이번에 회사님의 도움을 받아 Let's Swift 2023에 참석했어요!!
행사에서 많은 것을 배우고 느낄 수 있었는데, 그 중에서도 Lookin이라는 것을 처음 알게 되어 가볍게 알아보려고 합니다ㅎㅎ
# Lookin이 뭐야?
쉽게 말해서, Lookin은 Xcode의 View hierarchy 창과 비슷한 UI를 제공하면서 런타임 중에 UI 속성을 수정할 수 있게 도와줍니다.
# 사용법
1) Lookin 홈페이지에서 Download 버튼을 눌러서 Lookin macOS 앱을 설치합니다.
2) Xcode 프로젝트에 CocoaPods으로 Lookin iOS Framework를 추가합니다.
(SPM도 지원하지만 CocoaPods 사용을 권장한다고 해요!)
[주의] Lookin 모듈을 Release 타켓에 추가하지 않도록 주의해 주세요.
[참고] Lookin 모듈 이름이 왜 LookinServer 인가?
하단의 '기타 > Lookin 동작 방식' 내용 참고해 주세요.
3) Lookin 실행
4) 앱 빌드 후 Lookin에서 앱 선택
5) Inspector 창에서 UI 이것저것 디버깅 가능
6) 추가 고오급 기능은 아래 문서 참고!
- https://lookin.work/faq/config-file/
# 기타
## SwiftUI에서도 Lookin 동작할까?
SwiftUI에서도 Lookin을 사용할 수 있어요!
Label text 수정과 같은 몇 가지 기능이 완벽하게 동작하지 않을 수 있지만 SwiftUI에서도 Lookin을 쓸 수 있어요.
한 가지 특징은 앱을 빌드하지 않아도 Preview가 실행 중이면 Lookin을 사용할 수 있다는 것입니다.
## Reveal vs Lookin
## Lookin 동작 방식
1) iOS 앱이 response를 줄 수 있는 상황인지를 Lookin macOS 앱 <-> Lookin iOS Framework 간 Ping/Pong으로 확인합니다.
(관계 상 Lookin macOS 앱이 클라, Lookin iOS Framework가 서버가 되므로, iOS Framework가 LookinServer라는 이름을 가지게 된 것으로 보입니다ㅎㅎ)
2) 서버 측이 Hierarchy 요청을 받은 후, 모든 뷰에 대한 정보를 패키지로 만들어서 클라이언트 측에 보냅니다. 클라이언트 측에서는 이 정보를 다시 layer tree로 재구성합니다.
3) 서버 측은 각 뷰의 스크린샷과 속성 목록을 클라이언트 측에 전송하여 더 자세한 데이터를 렌더링하도록 합니다.
4) 클라이언트 측은 사용자가 조작한 정보를 서버 측에 계속 전달하고, 서버 측은 이를 토대로 우선 순위를 조정하여 사용자가 조작한 뷰 정보를 먼저 수집합니다.(?)
(클라가 전달한 정보로 hot reloading 한다고 보면 되겠죠...?)
# 참고
이번 글은 여기서 마무리.
'iOS' 카테고리의 다른 글
Verifying the origin of your XCFrameworks (0) | 2024.02.08 |
---|---|
.a static library를 xcframework로 만드는 방법 (6) | 2023.12.31 |
Certificate, Provisioning Profile (0) | 2023.09.25 |
Signing xcframework (0) | 2023.08.14 |
xcframework 빌드 스크립트 (0) | 2023.08.08 |