[SwiftUI] Property Wrapper 총정리
·
🍎 Dev/SwiftUI
PropertyWrapper정의Swift 5.1 버전부터 도입된 문법정의된 property가 있을 때 해당 property를 감싸서 특별한 타입으로 만들어준다.프로퍼티를 저장하는 코드와 프로퍼티를 선언하는 코드를 관리하는 그 경계를 나눠주는 기능을 추가해주는 역할 수행.사용자가 별도의 코딩 없이 어노테이션만 선언해도 뷰에서 수정이나 읽기가 가능하도록 캡슐화를 대신해주는 역할사용이유프로퍼티의 접근을 특정 로직을 통해 제어할 수 있게 함. —> 중복 코드를 인스턴스로 빼내기 때문에 중복을 줄일 수 있음.특정 행동을 정의하는 타입을 만드는 것특히, 같은 get-set을 활용하는 반복되는 로직을 재사용 해야할 때 PropertyWrapper로 정의하고 해당 로직 자리에 사용하면 동일한 로직을 수행하기 때문에 중..
[SwiftUI] Frame
·
🍎 Dev/SwiftUI
SwiftUI로 뷰를 그리다보면 frame 때문에 애를 먹는 경험을 종종 하게 된다. 최근 회사에서 진행중인 프로젝트의 main 개편 작업을 진행하면서, 역시나 frame 때문에 헤맨 적이 있어서 이참에 해당 모디파이어를 정리했다.   Frame Modifier in SwiftUISwiftUI에서 frame은 뷰의 사이즈와 위치를 정하는데 사용이 된다. 더 풀어쓰자면, 해당 모디파이어를 사용해서 뷰의 너비와 높이, 최대/최소 크기, 그리고 정렬 방식과 위치를 정할 수 있다.  고정 frame매개변수func frame( width: CGFloat? = nil, height: CGFloat? = nil, alignment: Alignment = .center) -> some View → 고정 frame 모..
[SwiftUI] CustomPopUpView 애니메이션 효과 해결하기
·
🍎 Dev/구현
Topic: - 커스텀 팝업을 띄울 때 애니메이션 효과 자연스럽게 주기 ---> SwiftUI에서 fullScreen으로 화면전환 애니메이션 효과를 주기엔 한정적이었고, UIKit에서 작동 되는 걸 리팩토링 할 때 똑같이 구현해야 했기에 화면전환을 할 때 fullScreen을 쓰지 않는 방법을 찾아야했다. 접근: 1. ZStack을 활용해서 뷰 위에 뷰를 띄우자! 가 이번 이슈 해결접근의 전부다. *** 이 포스트를 위해 작성한 코드들은 화면전환을 중점으로 짠 코드이기에 UI는 고려하지 않았다. (즉, UI 레이아웃 잡은 코드는 쪼금... 더럽다.) 1-1. 왜 ZStack을 쓰고자 했냐 - 하면, ZStack에 대한 정의가 필요하다. A view that overlays its subviews, ali..
🌱 새싹 영등포 iOS 앱개발자 데뷔과정 3기 후기
·
SeSAC iOS 3기
안녕하세요, Callie입니다. 미루고 미뤘던 새싹 영등포 iOS 앱개발자 데뷔과정 3기 후기를 남겨 보려고 합니다! 제가 후기를 미루는 동안 도봉 캠퍼스의 4기도 수료하고, 영등포 캠퍼스의 5기 수강이 시작되었다고 하더라구요. 앞으로 몇 번의 과정이 더 열릴 지 모르겠지만, 지난 6개월 간의 교육기간이 현재 iOS 개발자로 현업에서 일하게 된 제게 소중한 경험이었던 만큼 그런 분들이 더 많아지길 바라는 마음으로 작성하게 되었습니다. iOS의 시작을 해당 과정으로 했다는 게 얼마나 큰 행운이었는지 현업에 종사하게 된 이후 매일매일 깨닫고 있는 중입니다...ㅎㅎ            ✔︎ ME일단, 저는 비전공자입니다. '비전공자, 너두 할수있어!'에서 너를 맡고 있어요. 살면서 코딩은 해 본 적도 없었고,..
[SwiftUI] 스유로 섹션 접었다폈다 구현하기
·
🍎 Dev/구현
요즘 회사에서 스유로 리팩토링하는 작업을 담당하고 있는데, 섹션 폴딩을 구현해야할 일이 생겼었다. 찾아보면 list를 활용해서 만드는 예시 위주만 나와서 내가 구현하고 하는 것과 맞지 않았다. 내가 구현하고자 한 폴딩 부분은 디자인 가이드상 컬렉션뷰로 구현해야 나오는 뷰였기 때문에 GirdItem을 활용해서 커스텀으로 섹션을 만들어 쓰기로 했다. 마침 참고하기 좋은 해외 포스트도 발견해서 참조했다. 아직 스유에서 사용하는 propertyWrapper가 어색하다면 아래 포스팅을 참고하는 걸 추천! --- propertyWrapper 글 작업 중             1. 섹션 상태를 섹션 이름으로 구별해서 folding 기능을 토글처럼 값을 관찰하는 ObservableObject를 만든다. import S..
[백준/Swift] 21955번: Split
·
알고리즘/백준
내 풀이:let numbers = readLine()!let point = numbers.count / 2var first = 0var second = 0if numbers.count % 2 == 0 { first += Int(numbers.prefix(point))! second += Int(numbers.suffix(point))!}print(first)print(second)  풀이: prefix와 suffix의 이해가 중요한 문제였다. 두 가지 모두 컬렉션에서 지정한 숫자만큼 문자열이나 숫자를 슬라이싱 해주는 역할을 한다. Prefix컬렉션의 원소를  지정한 숫자만큼 컬렉션내 앞에서부터 count만큼 반환한다.// 사용collection.prefix(n)// 예제let kia = "Ki..