no image
kotlin 라이브러리 의존성 문제 (구버전들)
[2024.02.22]아니 Arsenal에서 라이브러리를 찾아보던중.. 이런 오류가 너무 많이 뜸  Failed to Resolve : [어쩌구 저쩌구]결론은 ..!라이브러리 버전이 현재 안드로이드 버전과 안맞는 상황라이브러리가 추가되는 것이 있고, 안되는 것이 있다 ㅋㅋ추가되는 것들은 updated date들이 최근이라는 점..안되는 것들은 2019, 2020 년도 쯤의 버전이라는 점.암튼 머리 아프게 옛날 라이브러리들 왜 안 써지는 거지.. 하지말고그냥 사람들이 많이쓰는 것들 써보자..먼저 많이쓰는 라이브러리MPAndroid Chart  :: 일단 그래프 총집합 진짜 attribute가 너무 많아서. 깔끔하게 만드는데 시간이 좀 걸렸다. 대신 사용했던 사람들과 후기들도 많아서, 본인 custom 하는..
2024.11.12
no image
Android / PlayConsole 앱 배포전 Crashlytics, app-ads.txt
프로덕션 신청이 끝나면 와! 내가 만든 앱이 이제 설치가 가능하다니.. 싶지만요 사람들이 여기저기서 가져오는 Exception들..어떻게 디버깅해야할까 싶은데요Firebase의 Crashlytics? 사람들이 여기저기서 가져오는 Exception들..어떻게 디버깅해야할까 싶은데요Firebase의 Crashlytics? 이 play Console의 바이탈보다 훨씬 자세히 실시간으로 오류를 받아줍니다play console은 2일전 ~ 1일전 정도의 이미 짜게 식은 유저의 오류를 보내주거든요.. 이에 반해 파이어베이스는 실시간으로 볼 수 있습니다 구현 방법은 너무 간단하고 sdk추가 대로 움직이면 되는데 부연설명을 조금 추가해서 글을 적겠습니다. 1. 프로젝트에 파이어베이스 Crashlytics SDK 추가이..
2024.11.10
no image
kotlin 뱃지 읽음 감지 / 최초 실행 접근
안녕하세요 사실 이런 기능 어케 만들어야 하노.. 싶다가, 여러분의 gpt4o mini의 프롬프트 요청 한도는 소중하기에 적는 건데요https://developer.android.com/develop/ui/views/notifications/badges?hl=ko 알림 배지 수정  |  Views  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 알림 배지 수정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 8.0(API 수준 26)부터 알림 배지(또developer.android.com여기서는 1. 앱 설치 후 해당 화면(Fragment)의 최초 실행을 감지하는 함수이구요당연히 Activity..
2024.11.10
no image
Android / PlayConsole 플레이 스토어 앱게시 하기 (안드로이드 품앗이)
안녕하세요.. 드디어 근 몇주간의 길고긴 야근이 끝났는데요. 짬짬히 들락날락하며 지난 6월 앱을 만든 이후부터 4개월간의 "플레이스토어에 내가 만든 앱 게시하기" 사건을 회고하는 일정진짜 앱이 정지당했을 때의 화남은 잊을 수가 없음 암튼   0. 서론 (안 읽어도 됨)저는 고등학생 급식 때부터 지금까지 버스를 빠짐없이 타고 있는데요. 아이폰에는 든든한 버스어플이 있지만, 간혹 안드로이드로 기변했을 때, 광주 버스어플에서 시장의 일타 어플이 제가 사용하기에는 불편. 그래서 내가 만들어보면 어떨까 ? 첫 앱이니까 부담없이 가볼까 해서 만든 어플.https://play.google.com/store/apps/details?id=com.sardinespicysalad.gwangjubus&pcampaignid=w..
2024.10.12
no image
kotlin 안드로이드 바차트 MPAndroidchart BarChart Round Shape
안녕하세요 오늘 적어볼 건안드로이드에서 다뤄야할때 무조건 접할 수밖에 없는 MPAndroidChart인데요꺾은선 그래프, 막대 그래프 등https://github.com/PhilJay/MPAndroidChartline chart, bar chart  앱에 넣어야한다? 그럼 무조건 MPAndroidChart 를 사용할 수 밖에 없는 상황이거든요.이걸 일일이 만든다고 상상하면 노가다 ㅋㅋ 티스푼으로 국밥먹는 느낌... 아무튼?사실 바차트나 라인차트나 다 비슷해요 원리를 피그잼으로 직접 그려본다면 차트에 들어갈 값들을 List로 바꾸고 -> 이 엔트리는 RaderChart, LineChart, BarChart 등 다 다름. 맞게 넣으면 됨.그리고 차트 속성, XAxis, YAxis 등 여러 속성들을 입맛대로 ..
2024.10.12
no image
kotlin elevation이 -1인 토글그룹버튼 만들기 ( UI / UX 개선 )
ㅋㅋ오늘은 토글 버튼 그룹을 적어보려고 합니다그냥 평면적으로 있는 토글그룹은 아니구요  중복선택이 아니라, 마치 스위치 형식으로 하나만 선택되는 형식으로요.근데? 인디케이터가 버튼위에서 동작하는 느낌인거죠. (대신 버튼은 Text는 보임)누르면 애니메이션으로 인디케이터가 누른걸로 선택되는 겁니다. 근데 인디케이터가 버튼 위에있어요. 왔다 갔다 좌우로 움직이는 인디케이터를 화면 전체로 움직이는 거죠  암튼 한 마디로 말해서 TabLayout, Switch 형식이 결합된. 버튼 딸깍딸깍 (??) 암튼 시작. 먼저 찾아보니까 ButtonToggleGroup이라는 view가 있더라구요. 그 안에 버튼2개를 넣어줬습니다. 0. 사전 참고 알아야할 사실 개발환경 : Android33, MateralDesign 의..
2024.09.15
no image
kotlin Adapter 사용하기
어댑터... 나는 어댑터가 싫지만, Kotlin하는 사람으로 이 어댑터를 뺄래야 뺄 수가 없다.. 작업하면서 신기방기 도라방스 한 기능을 실제로 만들어봤을 때 그 뿌듯함은 참 보람찬데 하기싫은것 ^^ 지금까지 Spinner, RecyclerView, ViewPager2 이렇게 어댑터를 사용해봤는데얼추 장맛은 본 것 같으니, 제대로 댕장꿍 한 번 거하게 끓여서 공부해야 할 것 같은 것 아무튼 지금까지 이 어댑터를 이해한 부분을 전부 적어보겠숨..먼저 Adapter가 어느 포지션인지 ?  쉽게 말해서 layout을 짜다가 저런 view(안이 텅텅 비어있는 것들)안에 채워야할 때! 내가 만든 layout을 adapter를 통해서 공장 돌려서 원하는 수만큼 만들어서 화면에 보이게 한다는 거죠.. 1. 사실 뷰페..
2024.08.05
no image
kotlin 탭했을 때 view가 상단화면으로 scroll 되게 하기 (UX 개선)
Nike Training Club의 일부를 녹화한 사진입니다. * 해당 앱의 기능을 구현하는 것을 목적으로 녹화했을 뿐, 다른 의도는 없습니다.   ㅋㅋ 아이폰으로 녹화했지만, 해당 기능이 안드로이드에 사용할 때도 필요할 것 같았다. 물론 GPT의 도움을 좀 받았습니다. 굳이 이게 무슨 기능인지 이름을 붙이자면recyclerview의 expanded item을 자동 스크롤 해서 위에 붙이기?  이라고 해야할까 ㅋㅋ 아무튼 원리를 먼저 적자면1 view 를 Click 한다 ( 예시에서는 imageView)2 아래로 expanded 된다 ( animation이 적용됐다)3 expanded가 된 후에 500ms동안 지연되고 펼쳐진 height만큼 View의 Top을 scroll만큼 이동한다 아니 나는 계산하기..
2024.06.05
no image
kotlin 자동 타이머 Runnable로 구현하기
https://developer.android.com/reference/kotlin/android/os/Handler?_gl=1*11cwltx*_up*MQ..*_ga*OTI1ODMzOTE5LjE3MTY2MTE1MDY.*_ga_6HH9YJMN9M*MTcxNjYxMTUwNS4xLjAuMTcxNjYxMTUwNS4wLjAuMA.. Handler  |  Android Developers developer.android.com현재는 기본 api로 변경된 Splash를 만들던 때, " 3초 뒤에 MainActivity로 이동할게요 ! " 하는 과정에서 '3초 지연' 뭐 이런 구글링으로 찾아서 대부분 아는 Handler(Looper.geMainLooper()).postDelayed({}, [시간]) 이다. 아 그냥 이..
2024.05.25