일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Coroutine
- 백준
- Behavior
- onMeasure
- room
- kotlin
- 알림
- onLayout
- 안드로이드
- Navigation
- activity
- DataBinding
- lifecycle
- CollapsingToolbarLayout
- 코틀린
- LiveData
- CoordinatorLayout
- Algorithm
- ViewModel
- CustomView
- View
- AppBarLayout
- hilt
- notification
- BOJ
- HTTP
- 알고리즘
- recyclerview
- sqlite
- Android
- Today
- Total
목록Programming (프로그래밍) (212)
개발일지
아래와 같은 에러 메시지가 나올 때 [✖] Cocoapods ✖ System ruby is currently used CocoaPods is not compatible with system ruby installation on Apple M1 computers. Please install ruby via Homebrew, rvm, rbenv or other tool and make it default Detailed information: https://stackoverflow.com/questions/64901180/how-to-run-cocoapods-on-apple-silicon-m1/66556339#66556339 안내대로 수행한다. https://stackoverflow.com/questions..
Xcode 설치 후 아래와 같은 에러가 발생했습니다. [✖] Xcode ✖ Xcode requires to perform the First Launch tasks Launch Xcode and complete setup 아래 명령어로 설치를 하면 해결됩니다. sudo xcodebuild -installComponents 만약 아래와 같은 에러가 발생한다면 디렉토리를 변경하고 다시 시도하면 됩니다! xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance wk10695@WK10695ui..
Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" PATH (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/wk10695/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
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..
함수형 프로그래밍 (Functional Programming) 함수형 프로그래밍이란 순수함수를 사용하여 공유 상태(Shared State), 변경 가능한 데이터(Mutable Data) 및 부작용(Side Effect)를 줄이는 방식입니다. 함수형 프로그래밍을 사용하면 함수가 예측 가능하기 때문에 테스트에 용이하고 예측 가능한 코드가 되기 때문에 유지 보수에 좋습니다. 특징 불변성 어떤 값의 상태를 변경하지 않습니다. 함수 내부에서 참조하는 객체를 변경하면 예측하기 힘들어집니다. 매개 변수를 복사해서 사용하거나 값을 변경하면 안됩니다. 아래와 같은 코드는 person의 age를 변경하기 때문에 불변성에 어긋납니다. fun add(person: Person) { person.age++ } 고차 함수 함수를..
알람 앱을 실행 후 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 ..