일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- development language
- convert base64
- SwiftUI
- swift
- notifychanged
- base64 변환
- transformation.map
- Android
- detect url
- 기존 앱
- ios
- UIPresentationController
- ViewBuilder
- List
- url 관찰
- UIViewControllerTransitioningDelegate
- oberve url
- url 추적
- pod install
- DevelopmentRegion
- 스크롤 탭
- 상단 탭바
- Side Menu
- DataBinding
- Swift Package Manager
- Tuist
- swift #swift keychain #keychain 사용법
- GeometryReader
- scrolling tab
- 개발자 면접
- Today
- Total
목록IOS (30)
버그 잡이
지난번 포스팅: https://jinsangjin.tistory.com/186 Swift Pakcage Manager로 프로젝트 기능 모듈화 하기왜 SPM으로 모듈화를 하는가?- 모듈화를 해보고 싶었습니다.- Tuist를 활용해서 하는 방법도 있었지만 Tuist까지 같이 도입하기에는 시간이 부족했고- Tuist를 도입하기 전에 SPM으로 간단하게(?) 레거jinsangjin.tistory.com 지난번 포스팅에서 Swift Package Manager로 기능을 모듈화 하고 데모 앱까지 만드는 방법을 알아봤습니다.오늘은 모듈화 과정에서 삽질했던 부분을 모아서 적어보겠습니다. 모듈을 어떻게 import 할것인가?모듈들은 프로젝트 루트 -> Modules 폴더 안에 위치했습니다.처음에는 모듈을 project..
왜 SPM으로 모듈화를 하는가?- 모듈화를 해보고 싶었습니다.- Tuist를 활용해서 하는 방법도 있었지만 Tuist까지 같이 도입하기에는 시간이 부족했고- Tuist를 도입하기 전에 SPM으로 간단하게(?) 레거시 프로젝트에서 모듈화가 가능할지 테스트 해보고 싶었습니다.- 그리고 SPM으로도 충분하지 않을까? 라는 생각도 있었습니다. 이번 목표- Invest라는 새로운 feature를 Package로 분리하고 Demo Project까지 만드는 것 Invest 패키지 추가1. 프로젝트 생성 후 프로젝트 루트 경로에 Modules 라는 폴더를 추가합니다. 2. Modules 폴더 안에 Invest 패키지를 추가합니다. - Library를 선택해주고- 생성시 경로를 Modules 폴더 안으로 설정 후 cre..
Keychain이란? Keychain은 iOS에서 제공하는 보안 저장소로, 사용자의 민감한 정보를 암호화하여 안전하게 저장할 수 있게 해줍니다. 이는 UserDefault나 파일 시스템 저장과 같은 다른 저장 방식보다 안전한 옵션을 제공합니다. Keychain Item keychain item 단위로 write / read / delete / update 합니다. keychain item는 attribute를 통해서 key-value 값 뿐만 아니라 부가적인 데이터 저장 및 추가 옵션 설정이 가능합니다. SecItemAdd(), SecItemDelete() 와 같은 함수을 통해서 keychain item을 저장할 수 있습니다. (뒤에 나오는 코드를 보시면 보다 이해가 쉬울겁니다.) Attributes k..
웹뷰를 사용하다보면 네트워크 연결 상태 등의 이유로 최초 페이지가 로드가 되지 않거나 웹뷰 내 페이지 이동중 에러가 발생하는 경우가 있습니다. 이 경우 어떻게 에러를 감지할 수 있는지 알아보겠습니다. 1. 웹 페이지 최초 로딩 에러 감지 WKNavigationDelegate를 활용하여 최초 로딩 에러를 감지할 수 있습니다. import UIKit import WebKit class ViewController: UIViewController, WKNavigationDelegate { var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let configuration = WKWebViewConfiguration() webView..
오늘은 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...
아래와 같은 메뉴를 한번 만들어 보겠습니다. 햄버거 메뉴 또는 사이드 메뉴라고도 하죠. 0. SideMenu 라이브러리 먼저 SideMenu라는 라이브러리가 있다는 것을 공유드리겠습니다. * SideMenu 깃헙 주소: https://github.com/jonkykong/SideMenu 굳이 직접 만들 필요는 없습니다. 잘 가져다 쓰는게 더 좋을 수도 있죠. 하지만 저는 직접 만들어 보고 싶었습니다. 제가 시도한 2가지 방법을 공유드립니다. 정확히는 첫번째 방법에서 더 발전된 방법이 두번째 방법입니다. 물론 첫번째 방법과 두번째 방법은 개념상 이어지는 부분이 있기 때문에 첫번째 방법도 한번 훑어보시고 두번째 방법을 보시는 것을 추천드립니다. 1. UIViewControllerTransitioningDel..