[카테고리:] IOS

  • iOS 개발 추정 시간이 어긋나는 경우

    제공

    호랑이 담배피던 시절에 아이폰은 화면 사이즈가 동일 하기 때문에, 안드로이드 보다 개발이 쉽다고 하던 때가 있었다. 하지만, 지금은 아이폰도 안드로이드 못지 않게 화면 사이즈가 다양하다. 게다가 아이패드 까지 원 코드 베이스로 작성해야 할 때도 많다. 여기까지는 하다보면 일반적으로 예상 할 수 있는 범주이다. 그러나, 다양한 버전의 iOS 를 지원해야 한다면 할거리가 좀 더 추가된다. 일반적으로…

  • Swift 4 문서 번역

    제공

    https://github.com/kimjj81/SwiftWorkshopAlpha 스위프트 4 베타 딱지 붙어있을 때 시작한 번역인데, 약 1달 정도 걸렸습니다. 번역의 어려움을 다시 한번 깨달았고, 그동안 역자들에게 역정냈던 걸 반성도 하게 됩니다. ^^; 각 챕터별로 나눠서 Swift Playground 로 만들었습니다. 문서에 있는 예제도 같이 수록해서 볼 수 있게 하였고, IPad Swift Playground 에도 잘 들어가네요.   다음엔 또 뭘 해볼까나…

  • Swift – 생성자

    제공

    개인적으로 스위프트가 문법 구조가 맛깔나서 매력적인 언어임에는 틀림 없지만 쉬운 언어는 절대 아니라고 생각한다. 그 이유는 여러가지 지켜야 할 사항이 많기 때문이다. 어렵다는건 두가지 측면이 있는데, 논리적으로 복잡해서 어려운 것이 있고 양이 많아서 어려운 것이 있다. 스위프트는 특정한 부분에서 외워야 할 것이 많은데, 특히 생성자에 관한 규칙이 그러하다. 핵심 키워드 : Two-Phase Initialization, Designated Initializer, Convenience…

  • XCode – 파일 내 구분을 위한 주석 달기

    제공

    Objective-C 에서 XCode 의 메소드 탐색 기능을 활용 할 때 #pragma mark 를 사용했다. #pragma mark – Start 라고 했을 때 아래 처럼 나온다. Swift 에서는 보통 2가지 방식을 이용하는 것 같다. extension 을 쓰는 것과, 주석을 이용하는 것이다. 1. Extension Extension 을 이용해서 구분을 하는 방식이 있다. [code language=”swift”] class PTSummaryViewController: UIViewController{ ………. }…

  • GCD 제대로 쓰기

    제공

    출처 : Modernizing Grand Central Dispatch Usage WWDC 2017 GCD 최적화 하기 결론부터 말하자면, GCD Queue (다른 동시성 프로그래밍 기법도 동일한 원리가 적용될 것이다)를 이용 할 때 1)너무 잦은 Context Switching 이 일어나게 프로그래밍 하지 말라는 것이다. 또한 2)GCD 큐의 계층화를 최적화 하라. 이것만 개선해도 1.3배의 속도 증가가 나왔다. 이런 견지에서 애플은 iOS, Mac OSX 양측…

  • Understanding Undefined Behavior

    제공

    소개 Undefined Behavior (이하 비정의 동작)을 이해하고 디버깅하는 방법을 소개하는 세션입니다. C 언어 계열(C/C++,ObjectiveC/C++)에 특히 유용한 세션이 되겠습니다. 바로 전에 관련된 글(WWDC 2017 – Finding Bugs Using XCode Runtime Tools)을 썼으니 먼저 읽고 오시면 더 좋겠습니다. 저번 포스트에도 몇가지 유형을 적었는데 실제로 200개 이상의 유형이 있다고 합니다. 출처 : Understanding Undefined Behavior 참고링크 Clang Documentation…

  • WWDC 2017 – Finding Bugs Using XCode Runtime Tools

    제공

    원본 주소 https://developer.apple.com/videos/play/wwdc2017/406/ 1. 소개 XCode Runtime Tools 를 통해서 버그를 찾는 기법을 소개하는 세션이다. 아래와 같은 내용을 다룰 예정이다. Clang Documentation for Address Sanitizer Heap, Stack, Global 변수의 Out-of-bound 메모리 해제 후 사용 시도 리턴 후 사용 시도 접근 가능 범위 밖에서 사용 시도 잘못된 메모리 해제(중복, 유효하지 않은 변수) 메모리 누수 Clang Documentation…

  • WWDC 2017 – Debugging with Xcode 9 요약

    제공

    출처 :https://developer.apple.com/videos/play/wwdc2017/404/ 원격 디버깅, SprikteKit, SceneKit 디버깅에 대해 설명한 세션. 1. 원격 디버깅 드디어 원격 디버깅이 가능해졌다. 카메라, AR 개발, 노트북 AC 전원이 아닐 때, 애플 TV 개발 할 때, 그냥 USB 꼽기 싫을 때, TV OS 앱을 개발 할 때 아주 유용하다. 요구사항 iPhone, iPad, or iPod Touch running iOS 11 Apple TV running…

  • Properties in Swift , Concurrency

    제공

    swift properties, concurrency programming

  • iOS 멀티 스레드를 고려한 변수 사용

    제공

    Multithread 그림 1. iOS App’s Threads 모든 iOS Multithread 앱이며, 간단하면서도 유의해야 할 원칙들이 있다. 모든 UI 갱신에 관련된 작업은 main thread (그림 1의 Thread 1) 에서 수행되어야 한다. Thread-unsafe 변수는 서로다른 스레드에서 동시에 접근하면 위험하다. 여기에서는 2번째 경우에 관해 얘기를 하겠다. 이것이 중요한 이유는 이런 것들을 잘 지키지 않으면 프로그램이 죽기 때문이다. 왜 죽는지 디버깅…