분류 전체보기

Android/Development Tips

Proguard 로 난독화 된 코드 복호화

앱 개발을 하다보면, Proguard 를 적용하게 되고 이로인해, 간혹 crashlytics 혹은 google console 에 난독화가 적용된 코드가 전달 되는 경우가 있습니다.(AAB를 적용하게되면, Mapping 파일을 따로 추가하지 않아도 되지만, 난독화된 코드들이 Crashlytics 에 기록되는 경우가 있었습니다.) 따라서 해당 코드라인을 수정하려면 de-obfucated 가 필수 입니다! 매번 잊어버려서 이후에 참고할 수 있게 블로그에 정리해둡니다. 1. $ANDROID_SDK_DIRECTORY/tools/proguard/bin/proguardgui.sh 실행 ANDROID_SDK_DIRECTORY 는 안드로이드 스튜디오를 켜고, local.properties 의 sdk.dir 를 참고하시면..

Android/번역

LiveData, Coroutine, Flow 를 이용한 반응형 UI - Part 1

https://medium.com/androiddevelopers/livedata-with-coroutines-and-flow-part-i-reactive-uis-b20f676d25d7 LiveData with Coroutines and Flow — Part I: Reactive UIs This article is a summary of the talk I gave with Yigit Boyar at the Android Dev Summit 2019. medium.com 해당 글은 아래 링크의 번역본 입니다. 따라서 의역 오역이 있을 수도 있습니다. Part 1: 반응형 UIs 안드로이드 초기부터, 엣지 케이스가 가득한 안드로이드 생명주기 을 이해하는 것은 매우 어렵다는 것을 잘 알고 있습니다. 그래서 ..

Android/Development Tips

Bitmap, contentUri 를 Retrofit RequestBody 에 담을 때 Tips

보통 Retrofit 를 통해 RequestBody 를 만들어 서버로 보낼 때, Bitmap -> file 저장 -> file 을 RequestBody 로 변경하여 서버로 보내는 예제들이 간혹 보입니다. contentUri 도 마찬가지로 file 로 저장하고 RequestBody 로 변경하여 서버로 보내곤합니다. 그리고 코드도 올바르게 동작합니다. 하지만 해당 과정에는 파일로 저장할 필요가 없는 케이스도 있습니다. 해당 케이스의 경우 아마 위의 방식을 사용하면 이후에 파일을 삭제하는 로직 혹은 버전이 올라가면 해당 파일을 포함한 폴더를 비워주는 작업들이 필요하게 됩니다. 이런 경우 불필요한 파일 IO 작업을 생략할 수 있는 방법들이 있습니다. 1. Bitmap 의 경우 class BitmapRequest..

Android/Development Tips

Hilt 수박 겉핥기

www.youtube.com/watch?v=gkUCs6YWzEY 앞으로 Hilt 를 사용할 것 같은 느낌이 강하게 들어, 드로이드 나이츠 2020 옥수환님이 발표하신 영상 보면서 정리해봤습니다 Dependency Injection(의존성 주입) 이란 ? - 생성자 또는 메세드 등을 통해 외부로부터 생성된 객체를 전달받는 행위 의존성 주입의 특징? - 클래시간 결합도를 느슨하게 만든다 - 인터페이스 기반으로 설계되며, 코드를 유연하게 변경 가능하도록 한다 - Stub 또는 Mock 객체를 사용하여 단위 테스트를 하기가 더욱 쉬워진다 간단한 예제코드 // 의존성 주입이 없는 코드 class MemoRepository { private val db = SQLiteDatabase() fun load(id: St..

Android/번역

코루틴을 뷰에 적용하기

해당 글은 아래 글의 번역본으로 오역이 있을 수 있다는 점 미리 공유드립니다. medium.com/androiddevelopers/suspending-over-views-19de9ebd7020 Suspending over Views How coroutines can make UI programming easier medium.com 코틀린의 코루틴은 비동기적인 문제들을 마치 동기적으로 처리할수 있도록 도와줍니다. 해당 방식으로 사용되는 것은 매우 좋습니다. 그러나 코루틴을 사용하는 대부분은 동시성의 작업들 혹은 I/O 작업에만 집중하여 처리되는 것 처럼 보입니다. 코루틴은 여러 스레드(멀티 스레드)를 오가며 문제를 해결할 수 있도록 모델링 되어 있습니다. 그러나 하나의 스레드에서도 비동기 문제를 해결할 ..

Android/번역

코루틴 플로우(Flow) 읽어보기

해당 글은 아래 글의 번역본 입니다. 오역이 있을 수 있으니, 코멘트 남겨주시면 감사합니다. kotlinlang.org/docs/flow.html#sequences Asynchronous Flow - Help | Kotlin kotlinlang.org Flows ? 순차적으로 값을 배출해서, 정상적으로 완료하거나 에러를 던지는 비동기 데이터 스트림 입니다. 일시중단할 수 있는 함수는(Suspending function) 비동기적으로 하나의 값을 반환합니다. 하지만 비동기적으로 계산되어진 값을 여러개를 어떻게 반환해야할까? 이때 Flow 를 사용해아합니다. 여러값 표현하기 - List 다양한 값들은 코틀린의 Collections 을 사용하여 표현될 수 있습니다. 예를 들어 우리는 3개의 숫자를 반환하는 리..

Android/번역

코틀린으로 알아보는 SOLID 원칙

해당글은 blog.berkberber.com/solid-principles-in-kotlin-4f37e9b62dde SOLID Principles in Kotlin In object-oriented computer programming, SOLID is design principles intended to make software more understandable, flexible and… blog.berkberber.com 의 번역본 입니다. (글쓴이가 화웨이에 다니고 있어서 그런지 화웨이 예제가 상당히 많네요) SOLID ? 객체 지향 프로그래밍에서 SOLID 원칙은 좀더 "이해가능한", "유연한", "유지보수 가능한" 소프트웨어를 만들기 위해 의도 되어진 디자인 원칙이다. SOLID 원칙은 기능 ..

Daily & Thinking

2021 Todolist

0. 영어 공부하기 - 영어로 된 문서를 볼 일이 많고, 회사에서도 간혹 영어로 커뮤니케이션이 필요한 일이 있다. 영어 문서는 번역기를 돌리기도 하고, 어쩌어찌 코드를 보며 이해할 수 있지만, 영어 스피킹은 너무나도 부족하다. 학원을 다녀서 보완할 수 있도록 하자! 1. 멘토 만들기 - 소프트웨어 스킬 뿐만 아니라 커리어등 좀더 개인에 초점을 맞춘 질문을 할 수 있는 멘토 구하기(지금껏 개발을 하며, 닮고 싶다 느끼는 시니어 개발자가 몇 있었다) - 회사에서 시니어 개발자분들과 소통이 있고, 다양한 이야기를 하는 편이지만 아직 목마름이 있다, 2. 시니어 개발자 혹은 미드 레벨의 개발자가 되기 위한 기초 만들기 - 현재 주관적인 저의 역량은 주니어 개발자, 그리고 주니어 개발자 풀에서 잘하는 편은 아니라..

Android/Today I Learned

테스트 케이스로 작성해보는 RxJava 함수

이제는 코루틴으로 인해, 사용빈도가 적어지는 자주 사용했던 Rx 함수들을 정리하는 시간을 가지려고합니다. 그리고 안녕... 제대로 동작하는 것을 확인하기 위해, 테스크 케이스로 작성하고 딱 20개만 해보려고합니다. 먼저 전체 코드를 링크 걸어두겠습니다 Single, Completable, Observable, Flowable, Maybe 의 목적과 특성은 이미 알고 있을 것이라고 가정하고, 위의 자료형과 상관없이 생각나는 함수 위주로 작성해보겠습니다. 1. Just 함수 /** * Single.just, SingleJust : Single 로 Wrapping 된 아이템을 한번 방출한다. * 특정 아이템을 Single 타입으로 변경하여 체이닝을 이어갈 때 사용하면 유용하겠다. * ex) flatMap 으로..

Nanamare
'분류 전체보기' 카테고리의 글 목록 (9 Page)