개발/인스턴트앱(Instant app) 6

프로가드(proguard)란

Android Proguard란 코드 난독화 및 안드로이드 앱의 용량을 줄여주는(불필요한 멀티덱스를 제거하여) 프로그램입니다. 코드가 노출되면 안 되는 앱이나, 용량이 큰 앱에 적용하는 것이 좋은데, 저의 경우는 코드를 따로 난독화하여 비밀로 할 필요가 없어서, 용량을 줄이는 용도로만 사용했습니다. 적용하는 방법은 간단한데 gradle 파일에 위의 debug{}와 release{} 부분을 추가하면 됩니다. debug{} 부분에는 proguardFile 'proguard-debug.pro' 를 추가하여, 디버그 모드일 때는 난독화가 되지 않도록 합니다. 간단하게 Hello World를 출력한는 앱의 apk파일을 만들어봤는데 그냥 빌드할 때랑 프로가드를 적용한 후, 빌드했을 때의 결과입니다. 2.3MB ->..

인스턴트 앱 만들기 결론

스타트업을 3년 반 동안 하며, 4가지 자체 서비스를 만들어봤고, 10가지 정도의 외주 프로젝트를 진행하며 다양한 웹/앱/솔루션 등을 개발해보고 경험해보았다. 그렇게 많은 경험은 아니지만, 적다고도 할 수 없는 경험을 해본 것을 바탕으로 인스턴트 앱의 필요성을 생각해봤을 때 결론은 스타트업에는 필요없다. 2가지 이유가 있는데 1. 딥링크(Deep Link)로 대체 가능하다. 2. 유저 유입률이 크게 차이날 것 같지 않다. 위의 이유를 설명하자만 1. 딥링크(Deep Link)로 대체 가능하다. 이 부분은, 모바일에서 어떠한 링크를 클릭했을 때, 앱 화면으로 이동하는 것을 경험해봤을 것이다. 이것이 딥링크이다. 딥 링크를 통해, 앱의 특정 페이지로 이동시키므로서, 앱 다운로드없이 앱 경험이 가능하도록 할 ..

인스턴트 앱 만들기(3)

APK파일을 만드는 것 까지 해봤으니 이제는 진짜 인스턴트앱을 만듭니다. 이전에 새로운 모듈을 만들었던 것 처럼 new module을 클릭하여 instant app을 클릭합니다. 여기 프로젝트 파일을 보면 base-feature, app, instantapp 이렇게 3개 모듈이 있는 것을 확인할 수 있습니다. instantapp 의 gradle 로 들어가서 마찬가지로 base-feature를 적용해줍니다. 똑같이 base-feature gradle 에서도 instantapp을 연결해주고 빌드를 하면 마찬가지로 빌드가 됩니다. 그러면 인스턴트앱이 완성되었습니다. 인스턴트 앱을 빌드하면 기존의 .apk 이렇게 생성되는 것이 아니라 .zip 파일이 생성됩니다. 여기까지가 인스턴트 앱 만들기였습니다. 제 글은 ..

인스턴트 앱 만들기(2)

이전 글에서 base-feature에 대한 것 까지 했고 나머지를 시작해봅니다. 이제 base-feature가 만들어졌으니, feature1(APK용) feature2(인스턴트앱용) 을 만들어봅시다. 우선 new module 을 만들어서 Phone & Tablet을 선택하고 모듈 이름을 App으로 만듭니다. 그다음 Add No Activity 를 선택하고 자 그렇다면 여기까지가 feature1 (APK용) 이 만들어졌습니다. 그렇다면 base-feature 와 어떻게 연결할까요? 일단 아래의 순서대로 갑니다. App 모듈의 manifest 파일의 application 부분을 삭제합니다. (app 모듈입니다 base-feature 모듈이 아닙니다.) 또한 gradlew의 dependencies를 수정해줍니..

인스턴트 앱 만들기(1)

실제로 인스턴트앱을 만들어 봅니다. 인스턴트 앱의 구조는 아래와 같습니다. 그림에서 Feature 1, Feature 2, Base-Feature 이렇게 3가지로 나타나있는데 Feature1 - 기존의 APK 파일을 만드는 부분 Feature2 - 인스턴트 앱 zip파일 만드는 부분 (인스턴트앱은 확장자가 .apk가 아니라 .zip입니다.) Base-Feature - 앱의 기본이 되는 모듈 그렇다면, 왜 이렇게 형태가 나눠질까요? 이유는 인스턴트 앱의 여러 제약사항이 있는데 (참조) 중요한 이유는 용량 제한 때문입니다. 기존 원래 앱의 모든 코드를 인스턴트 앱에 동작하게 만들면 가장 좋겠지만, 용량 및 기능 제한 때문에 불가능함으로 Base-Feature 에 앱의 핵심적인 기능을 하는 코드를 삽입하고 모..

인스턴트앱(Instant app)이란?

1. 인스턴트 앱(Instant app)이란? 인스턴트 앱이란 플레이스토어에서 앱을 다운받지 않고 바로 앱을 사용해볼 수 있게 구글에서 제공하는 서비스입니다. 국내에 대표적인 구인구직 사이트인 "원티드"에서 이 기능을 제공하고 있는데 다른 앱과 다르게 "사용해보기" 버튼이란 것이 보입니다. 이 버튼을 누르면 다운로드 없이 바로 앱이 실행되는 것을 확인하실 수 있습니다. 그렇다면, 인스턴트 앱이란 무엇이고, 어떤 면이 다른지 알아보겠습니다. 2. 기존 설치형 앱(Native app)과의 차이? 위의 보이는 원티드의 설치형 앱과, 인스턴트 앱을 실행했을 때의 화면입니다. 왼쪽이 일반적인 설치형 앱, 오른쪽이 인스턴트 앱입니다. 얼핏 보기에는 비슷해 보입니다만, 왼쪽 설치형 앱의 하단 부분에 더 다양한 메뉴가..