일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lifecycle
- HTTP
- hilt
- 안드로이드
- Coroutine
- Behavior
- 알고리즘
- CustomView
- BOJ
- DataBinding
- AppBarLayout
- CollapsingToolbarLayout
- LiveData
- View
- CoordinatorLayout
- activity
- notification
- Android
- onMeasure
- Navigation
- sqlite
- kotlin
- onLayout
- recyclerview
- 코틀린
- Algorithm
- room
- 알림
- 백준
- ViewModel
- Today
- Total
목록Android (111)
개발일지
AppWidgetProvider 안드로이드에서 Widget에 관련된 생성, 삭제, 수정 등 이벤트를 제공하며 BroadcastReceiver를 통해 이벤트를 수신할 수 있습니다. 안드로이드에서 이러한 이벤트를 쉽게 처리하기 위해 AppWidgetProvider를 제공합니다. 실제로 내부 코드를 보면 BroadcastReceiver를 상속받고 onReceive에서 Action으로 분기하여 onEnabled, onDeleted등 함수를 호출합니다. 즉 개발자는 AppWidgetProvider를 상속받고 해당 함수를 오버로딩하면 됩니다. public class AppWidgetProvider extends BroadcastReceiver { public AppWidgetProvider() { } public ..
위젯 위젯은 사용자의 홈 화면에서 바로 엑세스할 수 있으며, 정보 표현, 앱 제어 등 다양한 작업을 할 수 있습니다. 하지만 위젯은 홈 화면으로 제공되기 때문에 제한이 있습니다. - 제스쳐 : 좌우 스와이프 기능이 제한됩니다. (대부분 홈화면은 ViewPager 형식의 네비게이션을 가지기 때문에 이벤트가 겹쳐서 제한됩니다. - View : RemoteViews를 통해 제공되기 때문에 제한된 View만 사용가능합니다. (참고) 필수 설정 AppWidgetProviderInfo (참고) 위젯에 대한 갱신 주기, Layout, 크기 등 메타 데이터를 설명하며 XML로 정의합니다. AppWidgetProvider (참고) BroadcastReceiver를 상속받았으며 이벤트를 수신하여 처리할 수 있습니다. @A..
알람 앱을 실행 후 MainActivity에서 AlarmActivity로 이동했고 홈 버튼을 눌러 태스크를 백그라운드로 보냈다. 그리고 알람에 맞춰 AlarmDialogActivity가 실행됐다. 그렇다면 AlarmDialogActivity가 백그라운드에 있는 태스크에 속하게 됩니다. 태스크를 포그라운드로 불러오고 백 버튼을 누르면 AlarmDialogActivity에서 어떤 Activity로 가야할까요? 이러한 규칙은 launchMode로 설정할 수 있고, Launch Mode는 manifest 또는 Intent로 설정할 수 있다. * 앱 실행히 하나의 Task가 생성되며 Launch Mode나 Intent를 통해 새로운 Task를 만들 수 있다. Manifest 설정 standard Activity를..
Manifest AndroidManifest.xml이라는 파일이며 프로젝트에 꼭 존재해야 합니다. 기본적으로 Build Tool, Android System, Google Play Store에 필요한 정보를 제공하는 역할을 합니다. 주요 요소 Package Name manifest 태그안에 package를 정의합니다. package는 R class를 만들 때 사용하거나 manifest에 선언된 컴포넌트들의 상대 주소를 찾을 때 사용합니다. ... Component Application, Activity, Service, BroadcastReciever, ContentProvider 같은 주요 요소를 선언합니다. (Manifest에 등록하지 않은 Component는 작동되지 않을 수 있습니다.) name ..
Broadcast Receiver Android에서 화면 켜짐, 핸드폰 켜짐, 문자 수신 등 시스템 이벤트가 발생했을 때 대처해야 하는 경우가 있다. Broadcast Receiver를 사용하여 이벤트를 수신할 수 있습니다. Broadcast Receiver를 사용할 때 주의할 점은 리소스 관리입니다. Broadcast Receiver는 등록되면 계속해서 이벤트를 수신하고 동작하며 이는 메인 쓰레드에서 작업을 진행합니다(Handler를 따로 설정할 수 있지만 Default 값은 메인). -> Broadcast Receiver에서 작업 처리가 오래 걸리는 경우 ANR이 발생할 수 있다. * 시스템앱뿐만 아니라 다른 앱에서도 발생한 ACTION을 수신할 수 있습니다. * Oreo 이후부터 백그라운드에 제한이..
Service 어플리케이션이 종료되도 작업을 유지할 수 있는 요소(Android 4대 Component 중 하나이다.)이다. 크게 Background와 Foreground, Bind로 나눌 수 있습니다. Background는 UI가 제공되지 않고 Foreground는 Notification으로 UI가 제공되며 Bind는 Binder로 Service와 통신할 수 있습니다. * Oreo 이상에서 베터리에 대한 규제가 강화되면서 Background Service를 사용하기 어렵습니다. https://developer.android.com/about/versions/oreo/background?hl=ko#services -> 앱 종료시 Background 종료됩니다. * Service를 생성해도 내부적으로 새로..
MVVM Model View ViewModel로 이루어진 디자인 패턴이다. MVP 패턴에서 View와 Presenter가 1대1 관계, View가 Presenter에게 의존적인 단점을 보완한 디자인 패턴이다. View에서 사용자의 입력을 받으면 Command Pattern을 통해 ViewModel에 Action을 전달합니다. ViewModel은 해당 Action에 맞게 Model을 업데이트하고 ViewModel은 Model의 업데이트를 수신하여 값을 수정합니다. View도 마찬가지로 ViewModel의 변화를 감지하여 새로운 값을 바인딩합니다. View MVC 패턴에서 View처럼 사용자에게 UI를 제공한다. View는 ViewModel을 알지만 ViewModel은 View를 모릅니다. 또한 DataBi..
MVP Model View Presenter로 이루어진 디자인 패턴입니다. MVC 패턴에서 View와 Controller의 강한 결합도를 해결하기 위해 나온 디자인 패턴이며, Presenter를 통해 View와 Model의 결합을 줄일 수 있습니다. Model MVC 패턴에서 Model과 같이 데이터를 처리에 관한 로직을 담당합니다. 또한 View, Presenter와 독립적입니다. class Model { fun saveData(data: Int) { // Do Something } } View 사용자와 인터렉션을 담당하며 MVC 패턴에서 View와 비슷합니다. 사용자한테 입력을 받고 프레젠터에게 전달한다. 또한 Presenter가 Model에서 데이터를 불러와 가공하여 View에게 전달합니다. Vie..