iOS/Swift

    concurrency-in-swift-chapter2

    Chapter 2: Getting Started Pre-async/await asynchrony async/await 이전에는 어떻게 쓰고 있었나 돌아보기 completion closure 열심히 사용함 func viewDidAppear() { api.fetchServerStatus { [weak viewModel] status in guard let viewModel = viewModel else { return } viewModel.serverStatus = status } } 언뜻 보기엔 간단함 위험성이 있음: completion 호출을 빼먹을 수 있고, 에러 처리를 안하고 갈 수도 있음 기존에는 GCD 기반이라서, swift에 긴밀하게 통합하진 못했음 컴파일러 입장에서 completion은 언제,..

    [WWDC21] What's new in Swift

    이걸 제일 먼저 했어야 했는데! 역시 각 잡고 정리하는 시간이 필요하긴하네요. https://developer.apple.com/videos/play/wwdc2021/10192/ What‘s new in Swift - WWDC21 - Videos - Apple Developer Join us for an update on Swift. Discover the latest language advancements that make your code easier to read and write. Explore the... developer.apple.com Update on Swift packages Swift Package Collection 패키지를 검색해서 찾기 쉬움 CocoaPods Specs 같은 느낌..

    [WWDC21] Detect and diagnose memory issues

    https://developer.apple.com/videos/play/wwdc2021/10180/ 1. Impact of memory footprint 1-1. 왜 memory footprint를 신경써야하나? 사용자 경험을 극대화하기 위해서! 빠른 앱 활성화 빠른 반응 복잡한 기능 제공 오래된 디바이스도 지원 1-2. Memory footprint 근데 이건 도대체 뭘까?! Dirty + Compressed memory!! Dirty: 앱에서 사용된 메모리, 모든 heap allocations, Decoded image buffers, Frameworks Compreesed: 최근 access 되지 않은 dirty memory를 압축해둔 페이지. access 하면 압축이 풀림. (macOS에 적용) ..

    [WWDC21] ARC in Swift: Basics and beyond

    ARC in Swift: Basics and beyond - WWDC21 - Videos - Apple Developer ARC가 어떻게 동작하는지 살펴보는 시간 Object lifetimes and ARC Object lifetime은 init() 에서 시작, 마지막 사용에서 끝 ARC는 object의 lifetime이 끝날때 deallocate 해줌 ARC는 reference count로 object의 lifetime을 추적 ARC는 Swift 컴파일러 주도로 이루어짐. 컴파일러가 retain/release operation을 넣음 런타임에 retain은 reference count를 증가시키고, release는 감소시킴. reference count 가 0이 되었을때 object는 deallacte..

    [Swift 입문] 3. 변수와 상수

    안녕하세요. 코찐 입니다. 이제부터는 https://docs.swift.org/swift-book/ 를 기반으로 개념을 살펴보겠습니다. Swift Language Guide 인데요. 애플에서 공식 가이드로 작성한 것이라서 군더더기 없는 설명을 자랑합니다. 입문자가 전체를 살펴보기에는 내용이 많아서, 핵심만 추려서 살펴보겠습니다. 이번 글에서는 변수와 상수에 대해 알아보겠습니다. 데이터를 표현할 때 사용됩니다. 변수는 var로 지정합니다. 나중에 변경 가능한 값 입니다. 상수는 let으로 지정합니다. 한번 지정하면 변경되지 않습니다. 첫번째 예: 횟수 제한이 있는 로그인 화면 로그인 화면을 만들 때, 재시도 가능 횟수가 정해진 경우가 많습니다. 그럴 때 변수와 상수를 이렇게 사용할 수 있습니다. let m..

    [Swift 입문] 2. Playground 사용해보기

    안녕하세요 코찐 입니다. 이번에는 저희가 실습동안 사용할 playground를 한번 살펴보겠습니다. 1. Mac OS의 App Store에서 Xcode를 설치합니다. 2. Xcode > File > New > Playground 를 누릅니다. 3. Blank를 선택합니다. 4. 플레이그라운드 파일을 저장할 위치를 선택하고, 파일명을 지정합니다. 저는 SwiftBeginner.playground 로 만들어봤습니다. 5. 우리의 첫번째 Playground 가 생성되었습니다. 6. print(str)을 입력해봅니다. 7. 파란색 실행버튼을 클릭하면, 아래 콘솔 창에 Hello, playground 가 출력된 것을 볼 수 있습니다. 이제 이곳에서 마음대로 스위프트를 실험해볼 수 있습니다. 이것저것 눌러보면서 둘..

    [Swift 입문] 1. 우리가 Swift를 배워야하는 이유

    연재를 시작하며 안녕하세요. 코딩찐따 코찐 입니다. 2021년에는 인프런 강의를 개설하는걸 목표로 잡았는데요! 막연히 구상만 하는 것 보다 먼저 블로그를 연재하면서 큰 그림을 그려갈까 합니다. 일주일에 한번은 포스팅 하는것이 목표입니다. 무엇보다 강의 주제가 중요할텐데, 지금 실무에서 사용하고 있는 언어인 Swift를 바탕으로 연재해볼까 합니다. Swift를 처음 만난 사람들에게는 도움이 될 수 있을거라 생각합니다. 실무에 투입되기 전에 익히면 좋을 내용들을 컨텐츠로 정리해보겠습니다. 우리가 Swift를 배워야하는 이유 배우기 쉽다 처음 개발을 시작하는 사람들을 고려하며 언어를 만들었다고 생각됩니다. 애플은 개발 진입장벽을 낮추는 노력을 계속해서 해오고 있습니다. 특히 다른 개발 언어를 접해본 적이 있다..