목록android (14)
개발자이야기

Viewpager PageTransFormer 이번 포스팅은 viewpager 애니메이션을 간단히 공유하려 했으나 허전한거 같아 Viewpager PageTransFormer에 대해 간단히 알아보려고 한다. 11번가 앱을 사용하는 중 11번가의 viewpager 롤링 애니메이션이 마음에 들어 구현해보게 되었다. 11번가 viewpager 롤링 애니메이션은 아래와 같다. 혹시 아래의 캡처화면이 문제가 된다면 삭제하도록 하겠습니다. 광고아님!! 예시이미지 입니다! Viewpager.PageTransFormer PageTransFormer는 무엇일까? PageTransformer는 페이지가 스크롤될 때마다 호출된다. 그리하여 페이지가 넘어갈때 애니메이션을 직접 커스텀할 수 있다. Android 3.0 이상에서..

android Jetpack Jetpack은 개발자가 고품질의 앱을 더 쉽게 작성할 수 있도록 도와주는 라이브러리 입니다. 단어에서부터 벌써 사용하면 날아갈거 같네요 AndroidX androidx네임스페이스 내의 아티팩트 는 Android Jetpack 라이브러리를 구성합니다 . SupportLibrary 와 마찬가지로 androidx네임스페이스의 라이브러리 는 Android 플랫폼과 별도로 제공되며 Android 릴리스 간에 이전 버전과의 호환성을 제공합니다. (공식문서 문구 인용) androidX는 더이상 지원되지 않는 SupportLibrary 개선된 버전입니다. 아니 그래서 AndroidX가 Jetpack 이라는 거야 뭐야? androidX와 Jetpack은 같은것이라 생각하면 됩니다. andr..

android gpu 렌더링 이번엔 android gpu 렌더링에 대해 알아보겠습니다. gpu 렌더링이란? android 에서 ui 작업은 main thread에서 처리가 됩니다. 이러한 ui 작업처리는 사용자에게 직접적인 영향을 미치게 됩니다. gpu 렌더링 도구는 이러한 활동을 시각화 하여 표현해 줍니다. 활성화 방법 1. 기기의 설정 -> 개발자 옵션 2. 모니터 카테고리 -> 프로필 GPU 렌더링 또는 프로필 HWUI 렌더링 -> 화면에 막대로 표시 설정 출력 검사 가로축의 각 세로 막대는 프레임을 나타내며 각 세로 막대의 높이는 프레임을 렌더링하는데 소요된 시간(ms)을 나타냅니다. 녹색 가로선은 16ms를 나타냅니다. 초당 60프레임을 달성하려면 각 프레임의 새로막대가 이 선 아래 있어야 합니..

RecycledViewPool 이번엔 RecycledViewPool을 이용하여 RecyclerView 를 최적화 하는 한가지의 방법에 대해 알아보겠습니다. RecyclerView 의 핵심은 단어 그대로 뷰의 재활용 입니다. 뷰의 새로운 생성은 화면의 버벅임을 유발하는 주범이 되며 이를 최적화 할 필요가 있습니다. 우린 위와같은 ui에서 RecyclerView 가 뷰를 재사용 해 줄 것을 기대하며 사용합니다. 하지만 모든 상황에서 위와같은 ui만 있을 순 없습니다. 아래의 예시를 보겠습니다. Google Play의 화면 입니다. 세로 RecyclerView 내에 동일한 형태의 가로 스크롤 RecyclerView 가 몇개 있는 것을 확인할 수 있습니다. 위의 가로 형태의 뷰가 완벽히 동일한 것이며 같은 ty..
bundle 이번엔 android bundle에 대해 알아보겠습니다. bundle이란?? 단순히 여러가지의 타입의 값들을 저장하는 묶음 이라고 생각 합시다. 그 안에서는 map을 이용하여 값들을 저장합니다. val bundle = Bundle() bundle.putString("key","value") 단순히 위와 같이 사용합니다. map 의 형식과 같으며 실제로 내부적으로는 map 을 사용하여 값을 저장합니다. Intent android 개발을 하다보면 필히 intent를 사용하며 값을 전달해야 하는 경우가 생깁니다. 그럴땐 우린 아래와 같이 값 전달을 합니다. val intent = Intent(this, Activity::class.java) intent.putExtra("data", "값 받아라!..

android launchMode 이번엔 android개발에 있어 꼭 제대로 이해하고 있어야 하는 launchMode에 대해 알아보겠습니다. launchMode standard AndroidManifest 에서 launchMode 설정을 하지 않는다면 기본으로 설정되는 값입니다. 단순히 액티비티를 화면에 쌓아올립니다. 이런식으로 standard로 설정된 activity는 계속해서 쌓이게 됩니다. singleTop 생성되는 인스턴스가 이미 현재 스택의 맨 위에 있다면 새 인스턴스를 생성하지 않고 onNewIntent() 메소드를 호출합니다. standard와 다른점은 현재 1의 text를 출력 해 주는 activity가 최상단에 있을경우 똑같은 activity를 intent를 활용해 생성하여도 activi..

android lifecycle 이번엔 android 수명주기에 대해 상황별로 알아보도록 하겠습니다. android 는 위와같은 수명주기를 갖고 있습니다. 화면과 함께 간단히 로그를 찍어서 살펴보겠습니다. 기본적인 상황 1. 메인 액티비티의 실행 onCreate ↓ onStart ↓ onResume 2. app background 상태 onPause ↓ onStop 백그라운드 상태에서 앱 재진입 onRestart ↓ onStart ↓ onResume 3. intent 실행 수명주기 2번인 위와 동일 위와같은 수명주기를 확인할 수 있습니다. onActivityResult (deprecated) onActivityResult는 deprecated 되었습니다. val result = registerForAct..

Dagger DI(의존성주입)는 갈수록 비대해지는 프로젝트와 요구사항들과 수정사항들이 많아지는 요즘 개발 시장에서 계속해서 중요하게 다뤄지고 있습니다. (과거에는 제가 어려서 잘 모르겠습니다..) Dagger는 팩토리패턴과 연관성이 깊습니다. 팩토리 패턴에 대해 추후 포스팅 해보겠습니다. 의존성주입이란? https://webprogramcustom.tistory.com/26 의존성주입(DI) android dagger 해당 글은 kotlin을 기반으로 작성 되었습니다. 의존성 주입(DI)이란 무엇일까? 간단하게 객체를 외부에서 생성하여 넘겨주는 것을 말한다. class Car { var engine: Diesel = Diesel() var tier: SnowTier = Snow.. webprogramcu..