2024/10/11 ChatGPT에 개발 관련 문의

2024/10/11 ChatGPT에 개발 관련 문의

2024. 10. 27 (일) | Written by @dorian-mobileapp

안드로이드

  • 안드로이드 권장 아키텍처
    • 안드로이드 권장 아키텍처로 앱 개발 중입니다. 저는 Flow 객체를 뷰모델 클래스에 정의하고 Repository 객체로부터 받은 데이터를 Flow 객체에 emit합니다. 그런데 다른 동료가 작성한 코드에서는 Repository의 메소드들이 Flow 객체를 리턴합니다. 두 방식의 차이점과 장단점은 무엇인가요?

    • 저는 뷰모델이 flow를 구독할 필요가 없다고 생각합니다. 뷰모델이 자신의 flow 객체에 데이터를 emit하고 액티비티가 그것을 구독하는 방식을 원합니다. 이 경우, Repository의 메소드가 Flow 객체를 리턴할 필요는 없다고 생각합니다. 제 생각이 맞을까요?

    • Repository 객체의 f 메소드가 Flow를 리턴한다고 가정합니다. f가 반복적으로 호출되면, Flow 객체가 여러개 만들어지는 것은 아닐까요?

    • 위 예에서 flow { ... } 함수를 호출하면, 동일한 Flow 객체가 리턴되는 것인가요?

    • 동료가 구현한 Repository 객체의 메소드는 다음과 같이 구현되어 있습니다. 그것을 여러번 호출하면, Flow 객체가 여러개 생성되는 것이 맞는지요?

      fun getUser(id: String): Flow = flow {
      emit(dataSource.getUser(id))
      }

    • 그렇다면 동료가 구현한 Flow 객체 리턴 메소드는 잘못 구현된 것으로 보입니다. 이를 말해주고 싶으나 동료가 거부할 수 있을 것 같습니다. 어떻게 표현하는 게 좋을까요?

    • 1번이 아닌 여러번의 데이터를 받을 Repository 클래스의 메소드를 구현할 수 있을까요? 이 메소드의 리턴 타입이 Flow이면 적절한가요?

    • 위 Flow의 예에서는 5초마다 데이터를 emit 하는 방식을 선택했습니다. 서버가 보낼 때마다 데이터를 emit하는 Flow는 구현 가능한가요?

    • API를 1번 실행하여 1개의 데이터를 읽는 Repository 메소드의 리턴 타입은 Flow가 적합하지 않은 것으로 이해했습니다.

    • launchIn(viewModelScope) 메소드를 호출하기 위해 동료가 Flow를 리턴하는 Repsitory 메소드들을 개발한 것 같습니다. 뷰모델의 생명주기를 활용하려는 것 같은데, 대안이 있을 것 같습니다.

    • 액티비티가 인텐트로부터 읽은 데이터를 뷰모델에 전달하고 싶습니다. 인텐트를 파라메터로 받고 데이터를 읽는 메소드를 뷰모델에 정의했는데, 이게 적절한 방법인지 잘 모르겠습니다.

  • Jetpack Compose
    • 컴포저블 함수에서 호출되는 DisposableEffect 함수에 대해 설명해 주세요.
  • Hilt
    • Hilt를 활용하여 의존성 주입을 하고 싶습니다. 그런데 Nullable object를 주입하는 메소드는 부적절해 보입니다. 어떤가요?
    • Hilt로 의존성 주입을 구현할 때, 주입할 객체가 없는 케이스도 고려해야 하나요?
  • 기타
    • 싱글톤 객체를 정의하기 위한 클래스를 구현하고 싶습니다. C++ 언어에서는 이러한 객체에 접근할 때 레퍼런스 카운트를 늘리고 더 이상 사용하지 않으면 그것을 줄이는 패턴이 있었습니다. 자바, 코틀린 언어에서도 이러한 패턴이 필요한가요?
    • 안드로이드 앱이 스플릿 모드인지 확인하는 방법은 무엇인가요?
    • org.greenrobot.eventbus.EventBus 클래스는 무엇인가요?
    • EventBus 라이브러리를 사용하면 앱내 모든 클래스들 사이에 이벤트 전달이 가능한가요?
    • 리더가 개발자들에게 이 코드는 왜 이렇게 작성했는지를 물어보는 것은 지나친 개입일까요?

Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Sort:  

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.035
BTC 91063.28
ETH 3157.52
USDT 1.00
SBD 3.02