일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- swift
- 상단 탭바
- DevelopmentRegion
- ViewBuilder
- notifychanged
- UIViewControllerTransitioningDelegate
- 기존 앱
- transformation.map
- url 관찰
- pod install
- Tuist
- UIPresentationController
- detect url
- url 추적
- GeometryReader
- Swift Package Manager
- development language
- 개발자 면접
- scrolling tab
- SwiftUI
- swift #swift keychain #keychain 사용법
- oberve url
- Side Menu
- 스크롤 탭
- base64 변환
- List
- ios
- Android
- convert base64
- DataBinding
- Today
- Total
목록분류 전체보기 (170)
버그 잡이
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..
아래와 같은 메뉴를 한번 만들어 보겠습니다. 햄버거 메뉴 또는 사이드 메뉴라고도 하죠. 0. SideMenu 라이브러리 먼저 SideMenu라는 라이브러리가 있다는 것을 공유드리겠습니다. * SideMenu 깃헙 주소: https://github.com/jonkykong/SideMenu 굳이 직접 만들 필요는 없습니다. 잘 가져다 쓰는게 더 좋을 수도 있죠. 하지만 저는 직접 만들어 보고 싶었습니다. 제가 시도한 2가지 방법을 공유드립니다. 정확히는 첫번째 방법에서 더 발전된 방법이 두번째 방법입니다. 물론 첫번째 방법과 두번째 방법은 개념상 이어지는 부분이 있기 때문에 첫번째 방법도 한번 훑어보시고 두번째 방법을 보시는 것을 추천드립니다. 1. UIViewControllerTransitioningDel..
Static Library에 대한 통념 Static Library는 Dynamic Library보다 앱 용량을 많이 차지한다는 것이 일반적인 생각입니다. 왜냐하면 iOS기준 Static Library는 Library 파일을 복사해서 앱 excutable 파일에 포함시키기고 반면 Dynamic Library는 라이브러리에 대한 참조만 앱의 excutable 파일에 포함시키기 때문입니다. Dynamic -> Static으로 바꾼 결과 = Launch time 개선, App Size 감소(?) 개발중인 iOS 앱의 서드파티 라이브러리 포함 방식을 바꿀 기회가 생겼습니다. 기존은 Cocoapods을 사용중이고 Dynamic 방식이었습니다. 그런데 앱 런치 타임이 느려진 이슈가 있어서 이를 해결하는 과정에서 Dy..