동식이 블로그

[Android] NestedScrollWebView

WebView 중첩스크롤 문제 해결

[Android] NestedScrollWebView 이슈가 많은 웹뷰 화면 스크롤링과 스와이프 문제 해결 문제가 되는 기존 구조는 다음과 같다. 문제점 1. 가로스크롤 바 WebView의 가로스크롤은 ScrollView의 최하단에 나타남 문제점 2. WebView 확대 WebView 확대시 내용이 잘려서 보임 문...

[Android] ContentValues Class

ContentValues Class

[Android] ContentValues Class *MediaStore* 를 통해 데이터를 저장하기 전, ContentValues Class에 대해 알아보기 android.content.ContentValues.java에 들어가보면 This class is used to store a set of values that the Conte...

[Android] Bitflag ?

Bitflag 공부

[Android] Bitflag ? 공부공부 비트 플래그(Bitflags)는 하나의 정수 변수를 사용하여 여러 가지 상태를 표현하는 기법이다. 이는 변수 내에서 각 Bool 값에 고유한 비트 위치를 할당해 사용하게된다. 예를 들어 메모리의 최소 크기 단위는 1바이트이므로 변수의 크기는 적어도 1바이트 이상이다. 8비트(1바이트)는 비트가 ...

[Android] Task Hijacking 취약점 CVE-2021-33699

CVE-2021-33699 Task Hijacking

[Android] Task Hijacking 취약점 CVE-2021-33699 이전 글이 새해 첫글!!! 이거네…너무 오랜만에 남기는 글… CVE-2021-33699 안드로이드 Task Hijacking 취약점(CVE-2021-33699)은 2021년 6월에 발견된 안드로이드 운영체제의 보안 취약점 중 하나로, 이 취약점은 악의적인 앱이 ...

[Android] Shared Preference 암호화

EncryptSharedPerference, KeyStore, RSA

[Android] Shared Preference 암호화 새해 첫 글 !! 앱내에 데이터를 캐싱할때 Room을 사용해서 저장하거나, SharedPreference로 값을 저장하곤 한다. SharedPreference를 사용하면 1 2 3 <map> <string name="lastSync">16727141076...

[Android] Gradle BuildType

BuildType.kt 뜯어보기

[Android] Gradle BuildType build.gradle을 Groovy에서 KTS로 마이그레이션을 하면서 gradle에 대한 무지함을 깨닫고.. 프로젝트 시작할 때 말고는 이 빌드 스크립트를 들여다보지 않았구나..라는 생각에 다시 한번 공부의 필요성을 느끼고 시작한다 먼저 build.gradle내의 buildTypes 에 대해...

[Android] Reduce App Size

Apk Analyze를 통한 app size 줄이기

[Android] Reduce App Size 너무너무너무너무 큰 앱 사이즈를 한번 줄여보자 굉장히 바보였다고 한다… 일단 앱 사이즈를 줄이기 전 앱 사이즈를 Android Studio의 APK Analyze를 통해 알아보자 이상하다… 분명 이 앱은 기본적인 CRUD기능만 있는.. 앱 사이즈가 크면 안되는 앱인데 무려 76.9MB...

[Android] OkHttp3 ConnectionSpecs

TLS / Cipher Suite

[Android] OkHttp3 ConnectionSpecs 무언가를 새롭게 배운다는건 신기하고 즐거운 일인 것 같다. 오늘도, 지식 + 1 Okhttp3를 통해서 여러가지 작업을 할 수 있다. 대표적으로 Interceptor를 붙여준다던지, Timeout 설정을 한다던지 이런 작업류들을 보통 많이 사용하고 자주들 접해봤을거라고 생각한다....

[Kotlin] Flow (1) - Flow 기초

Flow 기본 사항

[Kotlin] Flow (1) - Flow 기초 Flow에 대해서 알아보자 Flow란? 순차적으로 값을 내보내고 정상적으로 또는 예외로 완료되는 비동기적인 데이터 스트림이다 Flow Cold Flow는 기본적으로 Cold Stream 이다 즉, Flow { } 빌더의 코드블럭은 Flow가 collect되기 전까지 실행...

[Kotlin] TDA원칙이란

Tell, dont's ask!

[Kotlin] TDA원칙이란 TDA란? Tell, don’t ask로, 물어보지 말고 그냥 시켜라 라는 말로 번역된다. 객체지향적 사고방식 원칙 중 하나로, 객체에게 정보를 요구하지 말고 그냥 행위하도록 시키라는 의미로 보면 될것같다. 객체에게 정보를 요구하지 말라는것은, 데이터를 getter로 요청하지 말 것을 의미한다. 왜 요청하지 말라고...