본문 바로가기

android76

[Android] 안드로이드 프로젝트의 Sha Key를 알아내는 방법 이번 포스팅에서는 안드로이드 프로젝트에서 sha-1 키를 알아내는 방법을 알아볼까 한다. 이 글을 보시는 분들은 sha-1 key를 보는 게 급할 것이라고 생각해 바로 방법을 알려주도록 하겠다. 1. sha 키 발급받기 안드로이드 스튜디오 오른쪽 부분을 보면, gradle을 포함해 다양한 탭을 열 수 있는 부분이 있다. 여기에서 gradle을 클릭해서 들어간다. 그러면 다음과 같이 화면이 나올 것이다. 이 화면이 정상적으로 떴으면, Execute Gradle Task라는 아래의 icon들 중 가장 왼쪽에 있는 icon을 클릭해 준다. 그러면 다음과 같은 화면이 나온다. 위의 입력하는 곳에 signingReport를 입력하고 엔터를 누르면 sha-1 key랑 sha-256 key를 발급받을 수 있다. 이제.. 2023. 10. 12.
[Android, Kotlin] 죽은 프로젝트 살리기 위한 v2 계획 (1) 이번부터 필자의 기존에 개발을 완료했거나 개발 중단된 프로젝트를 살리는 개발 기록을 일기처럼 남겨볼까 한다. 이 시리즈를 작성하면서 내가 경험했던 죽은 프로젝트를 살려가는 과정을 글로 담아볼 예정이다. 첫 번째 프로젝트는 1년 전에 개발을 완료하고 버려진(?) Planner를 살려보는 프로젝트를 진행해 볼 것이다. 저의 개발 썰(?)로만 가득한 글입니다 ^^ 1. Planner란 무엇인가? 예전에 필자가 기획한 Planner는 당시 필자가 점점 게을러지기도 했고 이번에 프로젝트를 내가 사용할 수 있는 앱을 만들어보자! 해서 번뜩인 아이디어로 구상을 시작한 프로젝트이다. 이름에서도 알 수 있듯이 일정 관리 앱이다. 당시 필자는 다른 Planner 앱들과 차별성을 주기 위해 하루 일정을 기록하는 것을 넘어서.. 2023. 10. 10.
[Android, Kotlin] Compose에서 glance를 이용해 위젯 만들기 이번에 공부한 내용은 compose로 위젯을 만드는 라이브러리인 glance이다. glance의 존재(?)는 이전에 들으러 갔던 컨퍼런스 강연에서 glance에 관련된 강연을 들게 되었는데, 그때부터 기회가 되면 공부해 보자 라는 생각을 하게 되었다. 그게 지금이다. glance는 compose에서 위젯을 쉽게 만들 수 있게 해주는 라이브러리이고 2023년 8~9월에 1.0.0을 출시한 따끈따끈한 신상(?) 라이브러리이다. 아무튼 그래서 이번에 compose glance를 공부한 내용을 블로그에 정리해보려 한다. 그럼 바로 glance 사용법을 알아보자. 1. 라이브러리 추가하기 먼저 glance 라이브러리를 추가해 준다. // glance implementation("androidx.glance:gla.. 2023. 10. 6.
[Android, Kotlin] android에서 Junit으로 테스트 코드 작성하기 이번에 정리할 내용은 테스트 코드이다. 다들 테스트 코드라는 말을 들어본 적은 있어도 사용법을 몰라서 사용하지 않았던 경우도 있었을 것이고, 장점에 대해서는 들었지만 확 와닿지 않았기 때문에 사용하지 않았을 수도 있을 것이다. 필자의 경우에는 2가지 모두 해당사항이었다 ㅎㅎ 하지만 이번에 친구들이랑 하는 대형 프로젝트에서 파트별 개발을 하던 중 내가 코드를 잘 작성하고 있는 걸까?라는 의문이 들어 테스트 코드에 대해 공부하고 이번 기회에 포스팅으로 남겨볼까 한다. 그러면 바로 테스트 코드에 대해 간단히 알아보고 코드 예제로 같이 확인해 보도록 하자. 1. 테스트 코드를 작성하는 이유? 테스트 코드는 안드로이드 앱을 개발하면서 특정 로직을 테스트하면서 기능의 문제나 오류를 찾아내 주는 코드를 뜻한다. 테스.. 2023. 9. 28.
[Android, Kotlin] 안드로이드에서 line chart 만들기 이번에 공부한 내용은 android studio에서 차트(그래프)를 그리는 방법에 대해 공부해 보았다. 이번 포스팅에 차트 만들기에 대해 공부했던 내용을 정리해보려 한다. 사실 작년에도 차트를 사용했던 경험이 있었지만, 이번에 다시 사용해야 하는 경우가 생겼기에 이번 기회에 정리해 보려 한다.(작년에 공부했던 내용을 거의 다 까먹어서 처음부터 다시 공부했었다 >:( ) 차트를 만드는 방법은 다양하지만 기본적으로는 다른 분들이 만들어준 차트 라이브러리를 사용하는 것이 가장 편할 것이다. 그냥 android chart library라고 검색해도 다른 분들이 이미 만들고 사용 중인 라이브러리가 다수 존재한다. 아니면 자신이 직접 custom 해서 만들고 싶으면 android에서 제공하는 canvas를 이용해 .. 2023. 9. 28.
[Android, Kotlin] jetpack navigation에서 safe args로 데이터 전달하기 최근 포스팅에서 compose에서 jetpack navigation을 이용할 때, data class type의 데이터를 넘기는 방법을 알아봤었다. 저 기술을 최근에 xml에서 한 번 더 사용할 일이 있었는데, 이름이 safe args라는 것을 알게 되었다. 아마 compose에서 사용한 기술도 safe args로 불리는 듯한다. https://rkdrkd-history.tistory.com/57 [Android, Kotlin] compose navigation에서 data class tpye 넘기기 compose에서 navigation을 사용할 때, 화면 전환 시 변환될 화면에 기존의 화면의 데이터를 이용하고 싶은 경우가 있을 것이다. 그럴 때에는 Navcontroller.navigate()에다가 넘길.. 2023. 9. 26.
[Android, Kotlin] android에서 in-app updates로 앱 업데이트 관리하기 이번에 정리할 주제는 바로 앱 업데이트에 관한 사항이다. 내가 이번에 앱 업데이트에 관해 정리를 한 이유는 필자가 앱을 하나 출시하였는데 그것을 사용하는데 사용자들이 앱 업데이트를 하지 않고 사용하는 경우를 많이 보았기 때문이다. 0. 왜 사용해야 할까? 이런 경우 앱 업데이트를 하지 않아도 상관없다는 이야기도 할 수 있다. 하지만 업데이트를 하지 않으면 새 버전을 출시하면서 수정했던 오류를 업데이트를 하지 않은 기존 앱에서는 그대로 오류가 남아있을 확률이 높다. 그래서 이번 기회에 구글에서 제공하는 라이브러리인 in-app updates를 이용해서 사용했던 경험을 기록으로 남겨보도록 하겠다. 1. in-app updates는 무엇일까? in-app updates는 구글에서 제공하고 있는 사용자가 앱 내.. 2023. 9. 9.
[Android, Kotlin] exoplayer와 media3를 이용해 영상 재생하기 이번에는 필자가 자주 시청하는 youtube를 보고 youtube가 exoplayer를 이용해 제작되었다는 말을 들었기 때문에 이번 기회에 exoplayer를 공부해 보기로 했다. 이번의 exoplayer 예제는 프로젝트 안의 mp4 파일을 불러오는 과정을 담았다. 참고로 현재 자주 사용하는 compose를 이용해 구현해 보겠다. exoplayer란 무엇일까? exoplayer는 android에서 사용 가능한 미디어 재생 라이브러리이다. 1. dependency 추가 exoplayer와 media3을 사용하기 위해 dependency를 추가한다. // exoplayer compose implementation("com.google.android.exoplayer:exoplayer:2.19.1") impl.. 2023. 8. 25.
[Android, Kotlin] compose custom theme 만들기 이번 포스팅은 지난 포스팅에서 말했다시피 커스텀 테마에 대한 간단 설명과 코드를 알려주도록 하겠다. 커스텀 테마를 왜 만들어야 하는지 궁금한 사람들이 있을 것 같아 간단히 설명하자면 대형 프로젝트를 하다 보면 color가 다양해질 수 있기에 기본적으로 android studio에서 제공하는 color palette가 부족할 수 있다. 그리고 디자이너가 정한 color명을 그대로 적용하기 힘들기 때문이다. 이럴 때에는 custom theme를 만드는 것을 고려해 볼 수 있다. 그래서 필자는 이번 대형 프로젝트에 대비해 커스텀 테마를 제작해 보기로 했다. 자 그럼 이제 코드로 필자가 custom theme를 만들었던 과정을 확인해 보자. 시작하기 전에! 첫 번째 단계는 theme 상태를 확인할 수 있는 en.. 2023. 8. 18.
[Android, Kotlin] compose로 custom checkbox 만들기 이번에 design system을 만드는 작업을 하고 있었는데 checkbox를 만들어야 할 일이 있었다. 이번에 필자 같은 경우 말고도 다른 프로젝트를 할 때에도 checkbox를 사용해야 할 일이 있을 것이다. 하지만 기본 checkbox의 모양으로는 만족스럽지 못한 경우도 있을 것이다. 그래서 이번에 필자는 custom checkbox를 만들어 보았다. 필자가 checkbox를 어떻게 만들었는지 코드를 통해 확인해 보자. 1. custom checkbox를 만들기 위한 준비물(?) 일단 처음 만들 때 필자는 custom dialog를 만들기 위해 무엇이 필요한지 생각해 보았다. 그래서 하나의 결론에 도달했다! check 되었을 때의 checkbox layout, check 되지 않았을 때의 chec.. 2023. 8. 18.
[Android, Kotlin] compose로 tablayout 구현하기 이번에 youtube open api를 다루면서 xml에서 사용했던 tablayout을 적용하고 싶어서 이번 포스팅에서는 compose tablayout 기능을 구현해 보도록 하겠다. compose에서 tablayout 기능을 구현할 수 있게 해주는 composable function은 tabRow이다. tabrow는 list를 이용해 화면(tab) 간의 이동을 가능하게 해주는 기능으로 bottom navigation과 비슷하다. 이번에 tabrow를 사용해 보았는데 기존에 xml에서는 screen마다 fragment를 필수적으로 생성해서 연결해야 했었는데, compose에서는 따로 screen을 만들지 말지 개발자가 정할 수 있어서 편했던 것 같다. 이번 기회에 필자는 screen을 생성하지 않은 ta.. 2023. 8. 15.
[Android, Kotlin] compose navigation에서 data class tpye 넘기기 compose에서 navigation을 사용할 때, 화면 전환 시 변환될 화면에 기존의 화면의 데이터를 이용하고 싶은 경우가 있을 것이다. 그럴 때에는 Navcontroller.navigate()에다가 넘길 데이터를 param으로 넣은 다음에 NavHost에서 composable()로 navigate logic을 작성하면 됐었다. navigation 중 데이터 전달에 관한 자세한 설명은 아래 포스팅을 참고하면 좋을 듯하다. https://rkdrkd-history.tistory.com/51 [Android, Kotlin] Compose UI 정리(7) 이전 포스팅 https://rkdrkd-history.tistory.com/50 [Android, Kotlin] Compose UI 정리(6) 이번 포스팅.. 2023. 8. 11.
[Android, Kotlin] compose에서 api 통신하기 이전 포스팅의 연장선입니다. https://rkdrkd-history.tistory.com/55 [Android, Kotlin] Android clean architecture 프로젝트에서 api 에러 핸들링하기 clean architecture 프로젝트를 구상하고 개발하다 보면 api error 처리를 어떻게 하고 있는가? 예전의 필자는 그냥 무지성으로(?) presentation layer에 try catch를 이용해 처리를 했었었다. 하지만 그 방법을 rkdrkd-history.tistory.com 이전 포스팅에서 clean architecture 관점에서 api error handling 방법을 공부해 봤는데, 이번 글에서는 지난 글의 연장선인 clean architecture 관점에서 compo.. 2023. 8. 3.
[Android, Kotlin] Android clean architecture 프로젝트에서 api 에러 핸들링하기 clean architecture 프로젝트를 구상하고 개발하다 보면 api error 처리를 어떻게 하고 있는가? 예전의 필자는 그냥 무지성으로(?) presentation layer에 try catch를 이용해 처리를 했었었다. 하지만 그 방법을 사용했을 때, 일일이 try catch문을 작성해야 하는 불편함과 presentation layer에서만 처리하는 것이 맞나 이런 의문들이 들기 시작했다. 그래서 이번 포스팅에서 clean architecture project에서 api error handling logic을 작성하는 방법을 공부하고 적어보았다. 1. error handling 로직은 어떤 layer에 작성되어야 하는가?? 필자는 data layer에서 http status code에 따른 예.. 2023. 8. 1.
[Android, Kotlin] Compose UI 정리(7) 이전 포스팅 https://rkdrkd-history.tistory.com/50 [Android, Kotlin] Compose UI 정리(6) 이번 포스팅에서는 compose ui로 bottom navigation을 만드는 예제를 정리해 볼 것이다. 이전 포스팅 https://rkdrkd-history.tistory.com/46 [Android, Kotlin] Compose UI 기록(5) 이번 포스팅에서는 compose UI 공부했던 내용 rkdrkd-history.tistory.com 이번 포스팅에서는 필자가 compose를 사용하다가 알게 된 정보를 끄적여보겠다. 이번에 알게 된 정보는 제목 보면 알 수 있듯이 화면전환(navigate) 도중 데이터를 전달하는 방법을 알아보도록 하겠다. (compo.. 2023. 4. 16.
728x90