일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- HTTP
- CoordinatorLayout
- 코틀린
- Navigation
- activity
- 알고리즘
- Algorithm
- lifecycle
- kotlin
- sqlite
- 안드로이드
- room
- recyclerview
- BOJ
- onMeasure
- ViewModel
- Coroutine
- 백준
- AppBarLayout
- View
- CollapsingToolbarLayout
- Behavior
- LiveData
- DataBinding
- onLayout
- CustomView
- notification
- hilt
- 알림
- Android
- Today
- Total
목록안드로이드 (95)
개발일지
Intent Intent는 Android에서 메시지를 전달하는 객체입니다. 주로 Activitiy, Service, Broadcast같은 Android 요소들 사이에서 메시지를 전달하는 역할을 수행합니다. 위 그림은 startActivity를 처리하는 과정입니다. Activity나 Service같은 Android 요소들은 직접 생성해서 사용하는 것이 아닌 Intent를 통해 Android Framework에 요청하여 사용하게 됩니다. 요청할 때 Intent에 데이터를 넣어서 보낼 수 있습니다. 인텐트 유형 명시적 인텐트 : Intent를 처리할 요소를 명시적으로 정하는 방식입니다. Context와 처리할 요소의 정보(패키지명, 클래스 이름)를 명시적으로 정하여 인텐트를 전송합니다. 암시적 인텐트 : In..
Bridge Android에서 WebView를 통해 Android와 Web간의 통신을 도와주는 기능이다. WebView에 addJavascriptInterface 기능을 통해 JavaScript 구문을 넣을 수 있으며, loadUrl 기능을 통해 JavaScript 구문을 실행할 수 있다. WebView 주의 사항 : 같은 이름으로 Bridge를 추가한 경우 기존의 Bridge가 제거된다. @SuppressLint("SetJavaScriptEnabled") class JavaScriptWebView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0..
Flow Flow는 Coroutine에서 여러 값을 순차적으로 보내는 유형입니다. Jetpack에서도 많이 쓰이는 유형이고, Iterator와 비슷하며 map, filter등 람다 함수를 지원하면서 suspend 함수에서 쓰이기 때문에 비동기 처리에 효율적입니다. Flow 구성 Producer : Flow Builder에서 비동기적으로 데이터를 생산한다. Intermediary : Stream에서 보내는 데이터를 소비하지 않고 수정한다. Consumer : 값을 사용한다. Producer Flow Builder를 통해 만든다. flow, channelFlow등 다양한 함수가 존재한다. Builder를 통해 Data를 만들고 emit을 통해 Data를 전달한다. Consume하는 함수가 수행될 때마다 Fl..
Context (맥락) Android Developer Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. 번역 응용 프로그램 환경에 대한 글로벌 정보에 대한 인터..
Constraint Layout RelativeLayout를 상속받은 Layout으로 Constraint를 통해 RelativeLayout의 기능을 모두 사용할 수 있고, Chain 기능을 사용하여 LinearLayout의 기능, Radio, Percent 기능을 사용하여 PercentLayout의 기능을 사용할 수 있습니다. ConstraintLayout이 다양한 기능을 제공하기 때문에 중첩 Layout을 사용해야 구현할 수 있던 상황에도 ConstraintLayout을 통해 Layout의 수와 Depth를 줄일 수 있기 때문에 성능면에서도 우수합니다. dependencies implementation 'androidx.constraintlayout:constraintlayout:2.0.4' Const..
OnTouchListener OnTouchListener는 터치가 발생했을 때 이벤트를 수신한다. 터치가 발생했을 때 MotionEvent가 발생하고 MotionEvent를 통해 터치한 손가락의 수, 각 터치별 위치, 손가락이 터치할 때, 손가락을 뗐을 때 등의 이벤트를 수신할 수 있다. 이러한 이벤트를 바탕으로 View를 드래그, 축소/확대, 회전등을 할 수 있다. Action MotionEvent의 action에는 비트 마스크 형식으로 Action, Touch Index 등 여러 정보를 저장하고 있다. action과 MotionEvent.ACTION_MASK를 통해 터치의 ACTION을 구할 수 있고, actionMasked를 통해 바로 ACTION을 구할 수 있다. ACTION_DOWN : 처음으로..
Notification Custom 사용자가 직접 Layout을 구성하여 RemoteView를 통해 Nofitication 템플릿을 만들 수 있습니다. * 보통 축소된 Notification은 64dp, 확장된 Notification은 256dp로 제한됩니다. RemoteViews를 만들고setCustomContentView를 통해 적용할 수 있다. * 확장된 CustomContentView는 setCustomBigContentView를 통해 적용할 수 있다. private fun createCustomContentView(): RemoteViews { return RemoteViews(context.packageName, R.layout.notification_content_view).apply { s..
그룹 Android 7.0(API 24)부터는 관련된 알림을 그룹으로 표시할 수 있습니다. 예를 들어, 앱에서 수신된 이메일의 알림을 표시하려면 모든 알림을 동일한 그룹에 포함하여 함께 축소할 수 있도록 해야 합니다. Android에서 기본적으로 그룹을 지정하지 않은 경우 4개 이상의 알림을 자동으로 그룹화 합니다. Notification 만들기 Notification을 만들 때 setGroup을 통해 그룹을 정해줍니다. val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.ic_android) .setContentTitle(message.title) .setContentText(message...