분류 전체보기

GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 알아야 하므로 간단하게 동기, 비동기, 직렬, 동시, 병렬에 대해서 간단하게 작성해보려 한다. 간단하게 그림도 그려봤다. (혹시 틀린 부분 있으면 말씀해 주시면 바로 수정하겠습니다!) 동기 (Sync) / 비동기 (Async) 처음에는 동기는 순차적으로 처리하고 비동기는 여러 개 처리하는 거 아닌가? 정도로 알고 있었지만 비슷하지만 다르다. 동기와 비동기의 큰 차이는 작업의 완료와 관련이 있다. 동기 (Synchronous) 작업을 시키고 작업의 완료를 기다린다. 이 때 다른 작업을 실행하지 않는..
· → Xcode
프로젝트를 진행하다보면 내 프로젝트는 총 몇줄일까? 궁금할때가 있다. 이럴때 아주 간단한 방법이 있다! 우선 터미널을 열어준다. 나는 보통 해당 폴더에서 이렇게 터미널을 열어준다. 혹은 cd ~/Desktop/DayCounter 같은 식으로 해당 폴더에 들어가준다! 아래와 같은 명령어를 입력해준다. find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l 그렇게 되면 짜잔! 아래와 같이 파일명들과 줄수가 표시되게 된다. 총 717줄이고 몇가지의 파일들은 리팩토링이 필요하겠구나... 생각이 된다.
· → Xcode
SwiftLint 란? GitHub - realm/SwiftLint: A tool to enforce Swift style and conventions. A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub. github.com Swift 언어로 앱을 개발하다보면 코드의 스타일, 컨벤션을 맞추는데 어려움이 있다. 이때 SwiftLint 를 사용하여 코드의 스타일과 컨벤션을 효과적으로 맞출수 있다. SwiftLint 를 적용하여 코드를 작성하면 SwiftLint 에서 적용한 스타일과 맞지 않는다면 아래와 같이 Warning 이 뜨게 된다. 빌드..
코드를 작성할 때 아키텍처, 디자인 패턴에 대한 많은 고민들을 한다. 간단하게 아키텍쳐와 디자인 패턴의 차이부터 정확하게 알고 싶었다. 프로젝트를 하면서 SwiftUI에서 어떠한 아키텍처를 사용하는 것이 좋을지가 요즘 가장 큰 관심사이다. 아키텍쳐 중 흔히 들어본 MVVM, MVC, MVP 등등... 정말 많은 공부가 필요할 것 같다. 또한 이중에 SwiftUI에 잘 맞는 아키텍쳐는 무엇일지 평생 풀어야할 과제일 것 같다. 아키텍쳐와 디자인 패턴의 차이를 알아보자. 소프트웨어 아키텍쳐소프트웨어 아키텍처는 소프트웨어 시스템의 전체적인 구조를 정의한다. 아키텍처는 시스템의 확장성, 유지보수성, 성능 및 보안을 결정하는 데 중요한 역할을 한다. 프로젝트 초기 단계에서 결정되고, 시스템의 큰 그림과 전체적인 방..
Radar chart 만들기아래와 같은 형식의 Radar 차트를 간단하게 만드는 방법을 찾아봤다. Swift 에서도 자체적으로 Chart 를 제공해주고 있지만 아직 아래와 같은 Radar chart 는 없다. 그래서 자체적으로 차트를 만드는 코드를 Shape 를 활용해서 만들어 보았다. Swift Charts | Apple Developer DocumentationConstruct and customize charts on every Apple platform.developer.apple.com코드data, maxValue 를 받는다. data 는 [Double] 형식으로 maxValue 는 Double 형식으로 받는다. 아래와 같이 data 를 [3, 3, 4, 4, 4, 4] 로 6개의 데이터를 입력..
· → Xcode
Xcode 로 커스텀 폰트를 적용하려다 보면 폰트가 도저히 적용되지 않을 때가 있다. 아래와 같은 절차를 따른다면 무조건 적용이 가능할 것이다. 😇 타겟 확인해 보기 폰트를 추가했을 때 Target Memebership 도 같이 선택했을 것이다. 다시 한번 타겟을 앱으로 잘 설정해 줬는지 확인해 보자 Info.plist 살펴보기 Info 로 들어가서 Fonts provided by application 의 item 에 폰트가 확장자까지 잘 추가되어 있는지 확인해 보자! 빌드해서 폰트 이름 확인해 보기 그렇게 된다면 아래와 같이 모든 fontName 을 프린트해 보면 아마 파일이름과 다르게 되어있는 것을 발견할 수 있을 것이다. .onAppear { for fontFamily in UIFont.family..
iOS 앱을 만들다보면 햅틱 반응이 앱을 한층 더 풍부하게 만들어 준다는 생각이 든다. 물론 무분별하게 쓰면 안되겠지만 그래도 강조하고 싶은 인터렉션이나 사용자 관점에서 좋은 경험을 줄 수 있다면 적극적으로 사용하는 것도 좋을 것 같다. SensoryFeedback 우선 최근 17.0 버전부터 지원하는 SensoryFeedback 이라는 것이 있다. 사용방법은 아래와 같다. 아래와 같이 버튼과 연결하여 hapticFeedback 이 true 가 되면 .success 라는 햅틱 피드백을 줄 수 있다. import SwiftUI struct HapticView: View { @State var hapticFeedback = false var body: some View { Button("햅틱") { hapt..
내가 사용했던 둥근 모서리 사각형 커스텀 요즘 대세인 둥근 모서리 사각형! 하지만 코드를 짜다보면 각 모서리마다 다른 Radius 을 걸어주고 싶을 때가 있다. 그럴때 내가 사용했던건 아래와 같다. 끝에 아주 쉬운 방법이 나오니 끝까지 읽어주세요 😌 extension View 를 한뒤 roundedCorners 라는 함수를 생성해 줬다. 그리고 corner 는 UIKit 에서 지원해주는 UIRectCorner 를 입력해줘서 아래와 같이 원하는 코너에 Round 를 걸어 주는 함수를 구현 할 수 있었다. extension View { func roundedCorners(_ radius: CGFloat, corners: UIRectCorner) -> some View { clipShape(RoundedCor..
Swift librarian
'분류 전체보기' 카테고리의 글 목록 (20 Page)