no image
CollectionView란?
CollectionView의 등장 처음 시작은 iOS 6에서 시작 되었고 기존 collectionview에서 고려할것 3가지가 있습니다. 1. 어떤 데이터를 컬렉션뷰에 보여줄것인가? => Datasource 2. 어디에 어떤 레이아웃에 보여줄것인가? => UIcollectionViewLayout 을 상속받은 객체가 UIcollectionViewFlowLayout 3. 보여지는것은 어떻게 렌더링되나? => cell / ReusableView Data Layout Presentation ios 6 CollectionViewData Source collectionViewLayout cell /ReusableView ios 13 Diffable Data Source Compositional Layout cell..
2023.12.15
no image
FrameWork 만들고 적용하기
1. FrameWrok를 만들자 xcode -> File -> New -> Project -> Framework 선택 2. 프레임워크 사용할 최소타겟 및 프로젝트 타겟 설정 Project -> jayuFrameWork -> ios target Targets -> minimum DeployMents 3. UI 관련 test용의 jayuView를 생성 이때 접근제어 public 혹은 open 을 활용하여 사용하여야 내가 적용할 프로젝트에서 접근이 가능하다. 4. jayuFrameWork로 schema해두고 build해서 succeded 하자. 5.내가 적용할 프로젝트(jayuTest)로 이동해서 add Files to "jayuTest" 클릭 내가 아까만든 jayuFrameWork.xcodeproj 를 가져..
2023.12.15
대표적인 Property wrapper
1. @State, @Binding - @State 뷰자체가 가져야할 상태 프로퍼티로 원천자료이다. 어떤 데이터에대한 영속적인 상태를 저장,관찰하는 역할을 수행한다 -> 이 데이터는 변할수있고 뷰에 의존성을 갖고있어 뷰도 같이 바뀐다. 라고 해석. - @Binding 상위뷰의 상태를 하위뷰에서 사용하고 수정할수있게 해주는 파생자료이다. 다음 예시를보자 struct ContentView: View { @State private var isFavorite = true @State private var count = 0 var body: some View { VStack(spacing: 30) { Toggle(isOn: $isFavorite) { Text("\(isFavprote)") } Stepper("\..
2023.02.18
no image
SwiftUI 의 데이터의 흐름
데이터 흐름의 2가지 원칙 1. 데이터 의존성 뷰와 데이터를 동기화하는 코드가 항상 작성이 되어야한다. 하지만 SwiftUI에서는 이런문제를 해결하기위해 뷰가 어떤데이터에 의존하는지 알려주면 나머지는 알아서 처리하도록 설계되어있다. 아래그림은 WWDC SwiftUI 자료로 이같은 플로우로 뷰가 갱신이된다. . 예를들어 토글로 on,off로 바뀌면 버튼글자색을 바꾸는 기능이면 body 프로퍼티가 호출되지만 모든것을 다시그리는것이 아닌 뷰계층구조를 내려가면서 @State를 소유한 뷰를 비교하여 유효성검사를통해 변경된부분만 렌더링하는 과정을 거친다. 2. 단일 원천 자료( Single Source of Truth) SwiftUI는 데이터를 크게 원천자료, 파생자료 구분합니다. 원천자료: 그자체가 본질적인 데이..
2023.02.18
no image
TDD(Test-Driven-Development) 란?
TDD(Test-Driven-Development)란? 테스트 주도 개발이라는 의미로 기존 개발 프로세스 : 설계 -> 코드 -> 테스트 로 되어있는데 TDD 프로세스: 설계 -> 테스트 -> 개발 처럼 테스트코드를 먼저 작성하여 개발하는 방식을 말합니다. TDD 왜쓰나? 좋은 객체지향프로그래밍은 결합도가 낮고 응집도가 높아야한다. 라고 하지만 현실적으로 이거에맞게 설계하기에 어렵다. 시간이 흐를수록 설계 퀄리티가 낮아지고 유지보수가 어렵고 비용이높아진다 . 이러한 문제를 피하기위해 설계품질을 검증하는 과정을 먼저 거쳐합니다. TDD방식을 사용하면 테스트케이스 작성시간이 늘어나지만 높은 품질의 코드가 높아질수있습니다. TDD 방법 먼저 실패할 테스트를 작성한다. -> 테스트를 빠르게 통과할 코드를 구현 ..
2023.02.04
no image
CI/CD 란?
CI/CD 란? 어플리케이션 개발 단계의 자동화를 통해 짧은 주기로 고객에게 어플리케이션 제공 위 그림과같이 CI/CD 파이프라인으로 개발 -> 빌드 -> 테스트 -> 배포 과정으로 구성이되어있다. 그러면 CI 란 무엇일까? continue integration 의 약자로 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미합니다. 쉽게말해 코드, 빌드, 테스트를 자동화하는 개념으로 예시로는 우리가 휴대폰 정규식검사나 이메일 유효성검사같은 것들에서 테스트까지 거쳐 문제가없으면 배포단계로 올라가는것을 말한다. 그러면 CD란 무엇일까? continue delivery 또는 continue Deployment를 의미하는데 두용어는 상호교환하여 사용된다한다. 쉽게말해 CI 가 만들어지면 문제없이 지속적으로 서..
2023.02.04