전체 글 173

[Flutter] URI.https type 'int' is not a subtype of type 'Iterable<dynamic>' 에러 해결

문제 상황 URI.https 인스턴스의 속성을 정의할 때, 파라미터 value 값에 int 자료형이 들어가는 경우 발생할 수 있습니다. ▶ #0 예제 코드 int number = 3; final Uri uri = Uri.https(APU_AUTHORITY, API_PATH, { "number": number, "count": 1, }); 해결 방안 파라미터 내 모든 value 를 String 자료형으로 만들어 줍니다. ▶ #1 수정된 예제 코드 int number = 3; final Uri uri = Uri.https(APU_AUTHORITY, API_PATH, { "number": number.toString(), "count": "1", }); 원인 Uri.https의 원형은 아래와 같습니다. 팩토리..

[Flutter] bottomNavigationBar svg 커스텀 아이콘 selectedIconTheme 적용하기

개요 bottomNavigationBar 객체 속성 중 selectedIconTheme를 선언하여 선택된 아이콘에 대한 색상 등을 설정할 수 있습니다. 그러나 이는 플러터 Icon 객체에 한해서 적용됩니다. 만약 svg 파일을 아이콘으로 사용하고 있는 경우 적용되지 않습니다. svg 파일을 사용하여 커스텀 아이콘이 selectedIconTheme 설정에 적용되기 위한 방법을 안내합니다. svg 파일 변경 아래 사이트에서 svg파일을 업로드하여 아이콘 형식에 적합한 형태로 만들어 줍니다. FlutterIcon - Flutter custom icons generator This site will not work if cookies are completely disabled. {"assets_hash":"e6..

[SAP/ABAP] EVENT DATA_CHANGED 활용하여 ALV 체크박스(checkbox) 클릭 시 바로 반영하기

개요 cl_gui_alv_grid 에서 필드 카탈로그를 통해 설정한 체크박스는 체크 후 새로고침해야 인터널 테이블에 해당 체크 값('X')이 저장됩니다. (새로고침 없이 체크박스 체크만 할 경우 인터널 테이블에 반영되지 않음) 이는 매우 불편하므로 DATA_CHANGED 이벤트를 통해 체크 시 바로 인터널 테이블에 반영되도록 만들어 보겠습니다. 전제 아래 구현 예제는 다음과 같이 전제합니다. alv를 구현하기 위해 필요한 일반적인 코드가 구현되어 있다. (아래 구현 예제는 이러한 코드가 모두 구현된 후에 추가해야 하는 코드만 서술합니다) 변수 ZCHECKBOX는 구조체 안에 TYPE C LENGTH 1 데이터 타입으로 선언되어 있다. 필드 카탈로그 내 ZCHECKBOX의 EDIT에는 'X' 값이 저장되어..

[android/메모] 안드로이드 개발 시 필요한 참고 자료 모음

개인적으로 자주 열람하는 자료입니다. 소스 코드 공식 Google Issue Tracker issuetracker.google.com Kotlin 스타일 가이드 | Android Developers Kotlin 스타일 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 문서에서는 Kotlin 프로그래밍 언어의 소스 코드와 관련된 Google의 Android 코딩 표준을 developer.android.com Google Java Style Guide 1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Pr..

[android] intent ACTION_OPEN_DOCUMENT 사용 시 EXTRA_INITIAL_URI 활용하여 특정 디렉토리 열기

개요 안드로이드 버전마다 저장소 위치가 상이할 수 있습니다. 저는 안드로이드 13, S21 (SM-G991N)에서 구동하였습니다. 참고해 주세요. EXTRA_INITIAL_URI 을 활용하여 파일 관리자가 특정 디렉토리를 열도록 만들어 보겠습니다. 주의 사항 intent에 인코딩된 Uri을 전달해 주어야 합니다. Uri에서 path 단은 반드시 인코딩(예: / -> %2F)된 문자열로 구성되어 있어야 합니다. // BAD Uri uri = Uri.parse("content://com.android.externalstorage.documents/document/primary:Pictures/"); // GOOD Uri uri = Uri.parse("content://com.android.externalst..

[android] firebase com.google.android.gms.common.api.ApiException: 10: 에러 해결

개요 안드로이드에서 파이어베이스 기능 구현 시 발생할 수 있는 문제입니다. 다양한 상황에서 발생할 수 있으므로 다른 글들 또한 확인하세요. com.google.android.gms.common.api.ApiException: 10: 올바른 "웹" 클라이언트 ID 확인 안드로이드 프로젝트임에도 Oauth 웹 클라이언트 ID 를 사용해야 합니다. 저의 경우 android Oauth 클라이언트 ID를 사용하고 있었습니다. 해당 프로젝트의 자동 생성되는 웹앱 Oauth 클라이언트 ID를 사용해야 합니다.. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getSt..

[android] Could not find method kapt() for arguments 에러 해결 (Room 사용 시)

개요 Room은 안드로이드에서 SQLite를 손쉽게 사용하게 만드는 미들웨어입니다. Room을 가이드에 따라 진행 시 다음과 같은 에러를 접할 수 있습니다. Could not find method kapt() for arguments 해결 방법 kapt를 모두 annotationProcessor으로 바꾸어 주세요. 바꾸기 전 def room_version = "2.5.0" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" // To use Kotlin annotation processing tool (kapt) kapt "androidx...

[android] xmlns android, app 이해

개요 액티비티 구현 시 루트 레이아웃에 다음과 같이 선언되어있음을 확인할 수 있습니다. xmlns xmls는 xml 네임스페이스를 정의합니다. 한 xml에서 다른 외부 xml에 정의된 변수를 활용하기 위해 사용합니다. xml 네임스페이스는 두 개 이상의 xml을 구별하여 충돌을 방지하는 변수명입니다. xml 네임스페이스 정의 필요성 안드로이드에서 showAsAction 은 android와 app모두 정의되어 있을 수 있습니다. android:showAsAction app:showAsAction 이때, 어떠한 showAsAction을 사용할 것인지에 대해 명확한 정의가 필요합니다. 굳이 android 가 아니어도 상관없습니다. androidCutsomNamespace 이런식으로 정의해도 됩니다. 말 그대로..

[백준] 17485 진우의 달 여행 (Large) c++

개요 인터넷에 유사한 풀이가 없어 해당 문제의 솔루션을 공유합니다. 체크리스트 DP 문제 유형임을 알고 접근했는가? DP 3차원 자료구조로 풀이를 작성했는가? 접근 방법 DP[i][j][k] 는 i행, j열에 왔을 때, 마지막으로 k 방향(0, 1, 2)으로 움직여 도착한 모든 경우의 수 중 최소 비용입니다. 예를 들어 DP[i][j][0] 은 DP[i-1][j+1][1] 과 DP[i-1][j+1][2] 중 더 작은 값과 현재 위치의 비용을 더한 값이 됩니다. (i-1행 j+1열에서 왼쪽으로 이동하여 i행 j열로 도착했기 때문) 솔루션을 간단하게 작성하기 위해 벡터의 크기를 +2 하여 2e9 (int 자료형에 담을 수 있는 정수 중 최댓값 근사값) 을 저장했습니다. 솔루션 #include #include..