728x90
반응형

전체 글 596

Android Gradle ?? - Android 빌드시스템

Android Gradle 플러그인(AGP)은 Android 애플리케이션을 지원하는 빌드 시스템으로, 다양한 유형의 소스를 컴파일하고 컴파일된 소스를 기기 또는 에뮬레이터에 연결하는 지원 기능이 있습니다. 개발자가 테스트, 구축, 서명 및 배포할 수 있는 APK 또는 Android App Bundle로 패키징합니다. 빌드 구성에서는 모든 앱 버전에 공통되는 부분을 재사용하면서 자체 코드 및 리소스 세트를 정의할 수 있습니다 * 빌드 시스템으로 - 소스를 컴파일하고, 그 컴파일된 소스를 기기에 연결해준다, - 테스트, 구축, 서명 및 배포 할 수 있도록 패키징 Gradle 란? 빌드툴 ( bulid tool ) 안드로이드 스튜디오는 코드 편집만 하고 실제 빌드는 Gradle이라는 빌드툴을 통해서 빌드된다...

Android 2022.09.17

BLE 통신 ( 저전력 블루투스 )

BLE 통신이란? 저전력 블루투스 즉, BLE(Bluetooth Low Energy)는 근거리 무선 네트워크인 WPAN(wireless personal area network)을 사용한다. WPAN 은 다른 무선 연결 방식보다 훨씬 적은 전력 소모를 자랑하며 약 10 미터 내에서 데이터 통신이 가능하다. “페어링(pairing)” 블루투스 전송 데이터는 암호화가 가능하며 이를 위해 먼저 두 장치 간 고유 정보를 교환하는 “페어링(pairing)”이라는 과정을 거친다. "본딩(bonding)" 그 다음 고유한 보안 및 식별 정보를 교환 및 저장하는 "본딩(bonding)" 절차로 이어진다 즉, 장치들은 보안 기능을 서로 교환하여 페어링되고 교환한 장치 및 페어링 정보를 저장함으로써 본딩된다. 전송 패킷 블..

개인 공부 2022.09.14

Dagger Hilt - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(13)

Hilt 란? Dagger API를 Android에서 설치하고 설정하고, 테스트 하는 과정을 쉽게 해주는 오픈소스 래퍼 라이브러리 주목적 - 테스트를 위한 의존성 주입 설정 기능 추가 - Android 앱에서 반복적으로 가장 많이 사용되는 보일러플레이트 코드를 제거 => Dagger 와 Hilt 비교 ! => 위의 그림의 형태로 구조가 자동적으로 만들어져 있다고 보면 된다. => HiltAndroidApp 만 넣는것 만으로 다른 초기화가 필요 없음 => AndroidEntryPoint 만으로 자동으로 필드주입, 인젝션이 다른곳에 있다면 자동으로 들어감 => 모듈의 설정이 약간 바뀌었다, 컴포넌트 지정 필요 x 어디에 인스톨되는지 표기 필요 

Android UI 파편화 관련

유연한 레이아웃 만들기 ConstraintLayout 사용 다양한 화면 크기에 맞게 반응형 레이아웃을 만드는 가장 좋은 방법은 ConstraintLayout을 UI의 기본 레이아웃으로 사용하는 것입니다. ConstraintLayout을 사용하면 레이아웃에 있는 다른 뷰와의 공간적 관계에 따라 각 뷰의 위치와 크기를 지정할 수 있습니다. 이러한 방식으로 화면 크기가 변경될 때 모든 뷰가 함께 이동하고 확장할 수 있습니다. ConstraintLayout으로 모든 레이아웃 시나리오를 해결할 수는 없지만 어떤 레이아웃을 사용하든 하드 코딩 레이아웃 크기를 사용해서는 안 됩니다 (특히 동적으로 로드되는 목록에는 RecyclerView를 사용해야 함) https://developer.android.com/train..

Android 2022.09.01

Dagger 기초와 중요개념 (2) - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(12)

* 컴파일 시점에서 대거를 지원하는 툴들이 지원되고 있다. => 컴포트넌트를 구현하게되면, 컴포넌트를 토대로 해서 인젝터라는게 생성이 된다. => 인젝트 매서드를 구현해줘야한다 1. Application 단에서 전역적으로 선언. => public 으로 해서 DaggerApplicationComponent.create() => 앞서 ApplicationComponent를 만들면 자동으로 Dagger라는 접두어가 달린 클래스가 자동으로 생성 된다. 2. Activity에서 super.onCreate 위에 Dagger 인스턴스를 만들어준다. (applicationContext as MyApplication).appComponent.inject(this) * 이걸로 기본 세팅은 끝났다. 주입될 대상이 될 클래스..

의존성 주입이란? (1) - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(11)

- 이제는 안드로이드 개발에 있어서 필수적인 부분으로 자리 잡았다. => 일관적으로 객체(의존성)를 만드는 방법이 정해진곳이 따로 있고, 만들어서 필요한 곳에 전달한다. 왜 의존성 주입을 사용하지 ?? => 객체(의존성)을 밖에서 만들어서 주입을 하게 하면, 코드 재사용상이 높아진다. => 클라이언트 코드의 변경 없이도 손쉽게 다른 형태의 DataSource 인스턴스를 만들 수 있다. => 객체의 생성 과정이 바뀌더라도 클라이언트 코드에 영향을 주지 않는다. => 클라이언트는 interface로만 객체를 알고 있으면 되므로, 보다 나은 설계가 가능하다. - 추상화, 멀티모듈에서 모듈별 의존성을 떼어내는 데에 매우 유용 => 코드를 테스트 가능하게 한다 ( 객체의 생성방..

도메인/데이터 계층 , DDD의 전술적 패턴 (3) - 앱 안정성 및 확장성 강화를 위한 Android 아키텍처(10)

=> 코틀린에서 invoke 해서 사용할 정도의 수준인 경우 . => 코틀린에서는 값객체를 이용한 패턴을위해 inline으로 지원해 준다. => 레포지토리란 ? 저장방식이 어떻게 되는지를 감쳐주는 역할을 한다. => 데이터스토어는 기본적으로 인터널 클래스로 만들어서 다른곳에서 노출되지 않게 만들어 준다. * Data Store는 기존의 쉐어드 프리퍼런스의 문제가 많아 대체해서 사용하기 위해서사용 하자 ( 디바이스마다 다르게 동작하는 문제라거나, 비동기가 아니라 동기적으로 동작을 한다거나 하는 문제 등 ) * 로컬을 사용하는경우 어느정도 데이터 용량이 커지기 전까지는 사용할만한다. => 할 수 있는한 가장 낮은 레벨에서 처리하는게 좋다. => 개발자가 아닌 기획자 등과 논의..

728x90
반응형