728x90
반응형

전체 글 70

Geocoder란?

Geocoder란?Geocoder는 위도(latitude), 경도(longitude) 정보를 주소(지명, 도로명, 행정구역 등)로 변환해 주는 안드로이드 내장 클래스반대로 주소를 위조/경도로 변환(Geocoding)도 가능 기본 개념Geocoder는 네트워크를 사용해 정보를 가져온다. 인터넷이 필요함 (오프라인에서는 동작 X)Google Play Services나 기상청 API를 이용해 내부적으로 데이터를 가져온다. 위도/경도를 주소로 변환 (Reverse Geocoding)val geocoder = Geocoder(this, Locale.getDefault())val latitude = 37.5665val longitude = 126.9780val addresses: List? = geocoder.ge..

FusedLocationProviderClient란?

Google Play 서비스의 위치 API를 사용해 사용자의 현재 위치를 가져올 수 있도록 도와주는 위치 서비스 객체GPS, Wi-Fi, 셀룰러 네트워크 등 다양한 수단을 조합해서 가장 효율적인 방식으로 사용자의 위치를 자동으로 결정 특징배터리 절약기존 방식인 LocationManger를 사용하는 방식보다 전력 소모가 적음Google이 자동으로 최적의 위치 제공 방식을 선택해준다.정확한 위치 제공GPS, Wi-Fi, 셀룰러 네트워크 등 여러 기술을 자동으로 조합하여 가장 정확한 위치 정보를 가져옴비동기 방식백그라운드에서도 위치 요청 가능콜백(LocationCallback)을 통해 위치 업데이트를 받는다onLocationResult()에서 위치 데이터를 처리 사용 방법객체 생성private val fuse..

LocationRequest란?

LocationRequestAndroid에서 위치 정보를 요청할 때 사용하는 설정 객체얼마나 자주, 어떤 방식으로 요청할지 설정할 수 있다.이전 방식 (Android 12 (API 31) 이하)현재의 LocationRequest.Builder()가 아닌 LocationRequest.create() 사용해 위치 요청을 설정하는 객체 생성 역할을 했다. 예시val locationRequest = LocationRequest.create().apply { priority = LocationRequest.PRIORITY_HIGH_ACCURACY // 정확도가 올라가지만 배터리 소모가 커지는 옵션 interval = 10000 // 10초마다 위치 업데이트 fastestInterval = 500..

6. 날씨 API 연동 (기상청 API)

기상청 API 선별기상청 API를 사용하기 위해서 먼저 어떤 데이터가 필요한 지 특정해야 한다만들고자 하는 날씨앱에는 현재, 단기예보, 주간예보 등이 필요.먼저 현재 위치에 맞는 현재 날씨를 가져오기 위해서 기상청_단기예보(구)_동네예보 조회서비스를 선택기상청_단기예보(구)_동네예보 조회서비스는 현재 날씨 정보와 단기 예보(6시간 이내)를 제공 기상청_단기예보 ((구)_동네예보) 조회서비스초단기실황, 초단기예보, 단기((구)동네)예보, 예보버전 정보를 조회하는 서비스입니다. 초단기실황정보는 예보 구역에 대한 대표 AWS 관측값을, 초단기예보는 예보시점부터 6시간까지의 예보를,www.data.go.krAPI 키 발급 절차공공데이터포털 로그인 오픈 API 활용신청이와 같이 발급받은 인증키(Decoding)를..

5. 위치 정보 연동하기

앱의 메인홈화면에 사용될 현 위치 정보를 가져오고 표시하도록 작업을 진행하려고 한다.아래와 같이 단계별로 진행할 예정위치 정보 연동을 위한 권한 설정FusedLocationProvider를 이용한 위치 정보 가져오기, build.gradle 의존성 추가코드 수정 1. 권한 설정 (AndroidManifest.xml) // 정밀 위치 정보 (GPS) // 대략적인 위치 정보 (네트워크 기반)권한을 AndroidManifest.xml에 추가  2. 위치 정보 가져오기 (FusedLocationProvider 사용)의존성 추가 (build.gradle)dependencies { implementation 'com.google.android.gms:play-services-location:21.0.1'}의..

안드로이드 에뮬레이터 위치 정보 초기화 이슈

에뮬레이터 위치 정보 관련 이슈진행 중 에뮬레이터 위치 정보가 초기화 되어있지 않음을 확인하여 수정했다. 내용위치 연동 서비스를 확인하기 위해 에뮬레이터를 실행했지만 현 위치 정보가 갱신되지 않았고 "위치 정보를 가져올 수 없습니다." 텍스트가 표시되고 있었다. 확인 방법에뮬레이터의 현재 Location 정보를 확인에뮬레이터의 현재 위치가 세팅되어 있지 않았다.저 구글맵의 지도 모습도 흰색으로만 표시되었고, 도시 위치 검색도 먹통인 상태였다. 해결방법File 탭  > Settings 창 실행  > SDK Tools Tab 검색Android Emulator 부분 체크하여 적용 및 설치검색창에 Seoul을 검색하고 세팅을 한 모습이다.

4. 홈화면 UI 구성하기2

이어서 일간/주간 날씨를 표시하는 레이아웃을 구성하려고 한다. 복잡한 요소는 우선 생략, RecyclerView와 LinearLayout을 활용할 예정모든 레이아웃을 하나의 xml에 작성하는 건 가독성이 떨어지지만 추후에 분리할 예정 1. 일간/주간 날씨 레이아웃 추가 (activity_main.xml)앞서 만든 상단 CardView 레이아웃 아래에 xml을 추가한다. //아이템 xml 추가 예정 //아이템 xml 추가 예정 2. 일간/주간 날씨 item 추가리스트 요소로 들어갈 item xml을 만든다.일간 아이템 (item_daily_weather.xml): 일간 날씨 xml은 수직 LinearLayout으로 구성  주간 아이템 (ite..

3. 프로젝트 시작 및 홈화면 UI 구성하기

1. 프로젝트 시작하기 2. 메인 홈 UI 구성하기메인 xml (activity_main.xml) 추가xml 추가하다가 알게 된 건 layout 폴더 위치가 아닌 다른 폴더에 xml이 위치해 있다면 오른쪽 Design 미리 보기를 지원하지 않는다는 것이었다. 현재 위치 (TextView) 추가: 상단 가운데 위로 위치하도록 추가한다. 카드뷰 (현재 온도, 날씨 이미지, 날씨 텍스트, 최고/최저 온도) 추가카드 뷰를 추가하여 자식 뷰를 추가할 영역 생성ConstraintLayout을 만들어 아이템을 추가하고 생각한 디자인에 맞게 배치 및 크기 조절최고/최저 온도는 한줄에 텍스트 뷰 두 개로 표시하므로 LinearLayout으로 묶어주었다.sunny.png 파일을 res/drawable 경로에 ..

2. 간단한 날씨 앱 개발을 위한 설계 - 도시 검색 기능

도시 검색 기능도시 검색 또는 템플릿을 선택하여 해당 도시의 날씨 정보를 보여준다날씨 정보 표시는 메인 홈과 흡사할 것으로 예상 1. UI 구성 (예상)기능UI 요소 (예상)추가 요소도시 검색 기능SearchView, EditText, RecyclerViewTextWatcher로 실시간 검색 처리검색 결과 표시RecyclerView, CardView클릭 이벤트 처리 (Intent)현재 위치 표시TextViewGPS 데이터 활용온도 표시TextView, ImageView날씨 아이콘 표시최고/최저 온도LinearLayout, TextView아이콘 추가 가능이벤트 처리:Toast 메시지로 위치 권한 요청 상태 알림 2. UI 제외 기타 필요기능기능안드로이드 요소추가 요소API 호출Retrofit, GsonCo..

1. 간단한 날씨 앱 개발을 위한 설계 - Main Home

안드로이드 기능과 기술 스택 정리 언어: KotlinIDE: Android StudioMain Home위치 기반 서비스와 기상청 API를 이용해 현재 위치의 날씨 정보를 표시한다. 1. UI 구성 (예상)기능UI 요소 (예상)추가 요소현재 위치 표시TextViewGPS 데이터 활용온도 표시TextView, ImageView날씨 아이콘 표시최고/최저 온도LinearLayout, TextView아이콘 추가 가능일간/주간 날씨 예보RecyclerView, CardViewViewHolder 패턴 활용대기질 정보TextView, ProgressBar색상 변화로 시각화자외선 지수TextView, ProgressBar위험 수준에 따라 색상 변경바람 정보ImageView(방향 표시), TextView화살표 회전 애니메..

728x90
반응형