정식 Android Studio 3.0과 까나리 3.1 배포



개인 광고 영역

길고 긴 Beta 끝에 드디어 정식 출시된 Android Studio 3.0입니다.

Android Studio 3.0은 Android 8.1 Preview와 Preview 대응용 Android 3.1 Preview와 함께 배포되었습니다.

Android Studio 3.0 Releases 소개 영상

Android Studio 3.0 Releases note


Android Studio 3.0과 Android Studio 3.1 Preview에서의 문제점

정식 버전이 올라왔지만 언제나 그랬듯 약간의 문제가 있습니다.

x.0은 사용하지 않는 게 좋을지도 모르겠지만 우선 Layout Preview에서 한글 문제가 발생합니다.

100% 생기는 건 아닌 것 같고, 특정 폰트 문제일 가능성도 있습니다.

제가 등록한 이슈는 아래와 같은데 다음 Preview 버전에서 해결해준다고 합니다.

만약 Layout Preview 오류가 발생하신다면 Android Studio을 완전히 밀고(설정 파일 포함) 다시 설치해보시기 바랍니다.

한국어 사용 시 레이아웃 Preview 문제


주요 기능 - Kotlin Support

새로운 프로젝트를 생성하거나, Java to Kotlin으로 컨버팅할 수 있는 기능을 기본으로 제공합니다.

기존에는 별도의 플러그인을 설치하고, 새로운 프로젝트에서 수동으로 추가해야 했었죠.

kotlin-support

빠르게 코틀린 프로젝트를 생성하고, 적용하는 게 가능해졌습니다.

기본 코드도 아래와 같이 kotlin으로 바로 나옵니다.
그리고 kotlin Extensions도 자동으로 적용되어 있어 UI을 사용하는데 별도의 findViewById 처리가 필요치 않습니다.

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setSupportActionBar(toolbar)

        fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show()
        }
    }
}


주요 기능 - Java 8 language features support

코틀린을 하면 더 이상 필요치는 않지만 Java 8을 지원합니다.

람다식 정도는 모든 버전에서 지원하고, 그 외에는 java 8 features에서 추가로 확인 후 사용이 가능합니다.

Java 8을 사용하기 위해서는 아래와 같이 모듈에 설정을 추가해주면 되는데, 더 이상 jack 옵션은 필요치 않죠.

android {
  ...
  // Configure only for each module that uses Java 8
  // language features (either in its source code or
  // through dependencies).
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}


주요 기능 - Android Profiler

안드로이드 프로파일러가 별도의 탭으로 제공됩니다. 기존에는 로그 캣을 통해서 제공하고 있었는데 별도로 분리되었습니다.

그리고 더 많은 내용을 제공하고, 네트워크 성능, 메모리, CPU 등을 제공합니다.

자세한 내용은 release note의 Android Profiler에서 확인하세요.

저는 이 중 네트워크 프로파일러를 많이 이용할 것 같습니다.

기존에는 Facebook의 Stetho을 이용할 수 있었는데 이제 기본 Profiler에서 확인 가능해졌습니다.

network-profiler_2x


주요 기능 - APK profiling and debugging

APK에 대한 프로파일링과 디버그를 제공합니다.

File > Profile or debug APK의 메뉴를 통해 아래와 같이 디버깅이 가능한데 자세한 내용은 문서를 참고해주세요.

apk-debugging_2x


주요 기능 - Support for font resources

Android Support Library 26.0.0에 추가된 폰트 다운로드 기능을 Layout Preview에서도 미리 확인할 수 있는 기능을 제공합니다.

다운로드 font의 기능인데 Android Studio 3.0부터 Layout Preview에서도 이를 제공하기 위한 기능을 제공합니다.

레이아웃 작업 중 font 메뉴에서 다음을 확인할 수 있습니다.

font-01

위 화면에서 더 보기를 눌러주면 아래와 같이 더 많은 폰트를 프리뷰 해볼 수 있습니다.

아직은 구글 소스만 있네요.

font-02

그리고 레이아웃 미리 보기에는 아래와 같이 적용됩니다.

font-03


주요 기능 - Android App Links Assistant

앱링크를 간단하게 연결해줄 수 있습니다. App 내에 웹의 URL을 통해 앱을 빠르게 실행할 수 있는 기능입니다.

예를 들어 http://thdev.tech/kotlin이라는 링크를 앱 내의 메인 액티비티로 이동시키게 하고 싶다면 아래 App Links Assistant을 이용해서 간단하게 처리가 가능합니다.

applinks-url-validation-callout_2x

위 기능을 활용하면 실제 코드에서 아래와 같이 확인이 가능하죠.

<activity ...>
    <intent-filter>
        ...
    </intent-filter>
    <tools:validation testUrl="http://thdev.tech/kotlin" />
</activity>


주요 기능 - Preview for D8 DEX compiler

더 빠른 Preview을 위해서 D8 DEX compiler을 활용할 수 있습니다.

3.0에서는 아래의 코드를 추가해주어야 하는데 3.1 Preview에서는 기본 true가 들어갑니다.

android.enableD8=true

다만, 64bit ARM 빌드 시에 오류가 발생할 수 있다고 하니 테스트 용도로 활용함이 좋을 것 같습니다.

D8 DEX compiler의 비교 자료 중 그래프가 눈에 띄어서 가져와봤습니다.

dx_d8


주요 기능 - Google’s Maven repository

구글 I/O에서 예고한 대로 이제는 google() 레파지토리를 사용해야 합니다.

그러기 위해서는 Android Studio 3.0 이상의 버전과 build tools 26 이상을 활용해야 아래와 같이 google() 레파지토리 사용이 가능합니다.

allprojects {
    repositories {
        google()
    }
}


마무리

드디어 정식 버전이 나왔습니다. 하지만 한글 폰트 문제 때문에 3.0을 잘 사용하지는 못하고 있습니다.

2.0이 나왔을 때도 한글 문제가 있었는데 이번에 또 그러네요.

일단 이슈 등록을 했고, 수정해준다고 하니 다음 버전을 기다려야 하겠습니다.(다행히 폰트 문제로 보이는…?)

이제 코틀린과 Java 8의 퓨처 기능을 자유롭게 사용할 수 있고, 프로파일도 잘 사용할 수 있게 되었습니다. 그 외 퓨처 기능에 추가된 게 너무 많은데 주요해 보이는 것만 가져와 보았습니다.



About Taehwan

My name is Taehwan Kwon. I have developed Android for 6 years and blog has been active for eight years.

Comments