본문 바로가기
[android] JobScheduler 호출 flow 분석 [android] JobScheduler 호출 flow 분석 JobScheduler(JobSchedulerImpl ) -JobScheduler 는 abstract class실제 안드로이드 구현체는 JobSchedulerImpl 이며, 이는 constructor 에 전달된 binder 를 통해 통신을 한다. -JobShcedulerImpl 에 전달되는 Binder 는 JobSchedulerService 의 inner class 로 있는 JobSchedulerStub 이다.Stub 에서는 JobSchedulerService 의 여러 함수로 역할을 위임(delegate) 시킨다. JobService-JobService 도 abstract class 로 startJob, stopJob 을 구현하는 Binder .. 2018. 4. 30.
[Kotlin] 장점, 단점, 그리고 아쉬운 점 이야기 [Kotlin] 장점, 단점, 그리고 아쉬운 점 이야기 https://medium.com/keepsafe-engineering/lessons-from-converting-an-app-to-100-kotlin-68984a05dcb6https://medium.com/keepsafe-engineering/kotlin-the-good-the-bad-and-the-ugly-bf5f09b87e6f -위 링크의 글을 쓴 필자는 마켓에 출시된 Java 로 되어 있는 앱을 Kotlin 으로 전환했다.많은 사람들이 Kotlin lib 때문에 dex method limit 이 걸릴 것을 걱정하지만,실제 converting 후 proguard 적용시 method count 는 10% 줄어들고, code line 은 30% 줄.. 2018. 1. 15.
[Objective-C] 메시지 송신 패턴 [Objective-C] 메시지 송신 패턴 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 15. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 15.1. 앱과 실행 반복 * 15.1.1. 실행 반복 -마우스 클릭 등의 이벤트를 OS에서 받아 그에 따른 처리를 하는 루틴 실행을 반복하는 부분이 있는데, 이것을 실행 반복(run loop) 또는 이벤트반복이라고 부른다. -GUI 를 갖춘 Cocoa 앱에서 실행 시작 이후에는 반드시 하나의 실행 반복이 시작된다.이것을 메인 실행 반복이라고 부른다.동시에 앱 동작과 리소스 관리를 하는 객체가 생성되는데, 이것이 Ma.. 2018. 1. 7.
[xcode] suppressing warning - incompatible pointer types sending … [xcode] suppressing warning - incompatible pointer types sending … -Objective-C 가 delegate 를 id 형태로 처리하기 때문에 워낙에 이런 warning 이 잘 발생하므로,항상 casting 해주는 것보다 아래와 같이 부분 suppressing warning 을 해주는 것이 좋다. -아래와 같이 해당 warning 을 초래하는 코드 부분만 suppress warning 을 할 수 있다.전체에 대한 warning 제거가 아니기 때문에 훨씬 안전하다.단, warning 제거할 때에는 에러가 발생할 소지가 높은 부분이기 때문에 눈여겨 보아야 한다. -#pragma clang diagnostic push#pragma clang diagnosti.. 2017. 12. 22.
[ios/reference] Animating Layer Content [ios/reference] Animating Layer Content https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/CreatingBasicAnimations/CreatingBasicAnimations.html -Animation 은 보통 그 요청이 끝날 때까지 지속된다.명시적으로 animation 을 끝내기 위해서는... removeAnimationForKey: 또는 removeAllAnimations 함수를 호출하면 된다. -Animation 을 멈추면, 원래의 현재값으로 돌아간다.만약 Animation 을 멈춘 시점에 그 값을 유지하려면, presentation tree 를 이용해서.. 2017. 11. 22.
[ios/reference] Setting Up Layer Objects [ios/reference] Setting Up Layer Objects https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/SettingUpLayerObjects/SettingUpLayerObjects.html#//apple_ref/doc/uid/TP40004514-CH13-SW12 -iOS 앱에서 Core Animation 은 항상 enable 되어 있고, 모든 view 는 layer 가 backed 되어 있다.OS X 는 Core Animation 을 명시적으로 enable 시켜야 한다. -Layer-backed view 는 CALayer 를 기본으로 만든다.그러나 상황에 따라 다른 Lay.. 2017. 11. 21.
[Effective Objective-C] #28 프로토콜을 이용해 익명 객체를 제공하라. [Effective Objective-C] #28 프로토콜을 이용해 익명 객체를 제공하라. 출처 : Effective Objective-C -프로토콜은 프로토콜을 따르는 객체가 구현할(또는 선택(optional)이 아니라면 반드시 구현해야 할) 메서드들을 정의한다.프로토콜은 API 의 자세한 구현 내용을 숨기기 위해 사용할 수 있는데, 그 방법은 반환하는 객체를 프로토콜을 따르는 평범한 id 타입으로 반환하는 것이다.이 방법을 쓰면 특정 클래스 이름이 API 에 노출되지 않는다.이는 인터페이스 뒤편에 수많은 종류의 클래스가 있고 그 모든 클래스를 명시하고 싶지 않을 때 유용하다.다른 말로 하면 하나의 공통 기초 클래스(common base class) 타입으로 반환해야 하는 API 에서 반환해야 할 클래.. 2017. 9. 12.
[Effective Objective-C] #27 클래스 확장 카테고리를 이용해 상세한 구현을 숨기라. [Effective Objective-C] #27 클래스 확장 카테고리를 이용해 상세한 구현을 숨기라. 출처 : Effective Objective-C -클래스가 외부로 공개한 메서드와 인스턴스 변수 이외의 메서드와 변수를 갖길 원할 때가 많이 있다.일단 이런 인스턴스 변수와 메서드들을 외부로 공개하고 문서에 내부용(private)이기 때문에 사용하면 안 된다고 명시할 수 있다.무엇보다도 오브젝티브-C 의 어떠한 메서드나 인스턴스 변수도 실제로는 프라이빗이 아니다.이는 동적 메시징 시스템이 동작하는 방식 때문이다.그렇다 하더라도 꼭 공개할 필요가 있는 것만 공개하는 것이 좋은 사용 방법이다. -클래스 확장 카테고리는 일반적인 카테고리와는 다르게 확장(continuation)이라는 클래스의 구현 파일에 정.. 2017. 9. 11.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 #17 : description 메서드를 구현하라 인스턴스를 설명하는 유용한 문자열을 제공하려면 description 메서드를 구현하라. 객체가 출력하는 내용을 디버깅할 때 좀 더 자세해지길 원한다면 debugDescription 을 구현하라. #18 : 가변 객체보다는 불변 객체를 사용하라 가능하다면 객체를 불변(immutable)으로 만들라. 프로퍼티를 내부에서 설정할 수 있게 하려면 클래스 확장 카테고리로 읽기 전용 속성을 읽기-쓰기로 확장하라. 가변 컬렉션을 프로퍼티로 노출하기보다는 컬렉션에 포함된 객체를 조작할 수 있는 메서드를 제공하라. #19 : 명확하고 .. 2017. 9. 8.
반응형