7월, 2018의 게시물 표시

단축URL을 생성하는 안드로이드 앱 만들기1

이미지
안드로이드 기본을 배운 다음에는 구글플레이에 자신이 만든 앱을 직접 올려보는 것이 실력향상에 도움이 됩니다. 만들고 싶은 앱을 정한 다음 구현하고 싶은 기능들을 검색하면서 이것저것 시도해보는 것이 많은 도움이 됩니다. 간단한 앱을 만들어보면서 안드로이드에 대해 좀 더 알아보겠습니다. 단축 URL 앱 기능 이번 포스트에서는 단축 URL을 생성하는 앱을 만들어보겠습니다. 이 앱을 만들면서 배울 수 있는 것은 다음과 같습니다 네트워크 라이브러리 retrofit 사용 방법 gson 사용 방법 네이버 API 사용 방법 셈플 앱은 아래 링크에서 받아볼 수 있습니다. 단축 URL 앱의 기능은 크게 두 가지 입니다. 입력받은 URL을 API 호출해서 단축URL로 만들기 단축 URL을 클립보드로 복사하거나 다른 앱으로 공유하기 사용자 URL 입력화면 단축URL 생성 후 클립보드 또는 다른 앱으로 공유하기 API 사용 신청하기 우선 단축 URL을 만들기 위해서는 네이버 API가 필요합니다. 네이버 개발자센터 에 들어가보면 서비스 API 항목에  단축URL 소개 가 있습니다. 네이버에서 제공하는 API로 하루에 25,000 요청을 지원해줍니다. 오픈 API 신청버튼을 클릭하여 애플리케이션 이름, 사용 API를 입력하는 페이지가 나옵니다. 네이버 API 신청 페이지 애플리케이션 이름은 개발하려는 앱 이름을 입력합니다. 사용 API에는 단축 URL 서비스를 선택합니다. 비로그인 오픈 API 서비스 환경 -> 앱 패키지 이름은 프로젝트의 패키지명을 입력합니다. 등록이 완료되면 내 애플리케이션 항목에 앱이 추가되고 Client ID와 Client Secret을 찾을 수 있습니다. 발급받은 Client ID와 Client Secret 키는 네이버 API를 사용할 때 필요합니다. APK 키들을 한곳에 모아두는 것이 개발하거나 유지 보수할 때 편리하

RecyclerView 에서 notifyItemChanged()의 payload 이해하기

이미지
noti fyItemChanged()의  payload RecyclerView를 사용하다 보면 특정 position 항목만 갱신해야 될 때가 있습니다. 예를들어 버튼을 클릭했을 때, RecyclerView의 마지막 항목만 애니메이션하거나 마지막 항목의 텍스트나 이미지를 업데이트할 수 있습니다. 안드로이드 RecyclerView는 Adapter의  onCreateViewHolder() ,   onBindViewHolder() 를 override해서 구현합니다. 보통 특정 position 항목만 갱신할 때는 notifyItemChanged(position) 을 사용하고 여러개가 변경된 경우 notifyItemRangeChanged(positionStart, itemCount) 을 사용합니다. 하지만  onBindViewHolder() 는 대부분 뷰를 초기화 작업들이 있기 때문에 모든 View를 업데이트하지 않고 특정 View만 Animation 한다던가 TextView의 text만 변경하는 작업들을 하고 싶을 때는 뭔가 조건문으로 처리해야 할 필요성이 생깁니다. 그래서 Recycerview에 payload라는 기능이 추가되었습니다. payload란 무엇일까? notifyItemChanged(position, payload) 에서 payload는 아답터의  onBindViewHolder()가  호출될 때 넘겨받는 객체입니다. 특정 position의 holder를 업데이트할 때 payload 값으로 구분하여 애니메이션 하거나 뷰를 업데이트할 수도 있습니다. 사용하는 방법? notifyItemChanged(int position, Object payload) 업데이트하고 싶은 position 항목에게 payload를 전달합니다. notifyItemRangeChanged(int positionStart, int itemCount, Object payload) 업데이트하고 싶은 범위를 지정하여 모든 항목에 payload를 전

Android App Bundle 소개

이미지
app bundle APK가 커지는 이유 안드로이드 App Bundle 은 새로운 업로드 방법으로 앱 크기를 줄일 수 있습니다. 기존에는 Play Console 에 APK 를 업로드하여 배포를 진행했지만, 새로운 배포 방법은 사인 된 App Bundle을 Play Console 로 배포를 하면 사용자의 기기에 맞는 언어, 리소스, CPU 아키텍처에 맞는 부분만 빌드하여 APK를 생성하기 때문에 사용자가 다운로드 받는 APK 용량을 줄일 수 있습니다. APK 가 커지는 이유에는 몇 가지 요소가 있습니다. 1. 멀티 CPU 아키텍처를 지원하기 위해 여러 가지 네이티브 라이브러리를 추가하는 경우 2. 멀티 스크린(dpi)를 지원하기 위한 이미지와 같은 리소스들이 증가 3. 다국어를 지원하는 앱인 경우 String 파일 증가 4. 자주 사용되지 않는 기능들의 증가 Korea I/O RECAP 2018 -Tian Lim 발표 현장 App Bundle 이란? App Bundle 이란 APK 와 비슷하지만 모든 코드, 리소스, CPU 아키텍처와 메타데이터를 압축한 zip 파일입니다. 그래서 Google Play는 App Bundle에서 사용자 기기에 필요한 코드와 리소스만을 선택해 빌드될수 있는 것입니다. App Bundle 을 빌드하면 .aab 파일이 생성됩니다. 빌드된 aab 파일을 Play Store 에 업로드하면 Play Store 가 각각 기기에 최적화된 APK를 빌드합니다. Dynamic Delivery 란 사용자 기기에 필요한 리소스만을 다운로드를 가능하게 해주는 구글의 워크플로우입니다. Dynamic Delivery는 Android 5.0(SDK 21) 이상부터 사용할 수 있는 있으며, Split APK 메커니즘을 이용한다고 합니다. 즉, 분리된 APK를 하나의 앱으로 만들어주는 것으로 여러 가지 기능을 분리하고 나중에 기능이 필요로 할 때 다운로드 받아 설치됩니다. 따라서 Dynamic Deli