글

라벨이 android인 게시물 표시

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

이미지
단축URL을 클립보드로 복사하기 및 커스텀 버튼 넣기 이전 글에 이어서 단축 URL을 생성하는 안드로이드 앱을 계속해서 설명하겠습니다. 이전 글에서는 네이버 API를 등록하고 retrofit을 사용해서 네트워크 요청하는 방법을 설명했습니다. 이번 포스트에서는 네이버 API를 이용하여 생성한 단축 URL을 클립보드로 복사하거나 다른 앱으로 공유되도록 구현해 보겠습니다. 생성된 단축 URL을 Intent를 사용하면 아래 사진처럼 안드로이드가 사용 가능한 앱 리스트를 보여줍니다. 구현된 화면에서는 Bottom Sheets 뷰로 앱 리스트가 노출되고 있습니다. 이는 안드로이드가 기본적으로 Intent를 요청했을 때 노출되는 화면이기 때문에 낮은 OS 버전이거나 다른 테마를 사용하는 경우 다르게 나올 수 있습니다. 커스텀 기능 및 앱 공유 리스트 첫 번째 항목에 ' 복사하기' 는 개발자가 직접 추가한 버튼입니다. Intent.ACTION_SEND 로 URL을 보내면 URL을 실행할 수 있는 모든 앱 리스트를 보여줍니다. 이 리스트 영역에 개발자가 원하는 앱 버튼을 추가할 수 있습니다. 복사하기 버튼을 첫 번째에 위치시키고 클릭하면 단축 URL을 클립보드로 복사한 다음 토스트(Toast) 메시지가 노출되도록 구현했습니다. 공유 인텐트 만들기 Intent를 생성하여 안드로이드에게 URL Text를 공유할 수 있는 앱 리스트를 요청합니다. Intent shareIntent = new Intent(); shareIntent.setAction( Intent.ACTION_SEND) ; shareIntent.setType( "text/plain" ); shareIntent.putExtra( Intent.EXTRA_TEXT, url ); Intent.ACTION_SEND 로 액션을 설정하고 text/plain으로 타입을 설정합니다. 그리고 Intent.EXTRA_TEXT ...

단축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) 업데이트하고 ...

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...