일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Coroutines
- drift
- appbar
- 테스트
- Compose
- Kotlin
- textfield
- Flutter
- 앱바
- 안드로이드
- binding
- Button
- Navigation
- data
- scroll
- tabbar
- activity
- LifeCycle
- livedata
- intent
- textview
- android
- ScrollView
- 앱
- CustomScrollView
- TEST
- viewmodel
- 계측
- Dialog
- DART
- Today
- Total
목록분류 전체보기 (355)
Study Record
😶 암시적 인텐트 사용해보기(ex. 텍스트 공유하기) private fun getShareIntent() : Intent { val shareIntent = Intent(Intent.ACTION_SEND) shareIntent.setType("text/plain").putExtra(Intent.EXTRA_TEXT, "공유 테스트") return shareIntent } Intent.ACTION_SEND 으로 설정하고 putExtra 로 원하는 텍스트를 정의하면 된다. startActivity 함수로 실행한다. startActivity(getShareIntent()) 😶 암시적 인텐트를 사용하기 전 실행 가능한 앱이 있는지 미리 확인하기 해당 암시적 인텐트를 실행하다가 인텐트에 해당하는 인텐트 필터가 포함..
😶 Intent 개요 Intent 는 메시징 객체로, 다른 앱 구성 요소(Activity, Service, BroadCast, 콘텐츠 제공자)로부터 작업을 요청하는 데 사용할 수 있다. 기본적인 사용 사례 - Activity 시작 Activity 는 앱 안의 단일 화면을 의미하는데 새로운 화면을 시작하고 싶다면 startActivity() 함수로 Intent 를 전달할 수 있는데 이 경우의 Intent 는 시작할 액티비티와 모든 필수 데이터를 가진다. 인텐트에는 명시적 인텐트와 암시적 인텐트 두 가지 유형이 있다. 😶 명시적 인텐트 일반적으로 앱 안에서 구성 요소를 시작할 때 사용된다. ex. 새로운 Activity 시작, Service 시작 😶 암시적 인텐트 특정 구성 요소의 이름을 정의하지 않지만 그..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bx00IK/btslCkDFaY4/EK6b7rYVam8UgGvcpIYO01/img.png)
😶 개요 Fragment 사이의 데이터 전달은 Bundle 을 이용한다. Bundle 을 사용하면 key, value 값으로 데이터를 저장하면 해당 Fragment 에서 argmnent 변수로 Bundle 객체를 참고할 수 있다. Bundle 객체로 Fragment 로 데이터 전달하기 val bundle = Bundle().apply { this.putInt("test1", 3) this.putString("test2", "testtest") } StartFragment().apply { arguments = bundle } 전달받은 데이터 해당 Fragment 에서 확인하기 arguments?.getInt("test1") arguments?.getString("test2") 하지만 Bundle 객체를 ..
https://developer.android.com/codelabs/kotlin-android-training-add-navigation#8 Android Kotlin Fundamentals: 03.2 Define navigation paths | Android Developers Learn how to use Android Studio’s Navigation Editor to define the flows (navigation paths) through your app. You will understand how to implement an Up button, add an options menu, and create a navigation drawer for your app. developer.and..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dXpTT8/btskXOsTBoE/Y5xWsO39A2jLDFvy3fukg1/img.png)
😶 Navigation 개요 화면(Activity)전환을 할 때 항상 Activity 를 앱 내의 여러 콘텐츠를 탐색할 때(ex. 여러 fragment 를 탐색) 사용할 수 있는 Navigation Component가 있다. Navigation 에는 NavigationGraph , NavHost, NavController를 구성요소로 가지고 있다. Navigation Graph(탐색 그래프) 탐색 그래프는 앱 탐색의 가상 매핑정보가 있어 각 대상(Activity, Fragment 등)이 서로 관련되는 방식을 보여주는 XML 이다. NavHost 탐색 그래프에서 대상을 표시하는 빈 컨데이터로 NavHostFragment가 포함된다. Nav Controller NavController객체를 사용하면 NavH..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nxnTF/btskKE3l6xW/COMHH7irseCFaZLOUJNmj1/img.png)
😶 Fragment Fragment 는 앱 화면에서 사용자와 상호작용할 수 있는 한 부분으로 ViewGroup 에 속한다. Activity 에 여러 개의 Fragment 가 존재할 수 있고 여러 개의 Activity 에 하나의 Fragment 를 재사용할 수 있다. 항상 Activity 내에서 호스팅 되어야 한다. 자체 생명 주기를 가지고 자체 입력 이벤트를 수신하며 Activity 실행 중 추가 및 삭제가 가능하다. Activity 가 관리하는 백 스택에도 Fragment 를 추가할 수 있다. (ex. 뒤로 가기 버튼을 누르면 액티비티가 종료하는 것이 아닌 이전 Fragment 가 나오는 경우) 😶 Fragment 수명주기 프래그먼트의 수명 주기는 왼쪽 그림과 같다. 그 중 최소한 구현해야 하는 수명 ..
😶 findViewById() vs Data binding View에 대한 접근을 얻기 위해 사용하는 함수인 findViewById()를 사용할 수 있다. val textView = findViewById(R.id.name_tv) findViewById() 함수가 작동되는 방식은 런타임 때 뷰 계층구조를 훑으면서 인자로 받은 id 값으로 알맞은 View를 찾아서 리턴해준다. 하나의 View를 연결할 때마다 findViewById() 함수를 사용하기 때문에 접근하려는 View 가 많아질수록 비용이 많이 든다. 또한, View 가 많지 않은 간단한 앱에서는 문제가 없지만 View 의 개수가 많아지고 계층 구조가 더 깊어지면 알맞은 View를 찾는데 시간이 오래 걸려 사용자의 앱 속도가 현저히 느려질 수 있다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bFTOEl/btskk9bIUZR/SDoGxIINnQ40RDRxKKNmcK/img.png)
😶 ConstraintLayout ConstraintLayout 은 평면 보기 계층 구조가 있는 크로 복잡한 레이아웃을 만들 수 있는 ViewGroup 에 속한다. 하위 뷰들 간의 연결 또는 정렬(제약 조건) 이 존재하며, 뷰마다 하나 이상의 수평, 수직 제약 조건을 정의해야 한다. 😶 기본 ConstraintLayout 을 ViewGroup 으로 갖는 모든 View 는 수평, 수직 제약 조건을 하나씩 정의해야 한다. 제약 조건을 부여하는 방법은 app:layout_constraint[방향]_to[방향]Of 속성으로 값은 "parent" 혹은 같은 하위 요소의 id 값으로 한다. "parent" 는 부모 ConstraintLayout 를 의미한다.(즉, 오른쪽 끝, 왼쪽 끝, 맨 상단, 맨 하단) [방향..