목록Android (18)
개발일지

어떤 클래스에 변화가 일어났을 때 이를 감지하여 다른 클래스에 통보해주는 것 객체의 상태 변화를 관찰하는 Observer 들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메소드 등을 통해 객체가 직접 목록의 각 Observer 에게 통지하도록 하는 디자인 패턴 외부 객체의 상태 변화에 따라 (Subject class) observer 객체(observer interface class)는 이에 상속되어 있는 다른 객체(concreteObserver)들에게 변화된 상태를 전달하고(notify 메소드) 상속된 객체는 그에 맞게 기능을 수행하는 형태로 구성됨 함수로 직접 요청하지 않았지만 시스템 또는 루틴에 의해 발생하게 되는 동작들을 이벤트라고 함 → Observer 패턴은 어떤 일이 생기면 미리 등록한..
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..