태그 보관물: android studio

유용한 안드로이드 스튜디오 플러그인 소개

이 글에서는 안드로이드 스튜디오를 사용하면서 안드로이드 앱 개발에 유용한 플러그인을 몇 개 살펴본다. 여기에서 살펴보는 플러그인은 개인적으로 즐겨 사용하는 것으로, 개발시간을 단축하고 안드로이드 스튜디오를 더 편리하게 사용하도록 한다.

1. CodeGlance

이 플러그인은 서브라임 텍스트(Sublime Text)의 우측에 볼 수 있는 코드의 미니 맵을 편집기에 추가하는 플러그인이다. 플러그인 프로젝트에 밝은 테마와 어두운 테마 모두를 지원한다고 나와 있다.
– 플러그인 주소 : https://plugins.jetbrains.com/plugin/7275-codeglance
– 프로젝트 주소 : https://github.com/Vektah/CodeGlance

1.1 설치방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 CodeGlan을 검색해서 설치한다.

1.2 사용방법
설치를 완료하고 재시작하면, 편집기 우측에 코드의 미니맵이 나타나는 것을 확인할 수 있다.

2. WIFI ADB ULTIMATE

이 플러그인은 USB로 안드로이드 기기에 연결하지 않고도, 같은 네트워크(WIFI)를 사용하는 안드로이드 기기에 ADB로 연결을 지원하는 도구이다.

플러그인 주소 : https://plugins.jetbrains.com/plugin/9207-wifi-adb-ultimate
프로젝트 주소 : https://github.com/huazhouwang/WIFIADB

2.1 설치방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 wifi를 검색해서, 화면에 선택된 플러그인을 설치한다.

2.2 사용방법
안드로이드 스튜디오 우측에 “WIFI ADB ULTIMATE”을 클릭하면 아래의 화면이 나온다. 이 화면에서 안드로이드 기기의 IP를 확인하고 초록색 버튼을 클릭하면 연결된 원격 기기에 기기가 나타나는 것을 확인할 수 있다.

3. Parcelable code generator

이 플러그인은 클래스의 변수를 기준으로 Parcelable 인터페이스 구현 코드를 생성하는 도구이다.

플러그인 주소 : https://plugins.jetbrains.com/plugin/7332-android-parcelable-code-generator
프로젝트 주소 : https://github.com/mcharmas/android-parcelable-intellij-plugin

3.1 설치방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 parcel를 검색해서 아래 화면에 선택된 플러그인을 설치한다.

3.2 사용방법
아래의 이미지에서 사용하는 방법을 쉽게 알 수 있다. 편집기에서 마우스 우측 클릭 > Generate… > Parceable을 선택해서 코드를 생성한다.

4. Android Material Design Icon Generator Plugin

이 플러그인은 머터리얼 디자인 아이콘을 앱에서 사용하기 쉽게 도와주는 도구이다.

플러그인 주소 : https://plugins.jetbrains.com/plugin/7647-android-material-design-icon-generator
프로젝트 주소 : https://github.com/konifar/android-material-design-icon-generator-plugin

4.1 설치 방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 material을 검색해서 설치한다.

4.2 사용방법
File > New > Material Design Icon을 선택해서 아이콘을 생성할 수 있다.

5. Findbugs

이 플러그인은 즐겨 사용하는 정적 코드 분석 도구로, 안드로이드 스튜디오에서도 쉽게 사용할 수 있다.

플러그인 주소 : https://plugins.jetbrains.com/plugin/3847-findbugs-idea
프로젝트 주소 : http://andrepdo.github.io/findbugs-idea/

5.1 설치 방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 findbug를 검색해서 설치한다.

5.2 사용 방법
프로젝트의 모듈로 이동해서 마우스 우측을 선택해서, FindBugs 메뉴를 선택해서 정적 분석을 시작한다.

아래의 화면은 룰에 위반되는 사례를 FindBugs가 분석한 항목들에 대한 화면이다. 이 개별 항목들이 반드시 버그가 아니지만, 그래도 확인해볼 필요가 있겠다.

6. ColorManager

이 플러그인은 안드로이드 스튜디오의 리소스 파일에서 컬러 색을 좀 더 잘 보여주는 도구이다.

플러그인 주소 : https://plugins.jetbrains.com/plugin/8583-android-color-manager
프로젝트 주소 : https://github.com/shiraji/color-manager

6.1 설치방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 color mana를 검색해서 설치한다.

6.2 사용방법
안드로이드 프로젝트 리소스 폴더에 있는 colors.xml을 열고, 우측의 탭에서 “Color Manager”를 선택하면 아래의 화면을 볼 수 있다. 이 플러그인이 머터리얼 컬러의 종류와 색을 화면에 다 보여주기 때문에, 색을 확인하기 위해서 구글 머터리얼 사이트에 접속하지 않아도 된다.

7. Android API Level Plugin

이 플러그인은 안드로이드 API 레벨과 버전 이름을 보여주는 도구이다. 여기에서 살펴본 플러그인들 중에 가장 간단하지만 아주 유용하게 사용될 수 있다.

플러그인 주소 : https://plugins.jetbrains.com/plugin/8121-android-api-level
프로젝트 주소 : https://github.com/droibit/androidapilevel-plugin

7.1 설치방법
File > Settings… > IDE Settings > Plugins > Browse repositories 에서 “Android API Level”를 검색해서 설치한다.

7.2 사용방법
툴바에 안드로이드 아이콘이 한개 추가된 것을 알 수 있다. 아래와 같이 이 버튼을 클릭하면 안드로이드 API의 레벨과 버전등을 보여주는 화면을 아래와 같이 보게 된다.

이상 안드로이드 앱을 개발하면서 유용하게 사용하는 플러그인 몇 개를 살펴봤다. 이 플러그인을 사용해서 개발에 도움이 되었으면 좋겠다.

안드로이드 스튜디오 앱 프로젝트가 사용하는 외부 라이브러리 최신 버전 확인하기

안드로이드 스튜디오를 사용해서 앱을 빌드하는 데는 그레들(Gradle)을 사용하고 있다. 그리고 작게는 몇 개에서 많게는 십수 개의 라이브러리를 사용하는 앱들을 흔하게 볼 수 있다. 물론 내가 개발하고 유지하는 앱들도 여러 개의 외부 라이브러리를 사용하고 있다.

이렇게 외부 라이브러리를 사용하다 보니, 개별 라이브러리의 최신 버전을 확인해야 하는 경우가 종종 있다. 이런 경우 라이브러리 프로젝트의 소스(대부분의 경우 Github에서 호스팅하고 있다)를 확인해서 버전이 업데이트 되었으면, 다시 동기화 하고 빌드해서 앱을 확인한다.

이 과정에서 라이브러리 업데이트는 필연으로 발생할 수 있는 문제지만, 라이브러리가 업데이트 되었는지 확인하는 작업은 아주 불편하다. 그래서 안드로이드 스튜디오에서 앱이 사용하는 라이브러리의 최신 버전을 확인할 수 있는 방법을 살펴보자. 인터넷으로 확인해본 결과 플러그인을 사용하는 방법, 안드로이드 스튜디오에서 지원하는 린트(Lint)를 사용하는 방법 그리고 젯브레인에 등록된 라이브러리를 사용하는 방법이 있다.

1. 플러그인을 사용하는 방법

https://github.com/ben-manes/gradle-versions-plugin 사이트에서 플러그인을 다운로드 받아서 설치해서 사용하면 된다.

1.1 예제 Build.xml

apply plugin: 'com.android.application'
apply plugin: 'com.github.ben-manes.versions'

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "net.sjava.testapp"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile('com.mikepenz:materialdrawer:5.2.5@aar') {
        transitive = true
    }

    compile('com.mikepenz:aboutlibraries:5.6.6@aar') {
        transitive = true
    } 
}

1.2 실행

아래의 명령으로 프로젝트가 사용하는 라이브러리의 최신버전을 확인할 수 있다. 그리고 outputFormatter로 xml이나 json을 선택할 수 있다.
C:\dev\TestApp>gradlew dependencyUpdates -Drevision=release -DoutputFormatter=plain

1.3 결과

위 build.xml의 외부 라이브러리 확인결과, 아래와 같이 최신버전이 존재하는 것을 알 수 있다. 그리고, 맨 아래에 리포팅 결과를 txt파일로 저장했다는 것도 알 수 있다.

------------------------------------------------------------
:app Project Dependency Updates (report to plain text file)
------------------------------------------------------------
                                      
The following dependencies are using the latest release version:
 - com.github.ben-manes:gradle-versions-plugin:0.12.0
 - junit:junit:4.12                   
                                      
The following dependencies exceed the version found at the release revision level:
 - com.mikepenz:aboutlibraries [5.6.6  24.0.0-alpha2]
 - com.mikepenz:materialdrawer [5.2.5 -> 5.2.6]
                                      
Generated report file C:\dev\TestApp\app\build/dependencyUpdates/report.txt

2. 린트를 사용하는 방법

안드로이드 스튜디오에서 외부 라이브러리의 최신 버전을 쉽게 확인할 수 있게 린트를 사용해서 최신 버전을 확인할 수 있는 기능을 제공한다. 안드로이드 스튜디오에서 린트로 사용할 수 있지만, 기본으로 선택되어 있지 않아서 설정에서 추가한다.

2.1 린트 옵션 추가

안드로이드 스튜디오에서 Setting > Editor > Inspections 에러 아래와 같이 Newer로 찾으면 Newer Library Versions Available 옵션을 확인할 수 있고, 이 옵션을 선택하자.
setting_screen

2.2 린트를 실행해서 최신 버전의 라이브러리 확인

린트를 실행하는 방법은 상단 메뉴에서 Analyze > Run Inspection by Name…을 선택하고, Enter inspection name 창이 나오면 Newer 를 입력하면 Newer Library Versions Available을 선택할 수 있다. 그리고 Whole 프로젝트를 범위로 선택해서 확인하면, 아래와 같은 결과를 확인할 수 있다.
lint_result

3. 안드로이드 스튜디오 플러그인

안드로이드 스튜디오는 젯브레인(JetBrains)에 배포되어 있는 플러그인을 사용할 수 있다. 그래서 Setting > Plugins > Browse Repositories에 가서 version을 검색하면 Dependencies Version Checker 플러그인을 확인할 수 있고, 이 플러그인을 설치하고 안드로이드 스튜디오를 다시 시작하자. 현재 이 플러그인은 의존성 에러(안드로이드 2.1.1 버전에서 확인)로 사용할 수 없었다.

안드로이드 스튜디오 Gradle 빌드 플러그인 업데이트

안드로이드 스튜디오(Android Studio)에서 Gradle을 사용해서 애플리케이션을 빌드하기 위해서 꼭 필요한 플러그인이 있고, 이 플러그인은 프로젝트(모듈이 아님)의 build.gradle 파일에 선언되어 있다. 이 파일은 아래 이미지에 선택되어 있다.

project_directory

아래에 볼 수 있는 스크립트 내용이 현재 프로젝트를 진행하고 있는 build.gradle 파일의 내용이다. 빌드 플러그인은 2015년 11월 12일 1.5.0의 안정화 버전이 발표되어, 1.3.1 버전에서 1.5.0 버전으로 업데이트를 한 것을 알 수 있다. 간단하게 아래처럼 버전만 변경하면 쉽게 빌드 플러그인을 업데이트할 수 있다.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        
        //classpath 'com.android.tools.build:gradle:1.3.1'
        classpath 'com.android.tools.build:gradle:1.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

이 빌드 플러그인은 Bintray에 배포가 되고 있으며, 아래에서 확인할 수 있다.
https://bintray.com/android/android-tools/com.android.tools.build.gradle

그리고 위 링크에서 배포된 버전들을 최신 순더로 살펴보면 다음과 같다. 최신 버전이 1.5.0임을 알 수 있고, 이 버전까지는 여러번의 베타 과정을 거치면서 안정화 된 것을 알 수 있다.

build.gradle.versions

이제 빌드 플러그인이 업데이트 되면 쉽게 업데이트할 수 있겠다.

IntelliJ/Android Studio Open Current Activity 플러그인

인텔리J나 인텔리J 기반의 IDE인 안드로이드 스튜디오에서 안드로이드 개발을 하면서 유용한 플러그인의 하나인 Open Current Activity에 대해서 살펴보자. 이 플러그인의 이름만으로도 어떤 기능을 제공하고 있는지 어렵지 않게 유추할 수 있다.

  1. 기능

    • 바로 에뮬레이터나 기기에 연결해서 보고 있는 앱 화면의 Activity로 바로 이동할 수 있는 플러그인이다.
  2. 설치 및 다운로드

    • 안드로이드 스튜디오의 경우에는 플러그인 설치 윈도에서 찾을 수가 없어서 다운로드 해서 설치하도록 하자. 설치 방법은 이 페이지(https://plugins.jetbrains.com/plugin/7877)에서 jar 파일을 다운로드 하고, Preference > Plugins > Install plugin from disk… 버튼을 클릭해서 다운로드 한 jar 파일을 로딩한다. 마지막으로 안드로이드 스튜디오를 재시작한다.
  3. 사용방법

    • 사용방법은 에뮬레이터나 기기를 연결해서 개발 중인 앱을 실행시킨다. 그리고 화면을 보는 상황에서 메뉴의 Navigate > Current Activity 메뉴를 찾아서 클릭한다. 이제 화면에 보고 있는 Activity가 에디터 창에 뜨는 것을 확인할 수 있다.

안드로이드를 개발하면서 화면을 이동하고, 이동한 화면에서 문제를 발견하면 어떤 Activity나 Fragment인지 찾아서 수정해야 하는데, 이 찾는 과정이 조금 시간이 걸리기도 하지만 기억력의 한계로 가끔은 짜증을 유발하기도 한다. 그래서 이 플러그인은 많은 안드로이드 개발자들에게 유익한 플러그인이 될 것으로 생각한다.

아래 화면은 플러그인 개발 사이트에서 보여주는 예시화면이다.

안드로이드 스튜디오(Android Studio)에서 Fabric의 Crashlytics을 플러그인 설치 없이 사용하기

Crashlytics는 안드로이드나 IOS에서 크래시나 그와 같은 상황에 대한 리포팅 서비스를 제공하고 있다. 이 서비스를 사용하는 기본 방법은 http://sjava.net/?p=479를 확인하면 쉽게 알 수 있다. 필자가 진행하고 있는 프로젝트로 외부 프로젝트도 같이 진행하고 있다. 그래서 Crashlytics 계정을 2개 이상 사용하고 있다.

프로젝트를 변경해서 다른 계정을 사용할 때는 Crashlytics의 플러그인에서 로그아웃 -> 로그인 해서 사용하는 계정을 변경해서 사용한다. 그리고 이 플러그인을 설치하고 싶지가 않았다. 그래서 이 글에서는 플러그인을 설치하지 않고 Crashlytics를 사용하는 방법을 살펴보자.

Crashlytics는 트위터(Twitter)가 인수를 하고 Fabric이라는 통합 툴의 일부가 되었다. 그리고 사용하는 방법도 변경이 되었기에 변경된 내용을 살펴보자.

1. Fabric에서 Crashlytics에 해당하는 gradle 설정은 다음과 같다. 아래 내용은 https://fabric.io/migrations/gradle 에서 확인 할 수 있다.

buildscript {
  repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
    // The Fabric Gradle plugin uses an open ended version to react
    // quickly to Android tooling updates
    classpath 'io.fabric.tools:gradle:1.+'
  }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
  jcenter()
    maven { url 'https://maven.fabric.io/public' }
  }

android {
  compileSdkVersion 23
  buildToolsVersion "23.0.0"

  defaultConfig {
    minSdkVersion 16
    targetSdkVersion 23
  }
}

dependencies {
  // Crashlytics Kit
  compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
    transitive = true
  }
}

2. AndroidManifest.xml 파일에 아래의 권한을 추가한다.

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

3. AndroidManifest.xml 의 <application> 요소에 아래의 값을 추가한다.

<application>
    <meta-data android:name="com.crashlytics.ApiKey" android:value="키를 넣어 주세요" />
</application>

3.1 위에서 필요한 키는 웹사이트에서 Settings > Organizations 의 목록에 있는 Admin 그룹을 클릭하면 사용자 목록을 볼 수 있고, 이 화면에서 API 키를 확인할 수 있다.

4. Application 클래스에서 사용
– Application 클래스를 상속하는 클래스의 onCreate() 메서드에서 아래와 같은 코드를 사용해서 Crashlytics를 사용할 수 있다.

public void onCreate() {
    super.onCreate();
    Fabric.with(this, new Crashlytics());
}

이제 아래 과정은 Crashlytics가 Fabric으로 통합되면서 Deprecated된 과정이다. 따라서, 아래의 과정은 참고를 하지 않는게 좋다.

이 과정은 안드로이드스튜디오(Android Studio)에 적용할 수 있다.

1. Crashlytics의 pom.xml 파일을 확인한다.
https://crashlytics.com/downloads/maven 에서 Crashlytics에서 배포하는 바이너리에 대한 정보를 확인할 수 있다.

2. 위 정보를 기준으로 build.gradle에 아래의 정보를 입력한다.

buildscript {
    repositories {
        // 1. Add the Crashlytics Maven repository
        maven { url 'http://download.crashlytics.com/maven' }
    }
    dependencies {
        // 2. Add the Crashlytics plugin to your dependencies
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}

apply plugin: 'com.android.application'

// 3. Apply the Crashlytics plugin after the Android plugin
apply plugin: 'crashlytics'

repositories {
    // 4. Add the Maven repository
    maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    // 5. Add the Crashlytics SDK to the Android project
    compile 'com.crashlytics.android:crashlytics:1.+'
}

3. AndroidManifest.xml 파일에 아래의 권한을 추가한다.

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

4. AndroidManifest.xml 의 <application> 요소에 아래의 값을 추가한다.

<application>
    <meta-data android:name="com.crashlytics.ApiKey" android:value="키를 넣어 주세요" />
</application>

4.1 위에서 필요한 키는 웹사이트에서 Settings > Organizations 의 목록에 있는 Admin 그룹을 클릭하면 사용자 목록을 볼 수 있고, 이 화면에서 API 키를 확인할 수 있다.

5. Application 클래스에서 사용
– Application 클래스를 상속하는 클래스의 onCreate() 메서드에서 아래와 같이 Crashlytics를 사용할 수 있다.

public void onCreate() {
    super.onCreate();
    Crashlytics.start(this);
}

 

* 레퍼런스
http://blog.danlew.net/2015/02/20/setting-up-a-new-app-in-crashlytics-without-the-plugin/