전체 글
-
[Kotlin] ExceptionKotlin/Exception 2021. 8. 14. 13:59
-- try catch에도 null체크가 엄격하다. try블록안에서 선언된 변수는 try블록에서만 사용가능하기 때문에 main함수 scope에 변수를 선언하였다. try블록에서는 항상 예외가 발생할 수 있기 때문에 try문에서 초기화를 해도 예외로 인해 초기화 부분이 실행 되지 않을 수도 있다. 그렇기 때문에 try블록에서 초기화를 한다해도 catch나, finally에서 변수를 사용할 수 없다. --코틀린의 try는 표현식이다( 값을 return한다 ) try블록의 마지막 표현식, catch블록의 마지막 표현식이 리턴될 값에 해당된다. finally절은 표현식의 리턴에 영향을 주지 않는다. 예외가 발생하지 않으면 try의 가장 마지막 expression이 대입되고 예외가 발생하면 catch의 가장 마지..
-
[Kotlin] Type check and Type castsKotlin/Types 2021. 8. 13. 19:02
kotlin은 nullable변수가 존재해서 간단한 연산자조차도 어렵게 느껴진다...... is와 as연산자를 살펴보고 ?가 붙어있을 때는 어떻게 동작하는지에 대해서 알아보자. 다음과 같이 사용할 수 있다. x is String? x is String x as String x as? String x as? String? 코틀린에서는 nullable한 변수가 존재하기 때문에 연산자를 사용할 때도 상황에 따라 ?를 붙여줘야 한다. is and !is operator - 타입 체크 연산자 변수에 담겨있는 인스턴스가 비교하는 클래스와 같은범위, 넓은범위이면 true 비교하는 인터페이스를 구현하였으면 true 자바의 instanceof연산자와 같다. 밑의 테스트1, 테스트2, 테스트3는 x is 클래스? 에 대한..
-
[Kotlin] Null SafetyKotlin/Null Safety 2021. 8. 9. 14:19
자바도 부족한데 코틀린 코드를 쓰려니 컴파일 에러가 자꾸나서....null부분 reference를 다시 한번 보러 들어갔다. 코틀린 Null Safety 부분을 보고 모르는 것만 정리했다. 코틀린에서는 null과 관련하여 non-null 변수 nullable변수 두가지 종류가 있다. 변수 선언시 타입뒤에 ?를 통하여 nullable변수임을 명시한다. var str: String //non-null변수 var str: String? //nullable변수 non-null변수에는 명시적으로 null로 초기화가 불가능하다(컴파일 에러) nullable변수는 null이 들어갈 수 있는 변수로 멤버( 프로퍼티 접근자(getter,setter), 메서드 ) 를 사용하기 전에는 null체크를 해야한다. 그렇지 않으면..
-
[Deprecated] StartActivityForResultAndroid/Deprecated 2021. 8. 2. 17:19
빠른 개인 참고용 (kotlin) mActivityResultLauncher = registerForActivityResult(StartActivityForResult()) { activityResult-> if(activityResult.resultCode== Activity.RESULT_OK){ val intent:Intent?=activityResult.data if(intent!=null){ //처리 } }else{ } } 정리 ComponentActivity의 registerForActivityResult메서드를 사용해야 한다. registerForActivitiyResult메서드를 사용하기 위해서 return되는 것, 인자로 들어가는 것에 대해 알아보자. java.lang.Object ↳and..
-
[UI] RecyclerView 공부Android/UI 2021. 7. 31. 13:04
RecyclerView public class RecyclerView extends ViewGroup implements ScrollingView....etc ViewHolder public static abstract class RecyclerView.ViewHolderpublic static abstract class RecyclerView.Adapter RecyclerView.ViewHolder Adapter public static abstract class RecyclerView.Adapter RecyclerView.Adapter RecyclerView.LayoutManager public static abstract class RecyclerView.LayoutManager Known dire..
-
[UI] 이미지 관련Android/UI 2021. 7. 28. 11:19
기록용 메모장. 상시 추가될 예정 imageView.getDrawable(); //return Drawable(이미지뷰에 설정된) or null(이미지뷰에 설정된 Drawable이 없으면) BitmapDrawable (비트맵 파일) - 비트맵 그래픽 파일 .png .jpg .gif에 해당 imageView에서 가져온 Drawable이 BitmapDrawable이라면 Drawable은 BitmapDrawable으로 형변환이 가능 //ImageView에 설정된 Drawable에서 Bitmap 추출 private Bitmap bitmapFromDrawable(ImageView imageView) { Drawable drawable=imageView.getDrawable(); if (drawable == nul..
-
[Firebase]Cloud Storage(1) - Create a ReferenceFirebase(Android)/CloudStorage 2021. 7. 27. 20:33
Cloud Storage Bucket에 존재하는 파일, 데이터에 접근하기 위해서는 인증된 사용자만 가능하다. 그렇기 때문에 Cloud Storage의 Security Rules을 모두 접근가능하게 변경하고 테스트 개발을 진행해야 한다. https://firebase.google.com/docs/storage/android/create-reference?authuser=0 Android에서 Cloud Storage 참조 만들기 | Firebase 파일은 Cloud Storage 버킷에 저장됩니다. 이 버킷의 파일은 로컬 하드 디스크의 파일 시스템 또는 Firebase 실시간 데이터베이스의 데이터와 같이 계층 구조로 표시됩니다. 파일을 가리키는 참조를 firebase.google.com https://fir..
-
[Firebase] Realtime Database(1)- push/child/setValue..etcFirebase(Android)/RealtimeDatabase 2021. 7. 26. 09:58
포스팅 맨 부분에 layout.xml과 액티비티 소스를 남겨뒀다. 드래그하여 복사하기만 하면된다. FirebaseDatabase, DatabaseRef클래스의 기본사용방법에 대해 알아보고 코드를 변경시킬 때마다 빌드를 하는 것이 힘드므로 layout파일에 여러 EditText와 Button들을 추가하여 JSON tree의 동작을 관찰하자. 실시간 데이터베이스는 JSON형식으로 저장된다. 프로젝트 창의 Realtime Database 탭에서 데이터베이스를 만들면 처음에는 비어있으니 null으로 되어있다. JSON구조를 알아먹기 힘들다면 오른쪽의 ...더보기를 눌러 JSON내보내기를 하여 다운로드된 JSON파일을 브라우저에 옮겨넣으면 현재 데이터베이스의 구조를 파악하기 쉽다. 브라우저에서 JSON트리 확인 ..