일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이어베이스
- ListAdapter
- XML
- 커스텀뷰
- cleanarchitecture
- Authentication
- Build variants
- Flow
- Jetpack
- 컴포즈
- 로그인
- MVVM
- UiState
- 알고리즘
- Kotlin
- NavHost
- 클린아키텍처
- 뷰
- 안드로이드
- NavController
- 코딩테스트
- 회원가입
- coroutine
- 플레이스토어
- DiffUtil
- Android
- Compose
- 코틀린
- sharedFlow
- 리사이클러뷰
- Today
- Total
목록안드로이드 개발/라이브러리 (11)
Grusie 안드로이드 개발 기술 블로그
글라이드를 사용하여 갤러리 이미지들을 로드하는 중에, 다른 분의 휴대폰에서 이미지가 뜨지 않는 것을 확인하였다.Shimmer는 잘 나오기 때문에 처음에는 속도 문제인가 생각하였으나 아예 안 뜨는 것을 보고 로그를 찍어보았다. 결론은 해당 기기는 갤럭시 노트9 안드로이드 OS10에 One Ui 2.5를 가진 기기였으며, 검색결과 OS10에서 해당 에러가 발생한다는 것을 알게 되었다. java.io.FileNotFoundException(open failed: EACCES (Permission denied))해결법 ... 안드로이드 Manifest 파일에 application 내부에 레거시한 외부스토리지 접근요청을 허용한다는 의미인 것 같다.이 코드를 작성하고 다시 실행시켜 보니 문제 없이 ..
네이버 클라우드에서 제공하는 네이버맵 SDK를 사용했던 적이 몇 번 있었다.회사 프로젝트에서도 사용했었는데, 클러스터링을 적용하려고 보니, 지원을 하지 않아서 서드파티 라이브러리를 사용했던 기억이 있다.웹에서는 지원을 하는데, 앱에서는 지원을 안 해줘서 너무하다는 생각을 했었다.그러던 중 올해초에 클러스터링이 업데이트 되었다는 것을 보았고, 네이버 맵을 적용하게 될 기회가 또 생겨서 기록해보려고 한다. 우선 네이버맵을 화면에 표시하는 방법은 공식문서에 잘 나와 있기에 넘어가도록 하겠다.바로 커스텀 클러스터링으로 넘어가자 기본 사용법키 정의마커 클러스터링을 사용하기 위해서는 ClusteringKey 인터페이스를 구현한 클래스를 정의해야 한다.class ClusterItemKey(private val tra..
이번 개발에 필요한 요구사항 중, 마지막으로 메일을 본 이후로 온 메일이 있다면 화면에 알림을 띄워주는 게 있었다.마지막으로 메일을 본 시간을 저장하기 위해서는, 로컬DB를 사용해야 한다고 생각하였고, 선택지는 2가지가 있었다. RoomDB SharedPreferences 간단한 데이터를 Key-Value형태로 저장할 수 있어, 보통 앱 세팅과 같은 데이터들을 저장하는데 사용한다. 이런 간단한 데이터를 담는데엔 이만한 게 없다고 생각하여 SharedPreferences로 결정하였다. SharedPreferences는 Key-Value 형태로 로컬 저장소에 저장하는 것을 도와주는 객체이다.SharedPreferences는 앞으로 DataSource로 대체 될 것이며, 공식문서에도 SharedPreferen..
기존에 미라클알람 프로젝트를 진행하며 데이터바인딩에 대해 찍먹 정도는 해 본 적이 있다. 그 때는 잘 모르는 상태로 진행하여 코드도 난잡하고 사용하기 힘들었었고, 회사 프로젝트에 사용하려고 해 보았으나, data binding이 패키지명에 대문자가 있으면 에러가 나는 것 같았다. 하필 회사 프로젝트의 패키지명이 대문자로 되어있어 적용을 포기했었던 것 같다. 그 이후로 뷰바인딩만 사용하였고, 컴포즈 공부를 하면서, Data binding을 서서히 잊어갔다... xml의 사용을 줄이기위해 컴포즈로 공부하고 있었는데, 데이터바인딩은 오히려 XML에서 로직까지 사용하여 분리가 불가능 하게 될 것이라는 생각 때문이였다.그러나 이번에 메모리즈 프로젝트를 진행하는데, 기존에 계셨던 분이 데이터바인딩으로 코드를 구현 ..
회사 기존 프로젝트에 이미지 로딩 라이브러리가 Facebook사의 Fresco로 개발이 되어있는 것을 발견하였다. SimpleDraweeView라는 뷰를 사용해야 하는 것 같았다. controller라는 것을 사용해서, 원하는 이미지 로드 빌드를 만들어서 넣어주는 형태이며, 사용하지 않을 때 null로 해주지 않으면 메모리릭이 날 수 있을 것이라고 판단했다. 필자가 기존에 사용해오던 라이브러리는 Google사의 Glide라는 라이브러리인데, 사용법이 간편하고, 제공하는 기능들이 많고 커스텀하기 좋았기 때문이다. 사용법에 대해서는 이 블로그를 참고하면 좋을 것 같다. https://bumjae.tistory.com/83 Fresco 프로젝트를 진행하다 webp 이미지 파일을 표현하기 위해 Fresco의 S..
안드로이드 프로젝트를 개발 할 때, 항상 의문점이 들었던 것이 이미 지나간 화면에서 다른화면에서의 변화를 감지하여 뷰를 변경해주는 방법이 무엇이 있을까? 였다.예를 들어, 게시글 리스트 중 하나를 클릭하여, 게시글 상세 페이지로 넘어가고, 그 상세페이지에서 좋아요를 눌렀을 때, 뒤에있는 리스트에도 좋아요 표시가 되어있어야 한다."상세 페이지를 실행할 때, startActivtyForResult로 실행하여, 나중에 결과를 반환한다." 이런 방법도 있을 것이다. 하지만 만약, 상세 페이지에서도 연관된 리스트들로 이동할 수 있을 경우라면 어떻게 할 것인가? 계속해서 Depth가 증가한다고 할 때, 그 값을 과연 올바르게 전부 받아올 수 있을까? 내 생각은 아니라고 본다.그렇게 고민을 하던 중 반응형 프로그래밍..
Retrofit으로 서버통신을 오랫동안 해왔지만, 코드가 없을 때 새로 구현하려고 하면, 시행착오가 조금 필요한 것 같다는 생각을 해서 정리를 해보려고 한다. 파싱하는 방법, 로깅 인터셉터 등 여러 추가 기능들을 구현해야하겠지만, 그냥 기본 Retrofit의 사용법만을 우선 정리 해두려고 한다. Retrofit2 라이브러리OkHttp 라이브러리를 기반으로 구현된된 라이브러리이며, Squareup사에서 만들었다.서버와 Http 통신을 해서 주고받은 데이터를 앱에서 특정 형태로 활용할 수 있도록 하는 라이브러리이다.GET, POST, PUT, DELETE 등을 전달하면 서버에서 처리 후 xml, json, text, rss 등으로 응답을 제공 받을 수 있다. Retrofit 라이브러리 사용법 의존성추가im..
청년정책 앱을 만들던 도중, 검색 기능이 있어야겠다고 판단하여, 검색 기능을 만들게 되었다.간단하게도 청년정책 앱의 Api는 검색 Api와, 전체를 불러오는 Api가 같은 url을 사용하는 것이라, 파라미터만 추가해주면 될 것 같았다. 참고https://www.youthcenter.go.kr/opi/openApiPlcy.do 오픈 API | 청년정책 www.youthcenter.go.kr 요청 파라미터항목타입필수여부I" style="text-align: center; width: 75.9303%;">설명openApiVlakStringYI" style="text-align: center; width: 75.9303%;">마이페이지 > OpenAPI관리 에서 발급받은 인증키displayNumberYI" s..