본문 바로가기

분류 전체보기170

Unit 3-4 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 예제에서 컵케이크 주문 어플을 만든다. 이런 경우 4개의 프래그먼트가 ViewModel을 공유하는 것이 효과적일 것이다. //sharedViewModel라는 변수는 OrderViewModel 타입이고 대리자 클래스 activityViewModels() private val sharedViewModel: OrderViewModel by activityViewModels() 공유 뷰 모델을 사용하려면 4개의 프래그먼트에서 viewModels() 대리자 클래스 대신 activityViewModels()를 사용하여 OrderViewModel을 초기화한다. viewModels()는 현재 프래그먼트로 범위가 지정.. 2022. 9. 14.
Unit 3-3 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. ViewModel에 데이터 저장 Android 아키텍쳐는 UI Controller, ViewModel, LiveData, Room 으로 이루어져 있다. LiveData 과 Room은 이후에 알아보고, 일단은 UI Controller와 ViewModel에 대해서 먼저 알아보자. UI Controller 액태비티와 프래그먼트를 말한다. UI 컨트롤러는 화면에 뷰를 그리고, 사용자와 상호작용하는 모든 UI를 제어한다. 🔎 UI Controller는 뷰와 데이터를 화면에 그리고 사용자 이벤트에 응답한다. ViewModel 앱의 데이터나 데이터와 관련된 로직은 UI 컨트롤러에 포함되어서는 안된다. 이것들은 Vi.. 2022. 9. 14.
Unit 3-2 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. Fragments 지금까지 예제에서는 앱에 인텐트를 추가하여 액티비티 사이를 이동했다. 하지만 모든 화면마다 별도의 액티비티가 필요한 건 아니다. 여러 일반적인 UI 패턴(예: 탭)이 Fragment라는 섹션을 사용해 단일 액티비티 내에 존재한다. 하단 탭을 눌러 메뉴를 이동하면 인텐트가 트리거되지 않고(=다른 액티비티가 실행되지 않고) 이전 프래그먼트가 다른 프래그먼트로 교체된다. 위와 같이 단일 액티비티에 여러 프래그먼트가 동시에 존재 할 수도 있다. 프래그먼트 수명 주기 프래그먼트 수명 주기에는 Lifecycle.State 열거형으로 표현되는 다섯 가지 상태가 있다. INITIALIZED: 프래그.. 2022. 9. 14.
코틀린에서 ?와 !! 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 코틀린에선 기본적으로 null 값을 변수에 할당할 수 없다. 변수에 null 값을 넣고 싶을때 ?를 사용한다. 변수 타입 뒤에 붙여주면 된다. var notNull:Int = null//오류 var notNull:Int? = null//정상 몰?루? 같은 느낌...진짜 생소하네ㅋㅋㅋ 반대로 절대 null값을 넣으면 안되는 경우 !!를 사용한다. var notNull:Int = 0//기본값은 null허용x var okNull:Int? = 10//null이 들어올 수 있음을 의미 notNull = okNull!!//ofNull은 null을 허용한 상태이기 때문에 !!로 처리해야 오류없이 실행됨 //그러나 .. 2022. 9. 14.
Unit 3-1(2) 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. intent: 실행할 작업을 나타내는 객체. 명시적 인텐트:구체적이며 실행할 활동을 정확하게 알 수 있고 자체 앱의 화면인 경우가 많음. 암시적 인텐트:좀 더 추상적임. 전화걸기, 공유하기, 링크열기 등... 명시적 인텐트 호출 예 val intent = Intent(context, DetailActivity::class.java) intent.putExtra(DetailActivity.LETTER, holder.button.text.toString()) context.startActivity(intent) 암시적 인텐트 호출 예 val queryUrl: Uri = Uri.parse("${DetailA.. 2022. 9. 14.
Unit 3-1(2) 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. intent: 실행할 작업을 나타내는 객체. 명시적 인텐트:구체적이며 실행할 활동을 정확하게 알 수 있고 자체 앱의 화면인 경우가 많음. 암시적 인텐트:좀 더 추상적임. 전화걸기, 공유하기, 링크열기 등... 명시적 인텐트 호출 예 val intent = Intent(context, DetailActivity::class.java) intent.putExtra(DetailActivity.LETTER, holder.button.text.toString()) context.startActivity(intent) 암시적 인텐트 호출 예 val queryUrl: Uri = Uri.parse("${DetailA.. 2022. 9. 14.
반응형