일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Gradle
- 암호학
- Kotlin
- ProGuard
- TEST
- 백준
- Coroutines
- 쿠링
- Codeforces
- boj
- relay
- activity
- MiTweet
- Hilt
- android
- 프로그래머스
- 코드포스
- Coroutine
- 코루틴
- Compose
- Python
- MyVoca
- Rxjava
- GitHub
- textfield
- architecture
- pandas
- androidStudio
- AWS
- livedata
- Today
- Total
목록Primary (163)
이동식 저장소
제목에 있는 네 가지 단어를 모두 설명할 수 있다면 이 글을 읽을 필요가 없다. 즉시 다른 공부를 하도록 하자. ㅋㅋ Android Android는 리눅스를 기반으로 개발된 오픈 소스 소프트웨어 스택이다. 진짜 스택처럼 생겼다. 최하단의 리눅스 커널을 기반으로 하여, 하드웨어를 추상화하고, Android 런타임과 핵심 라이브러리를 쌓아서, Java API 위에서 애플리케이션이 실행된다. 이것이 Android의 핵심 구조이다. 가운데의 Android Runtime은 하드웨어 레이어 위에서 동작하며, Native C/C++ 라이브러리를 Java API로 제공한다. 예를 들어 Android Framework가 제공하는 Java OpenGL API를 사용하여 2D/3D 그래픽을 직접 그릴 수 있다. Androi..
왜 경량화해야 하는가? APK 파일에는 실행 가능한 바이트코드가 DEX(Dalvik Executable) 형태로 저장되어 있다. DEX 파일에는 앱에서 실행되는 Android framework 메서드, 개발자가 직접 작성한 메서드 등의 목록이 저장되어 있다. 그런데 하나의 DEX 파일에는 메서드가 최대 65536개까지만 포함될 수 있다. 왜 65536개인지는 나중에 다시 공부할 것이고, 어쨌든 이 한도를 넘으면 DEX 파일을 여러 개 작성해야 한다. 그런데 원칙적으로 DEX 파일은 하나만 존재해야 하며, DEX 파일이 여러 개 존재하면 앱의 성능이 크게 나빠질 수 있다. 왜인지는 나중에. 이런 이유로 APK에서 불필요한 메서드를 최대한 제거해야 한다. R8 컴파일러를 사용하면 앱을 경량화할 수 있다. R..
Android 프로젝트를 만들면 수많은 Gradle Scripts 파일이 생성된다. 나머지는 대충 알겠는데 ``proguard-rules.pro``는 대체 무엇인가? 파일 내용을 봐도 딱히 모르겠고.. # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS,..
Kotlin을 처음 배울 때는 ``enum class``와 ``sealed class``를 혼동하곤 했다. enum을 구현할 떄 ``enum class`` 대신 ``sealed class``를 써도 되지 않나? 결론 ``sealed class``를 써도 되지만, 바람직한 사용법은 아니다. 왜? ``enum class``가 왜 적합한지는 설명 안 해도 되겠지? 이제 ``sealed class``의 바람직한 사용 예시를 설명하려 한다. ``sealed class``는 클래스가 정의된 블럭 안에서만 상속될 수 있으며, 외부에서의 상속을 허용하지 않는다. sealed class Animal { // Animal은 이 안에서만 상속될 수 있다. class Cat: Animal class Dog: Animal } ..
정말 좋은 글이다. 일독을 권한다. Jetpack Compose Stability Explained Have you ever measured the performance of your composable and discovered it is recomposing more code than you expect? “I thought Compose… medium.com 요약하면 Composable의 모든 매개변수가 immutable 또는 stable하다면 해당 composable은 skip될 수 있다. 어떤 composable이 skip되지 않아 성능상의 문제가 발생한다면, 먼저 unstable한 매개변수가 있는지 확인하자. 그래도 잘 모르겠다면 Compose compiler의 보고서를 참고해 보자. ``Li..