전체 글 11

[Android] Branch.io SDK 연동 / 딥링크 사용법 / 커스텀 이벤트 트래킹하기

SDK 구성 build.gradle (app) 파일 내에 임포트해준다. dependencies { ... implementation 'io.branch.sdk.android:library:5.+' implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0+' implementation 'androidx.browser:browser:1.0.0' ... } Branch 대시보드 내 Configure 페이지에서 앱 상세 정보를 입력해준다. Android - I have on Android App 체크박스를 체크해주고 앱을 열 수 있는 스킴을 등록해준다. 예를 들면 testapp:// 이런 식으로. 앱이 스토어에 등록된 상태라면 스킴을 ..

Android 2024.01.16

[Kotlin] Coroutine 동시성 프로그래밍 개념 이해

💡 Coroutine Co (협력) + Routine. 다양한 테스크를 병렬적으로 진행하기 위한 프로그래밍 방식이다. 코루틴은 기존의 스레드와 콜백함수를 사용했을 때 증가하는 리소스와 코드의 복잡도를 보완한다. 스레드를 사용하면 코드를 관리하기 불편하다는 단점이 있지만, 코루틴을 사용하면 훨씬 더 간편하고 코드를 보기도 편리해진다는 것! 코루틴은 동시에 여러 코드를 실행시킬 수 있다. 이러한 역할은 스레드와 비슷하다. 하지만 사용법에는 꽤 큰 차이가 있다. 간단한 예제로 살펴보자 fun main() = runBlocking { launch { delay(1000L) println("World!") } println("Hello") } //Hello //World! delay()를 통해 지정된 코루틴을 일..

Kotlin 2023.11.07

[Android] Widget 에서 ListView 사용하여 데이터 노출하기

💡 위젯 구성 AppWidgetProvidernfo - 위젯의 메타데이터 설명 AppWidgetProvider - 프로그래밍을 통한 기본 메서드 정의 view (xml) - 초기 레이아웃 정의 💡 AppWidgetProvider AppWidgetProvider 클래스는 BroadcastReceiver 를 확장한 클래스로, 위젯과 관련된 이벤트 브로드캐스트를 수신한다. onUpdate(): 위젯을 업데이트하기 위해 호출. 이벤트 핸들러 등 필수 설정을 수행해야 한다. 리스트뷰가 포함된 위젯을 만들려면 onUpdate() 메서드 내에 setRemoteAdapter() 를 호출함으로써, 데이터를 불러와 리스트뷰에 바인딩시킬 수 있도록 구현한다. class NewAppWidget : AppWidgetProvid..

Android 2023.10.12

[Android] 딥링크 / URI Scheme 방식 사용하기

💡 딥링크 특정 주소를 클릭하면 앱 내 해당 화면으로 이동할 수 있는 링크를 딥링크라고 한다. 마치 특정 웹링크를 통해 웹페이지로 이동할 수 있는 것과 같은 기능이다. 이러한 딥링크는 사용자로 하여금 광고 링크를 눌렀을 때 바로 특정 화면으로 이동할 수 있게 하여 중간에 탈주를 막는 효과도 제공한다 URI Scheme 앱링크 유니버셜 링크 딥링크는 이와 같이 3가지 방식으로 구분된다. URI Scheme 앱에 Scheme 값을 등록하여 앱을 구분하는 방식이다. 스킴이란 앱마다 등록할 수 있는 값으로, 우리가 특정 스킴을 넣어 값을 호출하면 그에 해당하는 앱이 열리도록 하는 기능을 수행한다. 이때 path 값은 앱 내 특정 페이지를 가리킨다. Scheme://path 라는 값을 호출하면 Schme을 통해 ..

Android 2023.04.04

[Programmers Level1] 신고 결과 받기 (Kotlin)

Programmers Level1 : K번째 수 https://programmers.co.kr/learn/courses/30/lessons/92334 📌 문제설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시..

Algorithm 2022.04.26

[Android] Naver Map Api로 네이버 지도 사용하기

1. 세팅하기 gradle 파일에 네이버 지도 SDK 저장소 설정을 추가해준다. 나는 안드로이드 스튜디오 Arctic Fox 버전을 쓰고 있기 때문에 setting.gradle 파일에 해당 설정을 해주었다. allprojects { repositories { google() jcenter() maven { url 'https://naver.jfrog.io/artifactory/maven/' } } } 네이버 지도 SDK에 대한 의존성도 추가해준다. (build.gradle/app) dependencies { // 네이버 지도 SDK implementation 'com.naver.maps:map-sdk:3.14.0' } 네이버 클라우드 플랫폼에서 애플리케이션을 새로 생성하면 클라이언트 ID를 발급받게 되..

Android 2022.04.07

[Programmers Level1] K번째 수 (Java)

Programmers Level1 : K번째 수 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자..

Algorithm 2022.03.29

[GitHub / Git] Subtree 사용하여 하나의 Repository에 여러 프로젝트 올리기

공부 용도의 프로젝트들을 깃허브에 모두 올리다 보니 레파지토리가 너무 많아져서 하나로 합치기로 했다. 먼저 GitHub에서 자식 프로젝트를 담을 빈 레파지토리를 하나 만들었다. 1) Git Clone 이제 cmd창을 열고 git subtree를 사용해 줄것이다. 윈도우와 맥에서 둘 다 해봤는데 명령어는 비슷한 것 같았다. git clone //git clone http://github.com/.../Kotlin_android_studio.git 위와 같이 입력하면 해당 주소의 리파지토리를 클론해올 수 있다. 내가 만든 리파지토리는 현재 아무 커밋을 하지 않은 상태이기 때문에 'You appear to have colned an empty repository.' 라는 경고 문구가 뜬다. 하지만 경고 문구일..

Git 2022.03.29

[Kotlin] Object 키워드 / 싱글톤 패턴 (Singleton pattern)

💡 object expression 코틀린에서의 object는 최초 사용시, 호출하지 않아도 자동으로 인스턴스가 생성된다. 익명객체를 생성하여 인터페이스 객체를 쉽게 생성할 수 있다. 프로그램이 종료될 때까지 공통으로 사용될 메모리를 담기에 유용하다. Singleton Pattern 보통 클래스를 사용하기 위해서는 클래스라는 설계도를 이용하여 인스턴스를 생성해야만 해당 클래스의 속성과 메소드를 사용할 수 있는데, 클래스에 대한 인스턴스를 한 개만 사용해야 하는 코드에서 object의 싱글톤 패턴을 구현한다. 싱글톤으로 생성된 인스턴스는 처음 한 번만 생성되며, 프로그램 전체에서 공동으로 사용된다. 익명객체를 사용한 인터페이스 객체 생성 안드로이드 앱개발을 하다보면 주로 리스너를 사용할 때 object를 ..

Kotlin 2022.03.28

[Android Studio / Git] commit author 수정하기

나중에 잊어버릴까봐 또 헤매지 말라고 써두는 글. 열심히 코드를 작성해서 github에 push를 했는데, commit 작성자명 이름이 내 닉네임이 아닐 때가 있다. 뚜둔.... 이대로라면 내 깃헙 풀밭에 공백을 남기게 됨... 분명 안드로이드 스튜디오에서 내 깃허브 아이디로 로그인했는데 뭐가 문제일까. 우선 로컬 저장소를 다시 살펴볼 필요가 있다. 깃허브 사이트에 보여지는 커밋 작성자는 Git에 설정된 이메일을 통해 사용자를 찾는 방식으로 푸시가 된 결과이기 때문 Git에 접근하기 위해, 안드로이드 스튜디오 하단 Terminal을 열어준다. 이제 여기서 git 명령어들을 사용해 줄건데, 만약 이상한 오류 문구가 뜨며 명령어가 실행되지 않는다면 git 환경변수를 설정해 주면 된다. 시스템 환경변수 편집 ..

Git 2022.03.16