
1. 코틀린 버전 1.4 에서 1.5 대로 업데이트 후 코드 작동 안함 얼마전 배포된 코틀린 버전 15.2 을 받고 나서 원래는 1.4.30 버전에서 잘 동작하던 코드가 동작하지 않는 현상을 발견했다. 처음에는 intelij프로젝트 설정을 잘 못한건가 해서 계속 다시만들고 source root directory 도 바꿔가면서 몇 시간동안 삽질을 하였다. 해당 코드는 코테를 보면서 알고리즘 문제를 풀며 작성한 코드로 해당 테스트에서 사용한 코틀린 컴파일러 버전대는 1.3.x 이었던 걸로 기억한다. 불과 1~2주 정도 전이라 나의 ide도 코틀린 1.4 버전대를 사용하고 있어서 문제가 되지 않았다. 문제의 코드 class Solution { fun solution(bricks: IntArray, n: Int..

1. 안드로이드 유튜브 앱 만들어보기 안드로이드 유튜브 앱을 비슷하게 만들어보면서 익혔던 내용들을 정리해보았습니다. ExoPlayer 로 동영상을 재생하는 방법과 모션 레이아웃을 통해서 재생중인 동영상 프레그먼트를 아래로 쓸어 내리면 유튜브와 비슷하게 하단에서 재생이되는 방법을 주로 다뤄 봤습니다. 주요 기능 서버에서 동영상 목록 받아와서 보여주기 메인에서 동영상 항목 클릭 시 하단에 내려져 있던 프레그먼트가 올라오면서 재생 재생 도중 영상 부분을 쓸어 내리면 하단 배너형식으로 재생 및 일시정지 가능 모션 레이아웃, 리사이클러뷰 사이 스크롤이 가능하도록 구현 사용 기술 MotionLayout ExoPlayer mocky 결과 화면 1.1. 기본 레이아웃 구성 기본 메인 레이아웃은 위와 같이 구성되어있으며..
1. Android 화면 회전, 돌려도, 돌아가도 데이터 유지 시키기 엑티비티의 경우 화면을 회전하는 경우 지워지고 다시 만들어지게 되는데 이때 액티비티에 입력되어있는 등의 정보들이 날라갈 수 있습니다. 그렇기 때문에 saveInstanceState에 돌아가기 전의 상태를 저장해두었다가 다시 OnCreate() 시 원복할 필요가 있습니다. 안드로이드 LifeCycle(생명주기)는 6가지의 콜백함수로 관리된다. 화면이 가로/세로 모드 변경될 때 onDestory() 이후 onCreate() 가 다시 불린다. 더 정확히는 onPause() -> onStop() -> onDestory() 로 액티비티가 종료된다. 이후 다시 onCreate() -> onStart() -> onResume() 을 통해 다시 실행..
1. 안드로이드 dp 값을 px 값으로 알맞게 변환해주는 코드 안드로이드 개발 시 dp 값을 사용해서 ui를 나타내게 되면 각 기기의 해상도나 크기마다 알맞은 비율을 유지하면서 디자인을 보여줄 수 있습니다. 하지만 간혹 가다 dp 값이 아닌 px 값을 인자로 받는 매서드를 사용한다던가 px값이 필요한 경우 알맞게 구해주는 것이 필요합니다. 아래 코드는 dp 값을 context의 알맞은 dp값으로 변환해주기 때문에 융통성있게 마찬가지로 px 을 거의 dp 를 사용하는 것 처럼 사용해줄 수 있습니다. px값이 불가피하게 필요한 경우 사용하시면 되겠습니다. private fun dp2px(context: Context, dp: Int): Int { return TypedValue.applyDimension( ..

1. 안드로이드 에어비앤비 앱 비슷하게 만들어 보기 네이버 맵 api 를 이용해서 에어비앤비와 비슷한 안드로이드 앱을 만들어보았습니다. 네이버 지도를 메인으로 숙소 목록을 서버(mocky 사용)에서 받아와 지도상에 마커로 나타내주고 하단에 좌우로 스크롤 가능한 페이져를 둬서 숙소를 살필 수 있습니다. 주요 기능 네이버 지도 api 를 사용해서 지도를 보여줌 Mock api 를 사용하여 예약가능한 숙소 목록을 지도에 표시 하단 시트뷰를 통한 숙소목록을 인터렉션하게 표현 현재 보고 있는 숙소의 위치를 지도에서 중앙으로 연동 숙소를 눌러 외부로 공유할 수 있음 사용 기술 Naver map api mocky ViewPager2 CoordinatorLayout BottomSheetBehavior retrofit ..