일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flutter firestore
- Android P
- Django REST
- C
- livedata
- Rxjava2
- Android
- C++
- 안드로이드 구글맵
- Kotlin
- android push
- RxAndroid
- 코틀린
- mfc
- 알고리즘
- C/C++
- RxJava
- FLUTTER
- Java
- Django REST Android
- NDK
- kodility
- android architecture component
- 안드로이드
- Python
- UWP
- Flutter TextField
- Django REST framework
- 프로그래머스
- dart
- Today
- Total
목록Java,Android (120)
개발하는 두더지
targetSdkVersion이 "P"로 설정된 경우 앱에 영향을 미치는 주요 변경사항 포그라운드 서비스 권한포그라운드 서비스를 사용하려면 FOREGROUND_SERVICE 권한을 요청해야함권한없이 서비스를 시작하면 SecurityException이 발생 Bouncy Castle 암호화 지원 중단Bouncy Castle가 제공하는 여러 암호화가 중단되고 Conscrypt가 제공하는 암호화로 대체됨 Build.serial에 대한 직접 액세스 제거READ_PHONE_STATE 권한 요청 이후, Android P [ API 28]에 추가된 Build.getSerial() 을 사용 WebView 데이터 디렉토리 공유 불가앱이 여러 프로세스에서 단일 WebView 데이터 디렉토리를 공유할 수 없음 앱의 데이터 디..
Kotlin + firebase(FCM) 을 이용하여 Push Notification 구현하는 방법을 알아보겠습니다. 1. 코틀린을 사용할 것이므로 코틀린 프로젝트로 생성 2. Tools -> Firebase -> cloud messaging 3. Firebase에서 직접 프로젝트를 생성connect to firebase 버튼을 클릭하여 자동으로 firebase 프로젝트를 생성합니다. google-services.json 파일을 다운받아 app/ 에 복사해줍니다. 4. add FCM to your app build.gradle ( project level )dependencies { ... // NOTE: Do not place your application dependencies here; they b..
안드로이드에서 제공하는 뷰를 상속받아 커스텀 뷰를 만들 때는 뷰가 그려지는 방법에 대해 이해하는 것이 중요합니다.onMeasure() 뷰의 크기를 정함onDraw() 뷰를 그림 onMeasure() 의 파라미터int widthMeasureSpec, int heightMeasureSpec이 2개의 값은 부모컨테이너에서 정한 가로, 세로의 크기이고, View.MeasureSpec 의 값입니다. 결국 이 크기 값으로 onDraw()에서 그려지게 됩니다.@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Try for a width based on our minimum int minw = getPaddingLef..
이번주 로또 번호를 가져와서 랜덤으로 생성한 번호와 비교하여 당첨결과를 확인하는 예제를 만들어보겠습니다. 결과물을 먼저 보자면 아래와 같습니다. 목차0. 환경설정1. 네트워크에서 로또 당첨 번호 가져오기2. 로또 랜덤 번호 생성하기3. 회차 당첨 번호와 랜덤 번호 비교하기4. 랜덤 번호 당첨 내역을 TextView에 출력하기 0. 환경설정build.gradleRxjava2 + RxAndroid + RxRetrofit 를 이용하므로 아래 라이브러리를 추가합니다dependencies { ... implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.1.14' implementation ..
Rxjava 2.x의 위키에 Observable 과 Flowable의 선택 기준이 공개되어있습니다. Observable을 선택하는 기준- 최대 1000개 미만의 데이터 흐름, Out of Memory Exception 이 발생할 확률이 적은 경우- 마우스, 터치 이벤트를 다루는 GUI 프로그래밍, 초당 1000회 이하의 이벤트를 다룸 Flowable을 선택하는 기준- 10000개 이상의 데이터를 처리하는 경우, 메서드 체인에서 데이터 소스에 데이터 개수 제한을 요청해야 함- 디스크에서 파일을 읽어 들일 경우- JDBC를 활용해 데이터베이스의 쿼리 결과를 가져오는 경우- 네트워크 I/O를 실행하는 경우 ( 서버에서 가져오길 원하는 만큼의 데이터양을 요청할 수 있을 때 ) 디스크, 네트워크에서 I/O, 데이..
Jar 파일 내에서 다른 Jar 파일의 클래스를 참조해야 할 수도 있습니다. 하지만 Jar 파일 안에 또 다른 Jar 파일을 넣을 수는 없습니다. 왜냐하면 Class-Path 는 Jar 파일 내의 Jar 파일이나 인터넷 프로토콜을 통해 액세스 할 수 있는 클래스가 아니라 로컬 네트워크의 클래스 또는 Jar 파일을 가리킵니다. Jar 내부에서는 Class-Path를 사용하여 내부의 Jar에서 클래스를 로드하는 방법을 알지 못하기 때문입니다.Adding Classes to the JAR File's Classpath 그럼 어떻게 하나의 Jar 파일안에 모든 dependencies 를 포함시키는 것인가?Jar 를 unpackaging 하여 class 목록을 추출하고 Jar 파일을 만들 때 모든 class 를 ..
Ripple EffectRipple Effect 는 Android 5.0 (API level 21) 머터리얼 디자인에 소개되었습니다.예를들어 버튼을 클릭했을 때 물결이 퍼지듯이 효과가 나오는 기능입니다.5.0 미만에는 색상만 변경되고, 이상은 RippleDrawable까지 적용됩니다. 적용하는 방법에는 크게 2가지가 있습니다. 이미 정의되어있는 Style 사용android:background="?android:attr/selectableItemBackground" minSdkVersion 21 이상인 경우위와 같이 테마에서 직접 물결을 적용할 색을 지정 할 수 있습니다. 테마 스타일을 변경하게 되면 colorControlHighlight가 사용되는 모든 컨포넌트에 일괄 적용 할 수 있습니다. Custom..
Subject cold observable 을 hot observable로 바꿔줌. 즉, 구독자가 구독하는 순간 데이터를 발행하는 방식에서 구독자 없이도 데이터를 발행할 수 있도록 만들어줄 수 있다는 말이다. Observable이면서 Observer인 클래스이다. Subject 종류 AsyncSubject발행된 데이터중 맨 마지막 데이터만 받는다. 즉, onComplete 되기전 마지막 onNext 값만 처리함. BehaviorSubject중간에 들어온 구독자는 다음 발행 데이터 전부터 받는다. onNext("1"), onNext("3") 이후 구독자A가 들어오고, onNext("5")가 실행된다면 구독자A는 3, 5 값을 받는다. 예를들면 학교 수업에 지각했다고 하자. 교수님은 이미 칠판에 수업 내용을..