코틀린이란 무엇인가? 왜 필요한가?

코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 코틀린은 간결하고 실용적이다. 자바코드와의 상호운용성(interoperability)을 중시한다. 코틀린은 기존 자바 라이브러리나 프레임워크와 함께 잘 동작하며, 성능도 자바와 비슷한 수준이다 대상플랫폼은 서버, 안드로이드 등 자바가 실행되는 모든 곳이다. 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 완전한 대체 언어를 제공하는 것이다. 더보기…

글쓴이 Charlezz,

How to solve momory leak of handler

The Lint feature has been enhanced, causing a lint (warning) on handler public class WeakRefHandler extends Handler { private final WeakReference<IHandlerMessage> reference; public WeakRefHandler(IHandlerMessage t) { reference = new WeakReference<IHandlerMessage>(t); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); IHandlerMessage iHandlerMessage = reference.get(); if (iHandlerMessage != null) { iHandlerMessage.handleMessage(msg); } } 더보기…

글쓴이 Charlezz,

Advanced Android Animation with Lottie

lottie는 안드로이드, iOS , 웹에서 쓸수 있는 라이브러리다. Adobe After Effects 로 만들어진 애니메이션을 Bodymovin 이라는 플러그인을 써서 json 형태로 변환시킨뒤 각 플랫폼에 맞게 쓸 수 있게 해주는 녀석이다.                                       로티에 대한 설정은 더보기…

글쓴이 Charlezz,

GLSurfaceView와 Fragment Animation 문제

같은 화면에서 GLSurfaceView, Fragment를 중첩해서 쓰는 경우에 생기는 문제가 있다. popBackStack 또는 remove, replace 등의 프레그먼트를 제거할때 애니메이션 효과를 추가하는경우에 레이아웃이 어긋나거나 애니메이션이 제대로 표현되지 않는 문제가 있다. 이런경우 프레그먼트객체를 미리 만들어두고 add를 미리 해둔 뒤 프레그먼트 매니저에서 show(), hide() 로 뷰를 살려두면 애니메이션은 잘 작동하나.. 보이지않는 프레그먼트까지 뷰객체를 살려놔야하므로 더보기…

글쓴이 Charlezz,

Notification 문제

Head-up notification Android 5.0(API 레벨 21)에서는 알림을 작은 부동 창에 나타낼 수 있습니다 (다른 말로 헤드업 알림이라고 부릅니다). 이것은 기기가 활성 상태일 때(즉, 기기가 잠금 해제 상태이며 화면에 켜져 있는 경우) 해당됩니다. 이와 같은 알림은 외견상 일반적인 알림의 소형 형태와 비슷해 보이지만, 해드업 알림에서는 작업 버튼도 표시한다는 점이 다릅니다. 사용자는 더보기…

글쓴이 Charlezz,

[Kotlin Basics] Returns and Jumps

Returns and Jumps 코틀린은 3가지 구조적 jump 표현식을 갖는다. return : 기본적으로 가장가깝게 둘러싸고 있는 함수 또는 익명 함수로 부터 리턴한다. break : 가장 가깝게 둘러싸고 있는 루프를 종료한다 continue : 가장 가깝게 둘러싸고 있는 루프의 다음 단계를 진행시킨다. 이러한 표현식은 큰 표현식중의 일부이다. val s = person.name ?: return 더보기…

글쓴이 Charlezz,

[Kotlin Basics] 제어문

제어문 : if, when, for, while If 문법 코틀린에서는 if 는 표현중하나로 값을 하나 리턴하게 된다. 그러므로 삼항연산자는 존재하지 않는다. 왜냐하면 if문법이 그 역할을 하고 있으니까.   // Traditional usage var max = a if (a < b) max = b // With else var max: Int if (a > 더보기…

글쓴이 Charlezz,