← 개요

APM이 필요 없는 이유

확장 하나, 파일 하나. 의존성 체인이 없습니다.

APM이 필요 없습니다. 다운로드해서 바로 사용하세요. 이보다 더 간단할 수 없습니다. Adobe AIR SDK만 업데이트하면 됩니다. 도움이 필요하시면 저희가 도와드립니다.

저희 Adobe AIR용 네이티브 확장이 패키지 관리자, 코어 라이브러리, 헬퍼 ANE 없이 제공되는 이유와 그것이 저희 앱에서 무엇을 바꾸었는지 소개합니다.

45 → 13 ANEs−6.5 MB on Android−5.9 MB on iOSAbout 2× faster start

의존성 체인의 문제점

패키지 관리자(APM)로 설치하는 많은 AIR 확장은 단독으로 제공되지 않습니다. 공유 코어 라이브러리, Android 지원 라이브러리, Google Play 서비스, Firebase, 네트워크 및 이미지 라이브러리 등 헬퍼 ANE의 체인을 함께 가져옵니다. 이러한 헬퍼는 다른 확장이 필요로 하기 때문에만 포함되는 경우가 많습니다.

이 ANE들은 모두 앱에 패키징되며, 앱이 해당 기능을 사용하든 사용하지 않든 시작 시 로드됩니다. 그 결과 앱은 커지고, 시작은 느려지며, 백그라운드에서 더 많은 작업을 하게 됩니다.

저희 앱에서 측정한 결과

저희 앱은 종종 오래된 휴대폰과 태블릿에서 실시간 영상과 양방향 음성을 스트리밍합니다. 2026년에 저희는 앱의 모든 서드파티 확장을 자체 독립형 확장으로 교체하고 실제 기기에서 결과를 비교했습니다:

Android 앱의 확장 수45개, 그중 35개는 서드파티이며 대부분 헬퍼 ANE → 13개, 모두 자체 제작
애플리케이션 디스크립터Android: 197 → 133줄(매니페스트 추가 항목 117 → 85), iOS: 161 → 126줄. 관리할 매니페스트 항목이 줄고, 문제가 생길 여지도 줄어듭니다
앱 크기Android에서 −6.5 MB(−10 %), iOS에서 −5.9 MB(−14 %)
앱 시작약 2배 빠름
백그라운드 작업스트림과 함께 실행되는 분석 라이브러리나 헬퍼 라이브러리가 없습니다. 영상과 음성에 더 많은 CPU와 대역폭을 쓸 수 있으며, 이는 오래된 기기에서 특히 중요합니다

충돌과 업데이트 압박

여러 확장이 같은 헬퍼 ANE를 공유하면 그 버전들이 서로 맞아야 합니다. 한 확장의 새 버전이 공유 헬퍼의 새 버전을 요구하고, 이어서 그것을 사용하는 다른 모든 확장의 새 버전까지 요구하는 경우가 많습니다.

그 결과 필요하지 않았던 업데이트, 빌드 시 버전 충돌이 생기고, 모든 조합을 모든 플랫폼에서 다시 테스트해야 합니다. 이는 앱을 조금도 더 좋게 만들지 않는 작업입니다.

저희의 접근 방식: 독립형

플랫폼 라이브러리를 얇은 껍데기로 감싸고 여러 보조 ANE를 매다는 것은 많은 확장을 빠르게 내놓는 지름길입니다. 모든 확장을 완전하고 독립적으로 만드는 데는 훨씬 더 많은 노력이 듭니다. 각 확장은 필요한 것만 정확히 갖추고, 모든 플랫폼에서 개별적으로 테스트되며, 그러면서도 다른 모든 확장과 함께 동작해야 합니다. 저희는 그 노력을 택했습니다. 고객님의 앱이 그 결과를 떠안지 않도록 말입니다.

  • 기능 하나에 파일 하나. 각 확장은 단일 ANE입니다. 코어 라이브러리도, 헬퍼 ANE도, 패키지 관리자도 필요 없습니다.
  • 기능에 필요한 것만. Google Play Billing이나 Android 푸시용 Firebase Cloud Messaging처럼 플랫폼 라이브러리가 필요한 경우, 빌드 시 정확히 그 라이브러리만 자동으로 추가됩니다. 그 밖에는 아무것도 추가되지 않습니다.
  • 독립적인 업데이트. 한 확장을 업데이트한다고 해서 다른 확장을 업데이트해야 하는 일은 없습니다.
  • 프로덕션에서 검증됨. 모든 확장은 iOS, Android, macOS의 저희 앱에서 실행되며, 최신 기기와 오래된 기기에서 테스트됩니다.

애플리케이션 디스크립터에 확장 ID를 추가하고 파일을 프로젝트에 복사하면 끝입니다. 모든 확장 보기 · 가격

문의

의존성 체인에서 벗어나고 싶으신가요?

저희는 자체 앱에서 이를 단계적으로 교체했습니다. 귀하의 AIR 앱에서도 같은 작업을 원하신다면 연락 주시기 바랍니다.

[email protected]