본문 바로가기

android79

[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.
[Android, Kotlin] Compose UI 정리(6) 이번 포스팅에서는 compose ui로 bottom navigation을 만드는 예제를 정리해 볼 것이다. 이전 포스팅 https://rkdrkd-history.tistory.com/46 [Android, Kotlin] Compose UI 기록(5) 이번 포스팅에서는 compose UI 공부했던 내용을 끄적여보겠다. 이전 포스팅 https://rkdrkd-history.tistory.com/44 [Android, Kotlin] Compose UI 정리(4) 지난 포스팅 https://rkdrkd-history.tistory.com/43 [Android, Kotlin] Compose U rkdrkd-history.tistory.com compose로 bottom navigation을 만드는 방법은 여러 가.. 2023. 4. 7.
[Android, Kotlin] open api 사용 중 발생한 java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault, parameter <this> 해결 공공데이터포털 api를 호출하는 공부를 하다가 또(오)류를 만났다. 오류의 내용을 보면 java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault, parameter 대충 어떤 메서드의 값이 null이라는 오류 같았는데 httplogginginterceptor에서는 api 결과가 잘 나왔었다... 아무튼 필자가 오류를 해결한 방법은 필자는 api를 받아올 data class에다가 @SerializedName을 써서 api에서 받아올 필드를 정의해 줬었는데 data class Body( @Serial.. 2023. 3. 21.
[Android, Kotlin] Android MVVM 다뤄보기 이번에 필자가 공부해본 것은 MVVM이다. MVVM은 View - Model - ViewModel의 약자인건 다 알고 있는 사실이니 그냥 넘기고(?) 필자는 오래전부터 사용해왔던 안드로이드 아키텍처이지만 쓰는 이유와 각 파일들이 정확히 무엇을 위한 파일들인지 잘 알지 못했기에 이번 기회에 제데로 알아보고자 한다. 1. MVVM의 구조 MVVM은 이름에서도 알 수 있듯이 View, Model, ViewModel로 이루어져 있다. View: 이벤트 발생, liveData 감지해 뷰에 출력한다(출력싸개). Model: 실직적인 데이터를 다루는 곳(DB, Api 등의 데이터를 정의(?)한다.) ViewModel: 프로젝트의 비즈니스 로직을 관리한다(Api 호출, DB호출 이런거). 주의할 점은 View와 Mod.. 2023. 3. 18.
[Android, Kotlin] Android Activity의 lifeCycle 정리 안드로이드로 개발을 하다 보면 activity, fragment의 상태에 따른 로직을 수행해야 할 때가 있다. 그때 사용할 수 있는 것이 life cycle 함수들인데 이번 포스팅에서는 그것들을 알아보도록 하자. life cycle이란? activity, fragment가 태어나서(시작되다) 죽는(종료되다) 순간까지의 주기를 뜻한다. 1. Activity의 생명주기(lifeCycle) 먼저 activity의 생명주기를 할아볼 건데, activity의 생명주기로는 onCreate() onStart() onResume() onPause() onStop() onDestroy() onRestart() 총 7가지가 있으며, 각 함수들은 activity의 상태에 따라 호출이 된다. 그리고 모든 함수를 꼭 다 구현할.. 2023. 3. 17.
[Android, Kotlin] Compose UI 정리(5) 이번 포스팅에서는 compose UI 공부했던 내용을 끄적여보겠다. 이전 포스팅 https://rkdrkd-history.tistory.com/44 [Android, Kotlin] Compose UI 정리(4) 지난 포스팅 https://rkdrkd-history.tistory.com/43 [Android, Kotlin] Compose UI 정리(3) 이전 포스팅 https://rkdrkd-history.tistory.com/42 [Android, Kotlin] Compose UI 정리(2) 지난 포스팅 https://rkdrkd-history.tistory.com/41 [Android, Kot rkdrkd-history.tistory.com 이번에 정리할 내용은 compose에서 glide 사용하는 방.. 2023. 3. 13.
[Android, Kotlin] Zxing 라이브러리로 QR코드 스캔하기 오랜만에 포스팅을 해본다. 요즘 좀 바빠서 ㅎㅎ(사실 귀찮기도 했고 까먹었어서 못 올렸다 죄송합니다.) 아무튼 이번에 사용해 본 라이브러리는 zxing 라이브러리인데, 이번 프로젝트에 QR코드 스캔 기능이 들어갈 예정이라 검색을 해봤더니, Zxing 라이브러리가 있길래 바로 사용해 보았다(헤헤) 개소리는 여기까지 하고 바로 Zxing에 대해 알아보자 1. dependency 추가,세팅 build.gradle(app)build.gradle(app) // zxing implementation 'com.journeyapps:zxing-android-embedded:4.2.0' // circle imageview(예제에서 사용) implementation 'de.hdodenhof:circleimageview:3.. 2023. 3. 11.
[Android, Kotlin] Compose UI 정리(4) 지난 포스팅 https://rkdrkd-history.tistory.com/43 [Android, Kotlin] Compose UI 정리(3) 이전 포스팅 https://rkdrkd-history.tistory.com/42 [Android, Kotlin] Compose UI 정리(2) 지난 포스팅 https://rkdrkd-history.tistory.com/41 [Android, Kotlin] Compose UI 정리(1) 1. layout 1. Column 하위의 뷰들을 수직 정렬해준다(verti rkdrkd-history.tistory.com 이번 포스팅에서는 지난 포스팅에서 다뤘던 compose recyclerview를 이용해 실습을 해보겠다. 사용자의 정보를 담는 데이터 클래스 생성 data c.. 2022. 12. 5.
[Android, Kotlin] Compose UI 정리(3) 이전 포스팅 https://rkdrkd-history.tistory.com/42 [Android, Kotlin] Compose UI 정리(2) 지난 포스팅 https://rkdrkd-history.tistory.com/41 [Android, Kotlin] Compose UI 정리(1) 1. layout 1. Column 하위의 뷰들을 수직 정렬해준다(vertical). // 텍스트 뷰 @Composable fun Greeting(name: String) { Text(text = name) } // 뷰를 rkdrkd-history.tistory.com 이번 포스팅에서는 스크롤 가능한 뷰를 만들어 보겠다. 3. Scrollable View 1. ScrollView scrollView에 사용할 아이템 생성 @.. 2022. 12. 4.
[Android, Kotlin] Compose UI 정리(2) 지난 포스팅 https://rkdrkd-history.tistory.com/41 [Android, Kotlin] Compose UI 정리(1) 1. layout 1. Column 하위의 뷰들을 수직 정렬해준다(vertical). // 텍스트 뷰 @Composable fun Greeting(name: String) { Text(text = name) } // 뷰를 그리는 곳(미리보기) @Preview(showBackground = true) @Composable fun DefaultPreview() { rkdrkd-history.tistory.com 이번 포스팅에서는 필자가 xml을 사용할 때 자주 사용하는 뷰들을 compose로 작성해보겠다. 2. 다양한 뷰 작성 1. edit text TextField.. 2022. 12. 3.
[Android, Kotlin] java.lang.RuntimeException: Parcelable encountered IOException writing serializable object 해결 오랜만에 하는 오류 포스팅 오류 내용 이 오류를 해결하는 방법은 data class에 있다. 저 오류는 필자가 putExtra를 사용해 데이터를 전달하려고 했을때, 발생한 오류였는데 오류의 이유를 보면 not serializable exception이기 때문에 해당 클래스에 serializable이 적용이 안되어서 오류가 난 것을 알 수 있다. WeatherListResponse.kt package com.example.iwarm.data.response import com.google.gson.annotations.SerializedName import java.io.Serializable data class WeatherListResponse( @SerializedName("main") val mai.. 2022. 11. 28.
[Android, Kotlin] android custom dialog 만들기 custom dialog는 안드로이드를 개발하면서 자주 쓰이는 팝업 창을 생성해주는 기능이다. 필자도 많이 자주 쓰지만, 많이 까먹기(?) 때문에 이번에 기록을 남겨보려 한다. custom dialog 만드는 방법 1. custom dialog로 사용할 xml 파일 만들기 먼저 dialog의 xml로 레이아웃을 만들어 준다. 2. 다이얼로그 생성하기 일단 필자는 다이얼로그를 뷰 바인딩으로 구현 할 것이기 때문에 그래들에 추가해주었다. viewBinding { enabled = true } 그 다음에 다이얼로그를 구현한다.(필자는 fragment에 다이얼로그를 구현했다.) activity?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) v.. 2022. 11. 20.
[Android, Kotlin] firebase sns 앱 만들기 5(게시글 세부 기능) 이번에는 게시물의 세부 기능들을 만들어보겠다. 게시글 리스트 recycler view item 이번에는 옷걸이(좋아요 카운트), 북마크 기능만 구현해 보겠다. 원래 있던 recyclerView Adapter 코드에서 . . . override fun onBindViewHolder(holder: MainPageFragmentRecyclerAdapter.CustomViewHolder, position: Int) { . . . // like 버튼 이벤트 holder.like.setOnClickListener { favoriteEvent(position) } holder.bookMark.setOnClickListener { bookMarkEvent(position) } // like count, like ima.. 2022. 10. 28.
728x90