전체 글239 [안드로이드] by viewModels, LiveData Observing 이 안되는 이유 ViewModel 초기화 하는 방법 우리는 데이터 보존을 위해 ViewModel 를 초기화하여 View(Fragmet, Activity) 에서 사용한다. ViewModel 를 초기화 하는 방법은 대표적으로 두 가지로 나눌 수 있다. 1. ViewModelProvider. private val viewModel: MyViewModel by lazy { ViewModelProvider(getViewModelOwner())[MyViewModel::class.java] } 2. by viewModels private val viewModel by viewModels() 겪은 이슈 as-is > to-be 로 코드 리팩토링할 때 as-is 에서 작업했던 ViewModel 초기화 방식과 to-be 방식이 위 두 가.. 2024. 2. 4. [안드로이드] 키보드 자판이 보이고 안 보이고 감지하는 콜백함수 (Keyboard show hide) 문제 정의 현재 회사 코드 정책 상, 싱글 액티비티를 유지해야 했고, Fragment 에 원하는 softInputMode 를 적용하고 싶었다. 그리고 AndroidManifest.xml 내에 windowSoftInputMode 가 세팅이 되어있지 않았다. 즉, default 모드 상태인 stateUnspectified 값이며 이 속성은 시스템에서 적절한 상태를 선택하거나 테마의 설정을 사용하게 한다. 그러다보니 Fragment UI 작업 시, 하단 버튼이 editText 에 focusing 이 될 때마다 올라오게 되며 원치않게 버튼이 뷰를 가리게 됐다. 매니페스트에 내가 원하는 속성을 적용하게 될 경우, 앱 내 여러 서비스들 중에 EditText 를 사용하는 부분에 영향이 가서 고민하게 됐다. 일단, A.. 2024. 1. 28. [안드로이드] 이전에 설치한 앱 이미지 파일이 재설치 후 왜 삭제가 안될까? (다른 앱 이미지 삭제 불가) *갤러리 폴더 삭제 아니 왜!!!!! 이전 빌드한 앱에서 외부저장소(공용저장소)에 이미지파일을 저장한 게, 삭제 후 재설치한 앱에서 모든 이미지 삭제로직에서 삭제가 안돼.... 왜 삭제가 안돼? 왜!!!!! 권한이 필요했다........ 다른 앱 이미지 업데이트 불가 모든 이미지가 삭제가 안되는 경우, // 이슈 상황 private fun removeImageFiles(context: Context) { val contentResolver: ContentResolver = context.contentResolver val externalStorageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) val folderPath .. 2023. 11. 15. [안드로이드] Fragment replace 이전 Fragment 버튼 리스너 동작 이슈 Fragment 간 이동 할 때 add, replace, remove, addToBackStack 등 다양한 방법으로 Fragment 를 다룰 수 있다. 내가 겪은 이슈는 A -> B 로 Fragment 를 이동할 시 replace 를 이용하면 기존 stack 에 쌓인 Fragment(A) 는 사라지고, replace 로 대체되는 Fragment(B) 만 남아 있어야 한다. 하지만, 그렇지 않았다. 그래서 Fragment(A) 에 있는 버튼 리스너 들이 Fragment(B) View 에서 눌리게 된다... 일단 나는 아래와 같이 코드를 작성해서, 범용적으로 Fragment 를 사용하려고 했다. replace, add, remove, popBackStack fun Activity?.moveFragment(.. 2023. 9. 25. [안드로이드] 이 앱은 이전 버전의 Android 를 위해 만들어진 것이기 때문에 현 기기에서 사용할 수 없습니다. (sdk 33 대응) 기간이 지나 Google store 에 앱이 보이지 않고, OS 13 대응하고 내부테스트로 앱을 말아도 "이 앱은 이전 버전의 Android를 위해 만들어진 것이기 때문에 현 기기에서 사용할 수 없습니다." 또는 "이 기기 버전과 호환되지 않습니다" 설치 버튼은 안보이고 왜? 저 두 문구가 보일까? 회사에서 이번에 Android OS 13 대응 건 때문에 서브 앱 하나를 버전 업데이트를 하게됐다. https://developer.android.com/google/play/requirements/target-sdk?hl=ko Google Play의 대상 API 수준 요구사항 충족하기 | Android Developers Google Play의 대상 API 수준 요구사항 충족하기 컬렉션을 사용해 정리하기 내.. 2023. 9. 18. [APP 결제 방법] MPM? CPM? PC to Mobile? MCT? NFC? 입사 후 페이북/ISP 앱을 개발하다가 App 결제 방법이 다양하다는 것을 알게됐다. 늦었지만, 어떤 결제방법이 있는지 알아보자. 요새는 XX페이(ex. 당근페이, 애플페이. 네이버페이, 삼성페이 등) 이러한 게 많이 나왔다. 알아두면 좋을 것 같다. 보통 국내에선 휴대폰 단말기로 결제를 할 때, MST(마그네틱 보안 전송 방식)과 IC 칩 방식의 단말기를 사용한다. MST 방식은 신용카드를 긁어서 결제하고, IC 칩은 카드를 꽂아서 사용하는 방법이다. 1. MPM (Merchant Presented Mode) 방식 (QR 방식) "가맹점 제시 방법" 이라고 불린다. 가맹점주의 QR 코드를 소비자가 휴대폰으로 읽어내는 방식이다. 즉, 매장에서 제공하는 QR 코드를 소비자가 스마트폰으로 찍은 후, 결제 금.. 2023. 9. 16. 이전 1 2 3 4 5 6 ··· 40 다음