일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 베드트레이
- 브런치작가되기
- 슬기로운 온라인 게임
- 좌식테이블
- 자취필수템
- 북한살둘레길
- T자형인재
- 한달어스
- 커스텀린트
- 아비투스
- 끝말잇기
- 소프시스
- 목적 중심 리더십
- 목적중심리더십
- 한달독서
- 면접
- 재택근무
- 한달브런치북만들기
- 어떻게 나답게 살 것인가
- 지지않는다는말
- 캐치마인드
- 소프시스 밤부 좌식 엑슬 테이블
- 프래그먼트
- 1일1커밋
- 한단어의힘
- 안드로이드
- 리얼하다
- 함수형 프로그래밍
- 테트리스
- 베드테이블
- Today
- Total
정상에서 IT를 외치다
[Android, IDE] 안드로이드 코딩속도를 높여주는 템플릿 본문
안녕하세요. 블랙진입니다.
IDE(통합개발환경)에서 코딩 속도를 높여주는 코드 템플릿이 있습니다. 그동안 몰라서 못 사용했던 꿀팁 Live Templates 과 Postfix Completion 에 대해 포스팅 해보겠습니다.
Live Templates 이란?
안드로이드에서 많이 사용하는 Toast 를 순식간에 작성하는 모습이 보이시나요?
Live Template 을 사용하면 자주 사용하는 코드를 쉽고 빠르게 작성할 수 있습니다. 한가지 예를 더 보겠습니다.
많이 사용하는 for 문 또한 빠르게 작성되는 모습을 보고 계십니다 @_@
(이제 당신은 Live Templates 을 사용하고 싶어집니다)
누군가가 봤을 때 "이 개발자 코딩좀 하나보네?" 라는 마음이 확 들것 같이 않나요? (저만 그런걸까요.. ? _ ? )
무튼 그런 마음이 없어도 코딩의 속도를 높여 줄 수 있는 Live Templates 활용법에 대해 알아보겠습니다!!
위치
Preferences > Editor > Live Templates (Mac 사용자 분은 'command' + ' , ' 로 Preferences 에 접근하실 수 있습니다.)
사용법
LiveTemplates 를 보면 Android ~ Zen XSL 까지 다양한 폴더가 보입니다. 여기서 맨 처음 사용했던 Toast 템플릿을 살펴보겠습니다.
경로 : Android > Toast
1. 어디서 사용할 수 있는 언어인지 보여줍니다. 안드로이드는 Java와 Kotlin 을 모두 사용하기 때문에 해당 템플릿이 지원할 수 있는 언어가 무엇인지 확인해야합니다.
2. 축약어를 입력하면 자동 완성 선택 박스가 나옵니다.
3. 자동 완성 박스에서 템플릿에 대한 설명을 보실 수 있습니다.
4. $variable$ 형태의 변수는 템플릿 입력 후 Enter 혹은 Tap 키를 통해 커서를 이동시킬 수 있습니다.
Toast 입력 시 나오는 자동 완성 박스
단축키
'command' + ' j ' 혹은 Tap 키를 눌러 템플릿을 자동 완성 할 수 있습니다.
커스텀 해보기
간단한 커스텀은 오른쪽 상단에 있는 + 버튼을 누르신 후 적용시킬 언어, 축약어, 설명 그리고 템플릿을 입력하시면 쉽게 생성하실 수 있습니다.
제가 알려드릴 커스텀은 Live Template variables 에 있는 groovyScript("groovy code", arg1) 함수를 적용해 만들어 보겠습니다,
만들 Live Templates
안드로이드 작업을 하다보면 requestCode = 1001 이런식으로 겹치지 않은 숫자를 생성할 필요가 있습니다. 이런 경우 변수의 숫자를 무엇으로 할까 고민을 하는데 위와 같이 템플릿을 입력하는 순간 랜덤한 숫자가 바로 생성되도록 할 수 있습니다!!
Random 숫자 Live Templates
1. 축약어 : req
2. 설명 : Create request code with random number
3. 사용 가능 영역 : java 의 declaration
오른쪽 상단 Edit variables 버튼을 눌러주고 아래와 같이 입력합니다.
number 변수에 groovyScript("new Random().nextInt(1000)") 를 입력해 주고 Skip if defined 를 체크 해 줍니다.
이렇게 하면 0~999 까지의 숫자가 랜덤으로 number 변수에 들어가게 됩니다. 이 외에도 다양한 함수가 제공되는데 이는 Live Template variables 에서 확인해주세요.
xml 에서의 활용
마지막으로 xml 에서도 Live Templates 어떻게 활용할 수 있는지 보여드리겠습니다. ConstraintLayout 을 사용하시는 개발자 분은 뷰를 중앙에 위치 시키기 위해서는 아래와 같은 코드를 작성하셔야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</android.support.constraint.ConstraintLayout>
ImageView 안에 app:layout_constraint.. 코드를 4개나 작성해 주어야 하다니....
하지만 이것또한 Live Templates로 빠르게 작성해 보겠습니다.
XML 에서 사용할 수 있는 Live Templates 를 만들었습니다. 보시는 코드와 같이 중앙 정렬을 해주는 템플릿 입니다. 한번 사용해 보겠습니다.
cslCenter 템플릿을 사용해 순식간에 코드를 완성했습니다.~!~!
Postfix Completion 이란?
Postfix code completion helps you reduce backward caret jumps as you write code. You can transform an already-typed expression to a different one based on a postfix you type after the dot, the type of expression, and its context.
이것 또한 코드 작성을 도와주는 템플릿의 일종입니다. 변수명 뒤에 dot(.)을 입력후 자동완성 시켜줍니다.
위치
Preferences > Editor > General > Postfix Completion
사용모습
1. new 키워드 사용
2. new 와 nn 키워드 사용
Android 특화 Posrifix
https://github.com/takahirom/android-postfix-plugin
해당 링크에 들어가면 findViewById, Toast, Log 등 안드로이드에 특화된 postfix 를 확인하실 수 있습니다.
다운방법
Preferences > Plugins > Android Postfix Completion 입력
install 을 해주시면 됩니다 :)
정리
안드로이드 고속 코딩을 위한 꿀팁 2가지에 대해 포스팅 해봤습니다. 포스팅을 보시고 "어? 나도 한번 사용해 볼까?" 라는 생각을 한 분이라도 하셨으면 정말 만족한 포스팅이 될 것 같습니다. 그러면 오늘도 두가지 꿀팁을 사용해 즐겁게 코딩 하시기 바랍니다.
<참고자료>
'안드로이드' 카테고리의 다른 글
[Android, Release Compile] 릴리즈 버전으로 컴파일 하기 (2) | 2019.04.16 |
---|---|
[Android, 단축키] 내가 자주 사용하는 단축키 정리 for MAC (8) | 2019.04.11 |
[Android, MVP] 리뷰 받은 MVP 예제 with Room (2) | 2019.04.07 |
[Zip, CombineLater, WithLatestFrom] 리액티브 예제 따라하기 (0) | 2019.04.04 |
[Android, ReUsingLayout] include, viewStub, merge 태그 사용하기 (2) | 2019.04.04 |