목록전체 글 (119)
App노자
1. 개요 apply plugin: 'com.android.application' android { compileSdkVersion 33 defaultConfig { applicationId 'com.example.Choi.calculator' minSdkVersion 20 targetSdkVersion 33 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-..
1. Coroutines이란? 코루틴은 동시성 및 병렬성을 다루기 위한 프로그래밍 패턴과 기술이다 Kotlin은 다른 라이브러리가 코루틴을 활용할 수 있도록 표준 라이브러리에 최소한의 하위 수준 API만 제공한다 코루틴은 비동기 프로그래밍을 보다 쉽게 다룰 수 있게 해 주며, 다른 스레드를 생성하거나 관리하는 것보다 가벼우면서도 효율적인 방식으로 비동기 코드를 작성할 수 있게 해 준다 https://kotlinlang.org/docs/coroutines-overview.html Coroutines | Kotlin kotlinlang.org 2. build.gradle (Module) dependencies { implementation "org.jetbrains.kotlinx:kotlinx-corouti..
1. 개요 /Users/name/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-jvm/1.6.0/a7257339a052df0f91433cf9651231bbb802b502/annotation-jvm-1.6.0.jar!/META-INF/annotation.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0. Jetpack Compose를 기존 프로젝트에 추가하거나 신규 프로젝트를 만들 때 위와 같은 에러가 발생하는 경우가 있다 호환..

1. 개요 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun MacOS의 주요 업데이트 이후 Terminal에서 git을 사용할 때 가끔 위에 같은 error현상이 발생하면서 Terminal을 사용할 수 없는 현상이 발생한다 xcrun은 명령줄에서 개발자 도구를 찾거나 실행할 수 있는 방법을 제공하는 명령이며 현재 활성화된 개발자 도구의 경로가 유효하지 않다는 오류를 출력하고 있다 2. 해결 방법 xcode-select --install 워의 명령어를 실행시켜 주면 간단하게 해결된다 xc..

1. 동시성 프로그래밍 동시성 프로그래밍(Concurrency Programming)은 컴퓨터 프로그램에서 여러 작업이 동시에 실행되는 상황을 다루는 프로그래밍 기법이다 여기서 "동시에 실행"은 물리적으로 동시에 실행되는 것이 아니라 매우 짧은 시간 동안 번갈아 가며 실행되는 것을 의미한다 프로그래밍에서 순서대로 작업을 수행하여 1개의 루틴을 완료한 후 다른 루틴을 실행하는 방식을 동기적이라고 한다 순차적인 프로그램보다 로딩되는 UI를 보여줄 때 네트워크는 다운로드해야 하고, 목록을 끌어올리면 지속적으로 UI를 갱신하며 아이템 목록을 업데이트하는 등의 여러 개의 루틴이 선행 작업의 순서나 완료 여부와 상관없이 실행되어야 하는 경우가 많은데 이때 사용 되는 방식을 비동기적이라고 한다 Kotlin에서는 co..
1. object란? Kotlin에서는 객체 표현식(object expressions)과 객체 선언(object declarations)으로 새 하위 클래스를 명시적으로 선언하지 않고 일부 클래스를 약간 수정한 객체를 만들 수 있다 object 키워드는 다양한 상황에서 사용하지만 클래스를 정의하면서 동시에 인스턴스(객체)를 생성한다는 공통점이 있다 object 키워드를 크게 다음과 같이 2가지 형태로 사용한다 1. 익명 클래스의 객체를 만들기 위한 객체 표현식 (object expressions) 2. 싱글턴을 정의하기 위해 사용하는 객체 선언 (object declaration) 3. 싱글턴과 정적 멤버를 정의하기 위해 사용하는 객체 선언 (companion object) https://kotlinla..
1. TelephonyManager란? TelephonyManager는 단말의 통신 서비스 정보에 대한 액세스를 제공한다 Android는 기기의 통신 상태, SIM 일련번호, 네트워크 정보, 전화번호 등과 같은 휴대전화 관련 정보를 TelephonyManager 클래스를 사용하여 얻을 수 있다 일부 전화 통신 정보에 대한 액세스는 권한으로 보호되고 있으며 매니페스트 파일에 권한이 선언되어 있지 않으면 애플리케이션이 보호된 정보에 액세스 할 수 없으며 일부 정보는 기기나 네트워크의 상태에 따라 사용 불가능한 경우도 있다 https://developer.android.com/reference/android/telephony/TelephonyManager TelephonyManager | Android Dev..
1. Drawerlayout이란? DrawerLayout은 Android 앱에서 네비게이션 드로어 (Navigation Drawer) 패턴을 구현하기 위해 사용하는 레이아웃 컨테이너이다 Drawerlayout은 평소에는 액티비티 화면 한쪽에 숨겨져 보이지 않던 내용이 사용자가 왼쪽이나 오른쪽에서 손가락의 움직이는 액션을 취하면 밀려 나와 화면에 나타내는 기능을 한다 androidx의 라이브러리인 Drawerlayout은 Drawer라는 단어가 뜻하는 것처럼 서랍처럼 열리고 닫히는 것 메뉴를 구성할 때 사용한다 https://developer.android.com/jetpack/androidx/releases/drawerlayout?hl=ko Drawerlayout | Android 개발자 | Androi..