프로그래밍
-
Kotlin by keyword를 이용해 상속대신 Delegation을 해보자프로그래밍/Kotlin 2019. 9. 3. 14:02
이 문서는 아래 문서인 [Kotlin “By” Class Delegation: Favor Composition Over Inheritance] 을 번역, 보강한 문서이다. https://medium.com/rocket-fuel/kotlin-by-class-delegation-favor-composition-over-inheritance-a1b97fecd839 Kotlin “By” Class Delegation: Favor Composition Over Inheritance When people ask me why I choose Kotlin over Java, I often say, “Because Kotlin is a better Java.” You get more than half of Effecti..
-
Kotlin Coroutine Basic프로그래밍/Kotlin 2018. 11. 4. 18:28
이러한 극단적인 콜백지옥 코드를 fun requestTokenAsync(db:(Token) -> Unit) {} fun createPostAsync(token:Token, item:Item, cb:(Post)->Unit) {} fun processpost(post:Post) {} fun postItem(item:Item) { requestTokenAsync { token -> createPostAsync(token, item) { post -> processPost(post) } } } 코루틴을 사용하면 아래와 같이 바꿀 수 있다. (참조 : https://www.youtube.com/watch?v=_hfBv0a09Jc) suspend fun requestToken(): Token{} suspend fu..
-
[Tensorflow설치] Python version 문제 (Mac)프로그래밍/Machine Learning 2018. 9. 16. 13:54
텐서플로 설치할 때, 파이썬 버전이 안맞아서 제대로 동작하지 않는 문제가 있다.현재로서는(20180916) 파이썬 3.4.0이 제일 잘 설치되고 동작한다. 맥에서 파이썬 버전을 번경하려면 재설치보다는 pyenv의 사용을 권장한다.pyenv는 기존의 파이썬 버전에 영향을 주지 않고 같은 맥 환경에서 여러 버전의 파이썬을 사용할 수 있도록 도와준다. (가상환경 같은 것이다) 아래 명령어로 텐서플로 설치 완료! 동작 완료! $brew update$brew install pyenv$echo 'eval "$(pyenv init -)"' >> ~/.bash_profile$source ~/.bash_profile $mkdir virtual_env$cd virtual_env/$pyenv install 3.4.0$pye..
-
Google i/o 2018 - ExoPlayer 2.8프로그래밍/Android 2018. 6. 6. 20:20
MediaPlayer for Android and across all different devicesAPI Level >= 16Open source in GithubUsed in 200,000 appsadvanced functionalitycaching and offline to their application ExoPlayer's extension modules with Google API (MediaSession, Cast, Interactive Media Ads)2.8.0https://github.com/google/ExoPlayer/releases Exo-Player-Core, Exo-Player-Ui extension-Ima Audio Player with Notification extensio..
-
코틀린 - 함수 정의와 호출프로그래밍/Kotlin 2018. 1. 3. 08:21
코틀린은 자체 컬렉션 클래스를 정의하지 않지만 자바 클래스를 확장해서 더 풍부한 API를 제공한다. val set = hashSetOf(1, 7, 53) val list = arrayListOf(1,7,53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 1. 코틀린 함수 특징코틀린은 자체 컬렉션 클래스를 정의하지 않지만 자바 클래스를 확장해서 더 풍부한 API를 제공한다. val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") val strings = li..
-
Property View프로그래밍/Android 2017. 12. 20. 02:32
의도 : View가 애니메이션으로 이동한 후에도 이벤트가 정확한 위치로 동작했으면 했다. 단, Animation package의 애니메이션은 뷰의 물리적 위치를 이동시키진 않는다. (API Level 1)https://developer.android.com/guide/topics/graphics/view-animation.html Property Animation : View의 위치나 속성을 직접 변경한다. https://developer.android.com/reference/android/view/ViewPropertyAnimator.html ObjectAnimator와 ViewPropertyAnimator가 있다. 3.0 이상부터 추가되었다. ObjectAnimator : 뷰의 property 이름..
-
Introduction to Physics-based animations in Android프로그래밍/Android 2017. 9. 6. 01:47
Dynamic-animation은 Support Library 중의 하나이다.Dynamic-animation support Library는 Support Library 버전 25.3.0 이상부터 사용할 수 있다. build.gradle 파일에 아래와 같이 추가하면 된다. compile "com.android.support:support-dynamic-animation:25.3.0" 기존 애니매이션 특징기존 애니메이션은 start value, end value, duration, interpolator, velocity 값을 고정으로 사용한다.그래서 이동 중에 Target Value가 변화하면 속도(Velocity)가 0로 떨어져 매우 어색해보인다.Velocity가 0로 떨어지는 이유는 진행중인 애니메이션..
-
과연 Activity/Fragment가 Finished되면 View Model은 어떻게 될까?프로그래밍/Android 2017. 8. 29. 22:50
ViewModel은 MVVM 패턴에서 VM의 역할로 사용자의 눈에 보이는 데이터를 저장하고 관리하며 Activity/Fragment의 생명주기동안 데이터를 들고 있다. 그렇다면 과연 Activity/Fragment가 Finished되면 View Model은 어떻게 될까? ViewModel 라이프 사이클은 다음과 같다. Activity에 바인드 되어서 onDestroy시 같이 소멸되는 것이 원칙이다. rotation과 같이 ViewModel 객체가 다시 만들어져야할 경우는 비효율적인 경우이므로 ViewModel 객체가 재생성되지 않는다. Another problem is that, these UI controllers (activities, fragments, and so on) frequently nee..