본문 바로가기

분류 전체보기

[Annotation] 내가 생각하는 Annotation 요즈음 많이 사용되고 있는 Retrofit2 라이브러리나 Dagger 라이브러리를 보시면,Annotation을 이용하고 있는 것을 확인 할 수 있습니다. Retrofit은 Method에 @Get이나 @Post Annotation을 사용 하고,Dagger 같은 경우 Class에 @Module, Method에 @Provides 라는 Annotation을 사용 합니다. 그럼 어떻게 Annotation만 설정 해놨는데 자동적으로 제어가 가능 한 걸까?? https://medium.com/@ggikko/java-%EC%BB%A4%EC%8A%A4%ED%85%80-annotation-436253f395ad#.s04jpt1cw이 블로그를 보고 전 느낌을 받았습니다. 1. 클래스, 메소드, 매개변수등에 할당되는 특정 A.. 더보기
[Kotlin] 콜백함수 구현 Java에선 콜백 함수를 아래와 같이 많이 쓰입니다. // 콜백 함수 선언private interface OnStringCallback { void onCallback(String string); } private void testCallback(OnStringCallback callback) { callback.onCallback("hello callback"); } // 콜백 함수 실행testCallback(new OnStringCallback() { @Override public void onCallback(String string) { Log.d("Test","Called : "+string); } }); 위와 같이 콜백을 위한 interface를 선언 하고 해당 Interface의 함수를 통해서.. 더보기
[Kotlin] kotlin 프로젝트 생성 시, 참조할 만한 소스 Kotlin으로써 새로운 프로젝트를 시작하고자 할 때,참조할만한 괜찮은 소스가 있어서 공유 하고자 합니다. https://github.com/Plastix/Kotlin-Android-Boilerplate 소스 형태는 아래와 같다고 쓰여 있네요.LibrariesDagger 2 -> 의존 관계 주입(Dependency Injection) 라이브러리RxJava 2 and RxAndroid -> 요새 화두가 되고 있는 Reactive 라이브러리Retrofit 2 -> 네트워크 통신 라이브러리Picasso -> 이미지 로드 라이브러리 (전 Glide로 교체할 예정)Google Support Libraries -> 구글에서 지원해주는 라이브러리Testing LibrariesJUnitMockitoRequirement.. 더보기
[Kotlin] let을 이용한 Null 체크 val result: Boolean if (user != null) { result = write(user) } else { result = false }이런 케이스에서는 Kotlin에서는 다음과 같이 쓰는 것이 가능합니다.val result: Boolean = user?.let { write(it) } ?: false참고 : https://gist.github.com/Hazealign/1bbc586ded1649a8f08f#약간-특이한-부분 하지만, 위 소스에서 false가 아닌 {} 같이 구문을 이용하고자 한다면 어떻게 하면 될까요?? fun letTest(a: String?) { a?.let { Log.d("Test","letTest :: 1 : "+it) }.let { Log.d("Test","le.. 더보기
[Android] WebView 상에서 Intent Uri 실행 public class CustomWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("tel:")) { Intent call_phone = new Intent(Intent.ACTION_CALL); call_phone.setData(Uri.parse(url)); startActivity(call_phone); } else if (url.startsWith("sms:")) { Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url)); startActivity(i); } .. 더보기
[TensorFlow] TensorFlow를 윈도우에 설치하기 인공지능에 관심이 생기다 보니 자연스럽게 TensorFlow를 테스트 해보기 위해 윈도우에 설치를 했습니다. Docker를 이용하거나 가상 드라이브를 만들어서 Linux에 설치하거나 다양한 방법이 있는데요. 전 Android 개발자이다 보니 JetBrain 사 제품에 익숙해서 PyCharm을 이용해서 설치하는 방법을 올리고자 합니다. 1. 설치 파일 다운로드 Python3.5 : https://www.python.org/downloads/release/python-352/PyCharm : https://www.jetbrains.com/pycharm/download/#section=windowsAnaconda : https://www.continuum.io/downloads 위 사이트 가서 설치 파일을 모.. 더보기
[TensorFlow] TensorFlow 참고 사이트 TensorFlow Korea 블로그 : https://tensorflow.blog/TensorFlow github : https://github.com/tensorflow/tensorflow CPUU의 Daydreamin : http://cpuu.postype.com/category/%EB%A8%B8%EC%8B%A0-%EB%9F%AC%EB%8B%9D TensorFlow install os setup : https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.mdTensorFlow install in ubuntu : http://yeramee.tistory.com/1TensorFlow install.. 더보기
[Android][Kotlin] public static final -> const val Java에서 public static final 을 kotlin 에서는 const val로 사용하면 똑같이 사용 할 수 있습니다. Contants.javapackage com.test.kotlin; public class Contants { public static final int CONTANTS_INT_ID_1 = 100; public static final int CONTANTS_INT_ID_2 = 101; public static final int CONTANTS_INT_ID_3 = 102; public static final int CONTANTS_INT_ID_4 = 103; } Contants.kt@file:JvmName("Contants") package com.namuon.ringq.dat.. 더보기