본문 바로가기

모바일(Mobile)

(14)
[Flutter] Flutter SDK 설치 및 환경 설정 개요 안녕하세요. 오늘은 Flutter의 설치 및 실행하는 방법에 대해서 알아보도록 하겠습니다. Flutter는 Goolge에서 개발한 오픈 소스 UI 프레임워크이며, Android IOS를 모바일 애플리케이션을 한 번에 개발하기 위해 사용될 수 있습니다. Flutter는 하나의 코드 베이스로 여러 플랫폼을 지원하는 만큼 개발의 효율성이 좋은데요. 이러한 Flutter를 사용하기 위해서는 다음과 같은 환경 설정이 필요합니다. 1. Flutter SDK 설치하기 Flutter는 아래의 사이트에서 SDK를 다운로드할 수 있습니다. https://docs.flutter.dev/get-started/install/windows Choose your first type of app Configure your sy..
[Android] 안드로이드 기기와 USB 외부 장치 개요 (OverView) 안드로이드에서 USB 장치와의 통신 및 상호작용은 AOA (Android Open Accessory)라는 기술에 의해서 지원됩니다. 가장 대표적인 사례로는 마우스, 로봇 컨트롤러, 키오스크, 카드리더기 등이 이에 해당합니다. 일반적인 사용자 환경에서는 보통 안드로이드 기기에 마우스나 키보드 같은 USB 외부 장치를 연결하면 자동으로 HID(Human Interface Descriptor)라는 기술을 통해 통신이 지원되고 따라서 안드로이드 장치 내에서 USB 장치를 사용할 수 있습니다. 서로 다른 두 장치(하드웨어)를 서로 USB(Universal Serial Bus)로 연결하면 일어나는 일 마우스, PC, 스마트폰 등 다양한 하드웨어 장치를 USB로 서로 연결하면 두 장치는 US..
[Android] 안드로이드와 스케줄링 알고리즘 개요 오늘은 안드로이드에서 사용되는 스케줄링 알고리즘(scheduling Algorithm)에 대해서 알아보도록 하겠습니다. 안드로이드는 Linux Kernal 부터 시스템 앱까지 다양한 소프트웨어가 결합된 하나의 거대한 플랫폼 입니다. 안드로이드의 플랫폼 구조, 즉 플랫폼 아키텍처는 아래의 그림과 같습니다. 안드로이드 개발자 사이트의 설명을 인용하자면, 안드로이드란 "Android는 다양한 기기와 폼 팩터에 사용할 수 있도록 제작된 Linux 기반의 오픈소스 소프트웨어 스택" 이라고 설명할 수 있습니다. 따라서, 이러한 안드로이드 플랫폼에서도 다른 운영체제, 예를 들면 Window나 Mac처럼 컴퓨터에서 동작할 다양한 프로그램들 즉 '프로세스'의 관리를 위한 '스케줄링 알고리즘'이 적용됩니다. 스케줄링..
[Android] SQLite와 데이터 베이스 오버 플로우에 관하여 개요 최근 안드로이드 애플리케이션을 만들면서 사용자의 데이터를 영구적으로 저장하고, 분석하는 작업이 필요했는데요. 그래서, 자연스럽게 안드로이드에서 지원하는 데이터베이스, SQLite를 사용해서 DB를 설계해보았습니다. SQLite는 아래와 같이, 직접 헬퍼 클래스 (eg. DBHelper)를 선언하여 데이터베이스를 관리할 수도 있습니다. public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydb.db"; private static final int DATABASE_VERSION = 1; public DBHelper(Context context) { super(context, DATABA..
[Android] 데이터 바인딩과 뷰모델(DataBinding & ViewModel) 데이터 바인딩을 하는 이유 지난 포스트에서는 데이터 바인딩(DataBinding)의 가장 간단한 형식에 대해서 알아보았습니다. https://1-hee.tistory.com/87 [Android] 데이터 바인딩(DataBinding) 데이터 바인딩(DataBinding)이란? 안드로이드 스튜디오 개발자 사이트에서 정의한 표현을 인용하자면 다음과 같이 정의할 수 있습니다. 프로그래매틱 방식이 아니라 선언적 형식으로 레이아웃의 UI 1-hee.tistory.com 데이터 바인딩은 더 이상 개발자가 xml로 설계한 화면에 대하여 일일히 findViewById() 메소드를 통해서 뷰 바인딩을 해주지 않아도 된다는 이점을 가집니다. 처음 안드로이드 개발을 배우는 상황에서는 명시적으로 뷰를 Id를 통해 찾아내고 뷰..
[Android] 안드로이드 스튜디오에서 원격으로 디버깅 하기 with ADB 안드로이드 스튜디오(Android Studio)에서는 원격 접속을 통해 디바이스에 앱을 설치하거나 디버깅을 할 수 있다. 안드로이드 앱의 시스템 설정에서 빌드 번호를 찾아 열심히 터치하면 개발자 모드를 켤 수 있는데, 보통 한국인이 많이 사용하는 갤럭시 스마트폰을 기준으로 하면 설정 > 휴대전화 정보 > 소프트웨어 정보 에서 빌드 번호를 찾을 수 있다. 아래와 같이 빌드번호를 찾아 열심히 연타하면 개발자 모드를 활성화할 수 있고, 원격이 아니더라도 안드로이드 스튜디오에서 스마트폰 등을 사용해서 개발하거나 테스트할 때는 개발자 모드가 필요하니 알아두면 좋다. 위와 같이 설정에서 빌드번호를 연타했다면, 휴대폰 내에서 개발자 모드가 켜지는데, 개발자 모드가 켜져있을 경우 외부로부터 파일을 주고 받거나 앱을 설..
[Android] 데이터 바인딩(DataBinding) 데이터 바인딩(DataBinding)이란? 안드로이드 스튜디오 개발자 사이트에서 정의한 표현을 인용하자면 다음과 같이 정의할 수 있습니다. 프로그래매틱 방식이 아니라 선언적 형식으로 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 라이브러리 안드로이드에서 앱은 xml을 기반으로 하여 화면을 설계하고, Java나 Kotlin 소스 코드를 통해 필요한 로직을 구현하고 앱의 동작을 만들어낼 수 있습니다. 이와 관련하여 아래의 글을 참조하면 향후 이어지는 글에 대해 조금은 도움이 되실거 같습니다 😀 https://1-hee.tistory.com/86 따라서, 데이터 바인딩이 없더라도 자바나 코틀린 소스 코드에서 레이아웃을 참조하여 기능을 구현하고 값을 바꿀 수 있습니다. 그리고 이렇게 사용자..
[Android] 뷰 바인딩(ViewBinding) 뷰바인딩(ViewBinding)이란? 안드로이드 앱은 크게 화면의 구현과 배치를 담당하는 XML과 레이아웃을 참조하고 앱의 동작, 로직 등 필요론 하는 기능의 구현을 담당하는 Java/Kotlin 파일로 구성됩니다. 물론, 앱을 빌드하고 서명을 추가하는 gradle(or KTS(Kotlin DSL))도 있지만, 지금은 자세히 다루지 않겠습니다. 안드로이드 앱은 xml로 그려놓은 화면을 다양한 클래스들의 상호작용을 통하여 그려냅니다. 이 과정에는 정말 많은 클래스가 관여하며 이 부분은 앱 개발자가 신경 쓸 부분은 아닌지라, 아래의 포스트를 참조하여 어떻게 동작하는지 그림이라도 파악해두면 좋을 것 같습니다. https://velog.io/@ows3090/Android-findViewById-%EC%9B%90..