일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- null safety
- convert
- Exception
- kotlin
- 컴파일
- porterduff
- Glide
- firebase
- web3js
- LAYER_TYPE_SOFTWARE
- error
- 안드로이드
- bigquery
- fabric-sdk-java
- 다윈
- log
- Gradle
- test
- quick-start
- vuepress
- fabic
- Hyperledger
- C
- Android
- 스트리밍
- coroutines
- ethereum
- Realm
- hardwareacceleration
- dataginding
- Today
- Total
목록Android (12)
날마다 새롭게 또 날마다 새롭게
Canvas의 drawing 이 제대로 동작하지 않을 때Custom View 에서 다음과 같이 호를 그린 후, 그 안에 비트맵이 위치하도록 구현을 하고 있었다.protected void onDraw(Canvas canvas) { ... canvas.drawArc(rect,startAngle,sweepAngle,true, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, null, arcRect, paint); ... }구현 후, 앱을 빌드해보니 PorterDuff.Mode.SRC_IN 이 적용되지 않아 bitmap만 표시되었다. (arcRect 영역에 사각형 모양으로 그려짐...
Firebase Storage 사용하기 (Download with Glide)Firebase Storage는 사진, 동영상 등의 사용자 제작 콘텐츠를 저장하고 제공해야 하는 앱 개발자를 위한 서비스입니다. 저의 경우, 사진을 저장할 서버가 필요했었는데 서버를 구축하는 비용을 줄이고자 Firebase Storage를 사용하게 되었습니다.제가 개발할 앱에서는 인증을 사용하지 않고 다운로드만 필요로 했기 때문에 Storage에서 보안 규칙을 공개로 설정하는 방법과 업로드한 사진을 앱에서 다운로드 하는 방법에 대해 정리하고자 합니다.프로젝트 생성Firebase 기능을 사용하기 위해서는 프로젝트 등록이 필요합니다. Firebase 콘솔 로 이동해서 StorageTest 라는 이름으로 프로젝트를 추가합니다.프로젝트..
kotlin.coroutines 한번 사용해보자 - 초급편kotlin.coroutines의 간단한 명령들을 사용해보려고 합니다. 실제 구현한 샘플 코드는 Github에 있습니다.light-weight threadscoroutines 에서는 launch라는 명령을 사용해서 thread 처럼 사용이 가능합니다. 아래는 일정 time이 지난 후에 TextView 의 색을 변경하는 코드입니다. delay라는 명령도 coroutines 에서 제공하는 명령입니다.launch(UI) { delay(time) changeColor() }coroutines 에서 구현된 thread 는 light-weight 하기 때문에 다음과 같은 구현이 가능합니다. 코틀린의 guide를 보면 thread를 사용해서 동일하게 구현하면 ..
Firebase Auth로 구글/페이스북 OAuth 인증Firebase에서 제공하는 인증기능을 사용해보자 Firebase에서는 이메일/비밀번호 계정, 전화 인증, Google, Twitter, Facebook, GitHub 로그인 등을 지원해서 이를 사용한 인증 시스템을 손쉽게 구축하도록 도와준다. 이 중에서 많이 사용하는 Google과 Facebook 로그인을 직접 사용해보자예제 다운로드먼저 , 다음의 Github 저장소 에서 Firebase 에서 제공하는 quickstart-android를 다운로드 받아 안드로이드 스튜디오에서 연다. 프로젝트 안에는 Firebase에서 제공하는 여러 기능들의 샘플이 있는데 이 중에서, auth-app 이 인증에 대한 샘플 앱을 사용합니다.구글 인증프로젝트 추가Fire..
Anko-commons를 사용해보자Anko는 안드로이드 개발을 더 빠르고 쉽게 해주는 코틀린 라이브러리 입니다. Anko 를 사용해서 xml을 사용하지 않고 동적으로 layout 을 만들 수 있는 라이브러리로 알려져 있는데 그 외에도 다양한 기능을 제공하고 있습니다. 이 중에서 Anko Commons 사용 방법을 간단히 소개하고자 합니다.샘플 코드 : GitHub 참고Kotlinanko 를 사용하기 위해서 Kotlin 플러그인을 설정이 되어 있어야 합니다. Android kotlin 프로젝트 시작하기gradle 설정anko commons 라이브러리를 사용하기 위해서 anko 와 anko-commons dependency를 추가합니다.// app/build.gradle ... dependencies { c..
Android kotlin 변환 중 발생한 realm 관련 에러 - NotFoundExceptionjava 에서 kotlin 으로 변환 중, realm 관련 에러가 발생했다.Execution failed for task ‘:app:transformClassesWithRealmTransformerForDebug’. javassist.NotFoundException: pakage.class`gradle build 중 에러가 발생한다.이 에러는 java 에서 lambda를 사용하기 위해 추가한 dependency 때문에 발생하는데, 이상한건 빌드 시 에러는 발생하지만 ‘Run app’을 하면 앱이 정상적으로 실행이 된다..???어쨌든 빌드 에러를 없애기 위해서 lambda 관련 gradle 설정을 제거한다./..
코틀린에서 databinding 사용하기java 에서 kotlin 으로 코드 변환 중, build 할 때는 에러가 없는데, 앱 실행할 때, 다음과 같은 에러가 발생한다.Error:(13, 37) Unresolved reference: databinding Error:(20, 35) Unresolved reference: ActivityMainBinding Error:(28, 51) Cannot infer a type for this parameter. Please specify it explicitly.kotlin 에서 databinding 을 사용하기 위해서는 플러그인과 dependency 추가가 필요하다. app/build.gradle 에 다음과 같이 추가한다.apply plugin: 'kotlin-..
코틀린에서 nullable 사용 - Null Safety코틀린에서는 자바보다 간단하게 null 에 대한 확인을 할 수 있고, 안전하게 호출할 수 있다. 어떻게 하는지 방법을 살펴보자Safe Call - ?., ?:null 체크하는 방법을 자바와 비교해보자 어떤 String에 대한 length를 리턴하는 코드를 구현할 때, 자바에서는 다음과 같이 작성할 수 있다. length 를 호출할 때 NullException이 발생할 수 있으므로 null인지 아닌지를 확인하는 코드가 필요하다.String text; if (text != null) return text.length() else return null이를 코틀린에서는 safe call operator ?.를 사용해서 다음과 같이 작성할 수 있다.var t..
코틀린에서 java의 static 사용하기Companion object로 자바의 static 과 동일하게 사용할 수 있다.Companion ObjectCompanion object 를 내에 선언한 변수와 메서드는 java 에서 사용하는 static 형태로 사용할 수 있다. companion object 내에 변수와 메서드 하나를 작성해보자class Key(val value: Int) { companion object { val COMPARATOR: Comparator = compareBy { it.value } fun bar() {} } }위와 같이 작성하면 아래와 같은 형태로 호출할 수 있다.Key.COMPARATOR Key.bar()java 에서 static field 호출java에서 코틀린 위의 변..
ViewModel과 LiveData를 사용해보자ViewModelViewModel 은 UI 관련된 data를 저장하고 관리하기 하는 클래스이다. 보통 Activity나 Fragment가 다시 recreate 되는 상황에(screen rotation 같은) 갖고 있던 data들은 clear가 된다. 이러한 상황에서 data를 잃지 않고 view를 구성하기 위해서 onSaveInstanceState 나 create 될 때, data를 로드하는 구현이 필요하다.ViewModel을 사용하면 이런 구현이 필요 없어진다. ViewModel은 Activity/fragment lifecycle을 따라 동작하는데 생성된 시점에서 Activity/fragment가 finish() 되기 전까지 데이터를 유지하는 기능을 가지고..