Android
-
[Android] MVC vs MVP vs MVVMAndroid 2021. 8. 29. 14:15
내용 및 이미지 참고 : https://academy.realm.io/kr/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/ 안드로이드의 MVC, MVP, MVVM 종합 안내서 MVC vs. MVP vs. MVVM 안드로이드 앱을 논리적 구성 요소로 체계화하려는 베스트 프랙티스 접근법은 최근 몇 년간 지속적으로 발전했습니다. 모델 뷰 컨트롤러(Model View Controller, MVC) 패턴을 초석으로 academy.realm.io MVC 컨트롤러 문제점 테스트 용이성 - 컨트롤러가 안드로이드 API에 깊게 종속되므로 유닛 테스트가 어렵다. 모듈화 및 유연성 - 컨트롤러가 뷰에 단단히 결합되며, 뷰의 확장일 수도 있다. 뷰를 변경하면 컨트롤러로 돌아가서 변경해야 ..
-
[Android] Android HTTP 통신 (Retrofit, HttpUrlConnection)Android 2021. 8. 28. 15:26
Android 통신 라이브러리 네트워크에 연결된 앱의 대부분은 HTTP 를 사용하여 데이터를 송수신한다. Android 플랫폼에서는 HttpsURLConnection 클라이언트가 포함되며 이 클라이언트는 TLS, 스트리밍 업로드 및 다운로드, 시간 제한 구성, IPv6, 연결 풀링을 지원한다. 또한 Retofit, OKHttp, Volley 등의 HTTP 클라이언트 라이브러리를 사용하여 좀더 쉽게 HTTP 통신이 가능하다 DefaultHttpClient HttpUrlConnection Volley OkHttp Retrofit2 ion 주요 역사 2007/11/05 : Android가 발표 - HttpClient 였으며 몇 가지 버그가 있었다. 2011/09/29 : HttpURLConnection을 권장..
-
[Android] RxJavaAndroid 2021. 8. 28. 10:39
ReactiveX ReactiveX는 Observer 패턴과 함수형 프로그래밍을 사용하여 비동기 프로그래밍을 가능케 한다. 관찰 가능한 1) Observable stream 이 있고, 2) operator 순수함수로 가공을 하여 발행하면 3) Observer가 반응해 작업을 실행한다. RxJava: Java(JVM)를 위한 ReactiveX Extensions. Reactive programming(리액티브 프로그래밍) 패러다임을 자바에서 구현한 프로그래밍 라이브러리 RxKotlin: Kotlin을 위한 ReactiveX Extensions. RxJava 라이브러리를 기반으로 포팅하여 코틀린을 위한 리액티브 프로그래밍의 특정 부분을 함수형 프로그래밍으로써 구현한 라이브러리 RxAndroid: Androi..
-
[코루틴] 코틀린(Kotlin)의 코루틴(Coroutine)Android 2021. 8. 27. 22:07
안드로이드에서 비동기 처리하는데는 몇가지 방법이 있다. Rx는 다양한 기능을 제공하지만 진입 장벽이 높다. AsyncTask 는 Deprecated 되었고 복잡하다. 코루틴은 비동기스럽지 않게 생긴 코드로, 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있다. 코루틴은 스레드 위에서 실행되는데, 코루틴 1을 실행하던 중 2가 실행되어도 실행중인 스레드를 정지하면서 컨텍스트 스위칭 개념으로 다른 스레드로 전환하는 것이 아니라, 기존 스레드를 유지하며 기존 스레드에서 코루틴 2를 실행하게 된다. 주요 키워드 suspend 코루틴 안에서 suspend 함수가 호출될 경우 이전까지의 코드 실행이 멈추며 suspend 함수가 처리 완료된 후, 멈춰있던 원래 스코프의 다음 코드가 실행된다. 코루틴을 정..
-
[코루틴] 코루틴(Coroutine) 이란Android 2021. 8. 22. 11:16
코루틴은 1) 특정 위치에서 실행을 일시 중단하고 다시 시작할 수 있는 여러 진입점을 허용하여 2) 비선점 멀티 태스킹을 위해 서브루틴을 일반화하는 프로그램의 구성 요소 루틴 하나의 Task, 함수 정도로 생각하면 된다 - 메인루틴 프로그램 전체의 개괄적인 동작 절차를 표시하도록 만들어진다. - 서브루틴 메인 쓰레드가 서브루틴에 진입하면, 맨 윗줄부터 실행이 될것이고 그 아래 코드들을 쭉쭉 실행해서 return문을 만나면 서브루틴을 호출했던 부분으로 탈출한다. 그리고 진입점과 탈출점 사이에 쓰레드는 블락된다 - 코루틴 진입할 수 있는 진입점도 여러개고, 함수를 빠져나갈 수 있는 탈출점도 여러개 코루틴은 쓰레드다 (X) 코루틴은 Object이다 (O) 코루틴과 쓰레드 Thread, Coroutine 모두 ..
-
Android Developer Roadmaps 2020Android 2020. 12. 5. 22:56
roadmap.sh/android Developer Roadmaps Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve. roadmap.sh 안드로이드 개발자를 위한 로드맵이다. 이번 개인 사이드 프로젝트를 통해 Language는 Kotlin, Version Control은 GitHub을 제대로 적용해봐야겠다. 추가로 Dagger로 DI(의존성 주입)을 하는 것과, RxJava에서도 좀더 공부..