ctrl + Alt + L 은 전체정렬null이 될수도 있다 -> ?null이 절대 안됨 -> !ex) val heightEditText: EditText?람다식은 중괄호 표현기록확인 = 로그캣 = Log(앱이 죽는 이유등을 알수있음)예외일 경우를 토스트메시지로 따로
코틀린에서 seed값을 정해주지 않으면 나노계산을 하기때문에, 정해야한다.중복을 하지 않게하려면 map은 안되고 list나 set을 이용해서, 넣어준다list는 contains함수롤 이용해 중복여부를 체크해야하나, set은 바로 알아서 체크해준다.apply함수는 아래처
packed를 이용해 각 붙여서 사용app:layout_constraintHorizontal_chainStyle="packed" spread는 일반적이고, spread_inside는 끝에 벌어짐.뷰 자체를 ConstraintLayout으로 변경해 크기를 조절app:la
반복적으로 사용되는 뷰를 잘라내서, 메모리에 불러와서 할당app:layout_constraintVertical_weight="1.5"android:shrinkColumns="\*" android:stateListAnimator="@null"android:onClick
정리 권한확인 if (Build.VERSION.SDKINT >= Build.VERSIONCODES.M) { when { ContextCompat.checkSelfPermission( //이미 앱에 특정권한
app:layout_constraintHorizontal_chainStyle="packed"
AppCompatImageButton을 상속(AppCompat : 이전버전에서도 새로운 기능을 쓸수있게 함setImageResource(R.drawable.ic_record)internal은 저장할 앱의 특정 공간을 제공하지 못하기 때문에,external로 외부 캐시
입력tools:ignore="ContentDescription" //무시 - 어떤 동작을 하는건지 설명android:importantForAutofill="no" //자동완성관련 xandroid:inputType="textUri"//주소를 치기 쉬운 키보드액션버튼을