- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 일본어기초
- 학습지
- 일본어문법
- rxjava
- GIT
- 인공지능
- Kotlin
- ai
- 책추천
- CustomTab
- Android
- PR
- 진짜학습지
- 안드로이드
- 책리뷰
- blog
- github
- suspend
- posting
- n3문법
- 진짜학습지후기
- webflux
- coroutine
- KotlinInAction
- androidstudio
- 코틀린
- errorhandling
- 진짜일본어
- pullrequest
- jlpt
목록안드로이드 (74)
코딩하는 개굴이
이번 Google I/O Android 내용 중, 웹 관련 업데이트 사항에 대해 정리해 보았습니다. 직접 번역한 것이므로, 오타/오역이 존재 할 수 있습니다. 발견될 경우 공유 부탁드립니다. 개발자들은 여러가지 이유로 Android 내에 웹을 사용하게 되는데, Android 앱에서 웹 위젯을 재사용하여 타사 콘텐츠를 통합하거나, 전체 웹 앱을 플랫폼으로 가져오는 등 Android 는 이를 위해 많은 도구들과 기능을 제공하고 있다. 관련하여 이번 2023 Google IO 에서는 아래의 새로운 기능을 소개하고 있다. Privacy 개선과, large screen 에 대한 지원 추가 (webview 에서의 image drag and drop 등) 부분 Customtab 의 지원 PWA 의 새로운 기능들, 그..
해당 내용은 “Android CustomTab” 공식 문서를 기반으로 작성되었습니다. 직접 번역하였기 때문에 오역이 있을 수 있습니다. 발견 시, 댓글 등으로 공유 부탁드립니다. CustomTab 이란? 안드로이드의 웹 콘텐츠 안드로이드에서 웹 콘텐츠를 로딩하는 방법은 이전부터 사용되어왔지만, 예전 방법은 개발자에게 어려움을 줄 수 있다. 외부 브라우저를 실행하면 사용자에게 부담스러운 컨텍스트 전환을 하게 만들고, 웹뷰의 경우 웹 플랫폼의 모든 기능을 지원하지 않으며 브라우저와의 상태를 공유할 수도 없기에 유지 관리 과정에서 오버헤드가 발생하게 된다. CustomTab 은 무엇을 할 수 있을까? CustomTab을 이용하면 렌더링 엔진이 사용자가 선호하는 브라우저에서 웹 콘텐츠를 로드시킨다. Custom..
Dispatchers.Main 을 이용해 로직을 짜는데, 뭔가 이상하게 순서가 꼬였다 싶은 순간이 있을 수 있다. 보통의 개발자는 위에서부터 아래로 코드의 실행 순서를 가정하고 개발을 하곤하기에 Dispatchers.Main 의 정확한 이해는 중요하다. 따라서, 순서가 보장되게 이를 사용하려면 어찌 해야하는지 한번 알아보도록 하자. 그러기 위해서 Dispatcher이 무엇인지 코루틴의 동작은 어찌되는지 먼저 확인해보자. Dispatcher 란? 코루틴의 어떤 스레드에서 돌아갈지 정의하는 역할로써, Event Loop 를 통해 작동된다. Event Loop는 Call Stack 과 Callback Queue 의 상태를 반복적으로 체크하고, 함수를 실행할 시간이 되면 큐의 첫번째 아이템을 Call Stack..
간혹 JAVA_HOME 의 수정이 필요한 경우를 안드로이드 개발 시에 마주할 때가 있는데, 이번 Gradle 8.0.0 업데이트가 바로 그것이다. https://developer.android.com/build/releases/gradle-plugin Android Gradle plugin release notes | Android Studio | Android Developers The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to building Android apps. developer.android.com Android Gradl..
coil 라이브러리를 써보겠다고 추가했더니 아래와 같은 에러가 떴다. One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). Dependency: androidx.core:core-ktx:1.7.0. AAR metadata file: /Users/son-yejin/.gradle/caches/transforms-3/95e9b20..
실로 오랜만에 타겟 버전을 올렸더니 아래와 같은 에러가 발생하였다. Manifest merger failed : android:exported needs to be explicitly specified for . Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See for details. 자세히보면, Android 12 를 타겟팅하는 경우 Manifest 파일에서 android:exported 를 설정 해주어야한다는 내용이다. 기존에는 기본으로 적용되었으나, ..
Java 의 예외 처리 Java 의 경우에는 아래와 같이 try catch 로 특정 checked exception 을 걸어 처리하도록 필수하고 있다. public class JavaThrow { public void throwIOException() throws IOException { throw new IOException(); } } public static void main() { JavaThrow javaThrow = new JavaThrow(); try { javaThrow.throwIOException(); } catch (IOException e) { //checked Exception e.printStackTrace(); } } Kotlin 의 예외 처리, Java 의 Exception ..
Java/Kotlin 이 함께 사용되는 프로젝트의 경우 상호간의 클래스 사용에 주저한 적이 있을 것이다. 두 언어는 컴파일러가 큰 어려움 없이 사용할 수 있도록 해주지만, 아래와 같이 명확하게 개념을 짚어두고자 한다. 해당 내용은 fast campus 의 “실무 프로젝트로 배우는 Kotlin & Spring : 리팩토링부터 서비스 구현까지” 강의를 기반으로 작성되었음을 알립니다. Java 에서 Kotlin 클래스의 Getter, Setter 호출하기 아래와 같은 Student.kt 로 클래스를 둔다고 가정하자. class Student { var name: String? = null var id: Int? = null val age: Int = 10 var grade: String? = null //접근..
해당 내용은 fast campus 의 “실무 프로젝트로 배우는 Kotlin & Spring : 리팩토링부터 서비스 구현까지” 강의를 기반으로 작성되었음을 알립니다. 변수 탑레벨 즉, 파일 최상단에 변수를 위치할 수 있음 간단한 로직의 경우 굳이 클래스를 생성하지 않고 변수 할당만으로 처리 할 수 있음 var LOG_TAG = "LOG" fun main() { //... } 함수 //기본 fun sum(a: Int, b: Int): Int { return a + b } //표현식 스타일 fun sum(a: Int, b: Int): Int = a + b //표현식 & 반환타입 생략 fun sum(a: Int, b: Int) = a + b //몸통이 있는 함수는 반환타입을 제거하면 컴파일 오류 발생 /* fu..
기존에 액티비티에서 결과를 받아올 때, 어떤 방식을 사용했는지 기억하는가? 우리는 지금까지 StartActivityForResult 로 액티비티를 호출하고, onActivityResult를 사용해 결과를 받아오곤했다. 그러나, 이 방법은 Deprecated 되었다. Activity 클래스에서 여전히 사용할 수는 있지만, Android는 AndroidX Activity 와 Fragment 에 도입된 새로운 방식을 통한 사용으로 변경될 것을 권장하고 있다. 그것이 바로 registerForActivityResult 이다. 우선, 우리는 가장 심플한 케이스인 MainActivity ← → SecondActivity 로 상호 데이터를 전달하는 케이스를 기반으로 알아보도록하자. MainActivity: Activ..