본문 바로가기

안드로이드22

안드로이드 앱 아키텍처 가이드 - ViewModel 편 개요 안드로이드 클린아키텍처 가이드에 따라서 이번편은 ViewModel 을 알아보겠습니다. ViewModel은 MVVM 패턴의 중간다리 역할 입니다. 분류를 하자면 presenter 쪽에 넣을수 있겠네요. Activity나 Fragment에서 들어온 요청을 받아서 넘기는 역할을 하게 되죠. 기존의 Activity 의 매시브한 클래스가 MVVM 패턴을 통해 한것 다이어트 되는 형태가 되는것이죠. 제가 느낀 핵심은 각각의 경계를 지키고 자기 할일만 하면됩니다. 시작 ViewModel은 클린아키텍트 3레이어에서 presentation 영역에 속합니다. ViewModel 사용의 가장 중요한 목표는 ViewModel 은 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었다는 것입니다. ViewM.. 2021. 8. 6.
안드로이드에서 사용하는 코루틴 (코틀린) 왜 이런글을? 안드로이드 (코틀린) 에도 코루틴을 통한 비동기 처리를 사용할수 있기 때문이죠. 안드진영에서는 대대손손 물려받은? 자바 계열의 스레드 개념을 활용하여 비동기 처리를 하곤 했습니다. 당연히 그렇게 사용했습니다. 그런데 이 스레드를 컨트롤 한다는건 매우 위험하고 어려운 복잡한 그러한 일이었기에...(대표적으로 메모리 문제 그리고 메모리 문제) 코틀린으로 넘어오면서 코루틴 이라고 하는 개념을 추가하여 비동기 방식의 로직처리를 안정적으로 할수 있게 되었습니다. (과연그럴까요?) = 정리 + 요약 하여 해당 내용을 공유 합니다. 코루틴? (Coroutine) 이름이 비슷하다고 해서 코루틴은 코틀린에서 새로 등장한 지식이 아닙니다. 아주 오래 전부터 기존에 있던 이론입니다. 코루틴(coroutine).. 2021. 2. 5.
[지식공유] flutter (플러터) 배우기 - 개념과 기초구현 안녕하세요. 김과자입니다. 최근 핫한 개발 프레임워크 이죠. 플러터(플루터) 를 알아봅시다. 플러터는 구글이 개발한 오픈 소스 모바일 애플리케이션 개발 프레임워크 입니다. 안드로이드, iOS용 애플리케이션 개발을 위해 세상에 나오게되었습니다. 사실 전에도 크로스플랫폼 개발을 위한 프레임워크들이 있었죠. 예를 들어 phonegap, cordova, ionic, react native...등등 이들의 목표 자체는 아마도 이것이겠죠? 한가지 방법 한번의 구현으로 여러가지 플랫폼을 일타쌍피!!신공 아... 생각만해도 너무 좋지만. 그에따른 이슈도 너무 많습니다. 그럼 어찌어찌 개발을 했다고 해서 native 를 몰라도 되는가? 그것도 아니란 말이죠. 결국엔 네이티브 작업을 좀 해줘야하죠. 정도의 차이일뿐. 어찌.. 2020. 6. 14.
[지식공유] 웹뷰뿌시기 (webview) 파일업로드(사진업로드) 안녕하세요. 김과자 입니다. 오늘은 1편에 이어서 예정대로 웹뷰 뿌시기 2편 웹뷰계의 최강 빌런 !!! 파일업로드...에 대해서 알아보겠습니다. 웹뷰에서 파일업로드를 처리하기 위해서는 웹 소스에서 html5를 이용해서 form 태그에서 input type 을 file 로 지정하기만 하면 그 뒤는 식은죽 먹................ "여러분. 안드로이드 개발에 그런일은 없습니다." “의심하지 마세요. 모든것이 수동입니다.” … 그리하여 웹뷰에서 파일업로드를 처리하기위해서는 약 3가지 OS 버전에 대해 고려해야합니다. 왜냐구요? 버전별로 구현방식이 다릅니다. "네???" 하하하하ㅏㅎㅎㅎ하ㅏㅎ하ㅏ하ㅏ하... 웹뷰 뿌시기 2편 - 파일업로드(혹은 사진업로드) 시작해보겠습니다. 안드로이드 웹뷰상에서 파일(사진.. 2020. 6. 1.
[지식공유] 웹뷰뿌시기(webview) 자주 쓰는 10가지 셋팅 안녕하세요. 김과자 입니다. 안드로이드 앱 개발중 웹뷰를 사용하여 개발하는 방식은 이제 아주 흔한 일이 되었죠. 네. 그렇습니다. 우리에게 익숙한 웹을 이용해서. 앱개발하는데 활용한다? 아싸 ! 개꿀!! 기존에 웹이 개발되어 있는걸 그냥 넣기만 하면 끝~?! 얼마나 좋습니까? "그런데 말입니다." 세상이 어디 그리 호락호락 한가요? 구글 새ㄲ... 아 아니 구글 님들이 얼마나 웹뷰를 잘 만들어 놓았느냐. "하핳하하핳ㅎㅎ하하하하핳..." 환영합니다. 지금 부터 여러분은 웹의 모든 동작을 수동으로 컨트롤 하게 될것입니다. 🙀 자. 그럼 이제부터 웹뷰 관련 셋팅을 연재해보겠습니다. - 자주 사용하는 것들 10가지 셋팅법 - 최강의 빌런. 파일업로드 문제!!! - 이건 진짜 심각한 ... window.open .. 2020. 5. 26.
[지식공유] firebase 를 이용한 안드로이드 채팅앱 안드로이드 채팅앱 (firebase 를 사용한) 안녕하세요. 오늘은 안드로이드 채팅앱을 만들어보려합니다. 말이 채팅앱이지 firebase 를 이용해서 만들면 정말 간단하게 구현할 수 있습니다. 구글 firebase는 정말 강력한 플랫폼인것 같습니다. 여러곳에서 사용되고 있는 FCM푸시 서비스도 그렇고 여러가지 강력한 서비스들을 무료로 사용할 수 있습니다. 이번에는 firebase 실시간 데이터베이스를 이용하여 앱을 만들어 보겠습니다. 우선은 firebase 프로젝트를 생성해야 합니다. 기존에 FCM 등에서 만들어둔 프로젝트에 추가하셔도 되구요. 이부분은 설명하지 않겠습니다. 1.추가된 프로젝트의 google-service.json 파일을 다운로드 받고 파일은 프로젝트/app 경로에 넣어주시면 됩니다. 다.. 2018. 10. 21.
[지식공유] 안드로이드 메모리 관리는 어떻게 ? (누수 예방법) 안드로이드 메모리 관리 (누수 방지 안녕하세요. 오늘은 안드로이드 메모리 관련 입니다.기존에도 한번 썻던것 같은데요. 메모리가 언제 leak이 나더라...다시 생각해보니... 어느새 다 잊어버렸습니다.하하하ㅏㅎㅎㅎㅎ.... 안드로이드의 경우 자바의 피를 이어받아... 자바의 성향을 그대로 따릅니다. (당연;;)그렇다면 언제 메모리 누수가 발생하느냐? 뭐 무수히 많은 경우가 있겠지만안드로이드 기준으로 흔히 사용하게 되는 inner class 가 문제인 것입니다.웹 개발할 당시는 inner class를 1년에 한번 쓸일이 있을까 말까 했습니다만안드로이드 개발시에는 하루에도 수십번 사용합니다. 그것도 아주 무분별 하게... 그렇다면 왜 inner class 가 문제가 되냐? 에 대해 알아보겠습니다.JAVA 특.. 2018. 10. 20.
[지식공유] 안드로이드 FCM 푸시서버 예제 안드로이드 FCM 푸시서버 예제 안녕하세요. 지난번에 firebase 안드로이드 FCM 푸시 관련하여 알아보았습니다.오늘은 밑도 끝도 없이 예제를 통해서 간단한 사용법을 배워보죠! ***htttp V1 사용법이 아닙니다. 구글에서 말하는 기존의 구형 원시 사용법입니다. 예제는 간단합니다. 12345//구글 인증 서버키private final String AUTH_KEY_FCM = "AAAAlTG6ylg:APA91bHo8 ... ";private final String API_URL_FCM = "https://fcm.googleapis.com/fcm/send";//기기별 앱 토큰private String userDeviceIdKey = "d-tse-wQXDA:APA91bH ...";cs 인증서버키를 가지고.. 2018. 10. 20.