일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- pod install
- transformation.map
- UIViewControllerTransitioningDelegate
- oberve url
- List
- 상단 탭바
- 기존 앱
- Side Menu
- ios
- scrolling tab
- GeometryReader
- UIPresentationController
- convert base64
- development language
- swift #swift keychain #keychain 사용법
- Swift Package Manager
- swift
- url 추적
- 개발자 면접
- 스크롤 탭
- DevelopmentRegion
- SwiftUI
- url 관찰
- Android
- notifychanged
- DataBinding
- base64 변환
- ViewBuilder
- detect url
- Tuist
- Today
- Total
목록분류 전체보기 (172)
버그 잡이

이번에 현업 레거시 프로젝트에 Tuist를 적용해보았는데요. 그 삽질기를 남겨보겠습니다. (아직 Tuist에 대한 이해가 많이 부족하니 틀린 부분이 있다면 댓글로 남겨주시면 감사하겠습니다!) Tuist 적용법 1. Cocoapod 제거 먼저 기존 프로젝트는 Cocoapod으로 라이브러리를 연동했었습니다. Tuist를 쓰면서 SPM을 활용할 것이기 때문에 프로젝트 내에서 CocoaPod 제거하는 작업을 먼저 진행해줍니다. pod deintegrate pod cache clean --all + Podfile, .workspace 파일 지우기 2. Tuist 설치 및 Project.swift 파일 생성 아래 스크립트로 tuist를 설치해주고 curl -Ls https://install.tuist.io | ba..

TCA 란? - '일관적이고 이해할 수 있는 방법으로 앱을 개발할 수 있게 도와주는 라이브러리' - composition, testing, ergonomics(인체 공학)를 염두해두고 만들었다고 합니다. * 구조 1. 사용자의 동작은 View를 통해 Action의 형태로 변환됩니다. 2. Action은 Reducer에서 처리되어 State를 바꿉니다. 3. State를 구독하고 있는 View는 State의 변화에 따라 최신화됩니다. 4. Environment는 외부 의존성이라고 생각하면 됩니다. Environment를 Effect로 변환해서 Action을 실행시킵니다. * Effect - Composable 외부에서 일어난 일을 가져와서 상태를 변경시킬때 사용 - 외부 접근 = API , Disk, Ti..

https://www.youtube.com/watch?v=80n0zv7r9Lc 위 영상을 보고 학습한 내용입니다. swiftUI로 위와 같은 화면을 만들어 보겠습니다. 위 화면을 만들기 위해서 크게 두 개의 View가 생성될 예정입니다. 1. OffsetPageTabView - UIScrollView를 활용해서 content를 담을 수 있는 View - 탭바 아래 스크롤 되는 conent 화면 2. PagerTabView - TabView와 OffSetPageTabView를 가지고 있는 View 하나씩 차근차근 만들어보겠습니다. OffsetPageTabView 1. content를 통해서 UIScrollView 안에 넣어줄 View를 받습니다. 2. MakeUIView로 UIScrollView를 만들고 ..

@State SwiftUI에 의해 관리되는 값을 읽고 쓰는 Property Wrapper 타입 "Property Wrapper " - 프로퍼티를 감싸 특별한 타입으로 만들어주는 친구. - 감싸는 행위를 통해서 코드 추가 없이 프로퍼티에 특정 기능을 추가할 수 있다. "SwiftUI에 의해 관리된다" - 변수에 변화가 생겼을때 해당 value의 appearance를 무효화 하고 다시 body 값을 계산 즉, 변수에 변화가 생겼을때, 이를 화면에 바로 반영할 수 있게 도와주는 Property Wrapper가 @State입니다. @State 사용법 아래는 공식 문서에 있는 예제입니다. isPlaying값에 따라 Button의 title이 달라지는 것을 볼 수 있습니다. struct PlayButton: Vie..

오늘은 Tuist에서 Asset을 한번 추가해보고 Tuist에서 자동으로 에셋 카탈로그를 만들어주는 기능이 있는데 이에 대해서 알아보겠습니다. Asset 추가하기 Asset을 추가하는 것은 간단합니다. Xcode에서 하던 것처럼 Asset.xcasset 파일을 추가하고 이 안에 image, color 등의 리소스를 추가하면 됩니다. 그런데 Tuist는 여기서 한발 더 나아가 ResourceSynthesizer 라는 유용한 기능을 제공해줍니다. ResourceSynthesizer Tuist는 프로젝트를 생성할때 Resources/ 폴더 안에 image, color 등 리소스에 대한 에셋 카탈로그 즉, enum 클래스를 제공해줍니다. Asset에 아래와 같이 이미지 리소스가 있다면 아래와 같은 enum 클래..
지난 시간에 tuist로 프로젝트를 생성하고 모듈을 추가해봤습니다. https://jinsangjin.tistory.com/169 Tuist 삽질기 (1) - tuist란 무엇이고 어떻게 쓰는건가? Tuist Tuist는 Xcode 프로젝트를 관리할 수 있는 툴입니다. 기존에 Xcode에서 target, SPM, info, buid-setting 을 관리하던 것을 tuist라는 툴을 활용해서 할 수 있는 것입니다. Tuist의 장점 1. 모듈화를 할 수 있 jinsangjin.tistory.com 오늘은 기존 프로젝트에 tuist를 적용해보겠습니다. 1. 루트 경로에 Project.swift 파일 생성 터미널로 루트 경로에 접근하고 Project.swift 파일을 생성해보겠습니다. nano Project..

Tuist Tuist는 Xcode 프로젝트를 관리할 수 있는 툴입니다. 기존에 Xcode에서 target, SPM, info, buid-setting 을 관리하던 것을 tuist라는 툴을 활용해서 할 수 있는 것입니다. Tuist의 장점 1. 모듈화를 할 수 있다. - 모듈화를 하면 모듈별 의존성이 낮아지고 재활용성이 높아집니다. -> 유지보수 하기 좋은 코드, 구조가 됨 -> 빌드 속도 향상 2. pbxproj 충돌을 줄일 수 있다. - 협업하다보면 많은 변경 사항을 merge 하는 과정에서 .pbxproj파일 충돌로 고생하는 경우가 종종있는데 tuist를 쓰면 이를 줄일 수 있다고 합니다. Tuist 로 프로젝트 생성해보기 1. Tuist 설치 curl -Ls https://install.tuist...

SwiftLint란? Lint는 소스코드를 분석해주는 툴로 코드 스타일이나 프로그램의 오류가 발생할 수 있는 부분을 찾는 용도로 활용됩니다. 아래와 같이 강제 언랩핑이나 띄어쓰기 규칙 등을 체크해줄 수 있습니다. 이런 SwiftLint 점검을 Xcode 단에서 할수도 있지만 저는 Xcode에 위처럼 경고 문구가 많이 나오는 것을 원치 않기 때문에 PR을 올렸을때 Lint를 체크하는 방식으로 SwiftLint를 활용하려고 합니다. Github Action 을 활용하면 이를 가능하게 할 수 있습니다. Github Action 먼저 "github action swiftlint"로 검색합니다. 그 결과 아래 링크를 쉽게 찾을 수 있습니다. https://github.com/norio-nomura/action-s..