일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- signing
- 안드로이드 개발 레벨업 교과서
- ios
- gradle
- unreal
- Android O
- GCM
- Google Cloud Messasging
- Unchecked Exception
- BLOCK
- Activity 수명 주기
- 배포
- In-app Billing
- Google Cloud Messasing
- ios9
- NSURLConnection
- Android O Preview
- Android
- AccountManager
- android studio
- 페이스북
- service
- 다른 앱에서 열기
- Push
- contentprovider
- HTTP
- xcode
- 데이터 공유
- 트위터
- 카카오톡
- Today
- Total
목록프로그래밍 (56)
노블의 개발이야기
Android Gradle Plugin 3.1.2 마이그레이션 buildToolsVersion 새로운 android gradle plugin 3.x를 사용하면 더 이상 빌드 도구의 버전을 지정할 필요가 없습니다 (이제 android.buildToolsVersion 속성을 제거 할 수 있습니다).Gradle 3.x 이상에서는 사용중인 Android 플러그인 버전에 필요한 최소 Build Tools Version을 자동으로 사용합니다. Android Plugin for Gradle Release Notes Android Studio 3.0: buildToolsVersion not found in gradle files 기본적으로 플러그인은 사용중인 Android 플러그인 버전에 필요한 최소 빌드 도구 버전을..
1. 그래들 소개 그래들은 앤트의 유연함과 메이븐 규약의 특성을 지닌, 의존성 관리가 되는 자동화 빌드 도구로 그래들을 소개하고 있습니다. 앤트는 Task 중심의 빌드 도구로, Task를 자바로 작성하고 이를 확장해 XML에서도 사용할 수 있어 Task 확장성을 통한 유연함을 제공합니다. 그래들도 앤트처럼 Task 개념이 있고 메이븐처럼 플러그인을 이용해 새로운 작업을 수행할 수 있습니다. 간단히 표현하면, 그래들은 차세대 빌드 도구로 메이븐과 앤트의 장점을 더한 도구입니다. 그래들은 유연함을 극대화하기 위해 XML이 아닌 그루비로 작성되었습니다. 기존에는 같은 내용을 XML로 반복하여 작성했지만, 그래들은 반복문을 통해 좀 더 간결하게 작성할 수 있습니다. 그런데 그래들을 사용하기 위해 그루비를 능숙하..
Google Cloud Messasing (GCM) Android 클라이언트는 Android 기기에서 실행되는 클라이언트 앱입니다. 클라이언트 코드를 작성하려면 GoogleCloudMessaging API 및 Android Studio with Gradle을 사용하는 것이 좋습니다. GCM Android 클라이언트를 실행하기 위한 요구 사항은 다음과 같습니다. GCM을 사용하려면 Google Play Store 앱이 설치된 Android 2.2 이상을 실행하는 기기 또는 Google API가 있는 Android 2.2를 실행하는 에뮬레이터가 필요합니다. Google Play Store를 통해 Android 애플리케이션을 배포하는 경우에만 국한되지 않습니다. 하지만 Google Play Service를 통..
메시지를 보내고 받을 수 있는지 확인하려면 클라이언트 앱이 GCM에 등록해야합니다. 이 프로세스에서 클라이언트는 고유한 등록 토큰을 가져와서 서버로 전달합니다. 서버는 토큰을 저장하고 클라이언트 앱에 받았다는 통지를 다시 보냅니다. 이 프로세스에서 교환되는 등록 토큰은 앱 서버가 특정 클라이언트에 메시지를 보내는 데 사용하는 클라이언트 앱 인스턴스 식별자와 같은 것입니다. GCM에 등록하려면 다음 단계를 따르세요 클라이언트 앱은 Instance ID API를 사용하여 등록 토큰을 얻습니다. 이 API를 호출할 때 인증된 엔티티를 앱 서버의 Sender ID로 설정하고 Scope를 GCM에 대한 적절한 값(플랫폼에 따라 다름)으로 설정해야 합니다. 클라이언트 앱은 등록 토큰을 앱 서버로 전달합니다. 앱 서..
메시지 구성 요소 앱 서버는 기본 구성 요소(대상, 메시지 옵션 및 페이로드)로 부터 다운스트림 메시지 요청을 작성합니다. Target (필수) 앱 서버가 메시지를 보내면 메시지의 목적지를 식별하는 대상(target)을 지정해야합니다. to 필드를 사용하여 대상(target)을 지정합니다. 이 필드에는 signle registration token, a topic 또는 a notification key (디바이스 그룹 보내기를 위한)가 포함될 수 있습니다. Option 앱 서버는 클라이언트 앱에 다운 스트림 메시지를 보낼 때 다양한 옵션을 설정할 수 있습니다. 예를 들면, 메시지를 후속 메시지로 대체해야하는지 여부 Payload 다운스트림 메시징의 경우 GCM은 notification과 data라는 두가..
Google Cloud Messasing (GCM) 은 개발자가 서버와 클라이언트 앱 간에 메시지를 보낼 수 있는 무료 서비스입니다. 서버에서 클라이언트 응용프로그램까지의 다운스트림 메시지와 클라이언트 응용프로그램에서 서버로의 업스트림 메시지가 포함됩니다.예를 들어, 경량 다운스트림 메시지는 클라이언트 응용프로그램에 "새 전자 메일" 알림의 경우 처럼 서버에서 새 데이터가 있음을 알릴 수 있습니다. 인스턴스 메시징과 같은 사용 사례의 경우 GCM 메시지는 최대 4KB의 페이로드를 클라이언트 앱에 전송할 수 있습니다. Architectural Overview GCM 구현에는 Google 연결 서버, HTTP 또는 XMPP 프로토콜을 통해 연결 서버와 상호 작용하는 사용자 환경의 앱 서버 및 클라이언트 앱이..
In-app Billing Overview (인앱 결제 개요) Android Developer: Implementing In-App Billing 애플리케이션은 기기에 설치되어있는 Google Play 앱에 의해 노출되는 API를 사용하여 인앱 결제 서비스에 액세스 합니다. Google Play 앱이 애플리케이션과 Google Play 서버 사이에서 결제 요청과 응답을 전달합니다. (실제로는, 애플리케이션이 Google Play 서버와 직접 통신하는 일은 없습니다.) 애플리케이션은 프로세스 간 통신(IPC)으로 Google Play 앱에 결제 요청을 보내고 Google Play 앱으로 부터 응답을 받습니다. 애플리케이션은 자신과 Google Play 서버 사이의 네트워크 연결을 관리하지 않습니다. Goo..
Keystore 암호화 Jenkins로 릴리스 빌드를 할 때 keystore 파일과 그에 따른 패스워드 등의 정보를 부주의하게 빌드 스크립트 등에 평문으로 기재하고 체크인해 버리면 필요 이상으로 정보를 공개되고 맙니다. 소스코드에다 keystore 파일, keystore의 Alias나 패스워드까지 있으면 apk에 개발자와 똑같은 서명을 할 수 있어 악용할 위험성도 있습니다. 악용을 방지하기 위해서는 이런 파일과 정보를 암호화해야 합니다. openssl 커맨드를 사용한 공개키 방식 암호화 openssl 커맨드를 사용하여 공개키 방식 암호화를 합니다. app/sample.keysotre : 릴리스 빌드 서명에 필요한 keystore 파일 app/signingconfig.properties : keystore..
2.1.1. 액티비티란? AppCompatActivity는 액티비티를 상속하며, 액티비티를 상속함으로써 머터리얼 디자인(Material Design)의 가이드라인에 따른 AppCompat 라이브러리를 제대로 활용할 수 있습니다. AppCompatActivity를 상속할 수 없을 때는 다음과 같이 android.support.v7.app.AppCompatDelegate를 이용합니다. public class MainActivity extends Activity { AppCompatDelegate mDelegate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDelegate ..
Error vs Exception Error java.lang.Error 클래스의 서브클래스들이다. 에러는 시스템에 뭔가 비정상적인 상황이 발생했을 경우에 사용된다. 그래서 주로 자바 VM에서 발생시키는 것이고 어플리케이션 코드에서 잡으려고 하면 안된다. OutofMemoryError나 ThreadDeath 같은 에러는 catch 블럭으로 잡아도 대응 방법이 없다. 따라서 시스템 레벨에서 특별한 작업을 하는 게 아니라면 어플리케이션에서는 이런 에러에 대한 처리는 신경 쓰지 않아도 된다. 오류(Error)는 시스템에 비정상적인 상황이 생겼을 때 발생한다. 이는 시스템 레벨에서 발생하기 때문에 심각한 수준의 오류이다. 개발자가 미리 예측하여 처리할 수 없기 때문에 애플리케이션에서 오류에 대한 처리를 신경쓰지..