Programming/Android

    Fxxking Deprecated List

    Fxxking Deprecated List

    onActivityResult Deprecated -> Fragment에서 사용법 (참고 블로그) (참고 블로그)

    Button - ViewBinding

    Button - ViewBinding

    Fragment에서 ViewBinding을 활용한 상태에서 여러개의 버튼이나 TextView에 반복되는 값을 부여하는 경우가 있었다. 물론, viewbinding말고 다른 방법이나 더 현명한 방법이 있을 듯 하다. 현재까지 내가 찾고 도움을 받은 코드를 적어보겠다. 일단, 상황은 버튼을 클릭한 경우 같은 layout 안에 있는 다른 버튼들의 ui가 음영처리가 되게 하고 싶었다. viewbinding을 통해 버튼을 불러오고, 해당 색상을 kotlin 코드로 변경해주는 것은 알았지만, onclick이벤트가 발생했을 때 다른 버튼이 자동으로 음영처리되게 하는 직관적인 방법이 필요했다. 이전에는 일일히 if문을 통해 다른 버튼의 색상을 바꿔주는 함수를 만들어서 사용했었다. 이번에는 이러한 기능을 좀 더 짧고 간..

    Fragment에서 뒤로 가기 ?

    Fragment에서 뒤로 가기 ?

    Fragment 에서 뒤로가기를 누른것이 Activity에서의 방법과는 차이가 있었다. 일단, callback을 통해서 진행했어야 했는데, 좀 더 정확하게 알아볼 필요가 있어보이지만, 일단은 activity에서 컨트롤하는 것으로 생각하고 있다. 다음은 내가 찾아본 코드이다. /* 프래그먼트 뒤로가기 버튼 컨트롤 방안 : callback함수를 활용하는 것이다. 그러나, activity 에서 충분히 컨트롤이 가능한 것 같다.*/ private lateinit var backPressCallBack : OnBackPressedCallback // 상단에 선언해준다. override fun onAttach(context: Context) { // 화면이 이동은 안되지만, 값은 변동할 수 있다. super.onA..

    res/layout 나누기

    res/layout 나누기

    먼저 이 스택플로우의 글을 천천히 읽고 따라해보자. [바로보기] 영어라 귀찮다 되나 진짜 ? 싶으면 아래를 보자. 1. 스택의 글 처럼 먼저 과감하게 layout에 있는 모든 xml파일들을 복사해서 바탕화면에 둔다. 2. 그리고 과감히! layout폴더를 삭제. 3. 자이제 쫄지말고, res 우클릭 후 Directory를 눌러 새로 하나 만들어준다. layouts (자기가 원하는 형태로) 4. layouts(나의 예시) 디렉토리에서 다시 우클릭 후 내가 구분하고 싶은 폴더 명들을 만들어본다. layouts/home , layouts/login , layouts/setting 등등 원하는 폴더 구조를 다 만든다. 5. 이제 각 각 만든 디렉토리에서 또 layout 이라는 명칭으로 디렉토리를 추가해준다. (..

    Coroutines in Kotlin

    Coroutines in Kotlin

    Coroutines 코루틴 목적 : 비동기로 실행되는 코드를 간소화 병행 실행 설계 패턴 역사 : 코틀린 1.3버전에서 추가 됨. 기능: 경량화 : 실행 중인 스레드를 차단하지 않는다. (정지) 따라서 단일 스레드에서 많은 코루틴을 실행시킬 수 있다. 정지라는 기능은 많은 병렬작업을 지원하면서 차단보다 메모리를 절약한다. 메모리 손실 감소 : 구조화된 병행 실행을 사용하여 범위 내에서 작업을 실행할 수 있다. 취소기능 기본 지원 : 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달된다. Jetpack에 통합 ? VM 아키텍처 구성요소는 기본 스레드의 repo레이어를 호출하여 네트워크(retrofit)요청을 트리거한다. 이러한 아키텍처에서 코루틴을 사용하여 다양항 솔루션을 반복하여 기본 스레드를 차..

    Frag  with Animation

    Frag with Animation

    Fragment to Fragment with animation 프래그먼트에서 프래그먼트로 이동하는 순간의 애니메이션 효과를 적용해줄 수 있다. 이 방법은 매우 유용하고 앱에서 깔끔한 흐름 처리를 해주는 듯 하다. 요즘 앱에서는 이러한 효과를 심심치 않게 많이 확인 할 수 있다. 지금까지 내가 알게된 방법에 대해 기록해보겠다. 먼저 공식 문서를 확인해보자. [보러가기] 사용방법 val fragment = FragmentB() supportFragmentManager.commit { setCustomAnimations( R.anim.slide_in, R.anim.fade_out, R.anim.fade_in, R.anim.slide_out ) replace(R.id.fragment_container, fra..

    SHA-1, SHA-256 ?

    SHA-1, SHA-256 ?

    안드로이드 스튜디오에서 SHA-1, SHA-256 같은 정보를 요구하는 상황이 있다. 그러한 경우 현재 나의 SHA-1 과 SHA-256 의 정보를 주어야 한다. 하지만 찾는 방법이 매번 기억이 안나고 검색하기 귀찮아서 아예 기록을 해둔다. 간단하다. 1. Sidebar 에 Gradle이라는 탭이 보인다면, 그 안의 일은 아래의 블로그를 참고하고, 만약 이 방법이 불가능한 상황(?)이라면, 2. Teminal 창을 열어서 명령줄 한줄 이면 된다. (공식문서 보기) keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore 기본 비밀번호는 android 이다 참고 블로그 1

    Broadcast Intent

    Broadcast Intent

    Broadcast Intent 와이파이를 접속하거나, 전화를 수신하거나, sw를 설치되기도 하는 이벤트들이 반으한다. 이러한 시스템이 전송하는 브로드캐스트 인텐트를 시스템 브로드캐스트 인텐트라고 한다. 또 다른 형태로 커스텀 브로드캐스트 인텐트가 있다. 이것 또한 시스템 브로드캐스트 인텐트와 유사하다. 인텐트와 유사하게 작동되며, 차이점은 브로드캐스트 수신자로 등록한 다수의 컴포넌트가 동시에 받을 수 있다는 점이다. 즉 다른 앱의 상황이나 정보 공유가 인텐트는 한개씩 가능한 반면 브로드캐스트 인텐트는 동시에 여러 앱이 가능하다는 것이다. 브로드캐스트 인텐트 사용법 1. 브로드캐스트 인텐트를 생성하고 전송한다. context.sendBoradcast(Intent(MSG)) ... companion obje..