분류 전체보기62 딥링크, 원링크, 앱링크 다 뭐야 딥링크, 원링크, 앱링크는 모두 웹 페이지 광고를 통해 앱을 설치했는지 확인하기 위한 용도이다. 마케팅 팀에서 돈을 주고 광고를 올렸는데, 실제로 그 광고 페이지를 통해 앱을 설치하고 서비스를 어떻게 이용을 했는지 확인이 필요하다. 1. 마케팅 비용 및 효과 확인 2. 광고를 통해서 들어온 사람을 대상으로 다시 마케팅 정책을 펼 수 있다. 정말 간단하게 구분하자면, Firebase, AppsFlyer 등 마케팅 툴(SDK)을 사용하는 것을 다이나믹링크, 원링크라고 하고, 툴을 사용하지 않는 것은 딥링크라고 총칭할 수 있다. 1. 딥링크 1. URL Scheme serviceName:// 형태로 생겼다. 앱이 깔려있을 때 특정 앱의 특정 페이지로 이동할 수 있다. 앱이 안깔려 있으면 무용지물이다. 너무 한.. 2021. 3. 17. 스레드간 데이터 통신 스레드간 통신을 알려면 먼저 스레드가 어떻게 구성되고 돌아가는지 알아야 한다. Thread 구성 요소 Thread: 프로세스 내의 세부 작업 단위 Handler :아래의 2가지 역할을 한다. (다재 다능한 놈) Message, Runnable Task 를 Message Queue로 전달 Message, Runnable Task 를 실행 Looper : Message Queue에서 Handler로 전달 Message Queue : Message, Runnable Task를 저장하는 Queue 생각보다 복잡하다. 안드로이드 개발에서 가장 많이 하는 실수중에 하나가 Thread를 만들고 그 안에서 UI 변경 작업을 실행하는 경우이다. 바로 에러가 터진다! Thread th = new Thread(new Run.. 2021. 2. 16. android fullscreen transparent status bar 위에처럼 FullScreen 이면서, StatusBar가 투명으로 나오는 뷰를 그리고자 한다. 구글링 결과, 아래 사항들만 적용하면 된다고 한다. 그리고 왠만하면 Java(Kotlin) 코드로 작성하는 것 보다 XML에서 작성하고 Style 적용이 코드 유지보수에 좋아서 시도를 해봤다. true @android:color/transparent true // 시스템바를 백그라운드에 그린다. true windowTranslucentStatus : StatusBar를 반투명하게 설정한다. statusBarColor : StatusBar 색상을 설정한다. (API 21 이상부터 적용 가능) windowDrawsSystemBarBackgrounds : StatusBar를 백그라운드 위에 그린다. windowFul.. 2021. 1. 22. RxJava를 활용한 백버튼 2번 클릭으로 앱 종료시키기 검색 키워드: #Clicking back button twice to exit an activity with RxJava 먼저 Throttle, Debounce에 대해서 알아보겠습니다. /** * RxBinding의 Throttle 기능 사용하는 Button 함수 * @param throttleSecond 해당 시간동안 중복 클릭 방지 (기본으로 1초) * @param subscribe 클릭 리스너 정의 */ fun Button.onThrottleClick(throttleSecond: Long = 1, subscribe: (() -> Unit)? = null) = clicks() .throttleFirst(throttleSecond, TimeUnit.SECONDS) .observeOn(io.reactiv.. 2020. 10. 14. map vs flatMap 볼 때 마다 헷갈리는 map과 flatMap을 파헤쳐 보겠다. // map 예제 val data = listOf("A", "B", "C") val newData = data.map { "$it*" } println("data: $newData") // flatMap 예제 val data2 = listOf("A", "B", "C") val newData2 = data.flatMap { listOf("$it*") } println("data2: $newData2") ---출력 결과--- data: [A*, B*, C*] data2: [A*, B*, C*] Collections 클래스에서 map과 flatMap 함수를 살펴보자 1. map 함수 /** * Returns a list containing the .. 2020. 9. 7. Reified란? (Type Eraser) inline 함수와 generic type에서 reified 를 사용하는 걸 종종 볼 수 있다. inline fun Fragment.viewModel(factory: ViewModelProvider.Factory, body: T.() -> Unit): T { val vm = ViewModelProviders.of(this, factory)[T::class.java] vm.body() return vm } 먼저 reified 의 단어의 뜻은 '구체화 된' 이다. (reify: 구체화 하다. 생각하다.) ex) reify a concept. (개념을 구체화하다.) (발음은 특이하게 '리어파이' 이다. 라이파이 아님 주의! ) 어원 그대로 일반 Generic Type과 다르게 더 구체화를 한다고 보면 된다. .. 2020. 9. 7. 이전 1 2 3 4 5 6 ··· 11 다음