Skip to main content

Command Palette

Search for a command to run...

Server-Driven UI App

서버 주도 UI 방식으로 구현된 커머셜 앱 프로젝트

Updated
2 min read
Server-Driven UI App

Overview

이전 포스팅에서 다룬 개념을 실제 프로젝트에 적용해보고 관련 기술과 구현 경험을 쌓기 위한 토이 프로젝트입니다.

What I learned

  • Server-Driven UI (서버 주도 UI): 서버에서 UI 레이아웃과 데이터를 받아와서 클라이언트에서 렌더링하는 방식. 이를 통해 앱 업데이트 없이도 UI를 변경할 수 있습니다.

  • Custom JsonDeserializer (커스텀 JsonDeserializer): 커스텀 JsonDeserializer를 구현하여 다양한 ListItem 타입을 적절하게 직렬화 및 비직렬화 하는 방법을 배웠습니다. 이를 통해 서버에서 받은 JSON 데이터를 객체로 변환하여 활용할 수 있습니다.

  • View Holder Creation Pattern (뷰 홀더 생성 패턴): ViewHolderGenerator를 사용하여 다양한 ViewHolder를 생성하고 재사용하는 패턴을 익혔습니다.

  • Dynamic View Binding Creation (뷰 바인딩 동적 생성): 뷰 바인딩을 동적으로 생성하는 방법을 배웠습니다. 이를 통해 다양한 레이아웃에 대해 동적으로 바인딩을 생성하고 사용할 수 있습니다.

  • Reflection (리플렉션): DataBindingUtil 내 static 으로 선언된 inflate 함수를 호출하기 위해 ViewGroup.toBinding() 함수에서 사용되었습니다. 리플렉션을 사용하여 클래스의 메서드를 동적으로 호출하고 객체를 생성하는 방법을 익혔습니다. 이를 통해 런타임에 동적으로 타입에 접근하고 조작할 수 있습니다.

  • Generics (제네릭): 다양한 타입의 뷰 바인딩을 처리하기 위해 ViewGroup.toBinding() 함수에서 사용되었습니다. 제네릭 타입 파라미터 V를 사용하여 함수가 다양한 타입의 ViewBinding을 반환할 수 있도록 합니다.

  • Reified Type Parameters (실체화된 타입 파라미터): ViewGroup.toBinding()에서 반환타입을 ViewBinding의 자식 제네릭으로 사용하는데 이를 받는 뷰홀더는 ViewDataBinding 타입을 받는다. 이때 제네릭 타입 파라미터를 Reified 를 통해 실체화하여 런타임에 타입 정보에 접근해 DataBindingUtil 내 inflate 함수를 호출한다.(ViewDataBinding은 ViewBinding 을 구현함)

  • Hilt (의존성 주입): Hilt를 사용하여 의존성 주입을 구현하는 방법을 배웠습니다.

Key Functions

7 views

More from this blog

정적 코드 분석이란?

정적 코드 분석(Static Code Analysis)은 소스 코드를 실행하지 않고 분석하는 기법이다. 코드 품질을 개선하고 버그, 보안 취약점, 코드 표준 위반 등을 조기에 발견하는 데 사용된다. 코드 정적 분석은 개발 초기 단계에서 오류를 발견해 수정 비용을 줄이고 전반적인 코드 품질을 향상시키는 데 도움을 준다. 주요 특징 및 장점 자동화 도구 사용: 정적 분석 도구로 소스 코드를 자동으로 분석해 문제점을 발견한다. 코드 품질 향상: ...

Jun 17, 20242 min read16
정적 코드 분석이란?

안드로이드 앱 개발의 CI/CD Overview

이전 포스팅(CI/CD, DvOps의 이해)에서 소프트웨어 분야의 CI/CD, DevOps 에 대해 간략히 알아봤다. 이번 포스팅에서는 회사 기술 블로그등을 통해 최근 안드로이드 분야의 CI/CD 가 어떻게 구성되어 있는지 확인해보고 이후 포스팅에서 각각의 기술을 좀 더 상세히 학습해보려고 한다. 그럼 시작하자. 사전 조사 우선 이전 라인의 안드로이드 CI&Unit Test 포스팅 에서 알게된 키워드를 위주로 다른 회사들의 사례를 찾아봤다. 그...

Jun 14, 20243 min read194
안드로이드 앱 개발의 CI/CD Overview

GreenBot

58 posts