안드로이드 람다 적용하기

이미지
안드로이드 람다 적용하기 안드로이드에서 람다를 적용하는 방법을 정리한다. 현대의 컴파일러는 충분히 똑똑해졌다. 문장의 종결인 세미콜론(;)도 필요 없어 지고 심플한 코드를 작성하여 가독성이 더 좋은 코드를 작성할 수 있게 되었다. 자바는 타 언어에 비해 세련되지 못한듯 하지만 버전 업이 되면서 문법의 빈약함을 차츰 보완해 내는 듯 한다. 자바 8부터 람다라는 코드 규칙을 지원한다. 람다가 무엇인지 또 어떤 장점이 있는지 요약 한 후 안드로이드에 적용하는 방법을 기술하고자 한다. 람다에 대해 잘 설명한 글이 있어 링크를 첨부한다. http://www.hanbit.co.kr/network/view.html?bi_id=1961 글에서 람다를 사용하는 이유의 핵심은 아래와 같다. 비즈니스 로직 하나를 위해 틀에 박힌 코드와 의미 없는 구현을 하게 만드는 것이다. 코드를 작성하다보면 러시아 인형인 마트료시카같은 느낌이 들 때가 있다. 특정 비즈니스 로직을 한 줄 추가하기 위해 코드 블럭을 작성하고 그 내부 블럭을 다시 작성하여 모든 껍데기가 완성되면 비로서 비즈니스 로직 한 줄을 추가하여 코드를 완성한다. 별 의미도 없는 틀에 박힌 코드를 작성하고 정작 필요한 코드는 1줄로 끝날때 그 허무함을 달래줄 수 있는 대안이 람다이다. 전체적인 코드의 불필요한 분량을 효율적으로 줄여 가독성을 대폭 향상 시켜줄 수 있는 대안 또한 람다이다. 안드로이드에서 사용하기 위해서는 Gradle Plugin을 설정해야 한다. https://github.com/evant/gradle-retrolambda build.gradle 파일에 다음과 같이 추가한다. buildscript { repositories { mavenCentral() } dependencies { classpath ' me.tatarka:gradle-retrolambda:3....

nProtect 깔기 싫다...

너 없이 은행 거래 하고 싶다.

Design support library 적용사항 정리

Design support library 적용사항 정리 적용하면서 알게된 내용 디자인 support library 사용시 기본 셋팅 사항 정리 [아래 두개의 compileSdkVersion가 추가 되어야 함] compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.0' [컴파일 SDK 버전] compileSdkVersion 23 [엑티비티 테마] android:theme="@style/Theme.AppCompat"

윈도우에서 Ruby 설치 및 RubyGems 설치 방법

윈도우에서 Ruby 및 RubyGems를 설치하는 방법 윈도우에 RubyGems 설치 http://rubyinstaller.org/downloads/ 사이트로 이동하여 RubyInstaller와 DEVELOMENT KIT을 다운로드하여 설치한다. RubyInstaller는 설치 프로그램이고  DEVELOMENT KIT은 mingw32를 7zip 형태로 실행형 압축한 파일이다. 각각 설치 및 압축해제를 한다. 시작 프로그램 > Start Command Prompt with Ruby를 실행하다. mingw32가 압축해제된 폴더로 이동한다. 아래 두 명령어를 차례로 실행한다. ruby dk.rb init ruby dk.rb install

CoolSharp Code Section Generator

이미지
CoolSharp Code Section Generator 코드를 작성할 때 섹션별로 나눠두면 한눈에 파악하기가 쉽다. https://plugins.jetbrains.com/plugin/8109?pr=idea 코드를 작성할 때 코드 섹션 별로 만들어두면 통일성도 있고 한눈에 파악하기도 쉽다. 원래 사내에서 사용하는 포멧으로 좀 더 쉽게 섹션을 만들어 두기 위해 개발한 플러그인인데 다른 사람들도 이용을 하면 좋을 듯 하여 인텔리 J 플러그인 공식 사이트에 등록하였다.

Custom Activity On Crash library

이미지
Custom Activity On Crash library 앱 크래시 OS 다이얼로그를 커스텀 다이얼로그로 변경 https://github.com/Ereza/CustomActivityOnCrash 앱 크래시가 발생하였을 때 시스템 다이얼로그를 대신해 커스텀 엑티비티를 호출한다.

butterknife

butterknife butterknife로 리소스 바인딩을 쉽게 하자. https://github.com/JakeWharton/butterknife 안드로이드에서 리소스를 사용하려면 findById 메소드를 이용하거나 getResource를 이용하여 바인딩한다. 사용에는 불편이 없으나 이러한 방법은 소스가 너저분해지고 전체적으로 분량도 늘어 가독성이 떨어지며 소스 라인의 수도 증가하여 간결함을 유지하기가 어려워진다. 내부 로직과 유관하기 보다 리소스와 바인딩을 위한 과정이므로 생략을 할 수 있다면 소스가 더 깔끔하게 관리가 될 수 있다. class ExampleActivity extends Activity { @Bind ( R . id . user) EditText username; @Bind ( R . id . pass) EditText password; @BindString ( R . string . login_error) String loginErrorMessage; @OnClick ( R . id . submit) void submit () { // TODO call server... } @Override public void onCreate ( Bundle savedInstanceState ) { super . onCreate(savedInstanceState); setContentView( R . layout . simple_activity); ButterKnife . bind( this ); // TODO Use fields... } } butterknife는 위와 같이 Annotation을 이용하여 내부적으로 리소스 바인딩을 진행해 준다.