728x90


RxAndroid



https://brunch.co.kr/@yudong/34


위의 링크를 따라하면서 모르는 것 찾아본 결과



1. JackOption?



https://developer.android.com/guide/platform/j8-jack?hl=ko


 Android는 Java 7 언어 기능 일체를 모두 지원하고, Java 8 언어 기능의 경우 버전에 따라 각각 다르게 부분적으로 지원함. 이 페이지에서는 사용할 수 있는 새로운 언어 기능, 이러한 기능을 사용할 프로젝트를 올바르게 구성하는 방법 및 발생할 수 있는 알려진 문제에 대해 설명합니다.

참고: Android용 앱을 개발할 때에는 Java 8 언어 기능을 사용하는 것이 가장 좋습니다. 프로젝트의 소스 및 대상 호환성 값을 Java 7로 유지할 수는 있지만, JDK 8을 사용하여 컴파일해야 합니다.

Java 8 언어 기능에 대한 지원 기능을 사용하려면 Jack이라는 새 컴파일러가 필요합니다. Jack은 Android Studio 2.1 이상 버전에서만 지원됩니다. 따라서 Java 8 언어 기능을 사용하려면 Android Studio 2.1을 사용하여 앱을 빌드해야 합니다.



그런데 따라서 해보니까 "Could not find method jackOptions() for arguments" 컴파일 에러가 났다.


https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html




Jack 툴체인은 지원 중단됩니다. 해당 프로젝트에서 Jack을 사용하는 경우 Android Studio의 기본 툴체인에 내장된 Java 8 지원을 사용하도록 마이그레이션해야 합니다. 

(...)

Jack을 비활성화하고 기본 툴체인으로 전환하려면 모듈의 build.gradle 파일에서 jackOptions 블록을 제거하기만 하면 됩니다.

android {
   
...
    defaultConfig
{
       
...
       
// Remove this block.
        jackOptions
{
            enabled
true
           
...
       
}
   
}

   
// Keep the following configuration in order to target Java 8.
    compileOptions
{
        sourceCompatibility
JavaVersion.VERSION_1_8
        targetCompatibility
JavaVersion.VERSION_1_8
   
}

} 



jackOptions 부분만 제거하니 에러가 사라짐



-------------------------------------------------------------------------------------------------------------------


https://brunch.co.kr/@yudong/35



* for문 없이 반복적인 동작 수행 가능 (이에 대한 방법은 다양)


- range(X,N)  (X부터 N까지)

- map()은 여러개 추가 가능

- subscribe()는 마지막 결과를 출력하기 위함


*람다표현식의 인자 생략 가능

원래: subscribe(text -> guguResult.append(text)) 

생략: subscribe(guguResult::append)



* Java는 객체지향 언어이지, 함수형 언어가 아님.

 Java8에서 람다표현식 같은 함수형 프로그래밍 도구가 추가 되었음




-------------------------------------------------------------------------------------------------------------------

https://brunch.co.kr/@yudong/36





728x90

'Dev > Android' 카테고리의 다른 글

[Andorid] Resource(R.id / R.drawable) 를 문자열로 가져오기  (0) 2019.04.26
[Android] Network 기능 구현 관련  (0) 2018.10.02
[Android] RxAndroid & RxJava  (0) 2018.10.01
Fabric - Crashlytics  (0) 2018.08.10
Listview  (0) 2018.07.03
728x90

RxAndroid


필요성

1) 비동기 통신을 순차적으로 보내고 싶을 때 사용 (A작업 완료 후 B작업 시작을 원할 때)

2) 콜백을 받았을 때, 받는 화면이 사라짐으로 인해 null 에러로 앱이 다운 될 경우

3) 핸들러와 콜백 지옥에 빠져서 디버깅도 힘들고 헷갈림

4) 두개의 비동기 처리가 완료된 후에 결과 값을 합쳐서 하나로 만들고 싶을 경우

5) 버튼을 연타로 눌러서 이벤트가 중복실행되는걸 방지하고 싶을 경우

6) 쓰레드 관리의 어려움이 있을 경우



Ref.

1. http://tiii.tistory.com/15

2. https://brunch.co.kr/@yudong/34


728x90
728x90

[사용하면서 참고했던 곳들 링크 저장]



- Fabric Gradle plugin version 지정하기

 

http://sjava.net/2017/06/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%8E%98%EB%B8%8C%EB%A6%AD-%EA%B7%B8%EB%9E%98%EB%93%A4-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-%EB%B2%84%EC%A0%84-%EC%A7%80%EC%A0%95/



- Gradle build 속도 관련 Fabric 정보


([안드로이드/Android]빌드시간 최적화하기(빌드시간 70%감소)

http://gun0912.tistory.com/76

728x90
728x90

1. ListView + CheckBox


- ListView 의 onItemClick 이벤트가 먹지 않음

일단 체크박스가 들어있으면 체크박스의 이벤트 때문인지 체크박스 말고 리스트 영역 클릭시 클릭 이벤트가 안온다.

Row 를 정의한 xml 에서 CheckBox 에 android:focusable="false" 을 추가하여 해결.


728x90

+ Recent posts