[카테고리:] 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번째 경우에 관해 얘기를 하겠다. 이것이 중요한 이유는 이런 것들을 잘 지키지 않으면 프로그램이 죽기 때문이다. 왜 죽는지 디버깅…