728x90
반응형

Android 공부 79

[Android] DI Framework (Dagger2, Koin, Hilt)

DI... DI ..DI..DI..DI 하다보면 Android 개발자라면 Dagger2, Koin, Hilt라는 것을 들어봤을 ( 봤을 ) 것이다. 그럼 뭘써야할까... ㅠㅠ 일딴 차이를 비교해보고 특성을 알아보려고 한다. 1. Dagger2 - java, Kotlin - Dagger2 적용을 위해 환경을 세팅해야하는 과정과 원활한 적용에 필요한 러닝커브가 크다. - 컴파일 시 애노테이션을 읽고 scope에 맞는 DI container와 주입할 class파일을 generate하여 의존성을 주입한다. - 컴파일 시간 증가 , 문제가 있을 경우 Compile 시점에서 에러 2. Koin Kotlin DSL(Domain Specific Language, 도메인 특화 언어)로 만들어졌다. - Kotlin - D..

[Android] DI ??

1. DI ( 그게 뭔데..왜 날 괴롭히는거야 ) - Dependency Injection ( 의존관계 주입 ) “A가 B를 의존한다.”는 표현은 => B의 기능이 추가 또는 변경되거나 형식이 바뀌면, 그 영향이 A에 미친다. 1) 의존관계??? 그건 뭔데 예시) 햄버거 가게 요리사는 햄버거 레시피에 의존한다. 햄버거 레시피가 변화하게 되었을 때, 변화된 레시피에 따라서 요리사는 햄버거 만드는 방법을 수정해야 한다. 레시피의 변화가 요리사의 행위에 영향을 미쳤기 때문에, “요리사는 레시피에 의존한다”고 말할 수 있다. 코드로 표현해보면 다음과 같다. class BurgerChef { private HamBurgerRecipe hamBurgerRecipe; public BurgerChef() { hamBu..

단위테스트? : (JUnit, Mock ) 01

1. 수동 테스트 vs 자동 테스트 수동 테스트의 장점 - 최종 사용자와 완전히 똑같은 동작을 확인할 수 있음. - 사용성, 쾌적함 등 정성적인 부분의 면에서 평가가 가능. 자동 테스트의 장점 - 반복실행 가능 - 테스트 실행 상황을 시각화 - 클래스와 메서드등 확인하기 어려운 단위동작을 확인 2. 프레임 웍 1) 단위 테스트 - JUnit - Mockito ( 목 라이프러리 ) 2) UI 테스트 - Espresso * 단위테스트를 공부할 수 있는 링크 https://www.javatpoint.com/junit-tutorial JUnit Tutorial | Testing Framework for java - javatpoint Junit tutorial for beginners and profession..

DATA_Binding : Fragment

프레그먼트에서 데이터 바인딩 하는 것을 연습 겸 기록 1. 설정 Module : Gradle 에 추가 buildFeatures { dataBinding true } plugins { ... id 'kotlin-kapt' } 2. 구현 프래그먼트 내부 설정 // 1. 바인딩 객체를 선언 lateinit var binding : FragmentLoginMainFragmentBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // 2. 바인딩 하기 binding = DataBindingUtil.inflate( inflater, R.layout...

Android Webview에서 Javascript에러로 인해 Child 뷰가 안나올 경우

Javascript WebView로 특정 URL의 컨텐츠를 보여주는데 화면이 나오지 않았다. 현상은 배경색까지 나타나고 DOM이 뿌려지지 않는 문제였다. Webview에서 Unexpected token의 에러를 뿜었기 때문에 쉽게 Javascript 관련 오류라는 것을 알 수 있었고 Javascript error를 무시할 수 있도록 하는 메서드를 실행하였다. Webview의 Setting에 setDomStorageEnabled(true)를 추가하기

어플리케이션 설계 원칙 ( SOLID / 클린 아키 텍쳐 )

SOLID 2000년대 초반 로버트C. 마틴이 객체 지향프로그래밍 및 설계에 대한 SOLID 라는 5가지 원칙을 소개함 1. 단일 책임 원칙 ( Single Responsibility Principle ) - 단일 책임은 어떤 클래스나 모듈 또는 메서드가 단 하나의 기능을 가져야 한다는 뜻. => 어떤 변경 사항이 발생하더라도 그 변경 사항에 대한 책임이 있는 부분만 수정하면 된다. ex ( 분석 + 서버전송 ) => (분석) ( 서버전송 ) 2. 개방 - 폐쇄 원칙 ( Open Closed Principle ) - 시스템의 구조를 올바르게 구성하여, 변경사항이 발생하더라도 다른코드나, 모듈에 영향이 없도록 해야한다. => 확장성을 높이고, 수정에는 폐쇄적이어야 한다. 3. 리스코프 치환 원칙 ( Lis..

Android OCR

OCR (Optical Character Recognition) ROI (Region of Interest) 이미지영역내 내가 관심있어하는 부분 참고 블로그 및 사이트 https://junyoung-jamong.github.io/computer/vision/2019/02/07/Android-Tesseract-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0.html Android에서 Tesseract 사용하기 for OCR Python에서 Tesseract 사용하기 for OCR에서는 Python 환경에서 Tesseract 사용 방법을 알아 봤다. 이번에는 모바일 환경에서 카메라를 이용해 이미지를 촬영하고, 해당 이미지에 대해 동시에 OCR을 수행하 junyoung-jamong.githu..

728x90
반응형