분류 전체보기

    WWDC18) Image and Graphics Best Practice

    WWDC18) Image and Graphics Best Practice

    고급 CPU 및 GPU 기술을 애플리케이션에 통합하는 방법에 대해 설명해보자 메모리와 CPU라는 두 가지 부족한 리소스를 사용하는 것에 초점을 맞춰서! 애플리케이션이 많은 CPU를 사용함에 따라 배터리 수명과 애플리케이션의 반응성에 부정적인 영향을 미칠 수 있다. 그리고 메모리를 사용할 수록 CPU 활용률도 증가하게 되고 배터리와 성능에 해로운 영향을 미친다. UIImage 는 이미지 콘텐츠를 로드하는 역할 UIImageView 는 디스플레잉, 렌더링을 담당 렌더링 외에도 숨겨진 단계가 있다. 애플리케이션의 성능을 측정하기 위해서는 이 단계를 이해하는 것이 매우 중요하다. 이 단계는 디코딩이다. 디코딩을 논하기 전에 버퍼를 보자 이미지 버퍼의 각 요소는 이미지에서 단일 픽셀의 색상과 투명도를 설명한다. ..

    치타핏 개발일기 - 나의 첫번째 iOS 앱 만들기

    치타핏 개발일기 - 나의 첫번째 iOS 앱 만들기

    저에게 누군가가 인생에 있어서 가장 설레던 순간을 말해보세요! 라고 한다면 치타핏이라는 어플을 만든거에요! 라고 대답할 수 있을 정도로 작년 연말, 너무 값지고 설레는 경험을 할 수 있었는데요. 기획부터 디자인, 개발, 출시까지 전부 제 손을 거친 앱이어서 그런지 더 뿌듯함이 느껴졌습니다. 그리고 그 과정을 공유해보고 싶어서 이렇게 글을 쓰게 되었습니다. ‎치타핏 - 다이어트 다이어리 ‎치타핏이 체중 관리를 도와드릴게요:) 매일 식단 기록과 운동 기록으로 내가 원하는 몸을 만들어 보아요! 그리고 하루하루 변화하는 나를 지켜보세요! 칼로리 계산 - 개인별 목표 칼로리 계산 apps.apple.com 우선 저의 소중한 치타핏을 구경해주세요 ❣ 이제 개발일기를 시작해보겠습니다! 기획 치타핏은 오늘 하루의 식단..

    WWDC21) Meet async/await in Swift

    WWDC21) Meet async/await in Swift

    https://developer.apple.com/videos/play/wwdc2021/10132/ Meet async/await in Swift - WWDC21 - Videos - Apple Developer Swift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the new syntax can make your code... developer.apple.com 네트워크 통신을 하는 `fetchThumbnail` 비동기 함수가 있습니다. 비동기 작업에 대한 결과를 `completion`으로 처리를 합니다. `completion`는 클로저일 뿐 강제할 수 없습니다. 그래서 `guard..

    Combine | Scheduler

    Combine | Scheduler

    Scheduler는 언제(시간), 어떻게(스레드) Publisher의 작업들이 수행될지를 결정하기 위한 프토토콜입니다. Apple에서 언제, 어떻게...를 위한 api에는 DispatchQueue, OperationQueue, RunLoop등이 있는데요! 그리고 Scheduler는 프로토콜이라고 했는데요. iOS13부터 DispatchQueue, OperationQueue, RunLoop에서 Scheduler를 채택하고 있기 때문에 이를 그대로 Combine에서도 사용할 수 있습니다@_@ 기존에 DispatchQueue를 사용할 때 Closure를 중첩된 형태로 써서 여러 스레드를 전환하면 가독성이 안좋을 수 밖에 없었지만 Combine은 선언형으로 사용하기 때문에 가독성 좋게 사용할 수 있다는 장점도 ..

    Combine | Operator

    Combine | Operator

    이번 포스팅에선 오퍼레이터가 뭔지 알아볼게요! 메를린이라는 학생이 졸업할 때 모델의 값을 변화시키고 싶습니다. 그래서 각각의 퍼블리셔와 섭스크라이버를 만들고 퍼블리셔에게 섭스크라이버를 등록했습니다. 하지만 위의 예시는 컴파일 되지 않는데요! 왜냐면 퍼블리셔와 섭스크라이버는 짝짜꿍이기 때문에 타입이 일치해야 하는데! 그렇지 않아서 그렇습니다. 노티피케이션 센터는 Notification을 만드는데, 섭스크라이버는 Int 타입(grade)입니다. 그래서 두 사이를 변환시켜줄 무언가가 있어야 합니다. 그때 필요한 것이 Operator 입니다. 사실 오퍼레이터는 퍼블리셔라고 할 수 있는데요! 왜냐하면 `Publisher` 프로토콜을 채택하고 있기 때문입니다. 역시나 선언형으로 사용할 수 있고, value 타입입니..

    Combine | Publisher and Subscriber

    Combine | Publisher and Subscriber

    Combine에는 Publisher와 Subscriber가 있습니다. 이름만 봐도 둘이 무언갈 주고받으면서 사이좋게 지내겠구나...가 느껴지지않나요?ㅎㅎ 이 친구 둘이서 이벤트를 주고 받고 하는 사이인데요. Combine을 배우는 이유가 이벤트를 어떻게 처리하는지 알기 위해서잖아요. 그걸 알기 위해서 이 Publisher와 Subscriber가 무엇인지 살펴보도록 하겠습니다. 일단 퍼블리셔와 섭스크라이버가 어떤 친구들인지 먼저 알아야겠죠? 하지만 이름만 봐도 감이 오죠? Publisher: 이벤트를 어떻게 발행할 것인지 정의한 프로토콜 Subscriber: 퍼블리셔에게 이벤트를 요청하고, 퍼블리셔가 여러 체인을 통해 전달해준 이벤트를 받아 처리하는 걸 정의한 프로토콜 이 두개는 프로토콜인데 일단 퍼블리셔..