전체 글 184

[안드로이드] LiveData, MutableLiveData 사용법

요새 안드로이드에서 인기 있는 디자인 패턴이 MVVM 패턴이고 LiveData에 대해서 정확히 알아야 하는 클래스 입니다. 정의야 다른 블로그에 글들이 많으니까 배제하고 실제로 적용해보고 어떤 문제가 있고 어떻게 풀어나가는지.. 그리고 몇가지 유의사항이 있는데 그런 이슈는 어떻게 풀어내야 하는지 알아보도록 하겠습니다. 🤔 LiveData, MutableLiveData 차이 LiveData 의 UI 업데이트는 언제 실행 하는지 RecyclerView -> ViewHolder 에서 ViewModel 의 LiveData 를 어떻게 처리하는지? 또한 이러한 구조는 지양 해야 하는지? List 형식을 LiveData 에서 처리하는 방법 Fragment in Fragment 구조에서 LiveData 사용시 유의 사..

android 2022.06.26

[안드로이드] 딥링크 테스트 어플 소개

안녕하세요. 이번에는 제가 딥링크 테스트를 하고 있다가 너무 귀차니즘이 발동하여 앱을 하나 만들었는데 한번 소개해볼까 합니다. https://play.google.com/store/apps/details?id=com.hmju.deeplink 퀵딥링크(Quick DeepLink) - Google Play 앱 딥링크 테스트를 아주 간단하게 도와주는 앱입니다. play.google.com 안드로이드 개발하면서 거의 웬만한 서비스에서 "딥링크" 를 많이 사용합니다. 딥링크 관련 테스트를 할 때 몇 가지 방법들이 있습니다. 1. 명령어를 쳐서 테스트 하는 방법 https://developer.android.com/training/app-links/deep-linking?hl=ko#testing-filters 앱 ..

android 2022.06.05

학부시절 게임 프로젝트 했던 흑역사..

안녕하세요 오늘 개인 나스에서 머좀 찾아보다가 예전 학부시절 졸업 작품으로 게임 프로젝트를 했던 자료가 있더군요.. 정말 맨땅에 해딩하는 식으로 팀원들과 무언가를 만들었던 시절.. 학교에선 "게임" 이라는 카테고리라는 이유만으로 지원을 못받았지만 팀원들끼리 으쌰으쌰 돈 모아서 캐릭터랑 오브젝트 등..샀던 그시절... 지금은 잘지내고 있는지 ㅋㅋㅋ 물론 다들 게임쪽으로는 전혀 안가고 다른 포지션 개발자로 갔다는게 현실..(게임 개발자가 참...그렇슴다) 각설하고 그때 제작해둔 영상 보여드립니다ㅋㅋㅋ (아마 나중에 올린걸 후회할수도 있는데 그거 또한 아름다운 추억이...) 근데 보면서 정말 닭살이 돋습니다 ㅋㅋㅋㅋ 1. 최종 졸업작품 영상 2. 중간 졸업작품 영상 3. 서버 & 유니티 연동 영상 4. 서버 ..

[안드로이드] Github Action 을 이용한 자동 배포

안녕하세요 이번 글에서는 안드로이드 앱을 직접 운영하는 사람들에게만 필요한 포스팅이 되겠습니다. 앱을 운영 하다 보면 기능, 버그 들이나 수정사항이 발생하면 앱을 '배포' 할 때가 있습니다. 손수 배포하는 과정은 아래와 같습니다. 배포할 내역들을 한 브렌치 (develop or master) 에 머지합니다. 릴리즈 모드로 .aab or .apk 버전을 생성합니다. aka 배포 버전 만다. (구글에서 작년부터 aab 를 적극 지향하기 때문에 이제는. apk는... 보내줘야 합니다..ㅠㅠ) 플레이 스토어 앱 콘솔에 들어갑니다. 배포할 앱 선택 파일 업로드 및 변경사항 적기 검수 요청 증말 복잡하죠.. 일단 배포 버전 파일을 말고 나서 콘솔에 들어가고~ 변경사항도 적고.... 개발자들은 정말 귀찮고 반복적인 ..

android 2022.06.05

안드로이드 개발시 HTTP 트레킹 라이브러리 소개

안드로이드 앱 개발시 OkHttp 를 활용해서 HTTP 통신을 합니다. 이때 개발중에 서버나 클라 쪽에 이슈가 생기면 API 쪽에 어떤 Query Paramter 를 날렸는지 Response 는 어떻게 오는지에 대한 핑퐁을 주고 받습니다. 일반적으로 Logcat 에서 요청한 API 를 찾아서~ 복사한다음에~ 서버팀에 알려주고..... 벌써부터 귀차니즘이 시작 됩니다.. 그래서 이런 귀차니즘을 해소할 그런 것들이 없을까 하다가 옆에 iOS 개발자분이 흔들어서 요청한 HTTP 로그들을 보여주는 라이브러리인 (netfox) 를 보여주더군요.. https://github.com/kasketis/netfox GitHub - kasketis/netfox: A lightweight, one line setup, iO..

android 2022.05.05

[안드로이드] Json Converter는 이제 Kotlinx Serialization로 변경해야 하는 이유

요약 (Summary) 안드로이드 프로젝트가 코틀린이 주로 구성되어 있다면 HTTP 통신 시 역/직렬화는 Kotlinx Serialization을 사용해야 합니다. 배경 (Background) HTTP 통신시 Json Converter로는 Java 구성된 Gson이나 Moshi 가 대표적으로 있습니다. 하지만 이것들은 Java 기반이라 Kotlin에 적합하지 않은 문제가 있습니다. 예를 들면 서버에서 field 값을 안 주거나, null로 줬을 때 대응에 어려움이 있습니다. 비교 (Compare) Gson, Moshi, Kotlinx Converter 를 비교하기 전에 제가 Json Converter 라이브러리를 지정하는 기준은 아래와 같습니다. - Default Argument 를 사용자가 그때그때..

android 2021.12.18

[안드로이드] Visual 라이브러리 "widget" 소개

안녕하세요. 이번에는 제가 여러 앱을 사용하면서 인상 깊었던 View 들의 애니메이션이라던지 프로젝트 개발하면서 Ui 측면에서 비용이 많이 들었던 것들을 시간 날 때마다 개발해서 사용했던 것을 소개해볼까 합니다. https://github.com/sieunju/widget GitHub - sieunju/widget: Visual 적인 View 들을 모아놓은 라이브러리입니다. Visual 적인 View 들을 모아놓은 라이브러리입니다. Contribute to sieunju/widget development by creating an account on GitHub. github.com 기능 - SurfaceView 기반의 ProgressView - Coordinator.Behavior 기반의 Transla..

android 2021.11.02

[안드로이드] SimplePermissions 소개

안녕하세요. 시간이 좀 됐지만 안드로이드 appCompat이 1.3.0 이상 올라가면서 권한에 대한 프로세스가 전면 수정됐습니다. 그래서 그에 맞게 대응하면서 간단하게 적용할 수 있는 라이브러리를 만들어봤습니다. https://github.com/sieunju/SimplePermissions GitHub - sieunju/SimplePermissions: AppCompat 1.3.0 이상 권한 라이브러리 입니다. AppCompat 1.3.0 이상 권한 라이브러리 입니다. . Contribute to sieunju/SimplePermissions development by creating an account on GitHub. github.com 기능 - build 패턴으로 전체 권한이 승인 여부 및 거부..

android 2021.11.02

드로이드 나이츠 2021 보고 인상 깊었던 세션 #1

https://sites.google.com/view/dk21/ Droid Knights 2021 드로이드나이츠는 기술 세션으로 개발자들의 경험을 공유하는 안드로이드 컨퍼런스 입니다. 2021.09.25(토) 13시 온라인 스트리밍으로 진행 예정입니다. sites.google.com 작년 말부터 개발 안목을 넓히고자 안드로이드 개발자 컨퍼런스인 드로이드 나이츠를 보고 싶다는 생각이 들었습니다. 티켓을 구입후 라이브로 세션들을 이리저리 왔다 갔다 하면서 봤습니다. 진짜 티켓을 구입한 만원이 전~~혀 아깝지 않았고, 정말 유익한 정보였습니다.(나중에 유튜브 동영상으로 풀렸지만,,) 서론이 길었다 각설하고 드로이드 나이츠를 보면서 가장 인상 깊었고 한번 만들어 보고 싶었던 세션들을 차례대로 소개하도록 하겠습니..

android 2021.10.23

[안드로이드] Di 라이브러리 Koin 에서 Hilt 로 사용하게 된 이유

제목과 같이 잘 쓰고 있던 Koin에서 Hilt로 변경하게 된 이유와 사용법에 대해 설명하고자 합니다. Koin 실사용 후기 사용법이 정말 쉽습니다. 이게 가장 큰 장점이자 이 이상 설명할것은 없을 거로 보입니다. 저 같은 Third Party 개발자한테는 정말 좋은 라이브러리입니다. 어떤 기능이나 설계를 쉽고 빠르게 사용하는게 라이브러리지 비용을 엄청 들여서 사용하는 거는 제 기준 좋은 라이브러리가 아니라고 생각합니다. 하지만, 단점도 존재합니다. 단점을 알기 전에 Koin 전체 적인 개념을 알아야 합니다. 앱이 구동되면 Koin은 Application 클래스에서 startKoin 함수를 통해 Di Cache를 만들어 냅니다. 그래서 필요한 클래스에 KoinCompoent 추가후 "by inject" ..

android 2021.08.07