반응형

분류 전체보기 27

xcrun SPM error: fatal: cannot use bare repository '/Users/user/Library/Caches/...' (safe.bareRepository is 'explicit')

문제$ xcrun swift run .........Fetched https://github.com/apple/swift-argument-parser from cachewarning: 'swift-async-algorithms': skipping cache due to an error: Couldn’t fetch updates from remote repositories: fatal: cannot use bare repository '/Users/user/Library/Caches/org.swift.swiftpm/repositories/swift-async-algorithms-c3a8d752' (safe.bareRepository is 'explicit')......해결~/.gitconfig 에서 ..

iOS 2024.11.11

UITests Error가 발생할 때 No target application path specified via test configuration

UITest를 실행하려고 할 때, 아래와 같은 에러가 발생하는 경우. UITest file을 어느 Target에 추가 했는지 확인해봐야 한다. 내 경우에는 UnitTests Tartget에 UITests를 추가해서 발생한 문제였고, UITest Target을 별도로 생성해서 UITest를 구성함으로써 문제를 해결했다. ErrorMessage: testLaunchPerformance(): No target application path specified via test configuration:

iOS 2023.02.20

개발자가 CI 시스템을 알아야 하는 이유.

ReadCI systems are the blood to automate tasks for the whole team. Learn how to use it, and you’ll learn how to optimize your company’s current CI system, which can help you jump to the next step of your career.- Riccardo Cipolleschi -   Step up Your Career With CIDiscover how learning to work with a continuous integration system can help your careerbetterprogramming.pub Opinion  개발자 초년기때는 CI라는 ..

개발 Story 2023.02.07

Xcode14 Apple Clang Compiler gnu++20

Xcode14 ReleaseNote Xcode14 Release Note Apple Clang Compiler를 보면 C++ 컴파일러의 기본 옵션이 변경(93456065)된 걸 알 수 있다. 더보기 Apple Clang Compiler New Features New C++ projects you create in Xcode use C++20 language dialect by default. (93456065) Several C++20 and C++2b papers have been implemented: C++20 papers that have been implemented: P0692R1 - Access checking on specializations P0388R4 - Permit conversio..

iOS 2023.01.03

Clean Architecture + MVVM in iOS Swift

Patterns... 패턴은 개발자들의 경험과 지식으로 만들어진 문제해결 가이드라인과도 같다. 패턴하면 주로 디자인 패턴을 떠올리지만, 아키텍쳐 패턴도 존재한다. 그리고 아키텍쳐 패턴은 프로젝트 전반적으로 적용된다. 아키텍쳐 패턴이 적용되려면 프로젝트에 참여하는 모든 개발자들과 어느정도 합의가 이루어지는 게 좋다. 아키텍쳐 패턴은 처음에 앱을 구성 하는 시점에 최적의 패턴이 적용되는 건 아니다. 분명 각 앱의 성격이나 개발자들의 방식에 따라서 더 잘 어울리는 아키텍쳐가 있을테지만, 개발하다보면 앱의 성격이 바뀌기도 하고 예상과는 다른 요구사항이 들어오기도 하고 새로운 문제가 발생하기도 하며, 개발자들의 구성이 바뀌기도 하기 요구되는 아키텍쳐가 바뀔수도 있다. 또, 새로운 언어가 등장하고 새로운 API가 ..

개발 Story 2022.09.02

M1 issue- ruby 설치 에러.(ruby version is past its end of life and is now unsupported)

M1 맥북 프로에서 ruby를 설치하고 실행하는데, 또 실행이 안된다. homebrew의 난관이 끝나고 나니, 이번엔 ruby다. 참고) m1 homebrew issue 해결 포스팅. 2022.05.07 - [개발 Story] - M1 issue - Homebrew 설치 에러. (command not found: brew) Ruby Error WARNING: ruby-2.5.1 is past its end of life and is now unsupported It no longer receives bug fixes or critical security updates. ruby를 설치할 때, 아래와 같은 에러가 발생했다. ruby 버전을 최신으로 하면 되는 걸까 해서 최신 버전으로 깔아보기도 했다. 하지..

카테고리 없음 2022.05.08

M1 issue - Homebrew 설치 에러. (command not found: brew)

2달 전에 M1 맥프로를 받고 개발 환경을 설정했다. 생각보다 그 과정이 녹록치 않았다. 기본적인 소프트웨어 설치부터 잘 되지 않아 좌절을 겪으며 알게 된 내용들을 기록해둔다. Homebrew 설치 방법이다. Homebrew 공식 페이지에 나와있는데로 설치하면 안된다.원래 설치 방법(인텔맥) 과 command not found: brew/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"원래 가이드대로 설치하고 실행하면, 터미널에서  brew를 찾을 수 없다고 나온다. zsh: command not found: brew M1에서 설치 Path 가 기존 인텔칩과 달라서 brew 를 못찾는 ..

개발 Story 2022.05.07

SOLID 원칙. 리팩토링 할 때 알아두면 좋은 개념.

Refatoring을 입에 달고 사는 개발자들 개발에서는 언제나 리팩토링이라는 단어나 언급된다. 처음엔 잘 짜여진 코드라 할 지라도 시간이 지나 API가 변경이되고, 요구사항이 추가 혹은 삭제되기도 하면서 결국엔 레거시가 되어버리기 때문이다. 어쩌면 좋은 코드라는 건 시간에 따라 바뀌는 트렌드와 같다. 개발자는 그 트렌드에 맞추기 위해 고군분투하며 리팩토링을 외칠 수 밖에 없다. 그리고 리팩토링할 때 아래와 같은 개념으르 알아두면 좋다. SOLID 원칙 프로그래머가 유지 보수와 확장성이 좋은 소프트웨어를 만들고자 할 때, 적용하면 좋은 원칙이다. Robert C. Martin 아저씨가 명명한 내용이다. 각 앞글자가 의미하는 문구는 아래 표와 같다. SRP (Single responsibility prin..

개발 Story 2022.05.04

iPad 기능. 어떤 걸 개발 해볼까.

iPad에 맞는 화면을 만들어보고 싶은데, 어떤 화면부터 만들어야 좋을지 모르겠다. iPAD스러운 앱을 만들 때 고려해볼 만한 기능은 어떤 것들이 있는지 알아봤다. iPad 기능들. Multitasking SplitViews & sidebars Multiple Windows (Enabling Multiple Windows on iPad) PopOver Band Selection & Pointer Accessories References https://www.raywenderlich.com/27454008-ipados-15-tutorial-what-s-new-for-developers. Specifying the Scenes Your App Supports Introducing Multiple Window..

개발 Story 2022.05.01

swift. 중첩 클로져(nested closure)에서 weak self 사용?

weak self weak self 는 순환 참조(strong reference cycle)를 방지하기 위해 사용한다. 일반적으로는 escaping closure에서 self를 사용할 때, 캡쳐리스트에 선언해두고 사용한다. escaping closure에서 self를 캡쳐하면 strong reference cycle(Automatic Reference Counting in Swift Docs)이 발생하기 쉽기 때문이다. class Fetcher { var x: String? func callFetch() { self.fetchSomething { [weak self] error in self?.x = "finished" print("error : \(error)") } } func fetchSometh..

iOS/Swift 2022.04.27
반응형