분류 전체보기 (93) 썸네일형 리스트형 코틀린 가변성제한 이유와 thread , coroutine 다른 언어들 보다 안정성이 높다 가변성을 제한하는 것에 대한 장점 1.프로그램을 이해하고 디버그하기 힘들어 집니다 - 예상치 못한 상황이나 오류를 발생 시키는 경우 큰 문제가 됩니다. 2.코드의 실행을 추론하기 힘들어 집니다. - 한 시점에서 확인한 값이 동일하게 유지되는지 확신할 수 없습니다. 3.멀티스레드 프로그램일 때는 적절한 동기화가 필요합니다. - 변경 부분에서 충돌 발생할 수 있습니다. 4. 테스트하기 어렵습니다 - 변경이 많으면 더 많은 조합을 테스트 해야 합니다. 5.상태 변경시 변경부분을 알릴 때 예 리스트에 가변 부분이 있다면 변경이 일어날 때 마다 리스트 전체를 다시 정렬해야 합니다 일관성,복잡성 증가 문제 예시 멀티스레드를 활용해서 프로퍼티 수정시 충돌로 인해 일부 연산이 실행 되지.. addview 사용 방법 seContentView(R.layout.가져올 layout 페이지) 화면에 띄울 레이아웃 안드로이드 단축키 MAC WINDOWS proiect 보여주기/숨기기 Command + 1 Alt+ 1 어플리케이션 실행 Control + R Shift + F10 Logcat 보여주기 Command + 6 Alt + 6 원하는 파일 탐색 Shift + Shift Shift + Shift 키워드 전체 검 Command + Shift + f Ctrl + Shift + F 모든 도구창 보여주기 / 숨기 Command + Shift + F12 Ctrl + Shift + F12 스마트 자동완 Control + Shift + Space Ctrl + Shift + Space 명령문 완성 Control + Shift + Enter Ctrl + Shift + Enter map,filter,all,any,count,find,groupBy,flatMap map 함수 함수 값을 변형해서 새로운 리스트 생성 filter 함수 리스트 값 true 일때 리턴 all 모든 원소가 람다식을 만족하는지 체크 any 하나라도 만족하는지 체크 count 람다식이 만족하는 개수 리턴 find 람다를 만족하는 하나 찾기 groupBy 조건에 따라 그룹 묶이 flatMap 모든 객체에 적용하고 얻어지는 리스트들을 하나의 리스트로 생ㅅ Extensions , Scope functions Extendions는 상속하서나 디자인 패턴을 사용하지 않고 새로운 기능으로 클래스나 인터페이스를 확장할 수 있는 기능을 제공합니다. Extendions 는 정적으로 사용 됩니다 어떤 확장 함수가 호출 되는지는 수신자 유형에 따라 이미 정해저 있습니다 Extendions 는 수신자가 널이면 널 역시 this 입니다 그러므로 null이 허용 됩니다 Extendions 의 확장 범위는 대부분 바로 아래의 최상위 입니다 선언된 패키지 외부에서 확장을 사용하려면 호출 사이트에서 확장을 가져옵니다 Extendions 는 다른 클래스 내부에서 한 클래스에 대한 확장을 선언할 수 있습니다 이러한 확장 내에서는 한정자 없이 맴버를 엑세스할 수 있는 객체가 있습니다 확장이 선언된 클래스의 인스턴스를 dispatch re.. sharedPreferenses SharedPreferenses 장점 : 저장하고 꺼내오는 속도가 빨라서 간단한 값을 저장할 때 많이 쓰인다 사용방법 데이터 저장하기 val sharedPreference = getSharedPreferences("이름",MODE_PRIVATE) val editor : SharedPreference.Editor = sharedPreference,edit() editor.putString("키","값") editor.apply() 데이터 불러오기 val sharded = getSharedPreference("이름", MODE_PRIVATE ) val userId = shared.getString("키 값","기본 값") ? : "" sharded. getString("키 값","기본 값") 데이터 삭제하기.. 숫자 타이밍 맞추기 package com.example.practice import android.os.Bundle import android.widget.Button import android.widget.TextView import android.widget.Toast import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.lifecycle.lifecycleScope import com.example.practice.R import kotlin.. 안드로이드 13일차 수박수박수박수박수박수 해결방법 : 북마크 : f3 라인 복사 : ctrl+d 전에 봤던 라인 보기 : ctrl + [ findViewById(R.id.) : 아이디 찾기 setOnClickListener{} : 클릭 Random : 랜덤 힘수 Log.d("","") 예외처리 require() : 매개변수 값이 참인지 체크 거짓이라면 throw IllegalArgumentException(적절하지 않은 인자를 전달 했을때) requireNotNull() : 매개변수의 값이 null이 아니면 value를 반환, null이면 throw check() : 매개변수 값이 참인지 체크 거짓이라면 throw IllegalStaateException(메서드 호출 상태가 아닐때) checkNotNull() : 매개변수의.. 이전 1 ··· 7 8 9 10 11 12 다음