전체 243

[Android] Pointer input - Gesture

#1 개요#1-1 이전 게시글 [Android] Pointer input - PointerInputChange, PointerEvent#1 개요 동작 이해하기  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 동작 이해하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저kenel.tistory.com위의 게시글에서 이어진다. 해당 게시글에서 먼저 PointerInputChange 및 PointerEvent에 대한 이해를 해야 본 게시글을 이해할 수 있다. #1-2 공식 문서 동작 이해하기  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Tran..

[Android] Pointer input - AwaitPointerEventScope()의 메소드들

#1 개요#1-1 이전 게시글 [Android] Pointer input - PointerInputChange, PointerEvent#1 개요 동작 이해하기  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 동작 이해하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저kenel.tistory.com위 게시글에서 AwaitPointerEventScope()의 가장 대표적인 메소드인 awaitPointerEvent()에 대해 간단히 설명했다. 본 게시글에선 awaitPointerEvent()를 제외한 나머지 메소드들을 설명한다. #1-2 공식 문서 AwaitPointerEventScope  | ..

[Android] Pointer input - PointerInputChange, PointerEvent

#1 개요 동작 이해하기  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 동작 이해하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이해해야 할 몇 가지 용어와 개념이 있developer.android.com위 공식 문서를 나의 언어로 정리하고, 샘플 앱을 만들어봤다. #2 Pointer#2-1 포인터는 하드웨어다화면의 특정 좌표를 찍을(point) 수 있는 사물(하드웨어)을 의미한다. 일반적으론 손가락을 의미한다. 혹은 갤럭시의 S펜이 해당된다. 키보드는 터치 스크린의 어느 좌표를 가리킬(point) 수 없으므로 포인터가 아니다. #2-2 PointerTypepacka..

디베이터 - 자기방어

#1 개요브루스 코치는 말했다. "지금 너희는 깨끗하고 훌륭한 토론자들이지. 하지만 간혹 대놓고 지저분하게 게임을 하는 팀도 있어. 물론 너희는 그런 팀을 경멸하겠지. 하지만 문제는 제대로 대응하는 법을 모르면 그런 녀석들에게 결국 지게 된다는 거야. 좋은 토론자는 나쁜 토론자가 술책을 부리면 지게 되어 있어." #2 핵심 논리#2-1 쇼펜하우어의 논쟁술 1쇼펜하우어는 『논쟁적 토론술』이라는 책에서, 나쁜 토론을 일삼는 논쟁가(불한당)는 "인간 본성의 타고난 천박함"에서 탄생한다고 썼다. 만일 인간이 고결하다면 토론의 목표는 오로지 진실을 찾는 일일 것이다. 하지만 사실 우리 인간은 (감성적인) 허영덩어리이며, "요설과 거짓"을 늘어놓을 때가 바로 이런 악덕이 발현되는 순간이다. 설령 토론이 선한 믿음으..

책/자기 계발 2025.02.04

Nutri Capture 백엔드 - Hilt 도입

#1 개요#1-1 Hilt 도입계획표 상, Hilt 도입은 끝자락 단계였다. 하지만, 코드를 짜가며 앱을 구현해나가는 데에 여러 상용구 코드들이 나를 거슬리게 했다. Hilt로 현존하는 상용구 코드 그리고 잠재적으로 발생할 상용구 코드들을 선제적으로 제거하는 편이 더 좋을 것이란 판단을 내렸다. #1-2 기반 (레퍼런스) [Android] Dagger2 - Hilt로 마이그레이션#1 Hilt 개요 Hilt를 사용한 종속 항목 삽입  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Hilt를 사용한 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으kenel.tistory.com위 게시글에 기반해, 본 안드로이드에 Hilt를 도입한..

[Android] Hilt - java.lang.RuntimeException: Unable to instantiate application

#1 문제 상황#1-1 Hilt 도입 [Android] Dagger2 - Hilt로 마이그레이션#1 Hilt 개요 Hilt를 사용한 종속 항목 삽입  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Hilt를 사용한 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으kenel.tistory.com위 게시글에 기반해, 개발 중인 앱에 Hilt를 도입하고 있었다. #1-2 Application 클래스package com.example.nutri_capture_new.diimport android.app.Applicationimport dagger.hilt.android.HiltAndroidApp@HiltAndroidAppclass H..

Nutri Capture 프론트엔드 - windowInsetsPadding()

#1 문제 상황Scaffold의 bottomBar 속에 Row(). 그 Row() 속에 TextField()가 있는 구조다. TextField()를 클릭하면 소프트키보드가 Row() 직전까지 올라오는 걸 의도했으나, 실제로는 Row()의 영역을 침범하여 TextField() 직전까지 올라온다. #2 코드 스니펫Scaffold( modifier = Modifier .fillMaxSize() .windowInsetsPadding(WindowInsets.ime), // Modifier에  windowInsetsPadding()을 추가하면, 시스템 UI (여기서는 ime(가상키보드)) 영역에 가려지지 않게 된다. 주의할 점은, windowInsetsPadding()을 반드시 Sca..

Nutri Capture - 코드 정리

#1 개요코드 최적화를 하기 앞서 당장 필요없는, 계륵과도 같은 코드 전부 제거했다. 일론 머스크의 사고법에 의하면, "이건 결국 다시 넣어야 할 것 같은데?"라는 생각이 들지 않으면 충분히 제거하지 않은 것이므로 정말 철저하게 제거했다. #2 코드 스니펫#2-1 위임 프로퍼티 [Kotlin] 위임 프로퍼티 (Delegated properties)#1 Delegated properties#1-1 개요 Delegated properties | Kotlin kotlinlang.org위임 프로퍼티는, getter와 setter 로직을 다른 클래스에 위임(delegate)하는 코틀린 프로퍼티를 의미한다. 본 게시글에서는 위임 프로퍼kenel.tistory.com위와 같이 위임 프로퍼티에 대해 공부해놓고 정작 프..

앞으로의 App 개발 일지 작성

#1 배보다 배꼽이 더 큰 상황지금껏 개발 일지를 상세하게 적었던 이유는, '왕초보 프로그래머가 따라할 수 있게'하기 위함이었다. 그러나, 배보다 배꼽이 커져버렸다. 왜냐하면 블로그 기록을 어떻게 더 '친절'하게 남길까를 고민하는 시간이, 전체 공부에서 상당한 부분을 차지해버렸기 때문이다. 게다가 "개발 일지를 상세하게 적었다"는 건 내 사견에 불과하다. 진짜 왕초보라면, 분명 내가 생각지도 못한 부분에서 막힐테니 말이다. 물론 그런 경우의 수까지 고려하는 게 좋겠지만, 그건 블로그가 아니라 전문 작가가 쓴 프로그래밍 교재에서 행해져야 하는 것이다. 즉, 의미있는 기록이 아니었다는 말이다. 실제로 블로그 통계를 봐도 App 개발 일지를 본 사람은 몇 손가락에 꼽는다. 의미가 없더라도 써서 나쁠 건 없다...

일론 머스크의 사고법과 충고

#1 1원칙 사고법#1-1 정의짐 켈러: 일론 머스크는 "그게 정말(really) 제일 중요한 거야?"라고 끊임없이 질문하며, 그 질문의 과정에서 모든 가정, 확신, 편견을 버렸습니다 (오픈 마인드). 우리가 가진 생각의 99%는 편견을 지키려는 변명에 불과합니다. 그 중 98%는 아예 틀렸을 거고요. 생각의 범위를 넓혀야 새로운 걸 할 수 있습니다.1원칙 사고법(First principles thinking)은 먼저 모든 현상을 쪼개서, 그 속의 내재된 본질을 찾는 사고법이다. 그리곤 "진짜(really)?"를 끝까지 물어서 정말로 맞는 사실이나 논리를 하나하나 밝혀낸다. 그 하나하나를 기반(본질) 위에 차곡차곡 쌓아 올린다. 일론은 물리학의 기본 원칙을, 어떤 현상에 내재된 본질로서 두고 생각하는 ..