Swift
-
Xcode 빠른 빌드가 필요할때 - diagnostic-options 와 그외Swift 2021. 4. 20. 10:48
컴파일 타임을 확인하기 DerivedData 파일 삭제 rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Developer/Xcode/DerivedData (가끔 원인불명 warning이 날때 derivedData 파일을 삭제하면 해결될때가 있다) Clean Build 아래 명령어 입력 defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES 위를 바탕으로 빌드시간을 측정할 수 있다. 최적화 프로젝트 명 - Build Settings 를 확인합니다. ..
-
SwiftLint 적용하기Swift 2021. 4. 19. 15:26
SwiftLint를 꼭 사용해야 된다고 생각하는 사람이지만, 한번도 기술한적이 없길래 적어본다. 다운로드 github.com/realm/SwiftLint realm/SwiftLint A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub. github.com 왜? 처음 프로젝트를 시작할때 꼭 Code Convention을 작성한다. 이 프로젝트에서 개발자가 지켜야하는 개발 작성 표준인 것이다. SwiftLint 가 바로 https://github.com/raywenderlich/swift-style-guide 기반으로, swift 스타일 및 컨..
-
ios 14 위젯 만들기Swift 2021. 3. 17. 10:40
출처 및 설명 : developer.apple.com/documentation/widgetkit/creating-a-widget-extension Apple Developer Documentation developer.apple.com iOS 14이후 놀라운 점이 홈 화면에 위젯을 둘 수 있따고?! 이죠 해당 부분을 개발해보면 넘 재밌을거같아 해보겠습니다. 프로젝트에서 File - New - Target - Widget Extension 을 선택합니다. (Xcode 버전이 낮으면 없을 수 있습니다. 업데이트 필요해요~) 위젯은 SwiftUI로만 작성이 가능합니다.
-
Clean SwiftSwift/아키텍쳐 2021. 3. 14. 16:54
Clean Swift? https://clean-swift.com/ 처음 보이는 페이지에서 Clean Swift에 대한 설명은 Clean Architecture + TDD Code less. Test More. 이라고 되어있습니다. 장점 이 템플릿의 아래와 같은 점을 해결할 수 있다고 소개하고 있습니다. - ViewController가 점점 거대해지고, 이해하기 어려워지고, 오류를 고치기 어렵다. - 비즈니스 로직을 model로 옮겼다. model이 너무 커졌다. - 앱이 하나의 거대한 스토리보드로 되어있다. - 버그 재현하는데 4시간을, 고치는데 일주일 걸리는 문제 - 코드의 새로운것을 추가하려면 다시 또또또 리팩토링하는 문제 - TDD 노력과 이익을 따졌을때 그만한 가치가 없을때 실제로, MVC 패턴..
-
Xcode Build Settings 타겟분리Swift 2021. 3. 8. 10:49
일단 Xcode에는 debug 와 Release가 있습니다. Build Setting을 개발과 운영 어떤 방식으로 구분할 지 그 방법에 대해서 고민해본 결과를 서술합니다. 이 글을 시작하기 전... 일단 Xcode에는 debug 와 Release가 기본적으로 분리되어 있죠. 이와 관련하여, Build Setting을 개발과 운영 어떤 방식으로 구분할 지 그 방법에 대해서 고민해본 결과를 서술합니다. 저의 목적! 개발과 운영을 나눠, Log 는 Release일때 당연히 ㄴㄴ, 빼고 싶은 파일들이 있으므로 Release로 아카이브 했을때 그 파일들은 담기면 안됩니다! 항목 Debug Release 내부 상수의 IS_DEBUG true false Log 출력 허용 허용 안함 MOCK network code 포..
-
ios 개발 아키텍쳐 MVC, MVVMSwift/아키텍쳐 2019. 11. 20. 15:14
아주 예전 처음 시작할때 적었던 패턴 공부... 추후 다시 올려보겠습니다. 처음 어플리케이션은 MVC 구조, 그 다음 애플리케이션은 MVVM으로 결정해 아키텍쳐를 구성했습니다. 이에 대해 말하기 전에, swift의 경우 헷갈릴 수도 있는 부분이 있습니다. 꼭 이해가 필요한 점은 UIViewController 와 UIView가 뷰로 분류된다는 점입니다. 뷰 라이프 사이클과 강력하게 연결되어 있으므로 UIViewController는 뷰 계층으로 분류합니다. 처음 MVC 구조를 선택하게 된 이유 - RxSwift를 사용하고 있지 않았다. (이때 Swift, 데이터 바인딩 관점에서 Rx처럼 효과적으로 바인딩하기 어렵다고 생각했다) - 기존에 리팩토링 기반이 되는 앱이 아키텍쳐가 없었다. (아키텍쳐를 도입하는것 ..
-
Swift 기본문법Swift 2019. 11. 3. 15:29
먼저 swift의 장점은 무엇일까? Swift 장점 쉬운 언어 - 스위프트는 매우 간단합니다. 이를 익히고 나면 같은 함수형 언어인 자바스크립트, 타입스크립트 코틀린, 파이썬등을 금방 사용할 수 있을것입니다. 빠른 컴파일 속도 - 애플의 주장에 따르면 검색 알고리즘 완성 속도가 기존 IOS 개발에 쓰였던 오브젝티브-C(Objective-C)보다는 최대 2.6배, 파이썬 2.7 버전보다는 최대 8.4배 빠르다고 합니다. 매우 중요하죠 OPTIONAL 도입 - 코드중에 프로그램을 가장 불완전하게 만드는 것이 Null, Nil 값에 대한 오류이다. 이 폭탄과 같은 Null, Nil값을 사전에 방지시키고자 하는 것이 Optional 입니다. 따라서 xcode에서 알아서 찾아내주기도 하고 안전성이 매우 올라갑니다..
-
Swift 꼭 알아야 하는 내용Swift 2019. 10. 30. 11:47
1. Property Observer 값이 변경될때 동작을 수행하게 할 수 있다. Wiliset(값이 저장되기 직전에), didset(값이 저장된 직후에) 값이 동일하더라도 속성의 값이 설정 될때마다 호출 2. 클로저 3. Typealias 4. DispatchQueue 서비스를 날리거나, 통신을 했다면 다 받아오고 나서 할당을 시작하면 되겠죠? 이때 시간이 오래 걸리는 작업을 수행하면서 사용자의 UI는 막지 않고자 할때 사용합니다. 멀티 쓰레드 (학부때 배운 내용과 매우 유사) 작업을 할때 상황에 맞는 큐를 골라야 합니다. Main : serial queue모든 UI는 Main에서 async : 기다리지 말고 바로 해라. Global : concurrent queue 작업의 우선순위를 정해서 이때, u..