본문 바로가기

개발 이야기14

[iOS] 재사용 가능한 UI 컴포넌트 시스템: Container + Components 아키텍처 개발기 ✨ 들어가며: 컴포넌트 기반 설계가 필요했던 이유안녕하세요! 오늘은 Container + Components 아키텍처를 어떻게 설계하고 개발했는지 이야기해볼게요.복잡한 앱을 개발하다 보면 다양한 화면에서 일관된 사용자 경험을 제공하는 것이 중요해요. 특히 테이블, 컬렉션, 카드 UI 등이 앱 전반에 걸쳐 필요했는데, 이런 요소들을 효율적으로 관리할 방법이 필요했죠.어떤 문제들이 있었나요?개발 과정에서 다음과 같은 문제점들을 경험했어요:디자인 불일치 🎨: 개발자마다 다른 방식으로 구현해 UI 일관성이 떨어졌어요코드 중복 📝: 비슷한 기능을 가진 UI 요소마다 중복 코드가 발생했어요개발 시간 증가 ⏱️: 새로운 UI 요소 추가에 불필요하게 많은 시간이 소요됐어요유지보수 어려움 🔧: 디자인 변경 시 여러 곳.. 2025. 5. 10.
[iOS] 클린 아키텍처로 완성한 토스뱅크 클론 개발 여정 들어가며: 왜 토스뱅크 클론 프로젝트를 시작하게 되었나요? 안녕하세요! 오늘은 제가 개발한 토스뱅크 클론 프로젝트에 대한 이야기를 나눠볼게요.실무 프로젝트에서 적용했던 클린 아키텍처, MVVM 패턴, 의존성 주입, 모듈화 등의 디자인 패턴과 아키텍처 원칙을 좀 더 체계적으로 적용해보고 싶었어요.특히 복잡한 비즈니스 로직과 엄격한 사용자 경험을 요구하는 앱을 개발하면서 이러한 원칙들이 어떻게 실제 코드베이스에 적용될 수 있는지 탐구하고자 했죠. 토스뱅크는 복잡한 금융 기능을 직관적인 UI로 제공하는 대표적인 금융 앱으로,이를 클론 코딩하는 과정에서 다음과 같은 목표를 설정했어요.클린 아키텍처 원칙에 따른 계층 분리 구현기능별 모듈화를 통한 확장성과 유지보수성 확보의존성 주입을 통한 테스트 용이성 향상비동기.. 2025. 5. 5.
[iOS] 재사용 가능한 UI 아키텍처: 컴포넌트 기반 설계로 모달 시스템 구축하기 재사용 가능한 UI 아키텍처: 컴포넌트 기반 설계로 모달 시스템 구축하기 ✨들어가며: 컴포넌트 기반 UI 아키텍처가 필요했던 이유 🌉안녕하세요! 오늘은 컴포넌트 기반 아키텍처를 활용해 재사용 가능한 모달 시스템을 어떻게 구축했는지 이야기해볼게요.복잡한 교육 앱을 개발하면서 가장 큰 도전 중 하나는 다양한 화면에서 일관된 사용자 경험을 제공하는 것이었어요.특히 알림창, 정보 제공 다이얼로그 등 다양한 모달 UI 요소가 앱 전반에 걸쳐 필요했죠.어떤 문제들이 있었나요?기존에는 각 화면마다 필요한 UI 요소를 개별적으로 구현하다 보니 다음과 같은 문제점들이 발생했어요:디자인 불일치 🎨: 개발자마다 다른 방식으로 구현하여 UI 일관성이 떨어졌어요코드 중복 📝: 비슷한 기능의 UI 요소마다 중복 코드가 발생.. 2025. 5. 5.
[iOS] 모듈화된 토스트 메시지 시스템 개발 여정 iOS 앱의 사용자 경험을 높이는 모듈화된 토스트 메시지 시스템 개발 여정 ✨들어가며: 왜 토스트 메시지 시스템을 개발하게 되었나요? 🌉안녕하세요! 오늘은 제가 개발한 ToastMessageKit에 대한 이야기를 나눠볼게요.교육 앱을 개발하면서 사용자에게 다양한 피드백을 제공해야 하는 상황이 많았어요.레벨업, 미션 성공, 연속 정답, 에러 알림 등 여러 상황에서 일관된 디자인과 사용자 경험을 제공하면서도 개발 효율성을 높일 수 있는 방법이 필요했죠.어떤 문제점들이 있었나요?기존에는 토스트 메시지마다 개별적인 뷰와 로직을 구현하다 보니 다음과 같은 문제점이 발생했어요:코드 중복 📝: 비슷한 기능의 토스트 메시지마다 중복 코드를 작성해야 했어요디자인 불일치 🎨: 개발자마다 다른 방식으로 구현하여 UI .. 2025. 5. 5.
[iOS] UIFusionKit을 활용해 SwiftUI와 UIKit 통합하기 UIFusionKit을 활용해 SwiftUI와 UIKit 통합하기: 비동기 상태 관리의 재발견 ✨들어가며: 두 세계 사이의 간극 🌉안녕하세요! 오늘은 UIFusionKit이라는 프레임워크를 개발하게 된 이야기를 나눠보려고 합니다. iOS 개발 환경은 지난 몇 년간 큰 변화를 겪었어요.2019년 SwiftUI의 등장은 선언적 UI 패러다임이라는 새로운 바람을 불러왔고,2021년 Swift Concurrency(async/await)의 도입은 비동기 프로그래밍 방식을 근본적으로 변화시켰습니다.그런데 이런 변화가 오히려 개발자들에게 새로운 고민거리를 안겨주기도 했어요. 🤔 어떤 문제가 있었나요?많은 iOS 프로젝트가 UIKit으로 구축된 레거시 코드와 SwiftUI로 개발되는 새로운 코드가 공존하는 하이브.. 2025. 5. 5.
[Xcode Cloud] The bundle version must be higher than the previously uploaded version. 문제Xcode cloud로 테스트플라이트를 자동 배포하기 위해서 아카이빙을 진행하는 도중 아카이빙에서 문제가 발생했습니다. 원인은 번들 버전이 현재 업로드 되어있는 버전보다 낮기 때문이라고 하는데요 현재 업로드 되어있는 테스트플라이트 버전을 보면 다음과 같았습니다Bundle Version: 1.0.0Build Version: 61 그래서 Build Version을 63으로 올리고 git push를 진행해봤습니다 또 Fail…Running ci_post_clone.sh script failed (exited with code 1)이건 또 어떤 에러일까요… ci_post_clone.sh가 무엇인가 하면빌드되기 전에 Xcode Cloud 컴퓨터에서 Cocoa Pod을 설치해주기 위해미리 작성한 스크립트 파일입.. 2023. 12. 10.