본문 바로가기
[android] What is MVI & Concept of Model - MVI (Model View Intent) Architecture What is MVI? - MVI 는 Model-View-Intent 를 의미하며, Cycle.js 에 영향을 받았다. MVI 는 android 를 비롯한 UI-based app 에 적합한 패턴이다. MVI 의 목적은 더 읽기 좋은 코드, decouple 된 코드이며, 더 일관성 있는 코드이다. - Intent 는 유저 이벤트에 의해 발생하는 view 와의 interaction 이다. Intent 는 Model 의 상태변화를 야기한다. - View 는 다른 아키텍처에서 말하는 것과 동일하다. Model 의 상태를 반영하며, intent 를 통해 유저 interaction 을 전달한다. - Model 은 'state' 를 의미하며, business logic 과의 interaction 을 포함한다. 이는 .. 2023. 11. 29.
돼지왕왕돼지 사이트 개인정보 취급방침 '돼지왕왕돼지'는 (이하 '운영자'는) 고객님의 개인정보를 중요시하며, "정보통신망 이용촉진 및 정보보호"에 관한 법률을 준수하고 있습니다. 운영자는 개인정보취급방침을 통하여 고객님께서 제공하시는 개인정보가 어떠한 용도와 방식으로 이용되고 있으며, 개인정보보호를 위해 어떠한 조치가 취해지고 있는지 알려드립니다. 운영자는 개인정보취급방침을 개정하는 경우 앱 다운로드 페이지에 공지할 것입니다. ■ 수집하는 개인정보 항목 운영자는 별도로 개인정보를 수집하지 않고 있습니다. ■ 이용하는 개인정보 항목 이용하는 개인정보가 없습니다. ■ 이용하는 권한 항목 이용하는 권한 항목이 없습니다. 2023. 10. 1.
이재명 체포동의안에 대해 알아보자! Q : 이재명 체포동의안에 대해 간단히 알려줘. 국회 본회의에 이재명 체포동의안이 보고되었으며, 2023년 9월 21일 목요일 표결이 예정되어 있습니다. 체포동의안이 발행된 이유는 '백현동 특혜 의혹'과 '쌍방울그룹 대북송금 의혹'으로 인해 구속영장이 청구되었습니다. Q : 왜 '체포동의안'이라는 과정을 거치는거야? 그냥 체포하면 되는거 아냐? 국회의원에 대한 체포동의안이 국회에 올라오는 이유는 대한민국 헌법에 규정되어 있습니다. 헌법 제84조에 따르면, 국회의원은 국회가 회의 중일 때(회기 중) 체포되거나 구금될 수 없습니다. 단, 현행범인 경우나 국회의 동의를 받은 경우에는 예외입니다. 이는 국회의원의 자유롭고 독립된 의사표현을 보장하고, 국회의원의 권한을 보호하기 위한 조치입니다. 따라서, 국회의원.. 2023. 9. 21.
[android] 다시 살짝 정리해보는 AppWidget. https://developer.android.com/develop/ui/views/appwidgets # AppWidgetHost 위젯을 로드하고 표시할 앱. 보통 Launcher 가 그 역할을 함. AppWidgetProviderInfo widget 의 layout, update frequency, AppWidgetProvider 등의 metadata 기술 xml 형태로 제공함 AppWidgetProvider widget 의 lifecycle 관련된 method 들을 정의. widget 이 update, enable, disable, deleted 되었을 때 event 를 broadcast 로 받을 수 있음. View layout xml 로 정의 # Android Studio 에서는 New > Wid.. 2023. 8. 18.
[android] ConnectionService 에 대해 알아보자 https://developer.android.com/reference/android/telecom/ConnectionService # 앱이 다음 조건을 충족할 때 구현해야 하는 Service 임 VoIP 이나 다른 전화를 발신하면서 system 이 관리하는 ConnectionService 에 통합되길 원하는 경우 독립적인 전화앱으로 system 이 관리하는 ConnectionService 에 통합되지 않길 원하는 경우 (self managed) # ConnectionService 를 구현하면, 다음 과정을 통해 Telecom 이 bind 하도록 등록 할 수 있다. 1. Manifest 에 정의 2. TelecomManager 에 PhoneAccount 등록 System 이 관리하는 ConnectionS.. 2023. 8. 17.
[android] Compose Side-effects https://developer.android.com/jetpack/compose/side-effects # LaunchedEffect : composable 안에서 suspend function 실행 composition 에 들어가면 LaunchedEffect 의 block 코드가 새로운 coroutine 에서 실행됨. composition 에서 벗어나면 LaunchedEffect 의 block 코드는 cancel 됨. Recomposition 에서는 LaunchedEffect 의 key 가 변경되는 경우 기존 coroutine cancel 하고 relaunch 됨. if (state.hasError) { // `LaunchedEffect` will cancel and re-launch if `scaf.. 2023. 8. 16.
[android] compose 의 stability https://developer.android.com/jetpack/compose/performance/stability # compose 는 type 을 stable, unstable 로 구분한다. type 이 immutable 이면 stable 이고, 이는 recomposition 시 compose 가 값 변경이 있었는지를 알아챌 수 있다는 것이다. type 이 unstable 하다는 것은, recomposition 시 compose 가 값 변경이 있었는지를 알 수 없다는 것이다. (돼왕 : 그래서 안정성을 위해 항상 recomposition) # stable parameter 는 recomposition 시 값이 변경되지 않았다면 recompose 를 skip 시킨다. unstable paramet.. 2023. 8. 15.
[android] BlockedNumbers (수신차단) 에 대해 알아보자. https://source.android.com/docs/core/connect/block-numbers # Android N (7.0, API Level 24) 전에는 수신차단을 위해서는 특정 앱을 다운로드 받았어야 했음. 그러나 이런 앱들도 공식적으로 지원되는 API 가 없었기에 기대하는 만큼 작동하지 않았음. 몇몇 제조사들은 자체적인 수신차단 방법을 제공하곤 했지만, 유저가 단말을 변경하면 이 정보들은 날아가기 일쑤였음. 기능들을 나름 잘 제공하는 앱들을 사용하는 경우에도, 각각의 앱에서 중복으로 수신차단 번호를 등록해야 하는 수고로움도 있었음. # Android N (7.0, API Level 24) 에서는 BlockedNumberProvider 라는 content provider 가 제공됨. 이.. 2023. 8. 14.
[전포 맛집] 치킨버거 클럽 - 먹어보고 싶던 더티 화이트 도전! 개맛! 치킨버거 클럽 광안리점에서 매력에 빠졌고, 더티 화이트를 먹어보고 싶었으나 배불러서 못 먹어서 아쉬움을 가지고 있었음. 광안리점 갔을 때 전포점 있는 줄 몰랐는데, 전포에 가서 검색해다 발견했을 때 얼마나 신났던지! 광안리점의 깔끔한 화이트톤과는 입구부터 상당히 다른 느낌. 내부도 깔끔보다는, 보드판이 있는 힙한 느낌. 친구는 광안리 점에서 먹었던 비엘티(BLT) 가 상당히 인상적이었는지, 또 다시 비엘티(BLT)를 선택. 8400원. 그리고 역시나 세트 A(감튀 + 제로콜라) 4000원 추가! 나는 먹고 싶엇던 더티화이트 8400원! 짜잔! 친구의 BLT. 양상추 상태는 광안리 점 승.. 그런데 여기가 뭔가 더 미쿡느낌 나는 기름짐이 느껴지는 느낌. 크리미 크리미 해보이는 크림치즈스러운 소스가 이미 너.. 2023. 7. 3.
반응형