Android

·scrcpy
Android 휴대폰을 노트북에 무선으로 연결하기 전에 scrcpy가 설치되어 있어야 한다. 설치 방법은 아래 포스트를 참조하길 바란다. [Android] M1 Pro MacBook에 Mobile 기기 연결하기 scrcpy 설치와 andorid-platform-tools 환경변수 설정이 모두 완료되었다면 네트워크 설정만 해주면 된다. 노트북과 Mobile 기기 네트워크 환경 구성1. USB를 연결한 상태에서 'adb tcpip 5555' 를 입력한다2. 기기와 USB 연결을 해제한다3. 기기의 WiFi IP 주소를 확인한다기기의 IP 주소는 '설정 - 연결 - WiFi - 현재 네트워크' 로 들어가게 되면 아래와 같은 화면이 보이게 된다.4. IP주소와 이전에 만들었던 포트번호 '5555' 를 이용하여 ..
·scrcpy
해당 포스트를 보는 사람이라면 Android Studio는 기본적으로 설치되어 있을 것이라 생각한다. 그리고 Mac 사용자라면 Homebrew도 설치되어 있다고 생각하지만 혹시 그렇지 않은 사람들은 하단 포스트를 참고하기 바란다. [Mac] M1 Pro MacBook에 Homebrew 설치하기 Android 앱을 개발하다 보면 기기의 하드웨어를 필요로 하는 경우 Android Studio의 가상 기기로는 테스트함에 있어서 한계가 있다. 따라서 종종 실제 기기를 USB로 연결하여 디버깅하곤 했는데 scrcpy라는 프로그램을 알게 되었다. scrcpy?scrcpy는 휴대폰의 화면을 노트북에 연결하여 미러링 해주는 프로그램이다. (scrcpy 이름을 보자마자 strcpy가 생각이 났다)scrcpy 설치하기Ho..
·Android
MVC와 MVP에서 View와 Model 간의 의존성은 없었지만 Controller 혹은 Presenter와 View 사이의 의존성은 여전히 존재했다. MVVM에서는 ViewModel이라는 새로운 개념을 도입하였고, ViewModel은 View를 참조하지 않기 때문에 의존성이 없다. 이는 ViewModel이 독립적인 존재라는 뜻이기 때문에 ViewModel과 View는 1:n의 관계를 가질 수 있다. MVVM (Model, View, ViewModel) Model MVC, MVP에서의 Model과 같은 개념이다. View 사용자가 보는 UI 부분이다. MVP처럼 레이아웃 파일(.xml)은 물론이고 Activity와 Fragment도 View로 분류한다. 보통 Command 패턴이나 DataBinding을..
·Android
1. MVC (Model, View, Controller) Model 앱에서 사용하는 데이터, 상태, 비즈니스 로직을 포함한다. 데이터 : 사용자의 이름이나 상품의 가격 등과 같은 말 그대로의 데이터를 의미. 상태 : UI 상태. isEnabled와 같은 플래그로 UI의 상태를 나타낼 수도 있고, 데이터의 값이 변경되어 UI가 갱신되어야 한다면 그 또한 상태 변경으로 볼 수 있다. 비즈니스 로직 : 앱에 필요한 동작을 수행하기 위해서 데이터를 처리하기 위한 알고리즘. View 사용자가 보는 화면, 즉 UI요소를 담당한다.. 사용자의 입력에 대해 어떤 동작을 해야하는지는 모른다. 예를 들어 UI에 있는 버튼을 눌렀을 때 처리해야하는 코드를 포함하지 않는다. 안드로이드에서 레이아웃 파일인 activity_m..
·Android
Android의 코루틴은 비 동기적으로 실행되는 코드를 비교적 효율적으로 구현할 수 있게 해주는 동시 실행 설계 패턴이다. 1. 코루틴에서의 주요 기능은 다음과 같다. Thread 대비 굉장히 가볍다. 기존의 비동기 작업은 Context Switching을 하면 기존 Thread는 차단시키는 것에 반해 코루틴은 실행 중인 Thread를 차단하지 않고 일시 정지할 수 있다. 따라서 Single-Thread에서 많은 코루틴을 실행할 수 있다. 이때, 기존의 Thread를 일시 정지하는 것은 동시에 많은 작업을 할 수 있게 하면서도 차단하는 것보다 메모리를 절약한다. 작업을 간편하게 취소할 수 있다. 코루틴에서는 ".cancle()"을 이용하여 Thread보다 쉽게 취소할 수 있다. 작업 용도에 따라 어떤 T..
·Android
1. Thread란 무엇이며, 왜 필요할까? Thread란 컴퓨터 내부에서 하나의 흐름을 의미한다. 작업이 진행되는 하나하나의 흐름을 모두 Thread라고 부른다. 여기서 이러한 흐름이 하나인 경우 Single-Thread, 여러 가지인 경우 Multi-Thread라고 부른다. Single-Thread는 하나의 흐름, 즉 하나의 동작밖에 하지 못하기 때문에 동시에 여러 작업을 하기 쉽지 않다. 우리가 사용하는 앱을 Single-Thread로 구현이야 할 수는 있지만 상당히 비 효율적일 것이다. 왜냐하면 하나의 작업만 가능하기에 다른 작업을 수행하기 위해서는 이전 작업이 완료되어야 가능하다. 예를 들어 카카오톡에서 X에게 동영상을 보내는 상황을 생각해 보자. 우리는 동영상이 다 전송되기 전까지는 다른 작업..
·Android
● 디자인 패턴(Design Pattern)의 개념 디자인 패턴은 소프트웨어 공학에서 특정 Context에 공통적으로 발생하는 문제에 대해 재사용이 가능하도록 만들어 놓은 해결책이다. 이것은 개발자들이 개발을 하다보면 생기는 '자주', '반복적으로', '공통적으로' 해결해야할 문제가 있을 때 이를 해결하기 위해 쓰인다. 즉, 코드를 효율적으로 작성하기 위한 방법론, 건강한 소프트웨어 개발을 위한 방법론이라고 할 수 있다. ● 디자인 패턴을 이해하고 사용해야하는 이유 코딩을 할 때에는 많은 사람들이 이해할 수 있도록 짜는 것이 좋다. 왜냐하면 어떤 프로젝트를 진행한다고 했을 때에 자신만이 이해할 수 있는 코드로 작성한다면 유지 및 보수에 어려움이 생길 수도 있기 때문이다. 따라서 코딩을 하는 데에 있어서 ..
·Android
1. View View는 앱에서 눈에 가시적으로 보여지는 것을 의미한다. 이러한 View 클래스를 베이스로 두고 각각의 기능을 가진 하위 클래스들이 존재한다. TextView Button ImageView 등등 2. View의 트리 구조 아래 그림에서 알 수 있듯이 모든 View들의 부모클래스는 'View'라는 것을 알 수 있다. View 클래스 밑에 Text, Image, Surface, ProgressBar 등을 포함하고 있는 'View'와 'ViewGroup'으로 나누어 지는데, View 계열의 클래스는 가시적으로 모양이 있는 클래스이고, 'ViewGroup' 계열의 클래스는 눈에는 보이지 않지만 View들을 잘 배치하거나 Grouping을 하는 역할을 한다. 즉, ViewGroup은 View와 V..
·Android
앞 게시글에서 Palette에서 자주 사용되는 View에 대해 알아보았다. 이번에는 Palette의 또 다른 카테고리인 Layout에 대해서 다루어 보겠다. 안드로이드 Layout 클래스는 View 위젯들을 화면에 배치하는 과정에서 위젯의 위치를 정렬하거나 연관된 위젯들을 그룹화하는 역할을 수행한다. 즉, Layout 클래스는 View 위젯들을 그룹화하여 배치하기 위한 용도로 사용되는 ViewGroup이다. 하지만 자체적인 UI 표시 기능이나 사용자 이벤트 처리 기능은 매우 제한적으로 사용된다. 1. LinearLayout LinearLayout의 Linear은 '선형'이라는 뜻이다. 따라서 LinearLayout은 화면은 가로방향이나 세로방향으로 나열할 때 사용하는 Layout이다. Horizontal..
·Android
Palette 메뉴에는 Common(자주 사용되는 컴포넌트들) / Text / Buttons / Widgets / Layout / Container / Google(구글에서 제공하는 광고판, 맵 뷰) 로 이루어진 하위 카테고리가 있다. 여기에서 각 카테고리별로 자주 사용되는 View에 대해 정리해보고자 한다. 1. Text TextView: 화면에 텍스트를 표시하는 기능을 제공한다. 2. Buttons Button: User가 탭하거나 클릭해서 작업을 수행할 수 있는 사용자 인터페이스 요소이다. MainActivity에서 setOnClickListener로 버튼을 누르면 어떤 작업을 수행할 것인지 설정할 수 있다. ImageButton: 사용자가 누르거나 클릭할 수 있는 이미지 버튼을 표시한다. Chip..
wbnh09
'Android' 태그의 글 목록