해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리 안드로이드 프로젝트의 코드를 보거나, 이력서를 보게 되면 클린 아키텍처 설계 경험, 혹은 멀티 모듈이라는 말이 등장하게 된다.멀티 모듈을 얘기하기 전 클란 아키텍쳐에 대해 먼저 알아야 한다.대부분이 알고 있는 클린 아키텍쳐는 로버트 마틴의 클린 아키텍처일 것이다.클린 아키텍처를 읽지 않아도, 적용해 본 적이 없어도 클린 코드와 더불..

Skils/Android
해당 프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현[Android] 비디오 타임라인 이벤트 처리 이전 글에서는 비디오 타임라인에 대해 시간대를 제공하고, 동영상 시점을 변화시켰습니다.이번글에서는 갤러리 앱처럼 편집한 구간에 대해 재생할 수 있는 컨트롤러를 적용해 볼 예정입니다. 기능 요구사항클립의 구간을 벗어날 수 없다.재생을 하는 도중 타임라인이 변경될 경우 동영상 재생을 정지한다.동영상이 재생하는 동안 타임라인도 같이 이..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] DataSource 적용 및 분리[Android] - Retrofit으로 에러 메시지 처리하기[Android] 영상 편집 UI 구현 이전글에선 영상 편집 UI를 구현했다면 이번 글은 타임라인에 대한 이벤트 처리에 대해 포스팅입니다.해당 화면은 삼성 갤러리 동영상 편집화면이고, 기능은 다음과 같습니다. 화면 요구사항1️⃣타임 라인 조절 시 동영상의 시점이 변한다.2️⃣왼쪽과 오른쪽 클립 이동시 해당 시점으로 동영상 시점이 변한다.3️⃣동영상의 재생 범위는 왼쪽 클립과 오른쪽 클립 사이이다.4️⃣타임 라인 클릭 시 영상의 시간대가 나와야 한다.5️⃣재생버튼..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리[Android] - Retrofit으로 에러 메시지 처리하기 영상을 다루는 프로젝트를 진행함에 있어서 영상 편집을 한번 시도해보고 싶었습니다.그러기 위해서 Android 기본 어플인 갤러리의 UI를 많이 참고했습니다.시중에 많은 동영상 편집 어플은 있지만, 실제로 블로그에 다룬 사람들은 많이 없었기에, 적절한 UI 컴포넌트를 찾는데 정말 오래 걸린 것 같습니다. UI 컴포넌트 후보는 여러 가지가 있는데요,SeekBar ❌https://developer.android.com/..
개요안드로이드에서 실시간 데이터의 변환을 감지해야 하는 화면이 여럿 있습니다.예를 들어 커뮤니티와 댓글창과 같이 다른 유저의 행동으로 인해 서버의 데이터가 변한 경우, 이를 다른 유저의 화면에도 반영해야 합니다.통상적으로 MVVM 패턴에서 프래그먼트나 액티비티의 뷰모델이 생성될 경우 init 블록이나 view가 생성될 당시 서버의 데이터를 로드해서 UI에 반영하게 되는 로직이 일반적이라고 생각합니다.즉 서버로의 데이터 호출은 딱 한번 일어납니다.하지만 어떻게? 다른 앱은 댓글과 게시글이 달릴 경우 다른 유저가 화면을 이동시키지 않아도(프래그먼트나 뷰모델이 재생산되지 않아도) 실시간으로 반영할 수 있는지 궁금했습니다. 구조를 간단하게 도식화하면 아래와 같습니다.뷰모델이 초기 생산되면 서버로 데이터를 요청합..
짧은 프로젝트를 하면서 TMDB API를 이용해 영화 관련 앱을 만들고 있었습니다.차별화된 기능으로 영화 이름에 대한 트레일러 영상을 제공하고 싶었습니다. TMDB API는 공공 API로 영화에 대한 세부 정보를 알 수 있습니다.https://developer.themoviedb.org/reference/intro/getting-started Getting StartedWelcome to version 3 of The Movie Database (TMDB) API. This is where you will find the definitive list of currently available methods for our movie, tv, actor and image API.developer.themovi..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기[Android] DataSource 적용 및 분리이번 프로젝트를 진행하면서 서버와 안드로이드를 동시에 개발하고 있는데요,사실 안드로이드 개발만 경험해 본 상황에서 가볍게 서버의 코드를 작성하고 있는 상황입니다.과거에 서버 개발자분들에게 무리하게 API를 요구했던 제 자신을 반성하게 되는 것 같습니다. 이번글은 오류 처리에 관한 글인데요,이번 프로젝트를 하면서 api를 처음 연결한 상황에서 에러 처리를 명확하게 짚고 넘어가고 싶어서 초반부에 코드를 굉장히 많이 수정했던 것 같습니다. 우선 제가 고려했던 점은 일괄된 에러처리를..
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin)[Android] 네이버 로그인 프로필 가져오기저번 PR에서 흥미로운 리뷰를 받았습니다. 사실 레포지토리 위에 하나의 계층을 두어 DataSource를 적용해 본 적이 없었습니다.상위 계층을 하나 두면 오히려 복잡하지 않을까라는 생각으로 학습을 한 뒤 코드로 적용해 봤습니다. 사실 안드로이드에서 권장하는 DataLayer의 방식은 DataSource -> Respository의 흐름입니다.하지만 굳이? Data Sources까지 만들어야 하는 이유가 뭘까에 대해서 궁금했습니다. 사실 이는 제가 Repository 패턴에 대해서 잘못 해석을 하고 개발을 했던 것 같습니다...
프로젝트 관련 글[Android] 네이버 간편 로그인(Kotlin)[Android] 자동 로그인 with DataStore(Kotlin) 저번 포스팅에서는 DataStore를 이용하면서 자동로그인을 구현해 봤습니다.과정에서 매번 DataStore를 사용하는 곳에서 DataStore를 주입해줘야 하는 상황이 생겼습니다.그 외에도 추후 개발에서 API와 Repository가 많이 생기기 때문에 개발 초반부에 Hilt를 적용하는 것이 생산성에 도움이 될 것이라고 판단하고 적용해 봤습니다. 기존의 코드는 Application에서 선언한 DataStore를 사용했지만, Hilt를 통해서 주입해 줬습니다.@InstallIn(SingletonComponent::class)@Moduleobject DataStoreMo..