본문 바로가기

프로그래밍/Android, iOS27

[Android] 테스트 기기 설정 안드로이드 설정(Android 12 버전의 A42를 기준으로 작성) 1. 필요 없는 앱들 정리 2. 개발자 모드 활성화 - 화면 켜짐 상태 유지(충전시) - 애니메이션 배율 0.5배 - USB 디버깅 활성화 3. 잠금화면 설정 제거(테스트폰에서 잠금화면 필요 없음) 4. 화면 자동 꺼짐 시간 5분 개인적으로 설정하는 부분 1. WIFI 2. 절전모드 3. 블루투스, NFC, GPS 같은 기능 풀기 4. 편안하게 보기(화면 온도) 설정 5. 배경화면, 테마 설정(나는 초록색 중심으로) ADB 설정 방법(Android Debug Bridge) adb devices adb tcpip 5555 (usb 연결된 상태에서) 연결 빼고 adb connect ip_address:5555 adb devices로 다시 확.. 2023. 10. 31.
[Android, iOS] 스토어 배포 정리 이미지 준비물 1. 그래픽 이미지(1024 * 500), 광고 목적 2. 휴대전화 이미지 2장(1080 * 1920), 최소 기준이 이렇고 테블릿 사진도 추가 가능하다. 3. iPhone 이미지 (6.7 디스플레이, 6.5 디스플레이, 5.5 디스플레이) 4. iPad 이미지(12.9 디스플레이 6세대, 12.9 디스플레이 2세대) *디자이너분이 있으면 부탁드리고 없으면 적당히 만들어주는 사이트를 이용하자. 5. 앱 아이콘은 1024 사이즈로 받아서 https://www.appicon.co/ 에서 Android, iOS용으로 아이콘을 뽑으면 된다. 1. 앱 아이콘 적용 안드로이드 쪽은 사이즈 별로 만들어진 아이콘을 붙여 넣으면 된다. iOS의 경우 AppIcon.appiconset 파일을 통째로 교체하면.. 2023. 10. 23.
[Android] Splash Screen API 분석 안드로이드 12(API 31, 32)부터 Splash Screen API가 추가되었다. 기존에 Splash Screen을 커스텀해서 사용하던 방식을 개선하고자 공식적으로 지원하는 API이다. 앱의 실행 상황(Cold start)에 맞게 적절한 리소스를 사용하기 위해 API를 제공한다. 앱이 처음 시작되는 경우 Cold start에 해당한다. 앱을 실행시키기 위한 프로세스단 처리부터 시작된다. Warm Start의 경우 액티비티의 onCreate부터 호출이 된다. Hot Start의 경우, 액티비티가 메모리에 존재하여 초기화를 하지 않는다. 메모리가 달라진 경우에 한정되어 다시 만드는 처리를 진행한다. 안드로이드 12부터 스플래시 스크린 API를 공식적으로 제공하여 애니메이션을 주거나, Splash Scr.. 2023. 10. 22.
[iOS] 앱스토어 심사 거절 정리 경험했던 앱스토어 심사 거절 사유를 정리합니다. Guideline 2.1 - Performance - App Completeness 회원가입 기능 중에 카메라 사용하는 부분이 있는데 이 부분에서 앱이 죽는다고 한다. 카메라 사용 정보를 앱 내에 수정하여 재심사 진행. (Android 쪽도 같이 확인하여 수정했다) Guideline 2.3.3 - Performance - Accurate Metadata 스크린샷이 실제 사용하는 앱을 충분히 보여주지 않는다고 합니다. 지원중인 기기에서 사용중인 앱이 정확히 반영되도록 스크린샷을 수정해야 합니다. 애플 가이드에 따르면, 1. 앱의 UI를 반영하지 않는 마케팅, 프로모션 정보는 스크린샷에 적절하지 않습니다. 2. 스크린샷은 앱의 주요 특징과 기능을 반영해야 합니.. 2023. 10. 22.
[Android / iOS] 테스트 앱 배포 과정 안드로이드와 iOS는 테스트를 하기 위한 앱을 배포하는 방식에서 차이가 있다. 안드로이드의 경우 release apk파일을 뽑으면 되고 iOS는 Testflight로 배포해야 한다. 1. Android 테스트 앱 android Native 앱이면 안드로이드 스튜디오 상단에서 build 탭, apk로 뽑으면 된다. flutter면 터미널에 build apk --release 이후 apk 파일을 안드로이드 기기에 설치하여 테스트한다. 2. iOS 테스트 앱 - iOS는 미리 앱 등록이 되어 있어야 하며, 단순히 테스트 목적이라면 소개 페이지, 이미지 등의 작업은 하지 않아도 된다. 매칭되는 bundleId 넣고, 앱 이름 정하고 추가하자. 참고: 앱 등록 방법 - xcode로 프로젝트를 열고 개발자 멤버십 .. 2023. 10. 7.
[Android / iOS] Push Notification 기능 추가 안드로이드의 경우 1. Firebase Console에 앱을 등록 2. google service파일을 앱에 추가 등록하면 끝난다. 3. 내부 코드 작성 Android 코드 작성 Gradle 디펜던시 추가, 서비스 클래스 추가 코드는 복붙, 매니페스트에도 추가, 권한 처리하고 키 받을 수 있는지 테스트 https://firebase.google.com/docs/cloud-messaging/android/client?hl=ko&authuser=0 iOS의 경우 1. Firebase Console에 앱을 등록 2. google service파일 등록 3. Apple 개발자 계정 처리 - 앱 등록하고 알림 활성화 - APN키 생성하고 해당 키를 Firebase에 등록 4. Xcode 프로젝트 파일에 Notif.. 2023. 9. 22.
안드로이드 BLE 통신(공식문서 번역) 3 BLE Characteristics 정보 읽기 일단 GATT 서버에 앱이 연결되어 서비스를 찾으면, attributes를 읽을 수 있다. 스니펫에서는 서버의 서비스들과 characters를 순회하고 UI에 띄운다. public class DeviceControlActivity extends Activity { ... // Demonstrates how to iterate through the supported GATT // Services/Characteristics. // In this sample, we populate the data structure that is bound to the // ExpandableListView on the UI. private void displayGattServi.. 2023. 7. 23.
안드로이드 BLE 통신(공식문서 번역) 2 GATT callback 선언 일단 서비스가 기기에 연결되면 BluetoothGattCallback을 통해 연결 상태에 대한 알림을 받는다. 서비스 회복, Characters read, Characters notifications onConnectionStateChanged 메소드는 디바이스의 GATT 서버 연결이 변경되었을 때 호출된다. 서비스 클래스에 선언되어 bluetoothAdapter 와 함께 사용될 수 있다. (서비스와 연결된 이후에) private final BluetoothGattCallback bluetoothGattCallback = new BluetoothGattCallback() { @Override public void onConnectionStateChange(BluetoothG.. 2023. 7. 23.
안드로이드 BLE 통신(공식문서 번역) 1 작성: 2023년 7월 21일 https://developer.android.com/guide/topics/connectivity/bluetooth/ble-overview 일반적인 블루투스과 다르게 저전력 사용을 목적으로 한다. 예) 접근 센서, 심장 맥박 측정기, 피트니스 디바이스 등 BLE 필요 권한(manifest) https://developer.android.com/guide/topics/connectivity/bluetooth/permissions#java 블루투스 지원 여부 확인 boolean bluetoothAvailable = getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH); 블루투스 BLE 여부 확인 bool.. 2023. 7. 23.
[Android] 사이닝 처리 하기 윈도우 기준 keytool -genkey -v -keystore jks파일을 만들 경로/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias 앨리어스키 주로 android 폴더 내에 app에다가 jks 파일을 만든다. alias파일과 비밀번호는 동일하게 설정한다. 1. jks파일을 만든 이후에 android프로젝트 폴더에 key.properties 파일을 만든다. storePassword=스토어 패스워드 keyPassword=패스워드 keyAlias=앨리어스 storeFile=jks파일이름.jks 2. app build.gradle 폴더에서 다음과 같이 처리한다. 전역으로 선언 // Create a variable called keystoreProperti.. 2022. 12. 9.