본문 바로가기
[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.
[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.
[전포 맛집] 지즈(JEEZ) - 프리미엄 카츠! 먹는 순간 Jesus 를 찾는다고.. 여기 안 이후 톤쇼우를 안 간다는 평을 듣고 기대하면서 찾아감. 전포동 골목에 위치. 깔끔한 실내. 오픈 주방. 테이블 수가 많지는 않아서 피크타임에는 웨이팅 필수. 물은 기본적으로 차. 메뉴판. 나는 상로스카츠 정식 14000원 함께한 친구는 히레카츠(안심) 정식 12000원 + 제로콜라 2000원 그림도 있고, 먹는 방법도 안내되어 좋았음. 주문과 동시에 튀겨지는 카츠들. 기본 밥과 장국. 부족하면 말씀하라고 했던듯.. 그릇들도 나름 이쁨. 친구것이 먼저 서빙됨. 히레(안심)카츠. 아주 이쁘게 튀겨졌고, 고기도 좋음이 눈으로 보임. 나의 상로스카츠. 상로스카츠는 고기가 진짜 미쳤음. 살짝 질긴 부분도 있었지만 그 기름기가 적절히 어울어진.. 독특한 맛을 내는 정말 특수부위를 확연하게 느끼게 해줌. 친.. 2023. 7. 2.
반응형