본문 바로가기
반응형

개발/Android31

[Android] Intent로 데이터 전달 시 용량 제한 어느 날, 오후 급하게 회사 메신저로 CS 측에서 문의가 왔습니다. 앱에서 특정 매장의 메뉴를 선택하는 과정에서 앱이 뻗어버린다는 것이었습니다. 처음에 디버그도 찍어보고 관리자 페이지의 데이터를 대조하면서 확인해도 뚜렷한 오류 로그가 나오지 않아서 굉장히 난감했습니다. 헤매다가 결국 찾았는데 바로 인텐트에 담아서 보내는 데이터의 사이즈가 문제였습니다. 찾아보니 인텐트에 데이터를 담을 때, 대략 500KB 정도가 넘어가면 앱이 Crash가 날 수 있다고 합니다. 확인해보니 상품들의 옵션들이 계속 추가되면서 넘길 수 있는 데이터의 한계를 넘어선 듯했습니다. 해결 방법을 찾아보니 Intent를 사용할 때 기본적인 정보만을 담고 더 많은 데이터를 Intent에 담아야 한다면 다음과 같은 방법을 고려해보라고 했습.. 2021. 9. 16.
[Android] (번역) Comparing Kotlin Coroutines with Callbacks and RxJava 이 글은 https://www.lukaslechner.com/comparing-kotlin-coroutines-with-callbacks-and-rxjava/ 를 번역한 것입니다. (잘못된 부분이나 내용 개선에 관해서 피드백 환영합니다.) Intro 나는 현재 Kotlin Coroutines에 많은 시간을 투자하고 있습니다. 그래서 Android에서 Coroutine을 사용하는 가장 일반적인 사례에 대해 조사하고 오픈소스 예제 프로젝트를 구현했습니다. 현재 16개의 일반적인 Coroutine 사용 사례가 포함되어 있습니다. 이 프로젝트의 샘플이 많은 개발자에게 도움이 될 수 있다고 생각합니다. Coroutine의 실제 이점을 더 잘 이해하기 위해 비동기 프로그래밍에 대한 다른 접근 방식으로 Callbac.. 2021. 8. 20.
[Android] 스마트폰 내장 DB를 사용하기 위한 Room 2탄 🔶 Repository와 MVVM에서 사용 이제 우리가 만든 Room DB를 실제적으로 사용할 수 있게 Repository를 만들어 봅시다. 이때 주의할 점은 Room DB가 메인 스레드에서 접근하려면 하면 에러가 납니다. 그래서 별도의 스레드를 사용해야 합니다. 그래서 비동기 처리를 위해 코루틴을 적용했습니다. class UserRepository(application: Application) { private val userDatabase = UserDatabase.getInstance(application)!! private val userDao: UserDao = contactDatabase.userDao() private val users: LiveData = userDao.getAll() fu.. 2021. 8. 13.
[Android] 스마트폰 내장 DB를 사용하기 위한 Room 1탄 🔶 Room 이란? Android App에서 SQLite 데이터베이스를 쉽고 편리하고 쉽게 사용할 수 있게 해주는 라이브러리입니다. 보통 스마트폰 내장 DB에 데이터를 저장하고 싶을 때 많이 사용합니다. DAO, Entity, RoomDatabase로 구성되어 있다. 구조는 아래와 같습니다. Dependency는 아래의 페이지로 들어가 확인할 수 있습니다. https://developer.android.com/jetpack/androidx/releases/room Room | Android 개발자 | Android Developers Room Room 지속성 라이브러리는 SQLite에 추상화 레이어를 제공하여 SQLite를 완벽히 활용하면서 더 견고한 데이터베이스 액세스를 가능하게 합니다. 최근 업데이트.. 2021. 8. 8.
[Android] View Binding(뷰 바인딩) 기존에는 findViewById를 사용하다가 안드로이드 View Binding에 대하여 알게 되었습니다. 생각보다 사용하다 보니 훨씬 편리하고 코드의 생산성도 좋아졌습니다. 기본적으로 사용하는 방법은 build.gradle 파일에 해당 코드를 복사합니다. ( View Binding은 Android studio 3.6 Canary 11 이상에서부터 사용 가능합니다.) android { ... viewBinding { enabled = true } } 예를 들어 activity_new.xml의 파일이 아래와 같다면 이제 Activity에 오면 결합 클래스가 생성되는 것을 확인할 수 있습니다. 여기서 결합 클래스의 이름은 ActivityNewBinding입니다. class NewActivity : AppCom.. 2021. 8. 5.
[Android] 디자인 패턴 (MVC, MVP, MVVM) 처음 안드로이드 개발을 시작할 때는 단순히 기능 구현에 집중을 했었지만 어느 순간부터 만드는 앱의 규모가 커지고 다양한 데이터를 다루다 보니 architecture에 대한 관심을 가지게 되었습니다. 그래서 찾아본 결과 Android에서 유명한 architecture에는 MVC, MVP, MVVM 이렇게 3가지가 있었습니다. 오늘은 이를 공부하고 정리해보려고 합니다. 아래의 글을 공부하며 내 나름대로 정리를 해보았습니다. academy.realm.io/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/ MVC vs. MVP vs. MVVM on Android A guide to using the MVC, MVP & MVVM patterns in your Android Ap.. 2021. 8. 3.
반응형

loading