마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MVVM 을 배워서 적용시켜보려고하는데..

0 추천
자바로 앱을 만들다가 도중에 더 늦으면 안되겠다싶어 코틀린으로 문법만 빠르게 한번 읽었고

만들던 앱을 코틀린으로 바꿔서 만들어가려고 합니다.

그런데 이번에 만들 앱은 MVVM 디자인패턴과 데이터 바인딩까지 다 적용시켜보려고하는데요

처음이라 너무 막막한데 처음에는 어떻게 해나가면 좋을까요?

 

참고로 오늘 조금 코틀린으로 바꿔가는데 적응이안돼서 그런지 생각보다 어렵네요..

특히 null 관련해서 적응이 안되네요 코드 작성만하면

safe call(?.) 이나 !! 때문에 툴에서 자꾸 !!로 고치라고 뜨던데.. !!는 null이 아니라는걸 보장하기때문에

사용하지 않는걸 권장한다는데 자꾸 띄우니 혼란스럽네요ㅎㅎ..
codeslave (3,940 포인트) 님이 2021년 5월 6일 질문

1개의 답변

0 추천

코틀린이 JVM에서 돌아가고 자바와 호환이 대부분 되지만 익숙하게 다루시려면 시간이 좀 걸립니다. 특히 코틀린은 자바에서 사용하지 않는 Non-Nullable 타입, Readonly 타입 같은 것을 사용하기 때문에 자바코드를 코틀린으로 바로 변환하면 많은 !! 를 보게 됩니니다. 데이터 타입의 차이로 인해 코틀린 자바타입을 완전하게 변환할 수 없어서 생기는 결과입니다. 결국은 안드로이드 스튜디오같은데서 제공하는 변환 툴을 통해 변환하고 나더라도 수작업으로 코드를 정리해 주어야 합니다.

String name;

위와 같은 자바 코드가 있다면 문맥에 따라 코틀린은 위의 코드가 Nullable인지 Non-Nullable인지 헷갈릴 수 있습니다. 따라서 자바코드를 코틀린으로 변환할 때  좀 더 명확하게 컴파일러에게 알려주는 것이 좋습니다.

@Nullable 
String name;

@NonNullable
String name = ""

아마 자바 쪽에 @Nullable, @NonNullable 어노테이션을 붙여주고 나서 변환하시면 !!부분이 많이 줄어들 것으로 생각합니다.

 

그리고 MVVM 은 구글의 샘플코드를 참고해 보세요. Github 검색을 하시면 구글 샘플이나 오픈 소스 샘플이 무지하게 많습니다.

Android MVVM with Kotlin

정도로 검색하시면 되지 않을까 싶네요.

spark (227,530 포인트) 님이 2021년 5월 6일 답변
...