전체 글
-
[안드로이드] 의존성 주입(Dependency Injection) Dagger2, Hilt, Koin 장단점개발/Android 2022. 10. 26. 15:50
의존성 주입 이란? 간단히 말하여 외부에서 생성자를 통하여 객체를 전달받는 상황을 말한다. 예로들면 //ApiService 라는 객체를 주입 받음 class RemoteDataSourceImpl (val apiService: ApiService) : RemoteDataSource { } 사용 이유? 의존성 주입을 받으면 클래스간 결합도가 약해진다. 결합도가 약해지면 한 클래스가 변경이 되어도 다른 클래스에 영향을 끼칠 경우가 적어진다. 결합도가 약해짐에 따라 유지보수에 용이 하고 리펙토링에 이점이 있음 클래스별 테스트에 용이 인터페이스 기반으로 확장에 용이 보일러 플레이트 코드 감소 등등등... Dagger2, Hilt, Koin 대표적인 DI 프레임워크로서 각각의 장단점을 정리 Dagger2 장점! 컴..
-
[안드로이드] Kotlin 확장 함수(Extension functions), 확장 프로퍼티개발/Android 2022. 10. 14. 15:19
Extension functions 확장 함수와 프로퍼티를 사용하면 외부 라이브러리에 정의된 클래스를 포함해 모든 클래스의 API를 그 클래스의 소스코드를 바꿀 필요 없이 확장할 수 있다. 확장 함수를 사용해도 실행 시점에 부가비용이 들지 않는다. 확장 함수와 확장 프로퍼티는 어떤 클래스의 멤버 메소드와 변수인 것처럼 호출할 수 있지만 그 클래스의 밖에서 선언된 함수와 변수이다. 확장 함수를 만들려면 추가하려는 함수 이름 앞에 그 함수가 확장할 클래스의 이름을 덧붙이면 된다. 클래스 이름을 수신 객체 타입(receiver type)이라 부르며, 확장 함수가 호출되는 대상이 되는 값(객체)을 수신 객체(receiver object)라 부른다. 예를 들어 String 확장함수 fun String.jsonTo..
-
[안드로이드] Bottom Sheet Dialog Fragment 생성시 fullScreen 적용개발/Android 2021. 12. 17. 13:33
Bottom Sheet Dialog 를 Show 했을때 dialog의 height 가 특정 값 이상이 되면 Dialog가 아래로 내려간 상태로 생성됩니다. 생성시 전체 height에 맞게 다 보이도록 생성되는 방법입니다. override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = BottomSheetDialog(requireContext(), theme).apply { behavior.state = BottomSheetBehavior.STATE_EXPANDED behavior.isDraggable = false } return dialog } onCreateDialog를 override하여 위와 같이 적용
-
안드로이드10 open failed: EACCES (Permission denied) 해결개발/Android 2020. 11. 4. 18:15
권한 설정을 해주었음에도 퍼미션 에러 open failed: EACCES (Permission denied) 가 발생한다. API29에서 Environment.getExternalStorageDirectory() 함수가 deprecated 되어 Manifest에 android:requestLegacyExternalStorage="true"추가된다. android:requestLegacyExternalStorage="true"
-
[안드로이드] 간단한 이메일 유효성 검사 / 이메일 패턴개발/Android 2020. 9. 18. 17:20
android.util 에서 제공하는 기본 패턴을 이용하면 정규식을 쓰지 않고 간단히 검사 할 수있습니다 String email = "hydok@naver.com"; Pattern pattern = android.util.Patterns.EMAIL_ADDRESS; if(pattern.matcher(email).matches()){ //이메일 맞음! } else { //이메일 아님! } 제공 패턴 Patterns.EMAIL_ADDRESS Patterns.PHONE Patterns.WEB_URL Patterns.IP_ADDRESS
-
[Swift] Xcode 단축키개발/Swift 2020. 1. 13. 15:43
키 아이콘 ⌘ = Command ⇧ = Shift ⌥ = Option/Alt ⌃ = Control ⇠ ⇢ = Left/Right Arrow Keys ⇡ ⇣ = Up/Down Arrow Keys 우측창(navigator area) : ⌘ + 1~7 좌측창(utility area) : ⌘ + + ⌥ + 1~6 1. 편집 시 자주 사용하는 단축키 ⌘ + /: 한 줄 주석 달기/풀기 ⌘ + ⇠ : 선택 줄 맨 처음으로 이동 ⌘ + ⇢ : 선택 줄 맨 끝으로 이동 ⌥ + ⇠ : 선택 줄 한 단락씩 앞으로 이동 ⌥ + ⇢ : 선택 줄 한 단락씩 뒤로 이동 ⌥ + ⌘ + ⇠ : 커서가 위치한 편집영역 숨기기 ⌥ + ⌘ + ⇢ : 커서가 위치한 편집영역 보이기 ⌃ + ⌘ + ⇠ : 이전 편집 위치로 이동 ⌃ + ⌘ +..