[iOS] UIView를 생성할 때 연산프로퍼티(computed property)가 안되는 이유
2022. 12. 29. 15:31
iOS
UIKit에서 UI를 그리는 방법은 두가지가 존재합니다. Storyboard를 이용하는 방식과 Codebase로 작성하는 방법이 있습니다. 저는 협업시 충돌, 유지보수 어려움등의 이유로 Codebase로 UI를 구현하는것을 선호합니다. 그럼 오늘 주제인 Codebase로 UI를 구현할때 UIView인스턴스를 생성해야 하는데 이때 lazy를 사용하는 이유 연산프로퍼티는 안되는 이유에 대해 알아보겠습니다. 추가로 UIView 인스턴스를 생성할 때 도움을 주는 라이브러리에 대해서도 소개하겠습니다. 연산프로퍼티로 생성하면 안되는 이유 그럼 일단 간단하게 UILabel하나를 연산프로퍼티를 통해 정의하고 AutoLayout을 설정해주는 코드를 작성하고 실행해 보겠습니다. import UIKit var label: ..
[iOS] Tuist App Extension 추가하기
2022. 12. 28. 18:05
iOS
이번 포스팅에서는 Tuist에 App Extension을 추가하는 방법에 대해 알아보겠습니다. 저는 Widget으로 예시를 들겠습니다. Target 만들기 AppExtension은 Target으로 생성해줘야 합니다. Target(name: "WidgetExtension", platform: .iOS, product: .appExtension, bundleId: bundleID + ".WidgetExtension", deploymentTarget: .iOS(targetVersion: iosVersion, devices: [.iphone]), infoPlist: .file(path: .relativeToRoot("WidgetExtension/Info.plist")), sources: [.glob(.relat..
[iOS] UIButton Image와 Title사이 간격 조절하기
2022. 12. 27. 17:36
iOS
UIButton에 setImage함수를 통해 이미지를 삽입가능합니다. 이때 image와 title을 동시에 설정한 경우 두 간격 사이를 조절할 필요성이 있습니다. 이때 방법은 간단합니다 iOS 15.0 이하 button.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 3) inset의 right값을 수정해주시면 됩니다. 기본적으로 이미지는 타이틀의 좌측에 위치하기 때문이죠 만약 반대라면 left값을 수정해주시면 됩니다. imageEdgeInsets 같은 경우는 15.0 이상에서는 deprecated 된다고 하네요! 메시지를 보면 UIButtonCOnfiguration을 사용하라고 합니다. UIButton의 configurationd을 ..
[iOS] Google Sheets와 Script로 현지화 자동화하기
2022. 12. 27. 15:40
iOS
안녕하세요 오늘은 GoogleSpreadSheet와 Python Script를 이용해서 현지화(문자열 관리) 자동화하는 과정에 대해 소개하겠습니다. 저는 현재 글로벌서비스를 준비하고 있으며 문자열 관리와 반복되는 strings파일 업데이트등 이유로 생산성을 높이기 위해 해당 자동화를 구축했습니다. Process 1. 구글시트에 관리할 문자열에 대해 작성한다. 2. 구글시트에서 시트를 읽어 스크립트를 통해 strings파일로 변환한다. 3. 빌드 이전에 스크립트가 동작해도록 설정해 자동으로 원하는 위치에 strings파일을 넣어준다. 구글시트 작성하기 저의 구글시트는 이런식으로 작성했습니다. Description은 strings파일에서 주석부분입니다. Keys는 Key값 C열부터는 Value값이 됩니다. ..
[iOS] iOS프로젝트에 Script 설정하기 (with Tuist)
2022. 12. 21. 14:18
iOS
이번에는 프로젝트에 스크립트를 설정하는 방법에 대해 포스팅하겠습니다. 대표적으로 스크립트를 설정하는 라이브러리로 Firebase, SwiftLint가 있습니다. XcodeProj Build Phase 설정하기 원하는 프로젝트 타겟에 - Build Phases 으로 접근해줍니다. 좌측에 있는 + 버튼을 클릭해 New Run Script Phase를 선택해줍니다. 추가하면 Build Phases에 Run Script 라는게 추가됩니다. Run Script 살펴보기 For install builds only 이건 저도 정확하지는 않지만.. 제가 직접 해본결과 체크됐을때는 제목 그대로 Build Action을 취했을때만 스크립트가 실행됐습니다. Run Action을 취한경우에는 실행되지 않았습니다. 해제됐을때는..
[iOS] Tuist 외부라이브러리 가져오기 - Tuist (3/4)
2022. 11. 29. 15:22
iOS
Tuist에 처음 접하시는 분들은 아래 두 포스팅을 보고 오시면 도움이 됩니다! https://cheonsong.tistory.com/14 [iOS] 프로젝트 생성 및 관리 - Tuist (1/4) Tuist 란? Tuist는 Xcode 프로젝트의 생성, 유지보수 및 상호 작용을 용이하게 하는 것을 목표로 하는 CLI(명령줄 도구)입니다. 또한 프로젝트 셋팅을 Swift로 하기때문에 iOS 개발자들에겐 다른 도구에 cheonsong.tistory.com https://cheonsong.tistory.com/15 [iOS] 프로젝트 모듈화 하기 - Tuist (2/4) 1편에서 간단하게 Tuist 사용법에 대해 알아봤습니다. Tuist에 대해 잘 모르신다면 https://cheonsong.tistory.c..
[iOS] 프로젝트 모듈화 하기 - Tuist (2/4)
2022. 11. 4. 15:31
iOS
1편에서 간단하게 Tuist 사용법에 대해 알아봤습니다. Tuist에 대해 잘 모르신다면 https://cheonsong.tistory.com/14 1편을 보고 오시면 도움이 됩니다! 이번에는 Tuist를 활용하여 프로젝트를 모듈화 하는 방법에 대해 포스팅 하겠습니다. 저는 Clean Architecture을 적용해 모듈화를 진행했으며 간단하게 Domain, Presentation, Data, App, Design 프로젝트로 구성했습니다. 실직적으로 App을 실행하는 프로젝트는 App 프로젝트이며, 나머지 프로젝트는 Framework로 구성할 예정입니다. 그리고 모든 프로젝트를 하나의 Workspace로 포함해 프로젝트 구성 완성할 예정입니다. 모듈화 할 프로젝트 구분하기 위 사진처럼 Manifests하..
[iOS] 프로젝트 생성 및 관리 - Tuist (1/4)
2022. 9. 30. 14:23
iOS
Tuist 란? Tuist는 Xcode 프로젝트의 생성, 유지보수 및 상호 작용을 용이하게 하는 것을 목표로 하는 CLI(명령줄 도구)입니다. 또한 프로젝트 셋팅을 Swift로 하기때문에 iOS 개발자들에겐 다른 도구에 비해 접근성이 좋습니다. Tust Install 터미널을 실행 후 해당 명령어를 통해 Tuist를 다운로드 합니다. curl -Ls https://install.tuist.io | bash Tuist Init 먼저 Tuist를 통해 프로젝트를 생성할 디렉토리를 생성합니다. 저는 디렉토리명을 Tuist로 정했습니다. 그 후, 해당 디렉토리로 이동 후 tuist로 프로젝트 생성을 위해 초기화 해줍니다. mkdir Tuist cd Tuist tuist init --platform ios 초기화..