최신 글
- 카테고리 없음 [Kotlin] Mockk 문서 확인해보기 안녕하세요 남갯입니다. 오늘은 mockk 문서를 확인해보고자 합니다. https://mockk.io/#constructor-mocks MockK Provides DSL to mock behavior. Built from zero to fit Kotlin language. Supports named parameters, object mocks, coroutines and extension function mocking mockk.io 그래들과 메이븐 세팅 방법 Annotation class CarTest { @MockK lateinit var car1: Car @RelaxedMockK lateinit var car2: Car @MockK(relaxUnitFun = true) lateinit var car3..
- kotlin언어 [flow] coroutine flow 문서 읽기 -2 안녕하세요 남갯입니다. https://developer.android.com/kotlin/flow/stateflow-and-sharedflow?hl=ko StateFlow 및 SharedFlow | Android 개발자 | Android Developers StateFlow 및 SharedFlow StateFlow와 SharedFlow는 흐름에서 최적으로 상태 업데이트를 내보내고 여러 소비자에게 값을 내보낼 수 있는 Flow API입니다. StateFlow StateFlow는 현재 상태와 새로운 상태 업데이트를 developer.android.com StateFlow StateFlow는 현재상태와 새로운 상태를 업데이트 수집하는 관찰 가능한 상태 홀더 flow입니다. 상태를 업데이트를 하기 위해서는 Mu..
- kotlin언어 [flow] coroutine flow 문서 읽기 -1 안녕하세요 남갯입니다. 오늘은 Coroutine flow 문서를 읽어볼 예정입니다. https://developer.android.com/kotlin/flow?hl=ko Flow란? flow는 기존 단일값만 반환하는 정지함수와는 달리 여러값을 순차적으로 보낼수 있는 유형입니다. 기존 Rx를 사용해보셨다면 비슷한 개념으로 이해할 수 있을것 같은데요. 코루틴기반으로 빌드되며, 여러값을 제공할 수 있는 데이터스트림의 개념입니다. Flow의 데이터 스트림 Flow의 데이터 스트림에는 3가지의 항목이 존재합니다. 1. 생산자 : 스트림에 추가되는 데이터를 생산합니다. 코루틴 덕분에 흐름을 비동기적으로 데이터가 생산 가능 2. 중개자(선택사항) : 스트림에 내보내는 값을 수정 가능 3. 소비자 : 스트림에서 받아온..
- 안드로이드 관련 [안드로이드] - Compose 문서 읽어보기 - 2 안녕하세요 남갯입니다 오늘은 컴포즈 2번째 문서 부분 정리입니다. 컴포지션의 생명주기 컴포지션은 초기 컴포지션을 통해서만 생성되고 리컴포지션을 통해서만 업데이트될 수 있습니다. 컴포지션을 수정하는 유일한 방법은 리컴포지션을 통하는 것입니다. 컴포저블이 여러 번 호출되면 컴포지션에 여러 인스턴스가 배치됩니다. 컴퍼지션의 각 호출에는 자체 수명 주기가 있습니다. @Composable fun MyComposable() { Column { Text("Hello") Text("World") } } 컴포지션 내 컴포저블 리컴포지션 시 컴포저블이 이전 컴포지션 시 호출한 것과 다른 컴포저블을 호출하는 경우 Compose는 호출되거나 호출되지 않은 컴포저블을 식별하며 두 컴포지션 모두에서 호출된 컴포저블의 경우 입력이..
- 안드로이드 관련 [안드로이드] - Compose 문서 읽어보기 -1 안녕하세요 남갯입니다 오늘은 Compose 문서 읽어보면서 내용을 정리 해보려고 합니다. https://developer.android.com/jetpack/compose/state?hl=ko 명령형 선언형의 차이 선언형 ViewB( color : red, child: viewC() ) 명령형 View = b = new View() b.setColor(Red) b.clearChildren() ViewC c3 = new ViewC() b.add(c3) 명령형에서 findViewById를 통해 트리를 탐색하고 뷰를 가져와서 setText() , addChild등과 같이 메서드를 호출해서 노드를 변경하게 되는데, 뷰를 수동으로 조작하게 되면 오류가 발생할 가능성이 커지고 여러 데이터를 표시하는경우 뷰를 업데이..
IT
- 안드로이드 관련 [안드로이드] 안드로이드 커스텀 달력 예제 (Android Custom CalendarView Example) 안녕하세요 YTS 입니다. 오늘은 제가 만든 Custom Calendar View에 대해 적어보려합니다. 기본적으로 Android 에서 제공하는 달력은 한계점이 많고 각 날짜에 꾸밈을 할 수없기 때문에 불편한점이 많습니다. 저의 방법은 RecyclerView를 이용하여 만든 방법입니다! 참고로 해당 방법을 이용하기위해선 RecyclerView와 RecyclerView.Adapter에 대한 사전지식이 조금 필요합니다. 1. RecyclerView에 ViewType 설정 2. StaggeredGridLayoutManager에 대한 Span 설정 ( 이 부분은 쉽습니다. ) 사전 지식을 아는 개발자라면 쉽게 따라 하실 수 있도록 가이드하겠습니다. 1. Xml에 RecyclerView를 선언한다. 저는 헤더, ..
- 안드로이드 관련 [안드로이드] 안드로이드 지문인식 변경점 안녕하세요 남갯입니다 블로그를 처음 글쓰면서 의미있는 글을 써보겠다 다짐하면서 지문인식이란 구글샘플의 fingerprintCompat으로 타겟을 변경하고 제공하는 앱을 선보였는데요? 오랜만에 앱을 개발하면서 다시 예전에 만든 소스를 검토하면서 이용하다보니 api 28에서는 fingerprint가 deprecated되고 biomatric으로 통합되었다는 정보를 알게되어 글을 쓰게 되었습니다. - fingerPrint의 변경점 Android 9 only includes fingerprint integration for BiometricPrompt. However, integrated support for other biometric modalities are forthcoming. In Android 9 a..
- 안드로이드 관련 [안드로이드] AlarmManager With Notification Example (알람매니저를 이용하여 푸쉬생성 예제) 안녕하세요 YTS 입니다. 오늘은 알람매니저(AlarmManager)를 이용하여 푸쉬(Notification)를 생성하는 예저를 다루어볼까합니다. 추가적으로 JobScheduler를 이용하여 백그라운드에서도 반응하도록 예제를 제작하였습니다. 우선적으로 사전지식이 필요한 JobScheduler는 안드로이드 API LEVEL 21부터 등장하였고, Android에서는 기존 무분별한 백그라운드 서비스를 제한하기위하여 JobScheduler로 대체를 하고있습니다. 저는 JobScheduler를 보다 쉽게 사용하기위해서 FireBase Jobdispatcher를 이용하였습니다. 보다 자세한 정보는 https://github.com/firebase/firebase-jobdispatcher-android 에서 확인할 ..
- Java언어 [안드로이드] 지문인식(fingerprint) 사용하기 (api<23도 가능) 안녕하세요 남갯입니다. 가입하고 처음 글을쓰게 되었는데요? 예전에 지문인식을 통한 어플리케이션을 개발했었는데, 구글에서 제공하는 지문인식 샘플을 이용하여 개발하였습니다. 구글에서 제공하는 지문인식 라이브러리 https://github.com/googlesamples/android-FingerprintDialog 저는 오늘 구글에서 샘플로 제공한 지문인식 라이브러리를 통한 개발방법을 소개해드리려 합니다. 먼져 위 사이트에 접속하여 위 빨간 버튼을 이용하여 다운하고 압축을 푼후 프로젝트를 열어보도록 하겠습니다. (file - open - gradle 모양의 프로젝트) 일단 열어서 실행을 실행을 해보면 맨 왼쪽의 화면이 나오게 됩니다. 구매(purchase)나 구매 무효화 (invaldated) 버튼을 클릭하..
- 안드로이드 관련 [안드로이드] 더보기 기능(TextView ReadMore) 안녕하세요. YTS 입니다. 오늘은 TextView의 더보기 기능에 대해 적어보려합니다. 더보기 기능은 페이스북, 인스타 등 기본적으로 SNS 에서 등장하는 기능인데요. 생각보다 마땅한 라이브러리가 없어 실제로 구현해봤습니다. public static void setReadMore(final TextView view, final String text, final int maxLine) { final Context context = view.getContext(); final String expanedText = " ... 더보기"; if (view.getTag() != null && view.getTag().equals(text)) { //Tag로 전값 의 text를 비교하여똑같으면 실행하지 않음. re..