일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Protocol
- extension
- Class
- struct
- property
- interpace
- 이니셜라이저
- initalizer
- tuist
- initializer
- String
- Method
- 스위프트
- enum
- UIKit
- type
- url
- Terminal
- delegate
- instance
- 디자인패턴
- init
- optional
- 코딩테스트
- IOS
- Unicode
- Swift
- Xcode
- Git
- Foundation
- Today
- Total
목록Xcode (8)
아리의 iOS 탐구생활
안녕하세요. 요즘에 취업 이후 글이 뜸해진 것 같아... 반성하고 다시 돌아온 아리입니다. 직장생활 뿐만 아니라... 어쩌다가 갑자기 강아지를 키우게 되어서 육아하느라고 정신이 없었습니다. (TMI) 취업에 성공하고 개발자로 회사생활을 시작한지 5개월이 다 되어가네요. 울집 강쥐도 태어난지 5개월이 되었어요.🥹 강아지와 함께 살게되면서 생각해야할 것과 할일이 많아져서 너무 바쁘지만 그래도 덕분에 행복하고 즐거운 생활을 하고 있답니다. 이번 글에서는 제가 회사 프로젝트에 Tuist를 적용하게 되었는데, 그 중 템플릿을 만들어 모듈 생성을 자동화하는 방법을 기록해보려고 합니다. 시작하기 전에 저희집 귀염둥이 사진 먼저 투척하고 시작하겠습니다. 💁🏻♀️ # tuist scafflod 해당 명령어를 사용해서 ..
YAPP 동아리 21기 iOS 2팀 핏프티 프로젝트를 진행하면서 겪었던 문제입니다. Tuist 4 버전부터는 발생하지 않으니 참고해주세요. # 문제 상황 먼저 dependencies에 Amplify 라이브러리 설치를 위해 SPM 목록에 아래와 같이 코드를 추가해주었다. import ProjectDescription import ProjectDescriptionHelpers let dependencies = Dependencies( carthage: [], swiftPackageManager: [ .remote( url: "https://github.com/kakao/kakao-ios-sdk", requirement: .upToNextMajor(from: "2.13.0") ), .remote( url: "..
다들 API KEY 관리를 어떻게 하시나요? 개발자마다 각각 방식이 다 다른 것 같아요. 이 글에서는 제가 협업하면서, 개인 프로젝트를 진행하면서 알게 된 관리 방법들을 적어보았습니다. 혹시 또 다른 방법이 있다면 공유해주세요. 😊🙏🏻 왜 API KEY를 숨겨야 할까? API Key를 숨기지 않고 깃허브에 그대로 올리면 다른 사람들도 API key를 볼 수 있어서 되돌릴 수 없는 일들이 벌어질 수도 있다. AWS 해킹당한 경험담 실제로 Github에 API KEY를 숨기지 않고 올려서 150만 원 정도 청구된 사례가 있다. 따라서 아무나 API 요청을 하지 못하도록, API KEY를 Github 레파지토리에 실수로라도 올리지 않도록 비밀스럽게 관리해주는 것이 중요하다. static 변수 활용하기 아래와 ..
YAPP 동아리 Dev. Camp 1차때 팀원들과 함께 해결한 문제이다. # 문제 상황 Tuist로 프로젝트 생성을 하였다. 생성을 하니, .xcworkspace 파일이 자동으로 생성된 .gitignore에 포함되어있었다. 아마 충돌을 대비해서 추가해둔 것 같다. 이후 Xcode Cloud 적용을 위해서 빌드를 시도했는데, .xcworkspace를 찾을 수 없다는 에러가 났다. Swift Package Dependencies Workspace Fitfty.xcworkspace does not exist at Fitfty/Fitfty.xcworkspace 이 문제를 해결하기 위해서 .gitignore에 등록되어있는 .xcworkspace를 제거하자니 매우 찝찝하였다. 협업 시 충돌 피하자고 등록해둔 것 같..
이번에 동아리 활동을 시작하게 되면서 프로젝트를 모듈화하여 관리해보자는 의견이 나와 Tuist를 사용해보게 되었다. 어떤 녀석인지 한번 알아보자!!! Tuist는 Xcode 프로젝트와의 생성, 유지 관리 및 상호 작용을 용이하게 하는 것을 목표로 하는 커맨드 라인 인터페이스(CLI, 명령줄 도구, 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식)이다. 바이너리로 배포되므로 종속성을 관리하기 위해 다른 도구에 의존하지 않고도 쉽게 설치하고 사용할 수 있다. 모듈화의 이점 모듈화로 나누어져 있으면 빌드 시 변경된 부분만 빌드하면 되기 때문에 빌드 속도가 향상된다는 장점이 있다. 모듈간 결합도는 낮추고 응집도를 높이는 형태 .pbxproj에 UUID의 conflict을 줄일 수 있다는 장점도 가지고 있다...
테스트 주도 개발(Test-Driven Development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화 된 테스트 케이스를 작성한다. 그런 후에 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. -위키백과 테스트 주도 개발을 말 그대로 개발을 하는데에 있어서 테스트가 주가 된다는 하나의 개발 방법론이다. 먼저 테스트를 하면서 코드를 작성하고 그 후에 본 코드를 구현하는 방식이다. 테스트를 거친 후에 코드를 작성한다면 추후에 신경 써줘야할 많은 부분들에 대해서 해결을 하면서 코드를 작성할 수 있겠다. 하지만 TDD를 언제나 고집하기에는 번거롭고 생산성이 떨어지는..
iOS 프로그래밍 강의를 듣다가 만나게 된 번들. 이 번들은 디렉토리를 추상화한 용어이다. Bundle과 Package 개념을 서로 혼용해서 쓰는 경우가 많은데, 많은 Bundle이 Package이기도 하기 때문이다. application 같은 경우는 Finder에서 사용자에게 단일한 파일로 노출되는 Package이면서, 실행 코드와 리소스를 포함하여 Bundle이기도 한 대표적인 예시라고 볼 수 있다. A Bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code. 실행 가능한 코드와, 그 코드에 의해 사용되는 리소스를 가진 디렉토리...
Auto Layout Guide: Understanding Auto Layout developer.apple.com 뷰에 설정되어있는 제약조건(Constraints)을 기반으로 해서 동적으로 크기와 위치를 계산하는 것을 말한다. 사람들은 다양한 크기의 아이폰 디바이스를 사용한다. 그렇기 때문에 어플리케이션이 디바이스 사이즈에 구애받지 않고 동일한 화면을 구성할 필요가 있다. 그래서 나온 것이 오토레이아웃(Auto Layout)이다. 오토 레이아웃은 뷰의 크기와 위치를 동적으로 계산한다. 즉 인터페이스에 절대적인 좌표가 아닌 상대적인 좌표가 필요할 때 유용하다. 오토레이아웃이 주로 사용되는 이유는 외부 변경과 내부 변경 때문이다. 외부 변경(External Changes) 슈퍼뷰의 크기나 모양이 변경될 때..