목록전체 (195)
코딩하기 좋은날
게임용 앱을 만들때 업적관리, 로그인, 리더보드 등의 기능을 쉽게 이용하기 위해서 Google Play Game을 연동하여 사용 할 수 있습니다. 따로 위의 기능들을 직접 구현할 필요가 없기 때문에 + 유저들이 친숙하기 때문에 편하게 사용 할 수 있는데요. 보통 게임을 만들땐.. Unity를 많이 사용하셔서 Unity에서 연동하는 방법은 많이 있는데.. 네이티브로 연동하는 것에 대해서는 정보가 많이 없고 문서도 조금(?) 불친절 하더라구요. 특히 firebase와 함께 연동하는 부분에서 삽질을 조금 하였는데.. 기록용 + 다른분들이 삽질을 조금 줄였으면 하는 마음에 연동하는 방법에 대한 글을 써보려고 합니다. 우선 네이티브 앱에서 Google Play Game을 연동하기 위해서는 아래와 같은 과정을 거쳐..
어느덧 2021년의 공채 시즌이 돌아왔더라구요!! 작년 12월에 입사를 해서 시간이 정말 빠르게 지나간 것 같습니다. 그동안 당연히.. 알고리즘은 손을 완전히 놓고 있었는데요. 그러던 찰나에 2021 토스 NEXT가 시작 된걸 알게 되어서 한번 신청을 해봤습니다. 토스같은 경우는 타기업과 꽤나 차이점이 있었는데요. 일단은 지원 직군마다 문제가 다르다는 것이 신선했습니다. 보통은 코딩테스트의 경우 동일한 문제를 응시하기 때문인데요. 저는 Android로 지원을 하였고 Android 지원자의 경우 Kotlin / Java 만을 사용하여 코딩테스트를 봐야 했습니다. 어느덧.. Kotlin에 익숙해진 저라서 오히려 좋았습니다.. 객관식 문제가 8개 정도 있었고 코딩테스트 문제가 3개 나왔었습니다. 요거 11개를..
안드로이드에서 애니메이션을 구현하는 방법은 여러가지가 있습니다. ObjectAnimator, ViewPropertyAnimator, ValueAnimator, OpenGL 등등을 이용 할 수 있는데 개인적으로 저는 ValueAnimator를 자주 사용합니다. ValueAnimator만 사용하더라도 ObjectAnimator나 ViewProperyAnimator로 할 수 있는 동작을 동일하게 할 수 있고, ValueAnimator는 다양한 뷰에 대해서 동시에 처리가 가능하기 때문에 자주 사용하는데요. 예시로 들 애니메이션은 아래의 영상에 나오는 카운트 다운입니다. 화면 상단에서 애니메이션이 진행됨에 따라 화면의 중앙까지 숫자가 내려오며 알파값이 점점 증가하는 애니메이션 입니다. 아래는 구현 코드입니다. V..
안드로이드에서 화면 이동시에 Transition을 사용하는 경우가 있는데요. API 29, 30레벨에서 Exit Transition이 동작하지 않는 버그가 있습니다. 예를 들어 A,B,C 3개의 액티비티가 있는 경우 A -> B -> C 로 진입시 EnterTransition 모두 정상 동작 C -> B Exit Transition 정상 동작 B -> A Exit Transition 동작 X (???) 이런 현상이 있습니다. 또한 이현상은 API 29,30 레벨에서만 발생하고 있는데요. 원인 파악을 조금 해보았습니다. 우선 해당 현상과 관련 있는 클래스들 입니다. Activity.java EnterTransitionCoordinator.java ExitTransitionCoordinator.java Ac..
저는 작년 하반기에 네이버, 카카오, 라인, 쿠팡의 공개채용에 지원을 했었습니다. 그당시에 코딩테스를 치고 나서 후기를 쓴답시고 썻는데 지금보니 정말정말 대충 썻었더라구요 ㅋㅋㅋㅋㅋㅋㅋㅋ... 요즘에 또 상반기 채용 시즌이라 그런가 관련 키워드로 유입되시는 분들이 있는거 같은데 너무 대충 써서 다시한번 써보려고 합니다. 제가 블로그에 따로 쓰진 않았지만 저는 작년 하반기에 위 4개의 기업에 지원을 했었고 네이버와 카카오 블라인드 공채에 최종 합격을 하고 라인과 쿠팡은 코딩테스트에서 떨어졌습니다. 아직 완전 주니어 개발자라 여유가 없기도 했고, 뭔가 이젠 학생때 처럼 막 글을 쓰지는 못하겠더라구요 ㅎㅎ.. 앞으로 그래도 안드로이드 관련해서 새로나온 기술들이나, 학습하고 있는 것들에 대해서 포스팅을 종종 하..
RecyclerView 이글을 읽으시는 분들은 아마도, RecyclerView를 사용해 본적이 있으신 분들일 것입니다. RecyclerView는 다수의 아이템들을 정의한 ViewHolder에 맞게 추가하고, 현재 스크린에 보여지는 아이템들만 생성하여 보여주며, 스크롤 하여 아이템들이 변경될 때 미리 생성된 ViewHolder들을 Recycle하여(ViewCache, RecycledPool 을 활용하여) 효율적으로 사용할 수 있는 컨테이너라고 할 수 있습니다. 기본적으로 RecyclerView를 사용하기 위해서는 Adapter, LayoutManager, ViewHolder가 필요한데 이중에서 Adapter는 데이터 리스트를 실제 눈으로 볼 수 있게 item으로 변환하는 중간다리 역할을 합니다. Recyc..
오랜만에 글을 쓰게 되었습니다!! 안드로이드에서 경과 시간을 체크하기 위해서 시간을 측정할 필요가 있었습니다. 또는 주기적인 작업에도 사용 할 수 있는데요. 저의 경우 일종의 스톱워치 기능을 구현하려고 했습니다. Timer에서 초기 딜레이 값과, periode를 설정해주면 해당 주기마다 내부 동작이 실행 되는데, 코틀린의 경우 아래의 함수를 이용해서 타이머를 동작 시킬 수 있습니다. 저도 처음에는 timer(...)를 이용해서 시간을 측정하고 화면에 표시를 하였었는데 실제 스톱워치와 시간측정을 비교해보니 시간이 지날수록 오차가 발생하였습니다!!!(1분정도 측정하였을때 무려 5초나 오차가 났기 때문에 무시하기에는 큰 수치였습니다) @kotlin.internal.InlineOnly public inline ..
📝아키텍처 패턴을 왜적용 해야 하는가? - 글을 들어가기에 앞서 아키텍처 패턴을 적용해야 하는 이유를 말해보려고 합니다. 아키텍처 패턴을 신경쓰면서 코드를 작성하는 것은 쉬운일이 아닙니다. 그러나 코드가 방대해질수록 마구잡이로 작성된 프로젝트를 수정하기란 정말 어렵습니다. 실제로 프로그램의 라이프 싸이클을 본다면 단순 개발이 차지하는 비율은 어느정도 안됩니다. (유지보수가 아주 많은 부분을 차지하죠.) 물론 저는 그런 프로그램을 개발한 뒤 유지보수를 해본 경험이 없지만.. 당장 제프로젝트의 코드를 수정 할 때도 마구잡이로 짜 놓은 프로젝트는 답이 없다라는 것을 종종 느낍니다. 아키텍처 패턴을 적용하고 기타 여러 도구들을 이용함으로써 우아하고 클린한 프로그램으로 변하는 것을 몸소 느낄 수 있을거라 생각합니..