목록전체 글 (67)
개발일지
Jump Expression return break continue 을 Label 과 함께 사용했을 때 어떻게 작용하나? Label 정의 → label 을 정의할 때에는 name@ → label 을 사용할 때에는 @name loop@ for (i in 1..100) { //.. }

안드로이드 Q 이전 (Legacy Storage) 외부저장소가 하나의 거대한 공용 저장소로 동작 외부저장소를 읽고 쓸 수 있는 권한이 있으면 누가 생성한 파일인지, 어떤 경로에 지정된 파일인지 관계없이 모든 파일에 접근 가능함 (별다른 제한 없이 모든 종류의 파일을 생성할 수 있음 ) 개별 앱을 위한 별도의 공간이 마련되어 있음(private files) Public Files 공간은 READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE 권한만 있다면 자유롭게 읽고 쓸 수 있음 최상위 경로로 가지고 오도록 해던 Environment.getExternalStorageDirectory() 사용 못함 안드로이드 Q 이후 (Scoped Storage) → 기존 외부 저장소의 Pub..
SharedPreferences 란? - 보통 Local DB 인 SQLite , 서버의 DB 에 연결하여 데이터를 가져오는데 SharedPreference 를 이용하여 int, float, String, boolean 등 간단한 데이터를 저장하고 불러올 수 있다. - 앱을 꺼도 데이터가 유지된다는 점에서 간단한 데이터베이스 역할을 한다. -App에 포함되는 데이터 파일을 만들어서 디바이스에 저장하는 방식. (key, value) 형태로 저장/ 로드 한다. -.edit() 에디터를 이용해야 데이터의 수정, 삭제 등의 액션이 가능하다. 주로 'editor'라는 변수명에 저장해서 사용한다. 사용 과정 1) 변수 선언 및 초기화 val prefs: SharedPreferences = context.getSha..

리스트를 비운다 리스트에 값을 넣는다 새로고침한다 새로고침 아이콘 없앤다 ---------------------------------------------------------------------------------------------------------------------------------------- 1. dependencies 추가 implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" 2. recyclerview를 SwipeRefreshLayout 으로 감싸기 3. refresh_layout = findViewById(R.id.refresh_layout) refresh_layout.setOnRefreshListene..
https://developer.android.com/topic/libraries/data-binding ViewBinding : 레이아웃 xml 파일에 정의되어 있는 뷰를 자동으로 생성된 클래스를 통해 자바/ 코틀린 코드에서 참조할 수 있게 해준다. ViewBinding 활성화 해주기 android { ... // 안드로이드 뷰 바인딩 기능을 활성화 합니다. buildFeatures { viewBinding true } } ViewBinding 동작 원리 → ViewBinding이 활성화되면 해당 모듈 내 포함된 xml 파일에 상응하는 바인딩 클래스가 생성되며 이 클래스에는 루트 뷰와 더불어 ID 가 부여된 모든 뷰에 대한 참조가 포함된다. databinding 이란? databinding 을 사용하는..

안드로이드 6 부터는 manifest 설정하고 requestpermission 을 해줘야 함 안드로이드 11 부터는 scoped storage 적용되어 .. 앱에 이미 권한이 부여되었는지 확인 사용자가 이미 앱에 특정 권한을 부여했는지 확인하려면 ContextCompat.checkSelfPermission() 메서드에 권한을 전달합니다. 이 메서드는 앱에 권한이 있는지에 따라 PERMISSION_GRANTED 또는 PERMISSION_DENIED를 반환합니다. 앱에 권한이 필요한 이유 설명 ContextCompat.checkSelfPermission() 메서드가 PERMISSION_DENIED를 반환하면 shouldShowRequestPermissionRationale()을 호출하세요. 이 메서드가 tr..
InputStream → The abstract class is the superclass of all classes representing an input stream of bytes val inputStream: InputStream = file.inputStream() Stream (데이터가 전송되는 통로) → 개별 바이트나 문자열인 데이터의 원천 BufferedReader → 일부 데이터를 미리 읽어 저장하고 있으므로 읽기 작업이 매우 빨라짐 - 문자를 미리 버퍼에 저장하고 있기 때문에 읽기 속도가 훨씬 빠르다 - 파일이나 스트림에 직접 BufferedReader 를 붙이고 이로부터 데이터를 읽어들일 수 있음 - use 메소드는 실행 후 스트림을 자동으로 닫아주는 것을 보장함. val inputS..