IT 이모저모

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 1

exien 2018. 3. 13. 08:25

요즘 리 Reactive 프로그래밍이 주목 받고 있습니다. GUI의 상호 작용과 시간 경과에 따라 변화하는 애니메이션 등에 적합한 패러다임 인 것으로 알려져 있으며, 안드로이드 애플리케이션 개발에도 도입하는 것이 가능합니다.


이번에는 Ractive Extensions(RxJava2)를 사용하여 안드로이드 채팅 어플리케이션 개발 방법에 대해 알아 보겠습니다.




안드로이스 스튜디오 3.0버전을 사용해서 개발을 진행하겠습니다.

먼저 안드로이스 스튜디오를 실행 시켜 File 메뉴에서 New - New Project 를 선택하고, 필요 사항을 입력합니다. 프로젝트를 만든 후 생성 된  프로젝트 build.gradle을 확인 합니다.


Android Plugin의 버전이 3.0.1 로 되어있는것을 확인할 수 있습니다. 기존 프로젝트를 사용하는 경우에는 수동으로 버전을 업데이트 합니다.


buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.0.1' } }


또한 저장소 정의에 Google Maven리포지토리를 추가합니다. 앞으로 support library등은 Google Maven 저장소에 배포됩니다.


allprojects { 
    repositories { 
        jcenter ()
          
        google ()
          
        // Gradle 4.0 미만을 사용하는 경우에는이 같이 쓰면 OK입니다. // maven {url 'https://maven.google.com'} } }
        


app ahebfdml build.gradle 도 확인합니다. 지원하는 안드로이드 버전을 5.0이상 (API Level 21)로 설정합니다.

2014년에 Android 5.0이 출시 되었고, 출시 된지 3년 이상이 경과하고 점유율이 확대되고 있어 최소 버전을 21로 해도 무리가 없을 것입니다. 만약 머터리얼 디자인을 도입한다면, UI/UX의 유지 관리가 편해진다라는 점에서도 이전 OS 버전을 버리고 최신 버전을 선택하는게 좋은 선택일 것입니다.


android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.2"
      
    defaultConfig { ... 의미 ...
        
          
        minSdkVersion 21 
        targetSdkVersion 26 }
    
      
    compileOptions {  
        sourceCompatibility JavaVersion . VERSION_1_8
        targetCompatibility JavaVersion . VERSION_1_8
     } }


만일 Android 7.0(API Level 24) 이상을 지원 대상으로 하면 다음과 같은 장점 및 단점이 있습니다.


 - Java 8 기능을 사용 할 수 있습니다. (Optional, Stream API, java.util.function 패키지등)

 - 하지만 위 기능들은 다른 라이브러리로 대체할 만한것들이 많이 있음

 - 현재 Android 7.0 이상의 점유율이 20% 정도 밖에 안됨