AAC – LiveData (의역)

LiveData LiveData는 생명주기를 알 수 있는 데이터 홀더 클래스입니다. 무슨 뜻이냐면 옵저버가 LifecycleOwner에 추가 될 수 있고, LifecycleOwner가 활성화 되어있을때 래핑된 데이터들의 수정사항에 대한 알림을 받을 수 있음을 뜻합니다. 상태가 STARTED 또는 RESUMED이면 LifecycleOwner는 활성상태 입니다. 더보기…

AAC – ViewModel (의역)

Android Arcitecture Component – ViewModel    ViewModel 클래스는 UI  관련된 데이터를 생명주기를 고려한 방식으로 저장하고 관리하도록 설계 되어있습니다. ViewModel 클래스를 사용하면 화면 회전과 같은 구성 변경 사항에도 데이터가 그대로 유지 된다. Note : ViewModel을 안드로이드 프로젝트로 더보기…

안드로이드 단위 테스트 (1)

소프트웨어 개발에서 테스트는 종종 저평가 되거나 무시되버리곤 한다. 모바일앱에서 테스트 코드를 하나도 작성하지 않고 앱을 출시하는 경우도 허다 합니다.   대부분 개발자가 유닛테스트를 적용하지 않는 이유는? 모바일 앱은 프론트앤드니까 대부분은 백엔드에서 테스트해야 되지! 모바일은 유닛테스트부분에서는 더보기…

테스트 더블

테스트 더블(test double) 테스트 작성시, 테스트 대상 코드와 상호작용하는 객체   테스트 더블의 역할 테스트 대상 코드를 격리한다. 테스트 속도를 개선한다. 예측불가능한 실행 요소를 제거한다. 특수한 상황을 시뮬레이션한다. 감춰진 정보를 얻어낸다.     테스트 더블의 더보기…

(AnimatedVectorDrawable) Turn Record Button into StopButton

AnimatedVectorDrawable? AnimatedVectorDrawable 클래스는 VectorDrawable, ObjectAnimator 또는 AnimatorSet과 함께 동작하는 애니메이션 효과 주는 클래스입니다 API25레벨 이전에는  UI 쓰레드에서 동작했던것과는 달리, API 25레벨부터는 RenderThread에서 동작합니다. 그래서 UI 쓰레드에 작업량이 많아도 동작이 매우 부드럽습니다. UI쓰레드가 응답하지 않아도 UI쓰레드가 더보기…

자바 버전 다운그레이드 9->8 for mac only

회사에서 쓰는 아이맥 Android Studio에서 gradlew 커맨드를 쓰려고 하니, java 9.0.x에서는 알아들을수 없는 커맨드라고 나온다… 난 자바를 업데이트한적이 없는데…   왜 인지 모르겠지만 다운그레이드 하기로 맘먹고 자바8을 설치했지만 여전히 9.0.x버전이 건재하다.   그래서 다음 순서대로 더보기…

Screen Recorder 만들기

ScreenRecorder 화면 녹화 프로세스 비디오 코덱으로 부터 얻은 Surface를 통해 VirtualDisplay를 생성하였다면, 비디오코덱의 출력버퍼로부터 부호화된 프레임 버퍼를 얻을수 있다. AudioRecord로 부터 얻은 오디오 버퍼(PCM)를  오디오 코덱의 입력버퍼에 넣고 큐에 넣는다면, 출력버퍼로부터 부호화된 오디오 버퍼를 얻을수 더보기…

Statusbar 에서의 Notification Icon

노티피케이션 제작 가이드 : https://developer.android.com/guide/topics/ui/notifiers/notifications.html?hl=ko 노티피케이션 아이콘 디자인 가이드 : https://material.io/guidelines/patterns/notifications.html?hl=ko   롤리팝이후 메테리얼 디자인이 도입되면서, 노티피케이션 아이콘은 반드시 흰색이여야 하며 alpha 값 조절을 통해 아이콘의 디자인을 결정해야 한다.  

 

디폴트 값과 자바 (@JvmOverloads)

자바에는 디폴트 파라미터 값이라는 개념이 없다. 그러므로 오버로딩한 메소드가 많아지는 경우가 있다.   코틀린에서는 적용된 디폴트파라미터 예제

위함수를 호출하는경우 foo(123) //디폴트파라미터는 생략가능 foo(123, “test”) // 디폴트값이 있으나 test로 덮어씌움 foo(param2=””, param1= 123) // 파라미터 더보기…

RecyclerView를 iOS의 UIPickerView 처럼 fade-in, fade-out 적용하기

롤리팝 출시 이후로 RecyclerView가 도입되고 AdapterView를 커스터마이징 하기가 편해졌다. 오늘은 UIPickerView 스타일로 RecyclerView의 투명도를 주고 싶어서 레이아웃매니저를 다음과 같이 적용했다.