프로그래밍/Android, iOS27 [Android] Resize Bitmap 이미지가 들어왔을 때 원하는 width, height로 비율에 맞게 잘라준다. https://stackoverflow.com/questions/4837715/how-to-resize-a-bitmap-in-android 스택오버플로우에서 scale처리하는 함수 토대로 만들었다. private fun getResizedBitmap(bm: Bitmap, destWidth: Int, destHeight: Int): Bitmap? { val width = bm.width val height = bm.height if(width >= height) { // 세로 기준으로 비율을 잡아 확대하고 이미지 좌우를 자른다. val heightRatio = (destHeight / height.toFloat()) val ma.. 2022. 5. 11. [Android] Network status Manifest에 추가 Deprecated on Android 10(api 29) val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val activeNetwork: NetworkInfo? = cm.activeNetworkInfo val isConnected: Boolean = activeNetwork?.isConnectedOrConnecting == true Android 11이상을 타겟팅하고 있는 경우 var isNetworkActive = false private val networkCallBack = object : ConnectivityManager.NetworkCallback() { ove.. 2022. 5. 1. [Android] EditText 주로 쓰는 옵션 EditText의 옵션에 따라서 기본 키패드 옵션이 달라지게 된다. // 문자열 추가 android:text="@string/str_dot" // 텍스트 정렬 , 색상, 크기, style(bold, normal, italic), 입력 가능 문자 android:textAlignment="center" android:textColor="@color/black" android:textSize="50dp" android:textStyle="normal" android:maxLength="6" // 비밀번호 입력 타입(영어) android:inputType="textPassword" // 숫자 키패드 android:inputType="number" // 이메일 키패드(영어, @) android:.. 2022. 4. 1. [Google Play Store] 어플 키워드 관련 정리 플레이스토어 상위 노출이 되기 위해 필요한 요소들을 정리한다. 1. 앱 성능 성능이 좋은 경우에 더욱 상위에 배치가 된다고 한다. 2. 앱 소개 키워드를 콘솔에 앱 이름에 키워드를 담고 설명에 키워드를 적절하게 넣어라. 애플의 앱 스토어 같은 경우에는 키워드 등록이 있다고 하는데 플레이 스토어의 경우에는 그런 개념이 존재하지 않는다. 하지만 어플 이름에 AAA: BBB형태나 AAA-BBB 처럼 특정 키워드를 같이 사용할 수 있다. 앱 설명에도 특정 키워드를 넣어주는 것이 좋다고 한다. 3. 앱 이름 짓기 (기존에 출시된 어플과 비슷하게 하면 좋지 않음) 기존에 출시된 어플과 비슷하게 짓지말고 눈의 확 띄게 지으면 좋다고 한다. 4. 다운로드 및 평가 인기가 많고 평가가 좋은 어플이 상위에 배치가 된다. .. 2022. 3. 31. [Android] 2차 인증(2 factor authentication) 최근에 회사 내 어플에서 2차 인증 쪽 로직을 추가해서 관련 글을 적어보려고 한다. 일단 흐름은 로그인을 이용하여 우리 어플을 사용하는 유저들이 2차 인증을 통과한 이후에만 서비스를 이용할 수 있도록 하는 기능이다. 2차 인증의 방식에는 Email / OTP 인증이 있는데 google OTP를 주로 많이 사용하는 듯하다. 이메일 같은 경우에는 모바일 앱에서 이메일에 대한 요청을 보내고 인증 코드를 입력하면 유효성을 확인하는 통신 처리가 필요하다. 이거는 흔히 사용하는 방식이니까 굳이 더 자세한 설명은 필요 없을 것 같다. Google OTP의 경우에는 구글에서 따로 제공하는 어플이 있는데 우리가 키를 등록하면 30초를 주기로 6자리 인증 코드를 생성해 준다. 우리가 어플에서 인증을 받는 상황에.. 2022. 3. 30. [Android] Toolbar padding in Tablet stackover flow를 찾아보니까, Toolbar를 찾아와서 거기에 직접 자식을 넣고 inflate하는 방식, 속성 처리.. 여러 방법이 있는데 나의 경우에는 다른 문제였다. 찾아보면 이런 거 많이 한다. 나는 Material Design을 이용해서 AppBarLayout, MaterialToolbar를 이용하고 내부에 ConstraintLayout을 사용하여 구현했다. 이런 상황에서 Tablet기기부터 좌우에 뭔가 색상이 뭍어나오는데 Tablet보다 작은 크기의 기기들은 문제가 생기지 않았다. contentInsetStart, consentInsetEnd값을 주지 않으면 옆에 공간이 남는다. 추가적으로 paddingStart, paddingEnd에 값을 줘야 한다. 안드로이드 내.. 2022. 3. 30. [Android] EditText with ObjectAnimator android에서 View에 애니메이션을 주고 싶은 경우가 생긴다. 인터넷에서 ObjectAnimator를 이용하는 방식 View.animate()... ViewPropertyAnimator를 이용하는 방식이 있다. (사용) TranslationX, Y 값을 이용해서 이동을 시킬 수 있는데, Button이나 TextView에서는 크게 문제가 생기지 않는다. 이동한 자리에서 클릭을 해도 후처리가 자연스럽게 연결이 되는데 ... EditText를 사용한 View를 애니메이션 시킨 경우에는 텍스트를 가리는 문제가 생길 수 있다. 예를 들어서 EditText View를 Y축으로 100만큼 이동을 시키면 실제 보이는 영역은 100만큼 이동을 하는데 처리되는 영역(실제 영역)은 그대로 위치를 하게 된다... 2022. 3. 30. [Android] RecyclerView in ScrollView ScrollView 내부에 존재하는 RecyclerView를 사용하는 경우에 아이템이 모두 출력이 되지 않는 오류가 있다. ScrollView를 NestedScrollView로 교체하고 RecyclerView 속성으로 android:nestedScrollingEnabled="false"를 준다. (내부 스크롤링 처리) 아니면, RecyclerView크기 떄문은 아닌지 확인한다. https://stackoverflow.com/questions/47348955/recyclerview-is-not-showing-all-items-in-the-list 나의 경우에는 ScrollView내부에서 RecyclerView속성으로 NestedScrollingEnabled = false처리를 하는 상황에서 아이템이.. 2022. 3. 29. [Android] aar 파일 만드는 방법 회사에서 사용하는 프로젝트는 여러 개의 모듈로 같이 이루어져 있는 경우가 많습니다. 제가 다니는 회사는 이러한 모듈이 철저하게 SDK화 되어 있어 UI코드를 위한 Module과 내부 Core처리를 위한 SDK 모듈로 나뉘어져 있는데요. aar파일을 얻어내는 방법을 알아보겠습니다. 안드로이드 스튜디오의 우측 상단에 Gradle 버튼을 눌러 우측창을 키고 코끼리(Gradle) 버튼을 눌러줍니다. gradle assembleRelease를 입력합니다. 그러면 프로젝트의 모든 모듈에 대해서 aar파일로 만드는 작업을 거치는데 무시하고 위에 상단에 assembleRelease 버튼을 누르고 하단에 Edit Configuration을 누릅니다. 여러 모듈 중에 aar 파일로 만들고 싶은 모듈을 선택하여 OK 버튼을.. 2022. 3. 29. [Android] DrawerLayout with FrameLayout 삽질 이번에 작업한 요구사항이 세로 모드에서는 5가지 옵션을 출력하는 DrawerLayout을 보여주시고 가로 모드에서는 8가지 옵션을 출력하도록 해달라는 내용이었다. 내부적으로 width 값을 적용했는데도 뭔가 그림이 짤리거나 적용했던 drawable이 제대로 출력되지 않았다. 내가 놓쳤던 부분은 여러가지가 있었는데, 일단 로그를 찍지 않은 것. 로그를 찍으면 어떤 값이 변하고 어떤 것이 변하지 않는지 알아낼 수 있는데 아직 습관화가 되지 않았다. 두 번째로 보이는 현상에 대한 이해가 부족했다. 이미지가 짤린다라는 내용을 봤다면 -> 사이즈가 잘못 잡혀있다. -> 로그로 찍어본다 -> 로그를 보고 문제를 유추한다가 되어야 하는데, 이렇게 했는데 안 돼? 저렇게 했는데 안 돼? 이것만 계속 하고 있으니.. 2022. 3. 29. 이전 1 2 3 다음