분류 전체보기 412

[Android] Di(Dependency Injection) Koin에 대해 알아보자

Di(Dependency Injection) Koin에 대해 알아보자 DI(Dependency Injection)이란? Dependency는 의존성이고 Injection은 주입이란 의미라 단순 번역은 의존성 주입입니다. 의존성이란 A라는 클래스가 내부에서 B라는 클래스를 참조하는 경우 A클래스->B클래스 의존성을 갖는다고 할수 있다. Ioc(Inversion of Control) 제어역전이란 말로 해석이 되며, 제어역전은 개발자가 직접 프로그램의 흐름을 제어하는 코드를 작성하지 않고 외부 프레임워크의 흐름 제어를 받도록 하는 개발 원칙으로 Ioc를 따라 소프트웨어를 개발하면 인스턴스의 생성이나 이벤트 처리등의 호출을 프레임워크가 알아서 해주게 됩니다. 간단히 말하면 모든 제어 권한을 자신이 아닌 다른 대..

안드로이드 2022.11.04

Android KeyStore

http://blog.naver.com/PostView.nhn?blogId=aepkoreanet&logNo=221429089807&categoryNo=0&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView Android KeyStore 와 Android Keystore KeyStore 와 Keystore 는 한글로 읽으면 둘 다 키스토어 이기 때문에, 동일한 단어로 들리지만, 실제로 ... blog.naver.com KeyStore 와 Keystore는 한글로 읽으면 둘 다 키스토어 이기 때문에, 동일한 단어로 들리지만, 실제로 다른 의미를 가지고 있기 때문에 이에대한 정리를 하였습니다. 앱(App) 개발자를 위한 key..

안드로이드 2022.11.04

[Android] Gradle KeyStore 셋팅

Android Gradle KeyStore 셋팅 프로젝트 폴더 밑에 keystore 폴더 생성 후 키스토어 파일 넣어준다. 그래들 셋팅 signingConfigs{ release{ storeFile file("../keystore/debug.keystore") keyAlias 'androiddebugkey' keyPassword 'android' storePassword 'android' } debug{ storeFile file("../keystore/debug.keystore") keyAlias 'androiddebugkey' keyPassword 'android' storePassword 'android' } } debug{ minifyEnabled true proguardFiles getDefau..

안드로이드 2022.11.04

[Android] Fragment 객체 생성 이유

Fragment new Instance public static HogeFragment newInstance(){ HogeFragment fragment = new HogeFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } 프래그먼트 생성시 newInstance()로 객체를 생성하는 이유 안드로이드는 메모리가 부족하게 되면 액티비티를 파기하여 메모리를 확보합니다. 액티비티 뿐만 아니고 메모리가 부족하면 프래그먼트도 파기되며 필요시, 재생성되게 됩니다. //문제 AFragment f = new AFragment(num); 위와같은 생성자를 만든다면 비어있는 생성자를 만들어주지 않으면 에러가 발생하게 됩..

안드로이드 2022.11.04

[Android] Fragment replace add 차이

안드로이드 Fragment replace vs add replace() 동일한 containerViewId로 추가 했던 모든 프래그먼트에 대해서 remove(Fragment)를 호출하고 새로운 프래그먼트를 추가하는 것이다. add() 동일한 containerViewId로 추가 했던 프래그먼트를 remove하는 것이 아니라 그 위에 프래그먼트를 추가하게 된다. 예) addToBackStack()이 사용되지 않은 add() Activity add Fragment A add Fragment B add Fragment C remove Fragment C [Back button] Activity - onDestroy() Fragment A : onDestroy() Fragment B : onDestroy() 백버..

안드로이드 2022.11.04

Firebase 설정, firebase콘솔에 앱등록

Firebase 설정 firebase콘솔에 앱등록 -google-services.json 다운받아서 앱에 넣기 매니페스트 token 가져오기 FirebaseInstanceId.getInstance().instanceId .addOnCompleteListener(OnCompleteListener { task -> if(!task.isSuccessful){ Log.w(tag, "getInstanceId failed", task.exception) return@OnCompleteListener } // Get new Instance ID token val token = task.result?.token //Log and toast LogUtil.d(tag, "fcm token : $token") AppAppl..

안드로이드 2022.11.04

[Android] EventBus, RxEventBus 사용법

Event Bus -Fragment1과 Fragment2가 메시지를 주고받는 예제. 1. Gradle추가 compile 'com.squareup:otto:1.3.7' 2.전역에서 같은 객체를 가지고 오기위한 싱글톤인 Global Bus 생성 public class GlobalBus{ private static Bus sBus; public static Bus getBus(){ if(sBus == null) sBus = new Bus(); return sBus; } } 3.이벤트 버스에서 실행 시킬 메서드가 있는 Events 생성 public class Events{ public static class Event1{ private String message; public Event1(String messa..

안드로이드 2022.10.27

[Android] webview onReceivedSslError

webview onReceivedSslError 해당 이슈는 웹뷰를 구현할때에 필히 사용되는 WebViewClient 클래스의 onReceivedSslError 의 처리가 안전하지 않다는 경고가 뜨는 사례입니다. 기존: SSL 오류가 발생해도 무조건 수행 변경: 안전하지 않지만 유저가 진입할지 말지를 결정할 수 있게 함. 유효하지 않은 사이트에 진입할것인지 물어보는 글이 들어가 있으면 된다고합니다. 해결법 1."신뢰하는 보안 인증서가 아닙니다. 계속하시겠습니까?"같은 팝업창을 띄워준 후 사용자가 확인 or 취소로 선택을 하게 해주어야 한다고 되어있습니다. 2.또 다른 해결책은 해당 메소드를 오버라이딩 하지 않거나 handler.cancel(); 로 처리하는 등 proceed() 코드를 없애면 됩니다.

android 10 파일 권한시 open failed: EACCES (Permission denied)

android 10 파일 권한시 open failed: EACCES (Permission denied) 파일 접근 권한에 대한 범위를 세부적으로 관리하고 앱 삭제와 별게로 무분별(?)한 파일 생성을 막기 위한 목적 참조 : https://fusionism.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9Candroid-10-open-failed-EACCES-Permission-denied 안드로이드(android 10) open failed: EACCES (Permission denied) AndroidManifest.xml 파일에 아래 권한을 추가해 주었지만...지속적으로 permission denied 오류가 발생 하였다. java.io...