Clean Architecture
·
iOS 개발/Architecture
✍️ 오늘의 내용오늘은 상반기 프로젝트를 진행하면서 적용해본 Clean Architecture에 대해서 작성해보았습니다. 개발자라면 한 번쯤은 읽어봤을 그 책을, 저도 공부해보고 실제 프로젝트에 적용해보고 싶다는 생각이 들었습니다. 그래서 이번 프로젝트에서 처음으로 시도해보았고, 운 좋게도 함께 개발하시는 분이 초고수셔서 많은 도움을 받고 있습니다. 😊 제가 정답을 말하는 건 아니지만, 공부한 내용을 바탕으로 정리해보았습니다.참고용으로 가볍게 봐주시면 감사하겠습니다!1. CleanArchitecture이란?Clean Architecture는 로버트 C. 마틴(Robert C. Martin)이 고안한 소프트웨어 아키텍처입니다.그는 미국의 소프트웨어 엔지니어이자 에자일(Agile) 창시자 중 한 명,그리고..
🚌 막차, 놓치지 말자! 막차 알림 앱 앗차(Atcha) 체험기
·
티스토리
막차, 다들 한 번쯤은 놓쳐보셨죠?저는 술자리가 있거나, 오랜만에 친구들을 만날 때“오늘은 몇 시까지 버스 있더라?”를 머릿속에서 계속 계산하면서 시간을 보냅니다. 울산에서 살고 있는 저는 오랜만에 서울에 올라가면 버스나 지하철에 대한 정보가 익숙하지 않아서 항상 폰을 켜고 확인해야 했습니다.막차를 놓치면 택시비 폭탄을 맞거나, 한참을 기다려야 하는 상황이 생기곤 하죠 솔직히 말해서, 즐겁게 있다가도 막차 시간을 체크하는 순간부터는 머릿속에 시계 알람이 계속 울립니다.👉 “지금 나가야 집에 들어갈 수 있나?”👉 “이 버스를 타면 환승은 어떻게 하지?”👉 “택시 타면 돈이 얼마 나오지…?”이런 고민 때문에 마음이 조급해지고, 모임에 온전히 집중하기 어려웠습니다.그래서 찾은 해결책, 앗차(Atcha)..
2024 하반기 회고록
·
회고록
✍️ 오늘의 내용오늘은 드디어 2024년 하반기 회고록을 작성해보았습니다.최근에는 홀라에서 찾은 프로젝트에 집중하느라 다른 일들에는 다소 신경을 쓰지 못했던 것 같네요.2025년 상반기 회고록 더 자세히 작성해볼 예정이니, 그때도 한 번 들러주시면 감사하겠습니다! 작년 하반기를 돌아보면, 새로운 도전들을 시작하며 수많은 노력을 기울였던 시간이 떠오릅니다. 또한 마지막 학기인 만큼 성과 있는 결과물을 만들고자 하는 욕심과, 취업 준비를 위해 무엇을 해야 할지 고민했던 시간들이었습니다. 재밌게 읽어주시면 감사하겠습니다.구름톤 유니브 3기 지원 및 활동울산대학교에는 전국 규모의 개발 동아리로 UMC(University MakeUs Challenge) 하나만이 활동 중이었습니다.저는 UMC에서 4기에는 안드로..
[SwiftUI] Timer 기능 리뷰 (Feat. 나만의 Todo)
·
iOS 개발/SwiftUI
오늘은 제가 직접 만든 Todo 앱에 포함된 Timer 기능을 소개하고 리뷰해보려고 해요.이번 포스팅에서는 총 세 가지 기능을 중심으로 살펴볼게요.⏱ Timer 설정 및 시작❌ Timer 취소⏸ Timer 일시정지 및 재개하나씩 자세히 확인해볼게요!⏱ Timer 설정 및 시작1. 시간 설정: Picker로 시/분/초 선택Picker("시", selection: $selectedHour) { ForEach(0..Picker를 사용해 시, 분, 초를 각각 선택할 수 있게 구성했습니다.선택된 값은 @Binding으로 상위 뷰(TimerView)와 연결되어 공유됩니다.@Binding var selectedHour: Int@Binding var selectedMinute: Int@Binding var sel..
[SwiftUI] Recording 기능 리뷰 (Feat. 나만의 Todo)
·
카테고리 없음
오늘은 (SwiftUI 버전) 나만의 Todo 앱의 Recording(녹음) 기능을 리뷰하려고 합니다. 이번 기능은 전체적인 흐름이 UIKit에서 구현하던 것과 거의 비슷한 구조라서,이번 글에서는 녹음을 담당하는 코드에 대해서 자세히 알아 볼려고 합니다. UIKit 구현이 궁금하신 분들은 아래 글을 참고하시면 될 것 같아요!👉 [UIKit] 녹음 기능 리뷰 (Feat. 나만의 Todo) Riu 개발노트안녕하세요 iOS 개발자를 꿈꾸는 Riu입니다. Github: woolndriu-dev.tistory.comRecordingManager역할녹음/재생/초기화 전반을 담당하는 Manager 클래스SwiftUI에서 사용할 수 있도록 ObservableObject 채택AVFoundation 사용 (AVAudio..
[SwiftUI] Memo 기능 리뷰 (Feat. 나만의 Todo)
·
iOS 개발/SwiftUI
오늘은 제가 만들고 있는 나만의 Todo앱의 Memo 기능에 대해 리뷰해보려고 합니다.이번에 구현한 Memo 기능은 메모 작성하기와 메모 상세 보기를 중심으로 살펴볼 예정이에요. 지난번 포스팅(Todo 기능 구현 리뷰)에서도 소개했듯이, 메모 불러오기와 메모 삭제 기능은 Todo 기능과 거의 동일한 구조로 구성되어 있어서 이번 포스팅에서는 따로 다루지 않고 위 링크를 참고해주시면 도움이 될 것 같아요. 이번 포스팅에서는 메모 작성하기 기능과 상세 화면 구성에서 어떤 점을 고려해서 구현했는지,SwiftUI를 활용하면서 어떻게 더 간결하고 유연하게 UI 흐름을 만들었는지 중심으로 리뷰해보겠습니다. 그럼 하나씩 살펴볼게요! 🚀✏️ 메모 작성하기사용자가 메모 제목과 내용을 입력하면 Firebase Firest..
[SwiftUI] Todo 기능 리뷰 (Feat. 나만의 Todo)
·
iOS 개발/SwiftUI
오늘 블로그에서는 제가 만들고 있는 Todo 앱의 핵심 기능 중 하나인 Todo 기능을 중심으로 구현 내용을리뷰해보려고 합니다. 지난번에는 UIKit을 사용해 Todo 기능을 구현했었는데요, 이번에는 SwiftUI로 다시 구현해보았습니다.이번에 구현한 기능은 다음과 같습니다:📥 Todo 불러오기✏️ Todo 생성🗑 Todo 삭제☑️ Todo 체크 (완료 여부 토글)단순히 기능만 구현하고 끝나는 것이 아니라, 실제로 앱을 사용해보면서 사용성에 불편한 점이 있는지 확인하고 계속해서 개선해나가는 방식으로 프로젝트를 이어가고 있습니다. 그럼 이제 하나씩 상세히 살펴보겠습니다!📥 Todo 불러오기이 기능은 Firebase Firestore에 저장된 데이터를 불러와 사용자에게 할 일을 보여주는 구조로 되어 있..
[SwiftUI] @Published 썼는데도 View가 안 바뀐다?
·
iOS 개발/SwiftUI
Firebase에서 데이터를 잘 받아왔는데도, SwiftUI View에서는 아무것도 나타나지 않는 상황. 분명히 @Published를 썼는데도 화면에는 변화가 없었다. 왜 이런 문제가 생겼을까?이 글에서는 내가 직접 겪은 오류 상황과, SwiftUI의 상태 바인딩 원리, 그리고 UIKit과의 결정적인 차이에 대해 정리해보겠습니다.❌ 문제 상황현재 ViewModel 구조는 UIKit 개발 경험을 바탕으로 구성을 하였습니다.final class State { struct ViewModels { var todoViewModels: [Todo] = [] } @Published var viewModels = ViewModels()}final class TodoMainViewModel:..
[SwiftUI] Splash & Onboarding 화면 구현 리뷰 (Feat. 나만의 Todo)
·
iOS 개발/SwiftUI
이번 글에서는 제가 직접 만든 To-Do 앱의 Splash 화면과 Onboarding 화면을 소개해보려고 합니다.제가 구성한 흐름은 다음과 같습니다:🌱 앱의 진입 흐름 (RootView) – 앱의 시작 구조와 화면 전환 관리🌊 SplashView – 심플하지만 강렬한 로딩 화면📖 OnboardingTabView – 앱의 주요 기능을 소개하는 페이지 뷰이 순서대로 각 화면의 구성과 구현 방식을 차근차근 리뷰해보겠습니다. 그럼 지금부터 함께 살펴보시죠! 🚀🌱 앱의 진입 흐름(RootView)앱의 진짜 시작점은 @main 속성을 가진 N_VoiceMemoApp_SwiftUIApp 구조체입니다.SwiftUI 앱의 생명주기에서 가장 처음 실행되는 이 지점에서는 RootView()를 호출하여UI 흐름을 시..
[SwiftUI] Figma 비율 그대로! 개발하는 Constants 구조체 만들기
·
iOS 개발/SwiftUI
📌 들어가며Figma로 디자인한 화면 속 이미지 크기를 그대로 구현하고 싶은데,기기마다 해상도가 달라서 비율이 맞지 않아 고민해본 적 있으신가요? 저는 프로젝트를 하면서 디자이너분께 “피그마대로 정확하게 나왔으면 좋겠어요!” 라는 요청을 정말 많이 받아왔습니다. 하지만 실제 iPhone 기기마다 화면 크기와 Safe Area가 다르기 때문에,디자인대로 보이도록 구현하는 일은 생각보다 까다로운 작업이었죠. Figma 기준으로 많이 사용하는 사이즈인 가로 393pt, 세로 852pt 화면을 기준으로,모든 iPhone에서 디자인 비율을 자연스럽게 유지하는 방법을 찾아서 적용을 해본 결과 아래의 방법이 제일 오차가 적었습니다.🔧 Constants 코드 설명전체코드import Foundationimport U..