일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- Compose
- relay
- 코드포스
- architecture
- 코루틴
- 쿠링
- boj
- activity
- Coroutine
- Python
- GitHub
- TEST
- 암호학
- livedata
- Kotlin
- Codeforces
- MiTweet
- ProGuard
- 백준
- android
- MyVoca
- Hilt
- textfield
- AWS
- androidStudio
- Rxjava
- pandas
- Coroutines
- Gradle
- Today
- Total
목록Primary (163)
이동식 저장소
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LHN8q/btrOQikC3pk/DNZkzDvwxT1c2z2D4sjJd0/img.png)
아래 영상을 보고 요약한 글입니다. 요약본을 백 번 읽는 것보다 원본 영상을 한 번 보는 게 낫습니다. 이 글은 개인적인 기록용입니다. 반응형 UI란 화면 크기에 따라 서로 다른 UI를 보여주는 것이다. 작은 화면에서와 달리 큰 화면에서는 더 많은 정보를 한 번에 보여줄 수 있다. 일반적인 바 형태의 스마트폰용 UI를 태블릿(특히 가로 모드)에서 그대로 보여주면 어색할 뿐 아니라 사용자의 생산성도 방해할 수 있다. 따라서 화면 크기에 따라 서로 다른 UI를 보여주는 것이 바람직하다. Compose에서 반응형 UI를 구현하는 대략적인 방법론을 공부해 보자. 자세한 구현 방법은 다른 글에서 작성해 보겠다. 화면 크기 반응형 UI를 구현하려면 먼저 반응할 화면의 크기를 정해야 한다. 화면 너비는 600dp, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDWlIT/btrOxLUL8kz/2JmfWcMOAiqCJ2zeNfVx51/img.png)
AAB의 구조는 다음과 같다. Base Module은 일반적인 모든 모듈을 포함하고, Dynamic Feature 모듈은 Google Play에 의해 동적으로 제공되는 모듈이다. 실제 앱 코드는 각 모듈의 ``root/``에 저장돼 있다. Google Play가 APK를 만들 때 각 모듈의 ``root/``를 합쳐 새로운 ``root``를 만든다. 이 글에서 일반적인 모듈은 feature module이 아닌 모듈, 그러니까 모든 사용자에게 공통으로 배포되는 모듈을 의미한다. 사실 나는 feature module을 작성해 본 적이 없다. Asset Pack은 게임 등에서 사용되는 리소스를 묶은 것이다. 게임 리소스는 특성상 용량이 매우 클 수 있기 때문에, 앱을 설치할 때 함께 다운로드하지 않고 리소스가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bz3tWV/btrOwj4F1Cn/kE44DlVZeFv2tmSZHjepg0/img.png)
안드로이드 앱을 설치하는 파일 확장자는 APK이다. 그런데 Android Studio에서 앱을 빌드하려고 보면, Android App Bundle이라는 형식이 기본으로 지정된다. 심지어 AAB 파일은 안드로이드에서 설치할 수도 없다. 이게 뭐지? AAB란... Android App Bundle, 줄여서 AAB는 앱의 코드와 리소스, APK 생성 방법과 서명 정보까지 모두 담고 있는 파일이다. 기기에서 직접 사용할 수는 없지만, Google Play가 AAB를 APK로 변환하는 데 사용된다. APK로 변환한다는 말을 자세히 설명하면, 기기의 폼 팩터와 언어, API 레벨에 맞게 적절한 APK를 만든다는 뜻이다. 안드로이드 버전에 따라 다른 코드를 적용할 수도 있고, 화면 크기에 따라 다른 레이아웃을 사용할..
간단한 직사각형 클래스를 정의해 보자. 직사각형은 너비, 높이, 넓이 속성을 갖는다. data class Rectangle( val width: Int, val height: Int, val area: Int, ) 끝~ ...일 리가 없지. 사실 이 구현은 매우 잘못된 구현이다. ``area``가 ``width``와 ``height``의 곱으로 주어진다는 보장이 없기 때문이다. 약간 개선해 보면, 생성자에서 ``width``와 ``height``를 입력받아 ``area``를 내부적으로 계산하게 정의할 수 있다. data class Rectangle( val width: Int, val height: Int, ) { val size: Int = width * height } ``width``와 ``heig..
>> response = requests.get(...) >> print(response.json()) {"mealServiceDietInfo":[{"head":[{"list_total_count":19},{"RESULT":{"CODE":"INFO-000","MESSAGE":"정상 처리되었습니다."}}]},{"row":[{"ATPT_OFCDC_SC_CODE":"B10","ATPT_OFCDC_SC_NM":"서울특별시교육청","SD_SCHUL_CODE":"7010578","SCHUL_NM":"한빛맹학교","MMEAL_SC_CODE":"2","MMEAL_SC_NM":"중식","MLSV_YMD":"20221004","MLSV_FGR":"163","DDISH_NM":"발아현미밥 레몬마들렌 (1.2.5.6.) 쇠고..