목록Android (37)
안드로이드 개발자의 창고
데이터 바인딩 및 MVVM - UWP applications 데이터 바인딩은 MVVM(Model-View-ViewModel) UI 아키텍처 디자인 패턴의 핵심이며 UI 및 비 UI 코드 간의 느슨한 결합을 가능하게 합니다. learn.microsoft.com 다른 블로그 글 보다는 공식 문서가 좋을 것 같아 microsoft 공식 문서를 가져왔다. 📖 MVVM이란? UI 및 비 UI 코드를 분리하기 위한 UI 아키텍처 디자인 패턴 Model, View, ViewModel로 분리 Model : 데이터를 관리하는 클래스 View : 화면 UI ViewModel : 화면과 관련된 데이터를 관리하는 클래스 repository : 데이터를 구하는 클래스 MVVM의 장점 단위 테스트 간소화 유지 관리 효율성 향상 ..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Socket 서버와 클라이언트 간에 연결된 Socket을 통해 통신하는 방법으로 프로그램 종료 시 까지 온라인으로 유지할 수 있는 특징을 가지고 있다. 안드로이드 Socket 네트워크 구현 방법은 일반 자바 프로그램에서 구현하는 방법과 동일하다. 데이터를 주고 받는 부분 뿐만 아니라 접속 관리 등 많은 기능을 구현해야 하기 때문에 서버 구현이 어려운 편이다. 예제 코드 Server.kt fun main() { // 사용할 포트 번호 val portNumber = 50000 // 서버 객체 생성 val serverSocket = ServerSocket(portNumber) // 사용자 접속 대기 println("사용자 접속 대기") val so..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 앨범에서 사진 가져오기 앨범에서 사진을 가져올 때 다른 Activity를 실행시켜서 사진을 가져올 수 있다. Intent.ACTION_PICK 예제 코드 AndroidManifest.xml ... MainActivity.kt 안드로이드는 영상, 음원, 사진 등의 미디어 파일을 단말기 내부에 저장하면 미디어 스캐너라는 것이 자동으로 가동된다. 미디어 스캐너의 역할은 영상, 음원, 사진 등에 관련된 데이터를 추출하여 SQLiteDatabase에 저장한다. 이 정보를 가져다 사용할 수 있는 Content Provider를 이용해 정보를 가져온다. 안드로이드 버전이 10(Q) 이상이면 Content Resolver로 바로 접근 가능하다. 10 버전 ..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 사진 촬영하기 카메라 기능이 구현되어 있는 Activity를 실행하여 사진을 촬영할 수 있다. 만약 카메라 기능이 구현되어 있는 애플리케이션이 다수 설치되어 있다면 앱을 선택하면 된다. 기본 카메라 사용하는 방법을 사용하면 사진 원본이 아닌 썸네일 이미지를 가져오게 된다. 촬영된 사진의 원본을 가져오려면 촬영된 사진을 파일로 저장한 다음 파일로부터 이미지 데이터를 가져오는 방식으로 개발해야 한다. 예제 코드 AndroidManifest.xml = Build.VERSION_CODES.TIRAMISU) { val bitmap = it.data?.getParcelableExtra("data", Bitmap::class.java)!! activity..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Location GPS : Global Positioning System 단말기와 네트워크 망, 위성 등을 모두 연결해 현재 위치를 측정할 수 있는 시스템 안드로이드는 단말기 내부에서 가용한 위치 측정 수단을 모두 동원해 위치를 측정하고 있다. 애플리케이션에 측정된 위치 값을 가져다 사용할 수 있다. Porovider 안드로이드는 위치 측정을 위해 위치 정보 제공자를 선택해서 사용하며 가급적이면 모든 위치 정보 제공자를 사용하는 것이 좋다. GPS Provider : GPS 위성과 통신하여 3각 측량 방법을 이용해 위치 정보를 습득한다. 위성과의 전파 송수신이 방해가 되는 요인(방해전파, 실내, 건물내, 계곡 등)이 있으면 정확한 위치를 측정..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Sensor 스마트폰에는 수십가지의 센서가 장착되어 있으며 이를 통해 사용자에 대한 정보를 수집할 수 있다. 스마트폰이 부팅되면 단말기에 장착되어 있는 모든 센서들이 동작하기 시작하고 애플리케이션에서는 이 값을 받아와 사용할 수 있다. 예제 코드 단말기 센서 목록 출력 class MainActivity : AppCompatActivity() { lateinit var activityMainBinding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) activityMainBinding = Activ..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Device Information 안드로이드 애플리케이션에서 단말기의 정보가 필요할 경우 정보를 가져다 사용할 수 있다. 안드로이드 8.0 부터 단말기 일련번호, 유심 일련번호 등 단말기의 고유한 정보는 사용할 수 없다. TelephonyManager 전화 기능과 관련된 정보를 가져올 수 있다. 정보 코드 전화번호 line1Number SIM 국가 코드 simCountryIso 모바일 국가코드 + 모바일 네트워크 코드 simOperator 서비스 이름 simOperatorName SIM 상태(통신 가능 여부, PIN LOCK 여부) simState 음성 메일 번호 voiceMailNumber 예제 코드 class MainActivity : A..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Screen Rotation layout 폴더에 수식어를 추가하면 회전에 따른 화면을 따로 적용할 수 있다. layout-port : 세로 화면 layout-land : 가로 화면 View 복원하기 안드로이드에서 화면 회전이 발생하면 화면을 새롭게 만들게 되는데 일부 UI 요소들은 초기 값으로 설정되기 때문에 복원하는 작업을 해야 한다. onSaveInstanceState 메서드에서 복원 시 필요한 값을 저장한다. onCreate 메서드에서 복원 작업을 해준다. 화면 회전 막기 화면이 회전되는 것을 막고자 한다면 AndroidManifest.xml의 Activity 태그에 screenOrientation 속성으로 설정하면 된다. 예제 코드 l..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Density 안드로이드는 단말기의 해상도에 따라 이미지를 선택할 수 있다. 고해상도 단말기에서 선명한 이미지를 보여주는 목적으로 사용한다. 같은 이미지를 해상도 별로 나눠 준비해놓으면 해상도에 맞는 이미지를 자동으로 사용해준다. 관리가 힘들다는 단점이 있다. 해상도에 따른 분류 dpi 배율 ldpi ~ 120 0.75 mdpi ~ 160 1.0 hdpi ~ 240 1.5 xhdpi ~ 320 2.0 xxhdpi ~ 480 3.0 xxxhdpi ~ 640 4.0 drawable 이미지 적용 단말기 해상도에 해당하는 디렉토리에 이미지가 있을 경우 원본 크기 그대로 그린다. 해상도에 해당하는 디렉토리에 이미지가 없을 경우 인접한 해상도 디렉토리의..

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Localization(지역화) 하나의 애플리케이션으로 다양한 언어 및 국가를 지원하기 위한 개념 안드로이드는 res 폴더에 있는 리소스 폴더에 국가 코드를 추가하여 지역화를 할 수 있다. res 폴더 내의 폴더에 수식을 설정해주면 수식어와 일치하는 단말기에 대해 이미지, 문자열 등을 선택해서 사용할 수 있도록 제공할 수 있다. 예제 코드 Localization Flie 파일 생성 시 Locale을 추가하여 나라를 설정한다. Localization을 할 파일 이름을 동일하게 하는 것이 중요하다. activity_main.xml MainActivity.kt class MainActivity : AppCompatActivity() { latein..