본문 바로가기

전체 글226

[Swift] Tuist 외부 패키지, 의존성 주입과정(Xcode SPM) Tuist로 의존성을 관리하는것에는 여러가지 방법이 있다!아래 블로그에 아주 잘 정리돼 있어서 참고했음 ㅎ-ㅎ Tuist 로 외부 의존성 관리하기오늘은 많은 분들이 질문해주셨던 Tuist 3.x 버전에서 변경된 외부 의존성 관리에 대해 알아보려고 합니다.okanghoon.medium.com    자료를 찾아보면 Tuist SPM (.external) 으로 추가해주거나, XCode SPM (.package)으로 추가해주는 방법을 많이 쓰는것같음! Tuist SPM으로 추가하게 되면 속도가 빠르다는 장점이 있으나 objective-c 코드가 포함된 라이브러리의 의존성 주입시에는 오류가 발생한다고 한다.(tuist 자체적 오류) XCode SPM으로 추가한다면 속도는.. 2023. 12. 26.
[swift] iOS <-> db 정리 1. Sqlite 서버 없이 바로 연동 가능 [Swift] Sqlite 사용법 IOS에서 DB를 사용하는 방법은 Sqlite 와 Realm이 있다. Realm은 속도가 빠르고, 높은 용량을 요구하여 대용량 데이터를 다룰 때 사용하는 방법이다. Sqlite는 그 반대로 내장된 라이브러리라서 가볍게 magicofdream.tistory.com 2. CoreData 직관적인 DataBase확인가능 [iOS] Core Data 사용해보기 - 1 안녕하세요 Pingu입니다. 🐧 오늘은 iOS에서 데이터를 저장하는 방법 중 하나인 Core Data에 대해 알아보려고 합니다. 예전에 알아본 UserDefaults도 비슷한 역할을 했었는데, 좀 더 복잡한 데이터를 저 icksw.tistory.com 3. Realm S.. 2023. 12. 13.
[UIkit] 갤러리에서 사진 선택하기, 화면 요소 제스쳐 이벤트처리(PhotosUI, PHPicker) ViewController.swift class MemoDetailViewController: UIViewController { ... // 제스쳐 설정 (이미지뷰가 눌리면, 실행) func setupTapGestures() { let tapGesture = UITapGestureRecognizer(target: self, action: #selector(touchUpImageView)) detailView.mainImageView.addGestureRecognizer(tapGesture) detailView.mainImageView.isUserInteractionEnabled = true } @objc func touchUpImageView() { print("이미지뷰 터치") setupImagePic.. 2023. 12. 12.
[UIKit] TextView placeholder 구현 TextView는 placeholder가 따로 있지 않아서 구현해줘야함! lazy var scriptTextView: UITextView = { let tv = UITextView() tv.text = "텍스트 입력" tv.text = textViewPlaceHolder tv.frame.size.height = 18 tv.autocapitalizationType = .none tv.autocorrectionType = .no tv.spellCheckingType = .no tv.delegate = self tv.translatesAutoresizingMaskIntoConstraints = false return tv }() ... extension MemoDetailView: UITextViewDeleg.. 2023. 12. 12.
[UIkit] Navigation Bar (코드) 네비게이션바 코드 설정 SceneDelegate.swift func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowScene) let naviVC = UINavigationController(rootViewController: ViewController()) window?.rootViewController = naviVC window?.makeKeyAndVis.. 2023. 12. 12.
[UIkit] Tap bar (storyboard) 네비게이션바처럼 추가가능 1. Xcode 상단 -> Editor -> Embed in -> Tap Bar Controller 2. Xcode 하단 위 그림 대충 생겼다. 메인 말고 다른 뷰에 탭바를 연결하고자하면, ctrl 누르고 끌어온 뒤 Relationship Segue를 적용하면 연결됨 연결된 뷰에서 아이템 타이틀이나 이미지 등 설정 가능! 2023. 12. 1.
[UIkit] Navigation Bar (storyboard) Navigation Controller 추가하면 됨 Xcode 상단 Editor에서 Navigation Controller 추가하거나, Xcode 하단에서 추가하기 segue 추가해주면 navigariton controller 추가 완료 Kind에서 옆으로 넘어가는 형식이나, 모달로 올리는 형식을 설정할 수 있음 네비게이션바쪽의 빈 공간을 클릭해서 title 설정 가능 navigation controller에서 background, 글자 크기 등 설정가능 2023. 12. 1.
[Xcode] Tuist 적용 연습 1. 설치 > curl -Ls https://install.tuist.io | bash 성공화면 2. 프로젝트 생성, 실행 > mkdir TuistTest > cd TuistTest > tuist init --platform ios //UIkit //tuist init --platform ios --template swiftui // SwiftUI 성공화면 잘 된것! 3. manifast 설정 > tuist edit 해줬는데 오류뜸 ㅜ Couldn't find Xcode's Info.plist at /Library/Contents/Info.plist. Make sure your Xcode installation is selected by running: sudo xcode-select -s /Applic.. 2023. 11. 24.
[Xcode] Tuist 개념들 Tuist란? Tuist는 Xcode 프로젝트를 Swift로 생성/관리할 수 있도록 도와주는 도구 Tuist의 장점 깃으로 프로젝트 형상관리를 하다보면 project파일의 conflict로 시간을 허비할때가 많다. 하지만 Tuist를 사용하게 되면 프로젝트 파일을 자동으로 생성해 주기 때문에 프로젝트를 더 생산성 높게 관리할 수 있다. 성능개선으로 외 모듈 간 의존관계조정 이 쉬워지며 static framework로 성능개선효과, dynamic link, launch time 감소하며, cachingd의 모듈을 pre-build하게 되며 변경된 부분민 빌드하면 되기 때문에 빌드시간을 감소시킬 수 있다. 1. xcodeproj 파일 충돌 회피 2. 모듈화 편리 3. 모듈 의존관계 파악 4. 스위프트 언어를.. 2023. 11. 22.