본문 바로가기

IT

[안드로이드] api와 implementation 차이 https://jongmin92.github.io/2019/05/09/Gradle/gradle-api-vs-implementation/ api와 implementation 정리 api: 의존 라이브러리 수정시 해당 모듈을 의존하고 있는 모듈들 또한 재빌드A(api)
[안드로이드] ValueAnimator를 이용한 애니메이션 사용해보기 안녕하세요 남갯입니다. 오늘은 ValueAnimator와 ViewPager 를 이용한 회원가입 Step 만들기를 포스팅 해보려고합니다. 일단 회원가입 화면을 만듭니다. 여기서 중요한건 자신의 Step에 맞게 weighSum의 값을 조절해야합니다. 저는 3스텝으로 했으니 0.3으로 지정했습니다. class MainViewPagerAdapter( fm: androidx.fragment.app.FragmentManager, private val fragmentList: ArrayList ) : androidx.fragment.app.FragmentStatePagerAdapter( fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT ) { override fun getItem(positi..
[스레드] 교착상태(DeadLock)란? 안녕하세요 남갯입니다. 오늘은 스레드의 교착상태에 대해 알아보려고 합니다. 교착상태란? 교착상태 deadlock은 두개이상의 작업이 서로의 작업이 종료가 되지 않아 서로의 작업을 무한정 기다리는 상태를 말한다. 교착상태의 발생조건발생조건으로는 4가지 이유가 있다. 1. 상호배제(Mutual exclusion)프로그램들이 공유자원을 동시에 쓸 수 없는 상황을 일컫는다. 상호배제를 해제하는것은 가장 확실한 교착상태 제거방법이지만 용도가 명확하지 않아지므로 잘 사용하지 않음. 2. 점유상태로 대기 (hold and wait)자원을 점유한상태에서 다른자원을 기다린다는것 할당받은 자원을 사용하지 않으면서 계속 점유하면 그 자원이 필요한 프로세스는 무한정 대기한다. 3. 선점불가(No preemption)어떤 프로..
[안드로이드] getContext와 requireContext 차이 안녕하세요 남갯입니다 오늘은 getContext와 requireContext의 차이에 대해 포스팅 해보려고 합니다. 참고링크 : https://medium.com/@shafran/fragment-getcontext-vs-requirecontext-ffc9157d6bbe getContext & requireContext 의 차이 @Nullable public Context getContext() { return mHost == null ? null : mHost.getContext(); } @NonNull public final Context requireContext() { Context context = getContext(); if (context == null) { throw new IllegalS..
[코틀린] 코틀린 제너릭 안녕하세요 남갯입니다. 오늘은 저번에 정리한 변성에 대해 이해가 부족한것 같아 코틀린 인 액션의 제너릭에 대해서 정리해보고 블로깅을 해보려고합니다, 제너릭스 타입 소거로 인해 실행시점에서 제너릭의 클래스의 인스턴스의 타입인자 정보가 들어가 있지 않다.JAVA의 JVM 제너릭스는 타입소거를 이용해서 구현된다. 이는 실행시점에 제너릭 클래스의 인스턴스의 타입 인자 정보가 들어있지 않다.컴파일러는 List와 List을 서로 다른타입이라 인식하지만 실행시점에서의 둘은 완전히 같은 타입의 객체이다.따라서 문자열로 이루어진 List이 어떤 타입을 가진 리스트인지 실행시점에는 검사할 수 없음. 따라서 if(value is List)을 실행시점에는 알 수 없음. List인지의 여부는 확실하게 알수있지만 타입을 알 수없..
[코틀린] kapt 안녕하세요 남갯입니다. https://pluu.github.io/blog/kotlin/2017/07/23/kotlin-generatestubs/ kapt란? kapt Annotation Processing for kotlin 는 코틀린이 자바파일의 Annotation 처리시 Kotlin 파일의 Annotation 처리를 포함합니다.1. javac 보다 먼저 kotlinc가 동작합니다.2. kotlin 바이너리 파일은 javac 컴파일 대상이 됩니다.3.그러나 javac는 Annotation이 부여된 Kotlin 파일까지 자동으로 포함시키는 기구는 없습니다. 데이터 바인딩을 이용할때 BindingAdapter라는 annotation을 작성하게 되는데 kotlin의 annotation을 동작시키기 위해서는 ..
Enum을 통한 개선경험 안녕하세요 남갯입니다 오늘은 Enum을 통해 소스를 개선한 경험을 작성해보려고 합니다. http://woowabros.github.io/tools/2017/07/10/java-enum-uses.html 우아한 형제들의 Enum 활용기를 읽으며 참고를 했습니다. 이번에 온 회사에서 기존코드를 리뉴얼하여 서비스를 제공하는 앱을 개발하라는 임무를 맡았습니다. 많은 변경점 중 결제 타입을 설정하는 코드를 변경한 내용을 공유 해보려고합니다. 기존의 코드의 경우 StringArray를 xml을 통해 스피너를 생산하고 그 스피너의 입력값을 가져와서 해당하는 값의 코드를 가져와서 서버로 전송하는 화면이었습니다. 이전코드 1 int position = 0; switch (payment_type) { case "1": p..
[안드로이드] 안드로이드 리소스 네이밍 컨벤션 안드로이드 네이밍 리소스 컨벤션 https://jeroenmols.com/blog/2016/03/07/resourcenaming/