Android 80

UnknownServiceException: CLEARTEXT communication to not permitted by network security policy

android Pie 대응을 위해서 targetSdkVersion을 28로 변경 후 갑자기UnknownServiceException: CLEARTEXT communication to example.com not permitted by network security policy와 같은 오류가 나오게 경험을 하게 됩니다. 이유는 android pie부터 http가 아닌 https를 이용해야 합니다. Protecting users with TLS by default in Android P 의 내용을 확인하면 됩니다. 간단하게 api의 도메인이 http가 아닌 https를 지원하고 http를 https로 변경만 하면 됩니다. 대부분의 회사 api들이 https를 지원하지만 그렇지 않은 경우도 있죠.이럴 땐 ht..

Android 2019.02.26

AndroidStudio에서 File Template이용하기.

AndroidStudio에서는 live template라는 좋은 기능이 있습니다. 단순하게 재사용이 많은 코드에 대해서 매크로 같은 기능이라고 해야 할까요?? 한두단어 쳤을 때 해당 template에 따라서 코드가 작성되는 것입니다. 단적인 예를 들어서 Fragment에서 새로운 instance를 상성하기 위해서는 이와 같은 코드를 작성한다고 했을 때 키보드를 그래도 수십번??? 의 타이핑이 필요 합니다. 하지만 live template 기능을 이용하면 이렇게 하면 단 몇번의 타이핑으로 원하는 기본 코드를 작성할 수 있습니다. 그렇다면 File Template기능은.. java나 html..javascript등에서 자주 사용하는 코드들에 대해서 기본 template를 작성해 두고 빠르게 원하는 기본 코드..

Android 2016.06.14

AndroidStudio에서 lombok 사용하기

자바에서 코드를 작성 시 모델을 만들다 보면 constructor와 기본 getter/setter.. 그리고 상황에 따라서 builder를 만들어 사용해야 합니다.그런데 이런 일들을 모두 타이핑 하다 보니 보일플레이트 같은 코드들이 많이도 써야 합니다. 코드 제너레이터들이 있어서 편하게 할 수 있긴 하지만 더 편한 방법이 없을까요?저같은 경우는 lombok을 사용해서 모델 객체들의 불필요한 보일플레이트 코드들을 줄이고 있습니다. annotation방법으로 사용하기 때문에 사용방법도 간단합니다. 1. @Getter / @Setter기본적으로 멤버필드들에 대한 getter/setter메소드들을 만들어 줍니다. 2. @AllArgsConstructor / @NoArgsConstructor멤버필드들이 모두 파라..

Android 2016.04.10

Dagger2 + Sqlbrite

Sqlite는 안드로이드를 사용하면서 가장 많이 사용하는 db가 아닐 까 생각됩니다. 나온지도 오래 됐고, 처음부터 안드로이드에 적용하여 사용하다보니 안정성도 보장되어 있구요. 그런데 sqlite를 안드로이드에서 이용하기 위해서는 보일플레이트 코드가 많이 들어갑니다. Helper객체와 Provier객체가 필요하죠. 상황에 따라서는 Provider객체를 만들지 않고 사용할 수도 있지만요.이번에 사용해보면서 나름 괜찮다고 생각되는 라이브러리입니다. Square에서 나온 Sqlbrite입니다. React programming을 할 수 있도록 도와줍니다.sqlbrite git주소에 가면 dagger를 이용한 샘플이 존재합니다. 그런데 이 샘플은 square에서 내놓은 dagger1이죠. 그래서 전 Dagger2..

Android 2015.11.17

[Android] Dagger2에서 @Singleton scope및 custom scope annotation이용

얼마전 제 블로그의 포스트에서 Dagger2를 이용하는 방법을 간단하게 적어보았습니다.Android 개발에서 Dagger2이용해보기.그런데 여기서 @Scope에 대한 설명이 없었던 것 같습니다.@Scope ... 실질적으로는 Dagger2에서는 @Singleton annotation을 많이 사용합니다. Singleton은 굳이 자세히 설명을 안해도 다들 잘 알고 계시리라 봅니다. 객체 주입에서 @Singleton annotation을 적용해 두면.. 전체 App의 Scope안에서 Singleton객체가 생성되어 주입 됩니다. 그렇다면 다른 custom scope는 없을까요? 물론 @Scope annotation의 custom을 만들어서 사용합니다. 예를 들어서 Activity life cycle에서만 존..

Android 2015.11.10

Setting Up Android CheckStyle in Android Studio

개발을 여러 사람과 같이 하게 되면 각자만의 코드 스타일이 다르기 때문에 코딩 컨벤션은 어느정도 필요하다는 것을 알 수 있습니다. 그렇다고 누구 한명의 기준에 맞출 수도 없는 거죠.안드로이드 개발자 사이트에 가면 자세히도 코딩 가이드라인이 존재합니다. 사실 개발하다보면 잘 안지키긴 하죠Code Style Guidelines for Contributors그럼 이 가이드라인을 지킬 수 있는 설정파일도 존재합니다.https://github.com/android/platform_development/blob/master/ide/intellij/codestyles/AndroidStyle.xml그럼 이 설정파일을 적용하는 방법입니다. 1. https://github.com/android/platform_develo..

Android 2015.11.10

Guava: Google Core Libraries for Java 간단한 사용방법.

Guava: Google Core Libraries for JavaBase - Objects.equal() : equal 비교시 null 체크를 하지 않아도 된다. - Objects.hashCode() : hash코드 생성을 보다 쉽게 만들 수 있다. - Objects.toStringHelper() : toString객체를 보다 쉽게 만들 수 잇다. -> 일반적인 코드 :public class Book { private String title; private String writer; private int price; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } pub..

Android 2015.11.06

[Android] MVC, MVVM, MVP

안드로이드 개발하는 개발 패턴으로는 MVC( Model - View, Controller)와, MVVM(Model - View, ViewModel), 그리고 MVP(Model - View - Presenter)방법이 있습니다. 이 세가지 방법에는 각자만의 스타일과 장단점을 가지고 있구요. 안드로이드 개발자들이 많이 늘어나고 좀더 편한 개발 방법들을 추가하면서 나오는 방법들이지 않을 까 합니다.1. MVC ( Model - View - Controller ) - Model : 안드로이드에서 사용될 데이터들. - View : activity_main.xml 과 같은 view layout - Controller : Activity, Fragment 들...알게 모르게 가장 많이 사용된 패턴이지 않을 까 생각됩..

Android 2015.10.26

[Android] Android 개발에서 Dagger2이용해보기.

Dagger2 url : http://google.github.io/dagger/요즘 안드로이드 개발에서 Dependency Injection방법을 이용한 개발 방법이 이슈로 자리잡고 있는 듯 합니다. 더군다나 네임드 개발자로 알려진 Jake Wharton 형님이 발표한 자료도 있습니다. https://speakerdeck.com/jakewharton/dependency-injection-with-dagger-2-devoxx-2014 2라는 숫자가 있는 것을 보면 Dagger1이 있다는 얘기가 됩니다. 처음 Dagger는 Square에서 나왔습니다. http://square.github.io/dagger/ 이 사이트에 가시면 자세한 설명을 보실 수 있어요. 나중에 Dagger에 대한 샘플을 작성해 볼 생..

Android 2015.10.15

[Android] Fragment에서 onActivityResult 결과 받기.

안드로이드에서 onActivityResult는 이전 activity에서의 결과를 intent를 통해서 받을 수 있습니다. 개발문서 참고 당연히 Fragment안에서도 onActivityResult가 있고, fragment안에서 startActivityForResult를 통해서 해당 결과를 받을 수 있습니다. /** * Call {@link Activity#startActivityForResult(Intent, int)} from the fragment's * containing Activity. */ public void startActivityForResult(Intent intent, int requestCode) { if (mHost == null) { throw new IllegalStateExc..

Android 2015.10.02