안드로이드/정리

    MVVM 패턴과 MVC 패턴의 차이

    얼마 전에 이런 질문을 받았어요 UI를 다루는 관점에서 MVC랑 MVVM의 차이가 뭐에요? MVC에서 Model, View, Controller가 있고 각각 역할이 Model에서 데이터와 비즈니스 로직 관리 View에서 사용자 인터페이스 표시 Controller에서 모델과 뷰 간의 상호 작용을 관리하고 모델 업데이트 로 알고있고 MVVM 에서는 Model, View, ViewModel 3가지고 각각 역할이 Model에서 데이터와 비즈니스 로직 관리 View에서 사용자 인터페이스 표시 ViewModel에서 모델과 뷰 간의 상호 작용 관리하며 프레젠테이션 로직 담당 으로 알고있는데 둘이 같은 것 아니에요 !? 저 또한 위의 질문과 같이 생각을 했었던 적이 있어서 개념을 더 이해하고 실제 구현도 해보며 더욱 ..

    Android UI 자동화 테스트의 필요성과 Espresso

    앱 개발은 사용자 경험을 개선하고 기능을 확장하는데 중요한 역할을 합니다. 그러나 실제 사용 환경에서 애플리케이션이 정상적으로 동작하는지 확인하기 위해 UI 자동화 테스트가 필요합니다. 이번 글에선 안드로이드에서 UI 자동화 테스트의 필요성과 UI 자동화 테스트에서 Espresso를 사용한 이유에 대해 작성해보겠습니다. UI 자동화 테스트는 왜 하는 걸까요 !? UI 자동화 테스트를 할 때 사용자 경험을 보장할 수 있습니다. 사용자는 주로 앱의 UI와 상호작용하며 앱을 사용합니다. 앱의 UI가 정확하게 동작하고 예상대로 동작하는지 확인하는 것은 매우 중요합니다. 혹시 완성된 기능에 대하여 테스트를 할 때 같은 컨텍스트에 있는 내용을 동일하게 반복한 경험이 있으신가요? 저 같은 경우에는 개발한 기능에 대해..

    [ Kotlin ] Coroutines을 확실하게

    코루틴의 포인트는 이전에 자신의 실행이 마지막으로 중단되었던 지점에서 다음의 장소에서 실행을 재개할 수 있다는 것이다. 코루틴은 협력 작업, 예외, 이벤트 루프, 반복자, 무한 리스트, 비동기 처리에 적합하다. 코루틴은 비동기처리를 간단한 코드로 만들어준다. (콜백, 캔슬, 리소스관리 등...) 코루틴은 메인쓰레드가 블라킹되는 부분에 지원을 해준다. 코루틴은 비동기 콜백 처리를 순차적인 코드로 바꿀 수 있다. (콜백지옥으로 되어있는 것을 순차적으로 짤 수 있다.) fun main() { GlobalScope.launch { delay(1000L) println("World") } print("Hello, ") Thread.sleep(2000L) println("Hi, ") } // Hello, (1초뒤)..

    [Android] Android Beam에 관해...

    2개의 Android 장비간 쌍방향 데이터 교환 가능 Android 4.0 이상 버전에서 지원 빔을 통해 데이터(NdefMessage)를 다른 장비로 전송하길 원하는 앱은 포그라운드로 동작하고 있어야 함 데이터를 수신하는 장비도 unlock 되어 있어야 함 수신 장비 접근시 공유하고자 하는 화면이 작아지면서 "Data 공유" 라는 사용자 인터페이스가 표시되고, 해당 화면 선택 시 사용자가 선택한 Data(NdefMessage)가 전송됨. Android Beam 구현을 위한 함수 setNdefPushMessage() : NdefMEssage를 Beam을 통해 전송 :: 자동적으로 2개의 장비가 근접해졌을 때 메세지가 전송됨 setNdefPushMessageCallback() : 데이터를 빔을 통해 전송할 ..

    [Android] NFC에 관해...

    NFC 가까운 거리에서 동작하는 근거리 무선 통신 기술 RFID의 기술을 확장한 것 - RFID : 태그에 있는 데이터만 읽기 가능 최대 848Kpbs의 Data 전송 가능 양방향 실시간 데이터 통신이 가능 블루투스 보다 전송속도는 느리나, 통신설정 시간이 짧아 인식과 반응속도 빠름 NFC 운용모드 태그 읽기/쓰기 - 태그의 데이터를 읽기와 쓰기 가능 P2P 통신 - 디바이스끼리 P2P 데이터 통신 가능 HCE 모드 (Host Card Emulation) - Tag Emulation Mode NFC Tag Dispatch System 우선순위 ACTION_NDEF_DISCOVERED - NDEF 페이로드가 포함된 태그 또는 태그의 유형이 인식될 경우 - 우선 순위가 가장 높음 ACTION_TECH_DIS..