월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
Unresolved reference: R 에러가 납니다
이전 바텀 네비게이션 메뉴로 이동하는곳에서는 이상이 없다가 destiantion으로 이동하는것을 추가하니e: D:\D\kotlinStudy\ModernAndroid\booksearch\build\generated\source\navigation-args\debug\com\potatomeme\booksearch\ui\view\FavoriteFragmentDirections.kt: (3, 8): Unresolved reference: Re: D:\D\kotlinStudy\ModernAndroid\booksearch\build\generated\source\navigation-args\debug\com\potatomeme\booksearch\ui\view\FavoriteFragmentDirections.kt: (17, 41): Unresolved reference: R 이런 에러가 생겼습니다. 어디를 고쳐야 할까요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
싱글톤
그럼 결국 싱클톤을 사용하는 방법 4개 정도 소개해주셨는데 어떻게 사용해야하는건가여...?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
@SmallTest 와 @MediumTest 결정 기준
제목 그대로 @SmallTest 와 @MediumTest 결정 기준은 본인이 정하는 건가요? 또한 이 어노테이션을 붙여줌에 따라 달라지는 것이 무엇인지 궁금합니다.
- 해결됨냉동코더의 알기 쉬운 Modern Android Development 입문
navigation bar 질문드립니다.
바텀 네비게이션 바에서 버튼들이 눌렸을때 색깔이 보라색으로 나오는데 얘를 커스텀할순없나요?예를들어 빨간색으로 바꾼다던지요. 감사합니다
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
안드로이드 스튜디오 Chipmunk 에는 Analyze가 없습니다
안드로이드 스튜디오 Chipmunk 에는 Analyze가 없습니다. 따라서 MAD Score를 만드는 탭 역시 찾을 수가 없습니다 ㅠ
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
Practice9 자동 캐시 정리 구현하기에서 질문
ViewModel에서 saveCacheDeleteMdoe 와 getCacheDeleteMode 함수 두 가지를 구현하실 때 왜 하나는 viewModelScope을 사용하시고 하나는 withContext를 사용하신건지 궁금합니다!
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
webview 부분에서 궁금한 점이 있습니다!
Recyclerview관련 function들은 전부 adapter에서 설정하는 것인가요? 또 어뎁터에서 변수와 fun을 따로 만드셔서 붙여(?) 쓰셨는데 왜 그렇게 만들었는지 알 수 있을까요 질문이 어려웠다면 죄송합니다. ㅠㅠ
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
조금 동떨어진 질문인데
안녕하세요. 양질의 강의에 감사드립니다.공부를 하면서 갑자기 의문이 들어서 강의 내용과 무관한 질문을 하나 드려봅니다..앱을 배포후 db같은거를 받게되면 서버가 필요할텐데 그런 부분은 어떻게 보통 관리하나요?클라우드 서비스를 이용하는게 일반적일까요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
DataBinding binding.했을때 에러
Cannot access 'androidx.databinding.Observable' which is a supertype of 'com.example.affiliates_android.databinding.ActivityMainBinding'. Check your module classpath for missing or conflicting dependencies 라는 에러가 뜹니다.
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
progressScaled 질문
app:progressScaled는 자동완성이 안되는데 어떻게 이게;; 오류가안나고 작성이 되는건가요..!!?또, 전체적인 소스 즉 MyViewModelFactory 어노테이션이나 코드가 잘 이해가 안되는 부분들이 종종있는데, 강의를 들으면서 실습 코드를 완벽 숙지하고 다음 강의로 넘어가야하나요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
ViewModelProvider.Factory 질문 있습니다!
안녕하세요. 코드를 따라 치다가 도저히 해결이 안되는 부분이 있어 가져왔습니다!자꾸 아래와 같이 나타나길래 viewmodel 버전도 바꿔보고 따라해봤지만 자꾸 에러가 나네요...위와 같이 에러가 납니다.그리고 그냥 무시하고 앱을 실행시키면 아래와 같은 에러가 나고요.Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default option 혹시 몰라 Git 코드 놓겠습니다https://github.com/Gseungmin/MVVMStudy
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
ViewModelProviderFactory에 관련해서...
ViewModelProviderFactory이 잘 이해가 안갑니다!!Repository와 ViewModel 둘 만 있으면 ViewModel 생성자 부분이 아닌 다른 곳에다가 변수로 Repository를 선언해주면 똑같이 api호출할 수 있는 것 아닌가요!? 굳이 왜 ViewModelProviderFactory가 필요한지 이해가 안갑니다!
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
AAC 이론
Android Architecture Components 이론 강의에서 viewBinding부터 해주시고 계시는데, AAC에 뷰바인딩도 포함되는지 궁금합니다.Lifecycle Livedata ViewModel Room DataBinding Navigation PagingWorkManager제가 알고있는 안드로이드 아키텍처 구성요소에는 위의 부분이 포함되어있다고 알고있는데 viewbinding도 포함되는지 궁금합니다!
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
saved stated handle 질문드립니다.
finish를 통해서 나갔다오니까 값이 저장이 안되어있는데뭐가 문제인가요? 정상적으로 실행은됩니다. package com.example.practice_viewmodel import android.util.Log import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel class MyViewModel( _counter:Int, private val savedStateHandle: SavedStateHandle ):ViewModel() { var counter =savedStateHandle.get<Int>(SAVE_STATE_KEY) ?:_counter fun saveState() { savedStateHandle.set(SAVE_STATE_KEY,counter) } companion object { //saved state는 key,value로 저장하기때문에 필요 private const val SAVE_STATE_KEY = "counter" } } MyViewModel.kt MyViewModelfactory.kt package com.example.practice_viewmodel import android.os.Bundle import androidx.lifecycle.AbstractSavedStateViewModelFactory import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.savedstate.SavedStateRegistryOwner import java.lang.IllegalArgumentException //class MyViewModelFactory(private val Counter:Int) : ViewModelProvider.Factory { // override fun<T:ViewModel> create(modelClass:Class<T>) : T { // if (modelClass.isAssignableFrom(MyViewModel::class.java)) { // return MyViewModel(Counter) as T // } // throw IllegalArgumentException("ViewModel not ofund") // } //} class MyViewModelFactory( private val counter:Int, owner:SavedStateRegistryOwner, defaultArgs: Bundle?=null, ):AbstractSavedStateViewModelFactory(owner, defaultArgs) { override fun <T : ViewModel?> create( key: String, modelClass: Class<T>, handle: SavedStateHandle ): T { if (modelClass.isAssignableFrom(MyViewModel::class.java)) { return MyViewModel(counter,handle) as T } throw IllegalArgumentException("Viewmodel class not found") } } mainAcitivty.kt package com.example.practice_viewmodel import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.activity.viewModels import androidx.lifecycle.ViewModelProvider import com.example.practice_viewmodel.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { private val binding : ActivityMainBinding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) // val factory = MyViewModelFactory(100) // //val myViewModel = ViewModelProvider(this, factory).get(MyViewModel::class.java) // val myViewModel by viewModels<MyViewModel>() {factory} // // binding.textview.text = myViewModel.counter.toString() // // binding.plusBtn.setOnClickListener { // // myViewModel.counter+=1 // binding.textview.text = myViewModel.counter.toString() // // } // binding.minusBtn.setOnClickListener { // // myViewModel.counter -=1 // binding.textview.text = myViewModel.counter.toString() // } val factory = MyViewModelFactory(100,this) val myViewModel by viewModels<MyViewModel>() {factory} binding.textview.text = myViewModel.counter.toString() binding.plusBtn.setOnClickListener { myViewModel.counter+=1 binding.textview.text = myViewModel.counter.toString() myViewModel.saveState() } binding.minusBtn.setOnClickListener { myViewModel.counter -=1 binding.textview.text = myViewModel.counter.toString() myViewModel.saveState() } binding.finish.setOnClickListener { finish() } } }
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
AbstractSavedStateViewModelFactory 에 대한 설명이 없는거같아 질문드려요.
AbstractSavedStateViewModelFactory 가 안드로이드에서 제공하는 팩토리패턴같은데 영상에서 보면 savedStateHandle 를 사용하기위해 상속받아쓰는거같은데 자세히 잘 모르겠어서 질문드립니다 ㅠㅠ
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
collectLatest가 아닌 collect로 하면 작동하지 않는 이슈
검색창에 검색어를 입력하고 페이징 데이터로 불러오는 과정에서collectLatest가 아닌 collect로 데이터를 수집하면 맨 처음 한번을 제외하고 그 이후에는 검색어를 입력해도 PagingSource 의 load함수가 작동하지 않는 것을 확인했습니다. collectLatest가 아닌 collect 로 했을때 동작이 정상적으로 안되는 이유가 무엇인가요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
viewmodel 의존성 추가
따로 추가하지 않아도 viewmodel에 따로 오류가 뜨지 않는데 버전에 따라 다른건가요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
변수 옆에 타입을 알려주는 Assistant
Android Studio 기능인 것 같은데 냉동코더님 화면에서는 변수로 설정한 값 옆에는 자동으로 이 변수의 타입이 무엇인지 보여지더라고요 혹시 어떻게 설정하는 것일까요?
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
DataStore로 자동로그인 구현
강의와 관련된 내용은 아니지만 냉동코더님 DataStore를 공부하고 개인 프로젝트를 진행하는 중에 자동로그인 기능을 구현하고 있습니다. 염치없지만 물어볼 곳이 없어 여쭈어봅니다...!ㅠ 처음 LoginActivity에서 DataStore에 있는 로그인 여부 Boolean 값을 확인하고 다음 HomeActivity로 넘어갈 때 약간의 딜레이가있어 LoginActivity가 끔뻑하고 보였다가 넘어가게 됩니다. 이럴 때 해결방법이 있을까요? 혹시 LoginActivity가 켜지기 전에 DataStore값을 확인해서 처음부터 LoginActivity가 보이지 않게 하는 방법은 있을까요? (지금 생각나는 방법은 스플레시 화면의 시간을 설정해놔서 스플레시 화면이 보이는 동안 딜레이가 다 지나가게 해볼까 생각중인데 이게 맞나 싶네요..ㅎ)
- 미해결냉동코더의 알기 쉬운 Modern Android Development 입문
RemoteMediator는 2022년 8월 현재도 시험단계인가요?
제목 그대로 RemoteMediator는 2022년 8월 현재도 시험단계인가요???