최신글

more

[SwiftUI] ViewThatFits: 화면 크기에 맞는 View 선택하기

🔖 ViewThatFits. SwiftUI에서 화면 크기에 맞춰 사용 가능한 View를 선택해서 보여주는 것이다.가볍게 글 하나 쓰고 싶어 시작한다.내가 SwiftUI를 사용하며 꽤 많이 안다고 생각했는데, 역시나 알아도 알아도 새로운 내용이 나타난다.오늘 이야기할 ViewThatFits가 그 예 중에 하나다.회사에서 같이 개발하는 개발자분이 이거 써보면 어때요?라고 해서 알게 되었는데,그동안 이걸 모르고 직접 계산하거나 생각한 코드들이 떠오른다.시작해 보자. 📌 ViewThatFits화면을 만들다 보면 사용자의 기기 크기에 맞춰 View를 보여야 할 때가 있다.좁은 영역에서는 A안, 넓은 영역에서는 B안. 이런 거?그럴 때 활용할 수 있는 것이 ViewThatFits다.public init( ..

SwiftUI 2026.01.02 1

2025년 15-18주차 회고 (04.07. - 05.04.)

🍀 15-18주차 회고너무 오랜만에 회고를 쓴다. 벌써 6월 8일이니.. 두 달 전 기억을 되살려 회고를 써본다. 도저히 주간 회고를 쓸 자신은 없어서 월간 회고 같은 4주간의 회고를 한 번에 쓰기로 했다. 글을 어떻게 썼는지 기억도 안 난다. 하하. 굳이 4월 회고와 5월 회고를 나눠서 하는 이유를 찾자면.. 4월과 5월이 나에게 너무 다르게 흘러갔기 때문이랄까. 이제 그 이야기를 풀어 보려고 한다. 고민은.. 이 공개된 장소에 얼마나 솔직해져도 되는지 모르겠다는 점.. 🌸 15주차 (04.07. - 04.13.)벚꽃이 만개했던 4월 첫 주. 이때 TIL을 써둔 것들이 있어서 돌아봤는데, 아주 바빴는지 알고리즘 이야기만 써두었더라. 달력을 보니 이력서도 제출했고, 벚꽃 구경도 잘 다녀왔던 것 같다...

Weekly 2025.06.08 8

[TIL] 99클럽 코테 스터디 20일차 TIL + DFS

🍀 오늘의 회고알고리즘 스터디를 하면서 쓰기 시작한 TIL 마지막 날이다. 흠 사실 TIL을 이어서 작성할지는 고민이다. 주간 회고를 이어서 쓰고 싶은 마음이 커서 TIL은 정말 기록하고 싶은 하루 정도 작성하지 않을까 생각한다. 그리고 매일 오늘의 문제가 추천되지 않으니, 어떻게 꾸준히 문제를 풀 수 있을까 고민했다. 그런데 일단 한 달 문제 풀이를 하면서, 유형별로 바로 풀이 방법이 떠올리는 게 힘들었다. 이제 유형별로 학습하고 문제를 풀어보려고 한다. 아! 강의도 하나 들어보려고 한다. ✅ 오늘의 TODO- 알고리즘 - 오늘의 문제 ✅ - Swift 프로그래머스 코딩기초트레이닝 3, 4, 5일 차 ✅- Task 정리 ✅ 🌼 오늘의 문제 - 백준 17265. 나의 인생에는 수학과 함께문제 이름..

Daily | Today I Leared 2025.04.27 0

iOS

more

[SwiftUI] ViewThatFits: 화면 크기에 맞는 View 선택하기

🔖 ViewThatFits. SwiftUI에서 화면 크기에 맞춰 사용 가능한 View를 선택해서 보여주는 것이다.가볍게 글 하나 쓰고 싶어 시작한다.내가 SwiftUI를 사용하며 꽤 많이 안다고 생각했는데, 역시나 알아도 알아도 새로운 내용이 나타난다.오늘 이야기할 ViewThatFits가 그 예 중에 하나다.회사에서 같이 개발하는 개발자분이 이거 써보면 어때요?라고 해서 알게 되었는데,그동안 이걸 모르고 직접 계산하거나 생각한 코드들이 떠오른다.시작해 보자. 📌 ViewThatFits화면을 만들다 보면 사용자의 기기 크기에 맞춰 View를 보여야 할 때가 있다.좁은 영역에서는 A안, 넓은 영역에서는 B안. 이런 거?그럴 때 활용할 수 있는 것이 ViewThatFits다.public init( ..

SwiftUI 2026.01.02 1

[iOS] Intent의 의도는 무엇일까? MVI 패턴 도입기

🔖 MVI 도입기 호랑이티비ㄴ스 팀에서 MVI패턴을 채택해 프로젝트를 설계하기로 했다.가장 큰 이유는 학습에 있었고,양방향 아키텍처인 MVC, MVVM 패턴을 경험했던 팀원들이 있어서, 단방향으로 가보자고 했다.그리고 추가로 이번 프로젝트가 규모가 매우 작기 때문에,다른 외부 라이브러리를 사용하지 않고 우리가 직접 구성해 보자는 의견이 모였다. 그런데 MVI 패턴.. 나는 사실 작년에 이해하다가 포기한 패턴이다.단방향 흐름과 Intent의 의도를 파악하지 못했던 것이 가장 큰 이유이다.하지만 이번에 설계해보고, 조금이나마 이해를 해보기로 했다! 🔖 iOS에서 MVI는 어떻게 적용되고 있는가..MVI를 검색하면 Android와 관련된 글이 아주 많다.사실 안드로이드 개발 경험이 없어서 잘 모르지만,개발..

📕 iOS 2025.03.06 1

[SwiftUI] Line Height 설정하기

SwiftUI로 개발하다 보면 불편한 점.. Text의 Line Height를 바로 설정할 수 없다는 점이다. 커스텀 된 디자인에서는 분명 디자이너가 글자의 높이까지 고려해서 디자인을 했을 텐데, 종종 그냥 넘어간 경우도 있었다. (하하 비밀..) 하지만 위젯 개발을 하면서 폰트의 높이가 중요하게 작용하고 있어서, SwiftUI로 Font 높이 설정하는 방법을 찾아봤다. 오늘의 결론.struct ContentView: View { private let height = UIFont(name: "SpoqaHanSansNeo-Bold", size: 40)?.lineHeight ?? 50 var body: some View { VStack { Text("Hell..

SwiftUI 2025.02.06 0

Flutter

more

[Flutter] SystemUiOverlayStyle_상단 상태바 색상 변경

앱의 배경 색상에 따라 상단바에 있는 시각, 배터리, 와이파이를 나타내는 아이콘의 색상을 바꿔줘야 할 때!! SystemOverlayStyle을 사용해주면 된다. 아래처럼 build 함수 내에서 선언해주면되고, @override Widget build(BuildContext context) { SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light); return Scaffold( body: Container( ~~ ), ); } 두 가지 옵션을 선택할 수 있다. SystemUiOverlayStyle.light 는 하얀색 SystemUiOverlayStyle.dark 는 검은색으로 나타난다.

Flutter 2023.01.27 0

Flutter for SwiftUI Devs - Drawing on the Screen

In SwiftUI Flutter 문서에는 이렇게 한 줄로 설명한다. SwiftUI에서 스크린에 선이나 모양을 그리기 위해 CoreGraphics를 사용한다. CoreGraphics는 무엇일까? CoreGraphics는 Framework인데, Quartz technology의 power를 활용하여 lightweight 2D rendering을 높은 정확도의 output으로 수행한다. path-based drawing, antialiased rendering, gradients, images, color management, PDF documents, 그 이상을 다룬다. Apple Developer Documentation developer.apple.com In Flutter Flutter는 Canvas..

Flutter for SwiftUI - Managing state

In SwifUI SwiftUI에서, view의 내부에서 state를 관리하기 위해 @State라는 property wrapper를 사용한다. struct ContentView: View { @State private var counter = 0; var body: some View { VStack{ Button("+") { counter+=1 } Text(String(counter)) } }} 또한, 더 복잡한 상태 관리를 위해 여러 옵션들이 있는데, 예를 들어, ObservableObject라는 protocol이 있다. In Flutter Flutter에서 local state를 관리하기 위해 StatefulWidget을 사용한다. 다음 두 종류의 class로 stateful widget을 구현한다...