일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍
- 백준
- TensorFlow
- c++
- hackerrank
- Kotlin
- 프로그래머스
- 카카오인코더
- Map
- c
- 백트래킹
- retrofit
- DP
- 스프링 프레임워크
- 블로그개설
- 안드로이드
- 연결리스트
- vue.js
- python3
- 스프링
- 스프링프레임워크
- stl
- Android
- git
- Rebase
- 인코더
- BFS
- spring
- 머신러닝
- ADAS
- Today
- Total
목록Study/Kotlin&Android (8)
이것저것 공부한 기록
이번에 구현하는 내용 중에 Custom 토스트 UI가 있어 이것저것 찾아보는 중. 1. android.widget.Toasthttps://developer.android.com/reference/android/widget/Toast Toast | Android Developers developer.android.com안드로이드 위젯으로 기본 제공하는 Toast 위젯의 경우 기본적인 Toast창을 만들기 위한 모든 기능이 있다. Duration, Text설정, Gravity 등등...그러나 Custom View 설정이 deprecated되었다... Android11 이후 환경에서는 Snackbar를 사용하라고 안내하고 있다. 2. com.google.android.material.snackbar.Sn..
타 어플리케이션의 서비스에 binding 하려는데 해당 에러가 뜨면 오타가 아닌 이상 권한 문제이다. QUERY_ALL_PACKAGES permission을 추가해주면 찾을 수 있다. ... 이 간단한거땜에 오전을 다 날려먹었네..
1. Android Studio - New - Empty Project 생성 2. Service 생성 3. Service를 실행해 줄 Default Activity 생성 4. Manifest 수정 - FOREGROUND_SERVICE permission 추가 - Application 객체 생성할 시 Manifest의 Application name 지정
이번 프로젝트 추가 구현 사항으로 서로 다른 패키지의 어플리케이션 간에 파일을 옮기는 구현이 필요하여 저장소 권한에 대해서 찾아보게 되었다. 안드로이드 Q(버전 10) 이후 저장소 사용 방법이 변경됨에 따라, 안드로이드 어플리케이션들은 외부저장소에 공용공간과 각자의 영역을 나누어 갖게 되었다. 각자의 영역에는 서로 접근이 불가능하고, 공용공간에는 다같이 접근이 가능하나 사진, 동영상, 음악의 경우엔 MediaStore 등 안드로이드에서 제공하는 API를 사용해야하고, 그 외 기타 파일들은 익히 아는 Downloads 폴더에 접근해야하며 파일탐색기 등의 UI를 통해 명시적으로 사용자가 지정한 파일에만 접근할 수 있다. 아래 블로그에 간단히 잘 설명되어 있음. [안드로이드] 저장소 사용하기 - 2. Scop..
(출처 : 깡샘의 안드로이드 앱 프로그래밍 with 코틀린) Retrofit을 이용하려면 네트워크 통신을 위해 호출할 함수를 포함한 서비스 인터페이스를 작성해야 한다. interface INetworkService { @GET("api/users") fun doGetUserList(@Query("page") page: String): Call @GET fun getAvatarImage(@Url url: String): Call } INetworkService라는 인터페이스명이나, doGetUserList나 getAvatarImage같은 함수명은 개발자가 지은 이름이다. 이 인터페이스를 구현하여 실제로 통신하는 클래스는 Retrofit이 자동으로 만들어주는데, 이때 @GET, @Query, @Url과 같은..
(출처 : 깡샘의 안드로이드 앱 프로그래밍 with 코틀린) 서비스는 백그라운드에서 작업을 처리할 수 있게 해주는 컴포넌트. 서비스에 화면을 구현하진 않는다. 서비스 컴포넌트는 Service 클래스를 상속받아서 작성한다. 서비스의 다양한 생명주기 함수 중 onBind()는 필수로 구현해야 한다. class MyService : Service() { override fun onBind(intent: Intent): IBinder? { return null } } 서비스 생명주기 서비스를 실행하는 방법은 startService()와 bindService()인데, 어느 함수를 이용해 서비스를 실행하는지에 따라 생명주기가 나뉜다. 1. startService()함수로 서비스 객체를 생성하게 되면, onCreat..
(출처 : 깡샘의 안드로이드 앱 프로그래밍 with 코틀린) 사용자 이벤트 종류 : 터치 이벤트, 키 이벤트, 뷰 이벤트 액티비티의 화면을 구성하는 TextView, EditText, ImageView, Button등의 뷰는 사용자의 터치를 이벤트로 별도로 제공한다. 요게 뷰 이벤트. 터치 이벤트 : onTouchEvent()만 액티비티에 선언해놓으면 처리 가능 키 이벤트 : onKeyDown()만 액티비티에 선언해놓으면 처리 가능 뷰 이벤트 처리는 Event source와 Event handler로 역할이 나뉘고, 이것을 listener로 연결해야 이벤트를 처리할 수 있다 Event Source : 이벤트가 발생한 객체 Event Handler : 이벤트 발생 시 실행할 로직이 구현된 객체 Listen..
함수형 프로그래밍 (Functional Programming) - 선언형 프로그래밍( Declarative Programming )의 한 갈래 - 자료 처리를 수학적 함수의 계산으로 취급하고, 상태와 가변 데이터의 개념을 멀리하는 프로그래밍 패러다임. - 상태를 바꾸는 것을 최대한 배제하고, 구현에 있어 함수를 응용할 것을 강조한다. - 최소 단위 함수로 구성하고, 모든 함수가 같은 인자에 대해 한결같은 결과값을 출력하도록 하여 프로그램의 동작을 쉽게 이해하고 예측할 수 있게 하는 개발 방법. - 장점 : 코드가 간결하다. 멀티스레드 환경에서도 안전하다. 테스트하기 쉽다. 순수 함수 (Pure function) - 함수의 실행이 외부에 영향을 끼치지 않는 함수 - 함수에 동일한 인자를 주었을 때 항상 같..