Android/Library

JetBrains에서 만들어진 Kotlin을 사용하여 연결된 시스템에서 비동기 서버 및 클라이언트를 구축하기 위한 오픈 소스 프레임 워크 설치, 사용이 간편하여 실행 파이프 라인에 단계를 추가하려는 경우 확장 가능하다. Coroutine의 비동기 속성으로 인해 여러 요청 수신이 가능하고 MultiPlatform이기도 하다. 즉 서버뿐 아니라 Ktor Client를 써서 Android, iOS, JS에서 마이크로서비스를 사용할 수도 있다. Ktor Client를 쓰면 요청 생성, 응답 처리 및 인증, Json 직렬화 등과 같은 기능으로 기능을 확장할 수 있다. Creating a client application | Ktor ktor.io 구현할 Android는 Client이기 때문에 Client만 알아보..
프로젝트를 진행하다 webp 이미지 파일을 표현하기 위해 Fresco의 SimpleDraweeView를 사용하여 동적 Image를 표현하였다. 사용하는 속성들을 알아보기 위해 구글링을 좀 해보았는데 레퍼런스가 다른 것들에 비해 적어 한눈에 보기 위해 포스팅한다. Fresco는 Facebook에서 공개한 이미지로딩 라이브러리 2.3(진저브레드) 이상 버전의 안드로이드를 지원 Fresco의 장점 간편한 이미지 변환 Fresco의 단점 ImageView가 아닌 DraweeView를 사용해야 함 DraweeView가 wrap_content를 지원하지 않아 요청할 이미지의 정확한 사이즈를 지정해야 함 특이사항 SimpleDraweeView는 ImageView를 부모 클래스로 가지고 있다 하지만, 절대로 setIm..
데이터를 이용한 다중 Marker를 찍고 마커가 많을 시 GoogleMap이 지저분 하지 않기 위해 클러스터를 통해 마커를 모아주기 GoogleMap API 사용과 기본 마커 찍기 Android Google Map API 사용 방법 및 예제 Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com Google Developers Console 사이트에 접속 후 프로젝트 생성 적당한 프로.. bumjae.tistory.com 코로나 진료소 API를 찔러 위도, 경도를 받고 다중 마커를 찍었는데 마커가 많아 가독성을 흐려 클러스터링을 사용하고 싶어 구현해보았다. Clustering ..
Android에서 위도,경도나 주소를 이용해서 서로를 구하는 경우에 GeoCoding이 쓰인다. GeoCoding(지오코딩) 주소를 가지고 위도,경도를 구하는 것 Reverse-GeoCoding (역지오코딩) 위도,경도를 가지고 주소를 구하는 것 (2023-02-14) GRPC 오류 유의 GeoCoding 시 try-catch문을 이용해서 GRPC 오류가 났을때의 예외를 잡는다 1. 많은 주소 Main Thread에서 동기화 작업시, 주소 변경은 시간을 많이 사용하는 작업, 비동기 작업으로 수행 2. 불안정한 인터넷 상황 3. 변환하는 좌표값(위도, 경도)가 소수점 3자리를 넘어가면 가끔 발생 GeoCoding - 주소나 지명 -> 위치 (위도,경도) //주소로 위도,경도 구하는 GeoCoding fun..
Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com Google Developers Console 사이트에 접속 후 프로젝트 생성 적당한 프로젝트 이름을 짓고 만들기 Google Maps Android API를 사용하려면 추가 설정 필요. API 및 사용 서비스 사용 설정을 클릭 검색으로 Maps SDK for Android를 찾아 선택 후 사용 클릭 왼쪽 상단 메뉴 아이콘 클릭 후 API 및 서비스 사용자 인증 정보 클릭 사용자 인증 정보 만들기를 클릭하여 API 키 클릭 생성된 Key 값 Edit API key를 클릭하거나 만들어진 API key를 클릭해 사용자 인증정보..
Android에서 복잡한 뷰를 쉽게 개발할 수 있게 해주는 Airbnb의 Epoxy 라이브러리 Epoxy Airbnb에서 만든 오픈소스 라이브러리 여러 뷰 타입을 갖는 RecyclerView에서 효율적으로 사용 가능, 이를 구현하는데 필요한 boilerplate code를 제거 디자인 변경에 빠르게 적응하고코드를 모듈화하고 관리하기 쉽게 만들기 위한 많은 인터페이스를 제공 예를 들어 위의 화면들과 같이 3개의 각각 다른 뷰타 입을 가지는 화면이 있다. 이를 RecyclerView에서 구현하려면 다음과 같은 것들이 필요 RecyclerView Object RecyclerView.ViewHolder RecyclerView.Adapter Epoxy를 사용하면 아래의 컴포넌트들로 구현할 수 있다. Epoxy M..
Google에서 제공하는 ORM(Object-relational mapping) SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하며 SQLite를 완벽히 활용함 실행 기기에 앱 데이터 캐시를 만들고 네트워크 연결 여부와 관계없이 사용자가 콘텐츠를 탐색할 수 있음 ORM - Object Relational Mapping, 객체-관계 매핑 객체 지향 프로그래밍은 클래스를 사용하고 관계성 데이터 베이스에서는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간에 불일치가 발생함 ORM은 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결함 즉, 객체를 통해 간접적으로 데이터 베이스의 데이터를 다룸 Persistant API라고도 할 수 있음 Persistence(..
Navigation 네비게이션은 Application 자체의 화면 구성을 쉽게 구현하고 화면의 흐름을 시각적으로 보여줄 수 있는 구성 요소이다. 기존 Activity or Fragment들 간 데이터 전달 or 화면 이동과 같이 이동되어야 하는 code 구현을 심플하고 안정적으로 처리한다. 개발자가 정의한 UI Graph를 기반으로 화면을 쉽게 전환하고, 유지보수가 매우 쉬워진다 NavGraph(탐색 그래프) 모든 탐색 관련 정보가 하나의 중심 위치에 모여 있는 XML 리소스. Destinations과 이들을 연결하는 Actions들을 시각화해서 볼 수 있다. Destinations이란 Navigation을 이용해 이동하는 앱의 목적지를 의미 NavHost 탐색 그래프에서 대상을 표시하는 빈 컨테이너. ..
Android 뿐만 아니라 프로그래밍에서 널리 사용되는 기법으로 다양한 이점이 있다. 코드의 재사용성 리펙토링 용이성 테스트 용이성 Class에서 다른 Class를 참조하는 방법은 크게 3가지가 있다. 1. Class 에서 필요한 종속 Class 를 인스턴스화 하는 방법 위와 같은 방법은 Car와 Engine이 밀접하게 연결되어 있기 때문에 문제가 발생할 수 있다. 만약 Engine을 상속받은 GasEngine, ElectricEngine Class가 있을 때 쉽게 대체할 수 없다. Engine이라는 한 가지 유형을 사용하기 때문에 수정하면 연관된 코드를 수정해야 할 가능성이 있다. Test를 더욱 어렵게 한다. Engine을 FakeEngine으로 바꿔서 Test 하려면 Engine과 연관된 코드를 수..
bumjae
'Android/Library' 카테고리의 글 목록