일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- LifeCycle
- intent
- Compose
- Coroutines
- 안드로이드
- TEST
- Flutter
- livedata
- drift
- android
- CustomScrollView
- viewmodel
- 앱
- Button
- Navigation
- textfield
- textview
- DART
- 테스트
- data
- 앱바
- Kotlin
- tabbar
- Dialog
- binding
- 계측
- appbar
- scroll
- ScrollView
- activity
- Today
- Total
목록전체 글 (364)
Study Record
😶 gradle dependencies testImplementation 'junit:junit:4.+' testImplementation 'androidx.arch.core:core-testing:2.1.0' 😶 LiveData Object 테스트하기 특별한 명시가 없다면, 단위 테스트에서는 모든 것이 메인 스레드(=UI 스레드)에서 실행되는 것으로 가정한다. LiveData 는 값이 변경되는 즉시 UI를 업데이트하는데 UI는 메인 스레드(=UI 스레드)에서 업데이트되어야 한다. 하지만 LiveData 는 메인 스레드에서 엑세스할 수 없기 때문에 메인 스레드를 호출하면 안 된다고 명시해야 한다. 명시는 다음과 같다. class ViewModelTests { @get:Rule var instantTask..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfIvob/btspE4kHbK1/b5WqSlkWZrDP7E7YJa7mZ0/img.png)
😶 Task 와 Back Stack 앱을 런처 아이콘을 클릭해 처음 시작하면 안드로이드는 시작 Activity 로부터 새로운 Task 를 생성한다. Activity 의 모음을 Task 라고 부른다. Activity 는 Back Stack 이라고 불리는 스택에 정렬되고 맨 위에 있는 Activity 가 사용자에게 보이고 상호작용할 수 있다. Back Stack 은 사용자가 이전 화면(Activity)으로 돌아가길 원할 때 유용하다. 시작 Activity 로부터 새로운 Activity 들이 계속 시작되고 백 스택에 쌓이다가 사용자가 이전 화면으로 돌아가길 원하거나 현재 Activity 가 종료되면 Back Stack 의 상위(현재)Activity 가 제거되고 그 이전 화면(Activity)으로 되돌아가 다시..
😶 기본 선언 + ViewModel MutableLiveData 는 Mutable 이 붙어있으므로 변경가능하다. LiveData 로 선언된 변수는 값을 직접 변경할 수 없다. class OrderViewModel : ViewModel(){ private val _quantity = MutableLiveData() val quantity: LiveData get() = _quantity } 😶 Transformations.map() LiveData 에 Transformations 메서드를 사용하면 LiveData 의 값을 다른 값으로 변경할 수 있다. private val _price = MutableLiveData() val price: LiveData = Transformations.map(_price..
😶 text 로 데이터 접근하기 @={} 기호 사이에 변수를 명시한다. ... ... 😶 strings.xml 파일에서 문자열에 접근하여 사용할 경우 Total %d 문자열 데이터에 %d 와 같이 값을 넣어줘야 하는 경우 @string/test_string 과 같이 데이터를 불러오는 형식에 @{} 로 감싸고 값을 넣어주는 부분은 @string/test_string 뒤에 괄호로 데이터 값을 명시한다. ... ... 😶 자동 true/false 값 업데이트 예를 들어, 사용자가 선택해야할 옵션들이 있다면 android:checked 속성을 사용할 수 있다. viewModel 의 flavor 변수의 값에 따라 equals() 함수로 같은 옵션이 있으면 체크하고 아니면 체크하지 않는다. // ... // .....
😶 Activity 에서 Fragment 사이의 공통 ViewModel 사용 Fragment 에서 ViewModel 을 선언할 때 activityViewModels() 라는 delegate class 를 사용하여 선언하면 같은 Activity 에서 사용되는 Fragment 들 사이의 공통된 ViewModel 을 참조할 수 있다. import androidx.fragment.app.activityViewModels class StartFragment : Fragment() { private val sharedViewModel: OrderViewModel by activityViewModels() ... } 원래의 ViewModel 선언 import androidx.fragment.app.viewModels..
😶 탐색하는 fragment 에 따라 app bar title 변경하기 activity 하나에 여러 fragment 를 탐색할 때 app bar 의 title 을 자동으로 변경할 수 있는 함수를 제공한다. (Activity) 바로 setupActionBarWithNavController() 함수이다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val navFragment = supportFragmentManager .findFragmentById(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzwArM/btso6aEGNPv/J7StpnVDnLMOkDhqCfRzP1/img.png)
😶 Android Jetpack Libraries & Android Architecture Components Android Jetpack 라이브러리는 안드로이드 앱을 더 쉽게 만들 수 있게 도와주는 라이브러리 모음이다. 사용 모범 사례와 플레이트 코드 작성을 자유롭게 하여 복잡한 작업을 단순화할 수 있다. Android Architecture Components 는 Android Jetpack Libraries 의 일부로 좋은 아키텍처로 앱을 설계하는데 도움을 준다. 앱 아키텍처란 설계 규칙의 집합으로 앱의 개발 구조를 제공한다. 잘 사용하면 유연하고 확장 가능한 유지보수를 가능하게 만들 수 있다. 😶 ViewModel 개요 ViewModel 은 Architecture Components 중 하나로 앱..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7BgX0/btso08gPG4e/ZIdvNeLnQvhAOSIJpUrZAK/img.png)
😶 MaterialAlterDialogBuilder private fun showMaterialAlterDialog() { MaterialAlertDialogBuilder(context) .setTitle(resources.getString(R.string.title)) .setMessage(resources.getString(R.string.supporting_text)) .setNeutralButton(resources.getString(R.string.cancel)) { dialog, which -> // Respond to neutral button press } .setNegativeButton(resources.getString(R.string.decline)) { dialog, which -..