모바일 앱 개발

**모바일 앱 개발**(Mobile app development)은 하나 이상의 모바일 장치용 모바일 앱을 개발하는 행위 또는 프로세스로, 여기에는 개인 정보 단말기(PDA), 기업용 디지털 보조 장치(EDA) 또는 휴대 전화가 포함될 수 있다.language=en-us 이러한 소프트웨어 애플리케이션은 많은 하드웨어 제약 사항을 고려하여 모바일 장치에서 실행되도록 특별히 설계된다. 일반적인 제약 사항으로는 중앙 처리 장치(CPU) 아키텍처 및 속도, 사용 가능한 랜덤 액세스 메모리(RAM), 제한된 데이터 저장 용량, 그리고 디스플레이(기술, 크기, 차원, 해상도) 및 입력 방법(버튼, 키보드, 스타일러스 유무를 막론한 터치스크린)의 상당한 다양성이 포함된다.access-date=2023-06-24 이러한 애플리케이션('앱')은 제조 과정에서 전화기에 사전 설치되거나, 웹 브라우저 내에서 "애플리케이션과 유사한" 경험을 제공하기 위해 서버 측 또는 클라이언트 측 처리(예: 자바스크립트)를 사용하는 웹 애플리케이션으로 제공될 수 있다.language=en 모바일 앱 개발 부문은 유럽에서 상당한 성장을 경험했다. 2017년 진보 정책 연구소(Progressive Policy Institute)의 보고서에 따르면 2017년 1월 기준으로 유럽 연합(EU) 전역의 앱 경제에서 189만 개의 일자리가 있었으며, 이는 전년 대비 15% 증가한 수치이다. 이러한 일자리에는 모바일 앱 개발자와 앱 경제를 지원하는 기타 직위가 포함된다.access-date=3 October 2024
# 개요
모바일 장치용 애플리케이션 개발을 용이하게 하고 그 일관성을 위해 다양한 접근 방식이 취해졌다. 제품을 출시하는 대부분의 회사(예: 애플, 아이팟/아이폰/아이패드)는 공식 소프트웨어 개발 키트(SDK)를 제공한다. 또한 어떤 형태의 소프트웨어 테스트 및 품질 보증(QA)을 제공할 수도 있다. SDK 또는 기타 도구를 제공받는 대가로, 예비 개발자는 특권 정보 공유를 제한하는 어떤 형태의 비공개 계약(NDA)에 서명해야 할 수도 있다. 개발 프로세스의 일환으로, 모바일 사용자 인터페이스(UI) 디자인은 모바일 앱 생성에서 필수적인 단계이다. 모바일 UI 디자이너는 제약 사항, 상황, 화면 공간, 입력 방법 및 이동성을 디자인의 개요로 고려한다. 모바일 UI 디자인의 제약 사항에는 사용자의 제한된 주의 집중 시간과 사용자 손을 위한 모바일 장치의 화면 크기와 같은 폼 팩터가 포함된다. 모바일 UI 상황에는 장치가 사용되는 위치나 시간과 같이 사용자 활동에서 오는 신호 단서가 포함되며, 이는 모바일 앱 내 사용자 상호 작용에서 관찰될 수 있다. 이러한 상황 단서는 약속이나 활동을 예약할 때 자동 제안을 제공하거나 사용자를 위한 다양한 서비스 목록을 필터링하는 데 사용될 수 있다. 사용자는 종종 장치와의 상호 작용의 중심에 있으며, 인터페이스는 하드웨어와 소프트웨어의 구성 요소를 모두 포함한다. 사용자 입력은 사용자가 시스템을 조작할 수 있도록 하고, 장치의 출력은 시스템이 사용자의 조작 효과를 나타낼 수 있도록 한다. 전반적으로 모바일 UI 디자인의 목표는 주로 이해하기 쉽고 사용자 친화적인 인터페이스를 만드는 것이다. 기능은 모바일 엔터프라이즈 애플리케이션 플랫폼 또는 통합 개발 환경(IDE)에 의해 지원된다. 모바일 애플리케이션 개발자는 모바일 하드웨어의 치열한 경쟁과 각 플랫폼 내의 변화로 인해 다양한 화면 크기, 하드웨어 사양 및 구성을 가진 광범위한 장치도 고려해야 한다. 오늘날 모바일 앱은 일반적으로 공식 온라인 매장 또는 마켓플레이스(예: 애플: 앱 스토어 – 구글: 구글 플레이)를 통해 배포되며, 개발자가 앱을 제출하여 해당 마켓플레이스에 승인 및 포함되도록 하는 공식적인 프로세스가 있다. 그러나 역사적으로 항상 그랬던 것은 아니다. 모바일 UI 또는 프론트엔드는 엔터프라이즈 시스템에 대한 액세스를 지원하기 위해 모바일 백엔드에 의존한다. 모바일 백엔드는 데이터 라우팅, 보안, 인증, 권한 부여, 오프라인 작업 및 서비스 오케스트레이션을 용이하게 한다. 이 기능은 모바일 앱 서버, 서비스형 모바일 백엔드(MBaaS) 및 서비스 지향 아키텍처(SOA) 인프라를 포함한 미들웨어 구성 요소의 조합으로 지원된다.
# 플랫폼
모바일 앱을 개발, 배포 및 관리하는 데 필요한 소프트웨어 개발 패키지는 개발자가 하나 이상의 대상 플랫폼용 애플리케이션을 작성, 테스트 및 배포할 수 있도록 하는 많은 구성 요소 및 도구로 구성된다.
## 프론트엔드 개발 도구
프론트엔드 개발 도구는 사용자 인터페이스 및 사용자 경험(UI-UX)에 중점을 두며 다음 기능을 제공한다. * UI 디자인 도구 * 장치 기능에 액세스하기 위한 SDK * 크로스 플랫폼 호환성/지원 주목할 만한 도구는 다음과 같다.
### 퍼스트 파티
퍼스트 파티 도구에는 특정 하드웨어 플랫폼(예: 애플, 구글 등)의 설계를 담당하는 회사에서 게시하거나 그를 대신하여 게시하는 공식 SDK와 해당 하드웨어용 모바일 앱 개발 목적으로 공식적으로 지원되는 모든 타사 소프트웨어가 포함된다. {| class="wikitable sortable" |- ! 안드로이드 | 자바 그러나 코드의 일부는 C, C++, 코틀린 | 이클립스에 통합된 디버거, 독립형 디버깅 모니터 사용 가능 | Yes | 이클립스, IntelliJ IDEA, 안드로이드 스튜디오, 넷빈즈용 프로젝트 케나이 안드로이드 플러그인 | 달빅 VM으로 인해 안드로이드 전용, 2009년 3월 | apk | 무료, IntelliJ IDEA 커뮤니티 에디션 - 무료 |- ! 블랙베리 | 자바 | IDE에 통합된 디버거 | Yes | 이클립스, 블랙베리 JDE | RIM API로 인해 블랙베리 전용 | alx, cod | 무료 |- ! IOS SDK | 오브젝티브-C, 스위프트 | 엑스코드 IDE에 통합된 LLDB 디버거 | 아이폰 SDK에 번들로 제공되며, 엑스코드 IDE에 통합됨 | 엑스코드 | 아이폰, 아이패드, 아이팟 터치 | 앱 스토어를 통해서만 가능하며, 애플의 검토 및 승인이 필요함 | 애플 도구는 맥에서 개발을 위해 무료로 사용할 수 있다. 애플리케이션은 시뮬레이터나 장치에서 실행될 수 있다. 일부 고급 기능은 유료 개발자 계정이 필요하다.access-date=2016-04-30 |- ! IOS SDK | 오브젝트 파스칼 | 엑스코드 IDE에 통합된 디버거 | 델파이 XE2 프로페셔널 이상에 포함됨 | 엠바카데로 델파이 XE2 | 아이폰, 아이패드, 아이팟 터치 | 앱 스토어를 통해서만 가능하며, 애플의 검토 및 승인이 필요함 | 개발에는 윈도우의 IDE 외에 인텔 기반 맥이 필요하다. 디자인은 윈도우에서 이루어진다. 컴파일 및 배포는 맥에서 이루어진다. 시뮬레이터 테스트는 무료이지만, 장치에 설치하려면 개발자 서명 키에 대한 수수료가 필요하다. |}
### 세컨드 파티
{| class="wikitable sortable" |- ! 자바 ME | 자바 | Yes | 무료 에뮬레이터, Sun Java Wireless Toolkit, mpowerplayer | 이클립스, LMA 넷빈즈 모빌리티 팩 | Yes 비록 많은 VM 구현이 장치별 버그로 인해 별도의 빌드를 필요로 하지만 | Jad/Jar 패키징; 팜 OS에서 PRC 파일 | 무료 |}
### 서드 파티
{| class="wikitable sortable" |- ! Accelerator | HTML5, C 샤프 | Yes | Yes |비주얼 스튜디오
(종속성 없음) | 모든 플랫폼, 모바일 앱은 브라우저 기반 | 모바일 웹 | 상업용 라이선스 사용 가능 |- ! MobileTogether | XPath/XQuery, 액션 트리 시각적 프로그래밍 언어 | Yes | Yes | 윈도우 전용 독점 IDE | 안드로이드, iOS, 윈도우, 브라우저 | 각 형식의 기본 배포 | 무료 |- ! App Inventor for Android | 시각적 블록 기반 프로그래밍 언어, 인터페이스 디자이너 포함 | IDE에 내장된 제한된 디버깅 도구 | Yes | 웹 기반 인터페이스 디자이너, 블록 프로그래밍을 위한 자바 웹 시작 프로그램 연결 | 안드로이드 장치 | apk | 무료 |- ! Appcelerator | 자바스크립트 | Yes, 티타늄 스튜디오에서. | 기본 에뮬레이터를 사용하여 에뮬레이터 사용 가능 | 이클립스 기반 티타늄 스튜디오 | 안드로이드, 아이폰; 블랙베리, 타이젠, 모바일 웹 | 각 플랫폼의 기본 배포 형식 | 무료, 오픈 소스 아파치 2.0 라이선스, 상업용 및 기업용 라이선스 사용 가능 |- ! Basic4android | 비주얼 베이직 유사 구문 | Yes | 기본 에뮬레이터를 사용하여 에뮬레이터 사용 가능 | 독점 IDE | 안드로이드 | 각 플랫폼의 기본 배포 형식 | 상업용 라이선스 사용 가능 |- ! Codename One | 자바 | Yes | Yes | 이클립스, 넷빈즈 | 안드로이드, 아이폰, 블랙베리, 윈도우 모바일, J2ME | 각 플랫폼의 기본 배포 형식 | 오픈 소스 GPLv2 및 구독 기반 빌드 서버 |- ! 솔라2D | 루아 | Yes | Yes | 엑스코드 | 안드로이드, iOS, Nook Color | 각 플랫폼의 기본 배포 | MIT 라이선스 사용 무료 |- ! DragonRAD | 시각적 드래그 앤 드롭 타일 | Yes | 타사 에뮬레이터 사용 | 독점 IDE | 안드로이드, 블랙베리, 윈도우 모바일 | OTA 배포 | 무료 및 상업용 라이선스 사용 가능 |- ! GeneXus for Mobile and Smart Devices | 쉬운 개발을 위한 지식 표현 및 선언형 프로그래밍 모델링, 각 플랫폼에 대한 코드 자동 생성 | GeneXus는 사전 테스트된 코드 라이브러리를 활용하며 코드 생성 후 사용자 디버깅은 필요하지 않다. | 클라우드에 게시, 장치에서 기본적으로 테스트, 에뮬레이터 필요 없음 | 독점 IDE | 안드로이드, IOS(아이폰, 아이패드), 블랙베리 OS, 필요한 경우 HTML5까지 | 각 플랫폼의 기본 배포 형식 및 클라우드-브라우저 기반 | 무료 시험 사용, 상업용 및 기업용 라이선스 사용 가능 |- ! IBM MobileFirst Studio | HTML5, CSS3, 자바스크립트, 네이티브 워크라이트 API가 포함된 네이티브 SDK 언어 | Yes, 모바일 브라우저 시뮬레이터 또는 네이티브 SDK 디버거와의 통합 | 네이티브 에뮬레이터 또는 코르도바 플러그인이 포함된 브라우저 시뮬레이터를 사용하여 에뮬레이터 사용 가능 | 이클립스 플러그인, 이클립스 기반 독립 실행형 | 안드로이드, IOS, 블랙베리 6,7, & 10, 윈도우 폰 7.5 & 8, 윈도우 8 (데스크톱, 태블릿), 어도비 AIR, 모바일 웹 앱, 데스크톱 브라우저 웹 페이지 | 각 플랫폼의 기본 배포 형식 | 이클립스 마켓플레이스를 통한 개발자 버전 무료, 배포를 위한 상업용 라이선스 |- ! 라자루스 | 오브젝트 파스칼 | Yes, 윈도우 CE용 ActiveSync를 통해 IDE에서 디버깅 가능 | 플랫폼의 에뮬레이터 사용 | 라자루스 IDE, 통합 GUI 디자이너 및 디버거 포함 | 컴파일 언어는 윈도우 CE, 리눅스 기반 장치에서 사용 가능, 심비안 OS 포팅 개발 중 | 각 플랫폼의 기본 배포 형식 | 무료 |- ! LambdaNative | 스킴 | 아니요 | 아니요 하지만 로컬호스트에서 빌드 및 테스트 가능 | 이클립스 (소프트웨어) (선택 사항) | 모든 네이티브 바이너리: 안드로이드, IOS, 블랙베리 10, 윈도우, OS X, 리눅스, OpenBSD, OpenWrt | 각 플랫폼의 기본 배포 형식 | 무료 (BSD 라이선스) |- ! 라이브코드 | 라이브코드 | Yes (IDE에 통합됨) | Yes (iOS 및 안드로이드 에뮬레이터 사용 가능) | Yes | iOS, 안드로이드, macOS, 윈도우, 리눅스, 서버, HTML5. 설치 프로그램 패키징 | 각 플랫폼의 기본 배포 형식 | 무료 오픈 소스 에디션, 상업용 및 기업용 에디션 사용 가능 |- ! Macromedia Flash Lite | 액션스크립트 | Yes | IDE에 번들로 제공됨 | Macromedia Flash MX2004/8, 이클립스 | Yes | SIS-CAB 배포 또는 OTA-IR-Bluetooth SWF 파일 | MTASC를 사용하면 무료이지만 제한적임 |- ! Marmalade | C, C++ | Yes | Yes | 비주얼 스튜디오, 엑스코드 | 모든 네이티브: 안드로이드, 블랙베리, BREW, iOS (아이폰), 마에모, Palm-webOS, 삼성 바다, 심비안, 윈도우 모바일 6.x 및 데스크톱, OS X | 각 플랫폼의 기본 배포 형식 | 상업용 라이선스 사용 가능 |- ! Meme IDE | MemeScript | 문제 보기에서 유효성 검사 제공 | Yes, 안드로이드 에뮬레이터 통합 가능 | 이클립스 RCP | 안드로이드, 윈도우 모바일 | 각 플랫폼의 기본 배포 형식 | 개발용 무료 |- ! Monaca | HTML5, CSS, 자바스크립트 | Yes | 클라우드 IDE 및 로컬 도구에서 미리 보기 사용 가능 | 클라우드 기반 IDE, 비주얼 스튜디오, 타사 IDE/편집기 | 안드로이드, iOS, 윈도우 8.1, 윈도우 10 | 각 플랫폼의 기본 배포 형식 | 무료, 최대 3개 프로젝트. 상업용 및 기업용 라이선스 사용 가능 |- ! Mono for Android | C 샤프 | Yes | Yes | 비주얼 스튜디오 2005 및 MonoDevelop | 안드로이드 | 플랫폼의 기본 배포 형식 | |- ! MonoTouch | C 샤프 | Yes | Yes | 비주얼 스튜디오 2005 및 MonoDevelop | iOS | 플랫폼의 기본 배포 형식 | |- ! MoSync | C, C++, 루아, HTML5, CSS, 자바스크립트 | Yes | Yes | 이클립스, 비주얼 스튜디오 2005 이후, 텍스트 편집기 포함 MoBuild | 안드로이드, iOS (아이폰), 자바 ME, 모블린, 스마트폰 2003, 심비안, 윈도우 모바일 (포켓 PC), 블랙베리 (실험 단계) | SIS, CAB, JAD, JAR, APK, OTA 배포 | 무료, GPL 2.0, 무료 인디 구독; 상업용 구독 가능 |- ! 넷빈즈 | C++, 자바 | Yes | Yes | 자바 개발 도구 | 안드로이드 (모바일 및 태블릿), 노키아 (심비안, 세리아 60 – 40 – 80) 등... | | 무료 |- ! OpenPlug | 액션스크립트, XML | Yes | Yes | 어도비 플래시 빌더용 OpenPlug ELIPS 플러그인 | 안드로이드, iOS (아이패드, 아이폰, 아이팟 터치), 심비안, 윈도우 모바일 | 각 플랫폼의 기본 배포 형식 | 무료 및 상업용 라이선스 사용 가능 |- ! OutSystems | OutSystems, CSS, 자바스크립트 | Yes | 브라우저에서 직접 테스트 | OutSystems Service Studio | 안드로이드, iOS, 윈도우 폰 7 | NA | 개인용 무료 커뮤니티 에디션 또는 상업용 구독 라이선스 |- ! PhoneGap 및 아파치 코도바 | HTML, CSS, 자바스크립트 | Yes | Yes 많은 기능은 브라우저에서 직접 테스트할 수 있다. iOS 및 안드로이드에서 네이티브 에뮬레이터 실행도 가능하다. | Yes 아이오닉 스튜디오 또는 Appery.io와 같은 코르도바 기반 도구용 IDE가 많이 존재한다. | 아이폰, 안드로이드, 타이젠, 윈도우 폰, 블랙베리, 심비안, 팜, 바다 | 각 플랫폼의 기본 배포 형식 | 아파치 2 |- ! Qt SDK | C++, QML | Yes | Yes | Qt 크리에이터 | 안드로이드 (기술 미리보기), IOS (기술 미리보기), 심비안 OS, 마에모, 미고, 리눅스, 윈도우, OS X | 각 플랫폼의 기본 배포 형식 | 무료 및 상업용 라이선스 사용 가능 |- ! Rhomobile | 루비와 HTML 인터페이스 기능은 인터프리터를 통해 네이티브 애플리케이션으로 컴파일된다. | Yes | N/A, 애플리케이션은 Win32 러너 또는 지원되는 플랫폼용 장치 에뮬레이터에서 실행될 수 있다. | 엑스코드 또는 이클립스, 온디맨드 RhoHub 버전에는 전체 IDE 포함 | Yes, 안드로이드 1.6+, iOS 3.0+ (아이폰, 아이패드), 윈도우 모바일 6.1 프로페셔널, 윈도우 모바일 6.0 스탠더드, 블랙베리 4.6, 4.7, 5.0, 6.0 (4.2 및 4.5 지원되지만 이 장치에서는 데이터베이스 액세스가 매우 느리다), 심비안 지원 | OTA 배포, 앱 스토어를 통한 iOS, .SIS, .CAB, .APK, .COD | Rhodes는 MIT 라이선스에 따라 무료 오픈 소스이며, RhoSync는 GPL 또는 상업용이다. 상업적 지원이 가능하다. RhoHub 구독 |- ! RubyMotion | 루비 | Yes | Yes | 모든 텍스트 편집기. IDE로는 RubyMine. | 안드로이드, iOS | 플랫폼의 기본 배포 형식 | RubyMotion은 상업용 제품이다. |- ! Sencha Touch | HTML, CSS, 자바스크립트 | Yes | Yes | Sencha Architect 2 | 안드로이드, iOS (아이폰, 아이패드, 아이팟 터치), 킨들, 블랙베리, 바다 | 웹을 통해 제공되거나, 각 플랫폼의 네이티브 셸을 통한 하이브리드 방식 | GPLv3, 상업용 무료, OEM 및 임베디드 시스템용 유료 |- ! Smartface | 위지위그 디자인 에디터와 자바스크립트 코드 에디터 | Yes | Yes | Smartface IDE 및 SDK | Yes 안드로이드, iOS (아이폰, 아이패드, 아이팟 터치), 킨들, 기어, 구글 글래스 | 각 플랫폼의 기본 배포 형식 | 커뮤니티 라이선스 및 상업용 라이선스 사용 가능 |- ! Stencyl | 스크래치 기반의 드래그 앤 드롭 편집기, 오브젝티브-C | Yes | Yes | 엑스코드 | iOS (아이패드, 아이폰, 아이팟 터치) | 각 플랫폼의 기본 배포 형식 | 무료 및 상업용 개발 라이선스 |- ! Telerik Platform, and AppBuilder | HTML5, CSS, 자바스크립트 | Yes | 브라우저 또는 장치에서 바로 테스트 | 인브라우저 클라이언트, 데스크톱 클라이언트, 비주얼 스튜디오, 서브라임 텍스트 또는 명령줄 인터페이스(CLI) | 안드로이드, iOS, 윈도우 폰 | 각 플랫폼의 기본 배포 형식 | 무료 시험 사용, 상업용 및 기업용 라이선스 사용 가능 |- ! 유니티 | C 샤프, 자바스크립트, Boo, 기타 닷넷 기반 언어 | Yes | 앱이 장치에 업로드되기 전에 장치 상호 작용을 시뮬레이션하는 데 사용되는 원격. | 유니티 에디터, 비주얼 스튜디오 및 MonoDevelop과도 작동. | 안드로이드, iOS (아이폰, 아이패드), PC, Mac, 데스크톱 브라우저, Xbox 360, PS3, Wii. 블랙베리 플레이북, 노키아 심비안, Roku 2 등은 회사의 유니온 프로그램을 통해 사용 가능. | 각 플랫폼의 기본 배포 형식 | 무료 및 상업용 개발 라이선스. |- ! Verivo AppStudio | 위지위그, 그래픽 드래그 앤 드롭, 자바스크립트, 닷넷 기반 언어; Appery.io로 대체됨 | Yes | 브라우저 또는 장치에서 바로 테스트 | 독점 디자인 스튜디오 | 안드로이드, iOS, 블랙베리 | 각 플랫폼의 기본 배포 형식 | 무료 개발 라이선스; CPU당 배포 라이선스 |- ! ViziApps | 위지위그, 그래픽 드래그 앤 드롭 | Yes | 브라우저 또는 장치에서 바로 테스트 | 온라인 디자인 스튜디오 | 안드로이드, iOS, 윈도우 폰 예정 | 각 플랫폼의 기본 배포 형식 | 앱 디자인, 테스트, 데모, 업데이트 무료; 게시 유료 |- ! V-Play Engine | 오브젝티브-C, C++, 자바스크립트, QML, 자바 | Yes | Yes | Qt 크리에이터 | 모든 플랫폼 | 각 플랫폼의 기본 배포 형식 | 무료, 인디 및 기업용 라이선스 사용 가능 |- ! Wakanda | HTML5, 자바스크립트 | Yes | Yes | Yes Wakanda Studio | 안드로이드, iOS, 윈도우 10 (곧), 브라우저 기반 앱 | apk | 오픈 소스 및 상업용 라이선스 사용 가능 |- !자마린 |C# | Yes | Yes |자마린 스튜디오 (Mac 전용; 사용 중단), 비주얼 스튜디오 (Windows 전용), Visual Studio for Mac (Mac 전용; 자마린 스튜디오 대체)access-date=2023-03-05access-date=2023-04-02 |안드로이드, iOS, 윈도우 폰, 윈도우 스토어 앱 |각 플랫폼의 기본 배포 |무료 커뮤니티 에디션, Microsoft MSDN 라이선스에 포함된 프로 에디션 |- !소조 |소조 (비주얼 베이직과 유사) | Yes | Yes |소조 IDE |iOS, 모바일 웹 앱 |iOS 앱은 네이티브 아이패드 |시간 제한 없는 무료 평가판; 상업용 라이선스 사용 가능 |}
## 백엔드 서버
백엔드 도구는 프론트엔드 도구가 끝나는 지점에서 시작하여 중앙에서 관리되고 제어되는 재사용 가능한 서비스 세트를 제공하며 다음 기능을 제공한다. * 백엔드 시스템과의 통합 * 사용자 인증-권한 부여 * 데이터 서비스 * 재사용 가능한 비즈니스 로직 사용 가능한 도구는 다음과 같다. {| class="wikitable sortable" |- ! Altova MobileTogether 서버 | 브라우저 기반 인터페이스 | 독점 IDE | 윈도우, 리눅스, MacOS용 서버 사용 가능. 안드로이드, IOS, 윈도우 8, 윈도우 10, 윈도우 폰, HTML5 브라우저 기반 클라이언트 실행하는 모바일 장치 지원 | 온프레미스, 클라우드 또는 하이브리드 | 개발 도구는 무료, 배포를 위해 상업용 라이선스 필요 |- ! GO!AppZone by Globo plc | 자바스크립트. 사용자 지정 통합 커넥터/서버 측 로직: C#, VB.NET | 예, GO!AppZone Studio | 안드로이드, 블랙베리, IOS, 윈도우 폰, 8.x, RT | 온프레미스, 클라우드 또는 하이브리드 | 개발 도구는 무료, 배포를 위해 상업용 라이선스 또는 구독 필요 |- ! IBM MobileFirst 서버 | HTML5, CSS3, 자바스크립트, 네이티브 워크라이트 API가 포함된 네이티브 SDK 언어 | 이클립스 플러그인, 이클립스 기반 독립 실행형 | 안드로이드, IOS, 블랙베리 6,7, & 10, 윈도우 폰 7.5 & 8, 윈도우 8 (데스크톱, 태블릿), 어도비 AIR, 모바일 웹 앱, 데스크톱 브라우저 웹 페이지 | 온프레미스 | 이클립스 마켓플레이스를 통한 개발자 버전 무료, 배포를 위한 상업용 라이선스 |- ! Metismo | 자바 | 이클립스 | 안드로이드, iOS (아이폰, 아이패드), 자바 ME, BREW, 블랙베리, 닌텐도 DS, 팜/웹OS, 삼성 바다, 심비안, 윈도우 모바일, 윈도우 폰 7, 윈도우 데스크톱, OS X | 온프레미스 | 상업용 라이선스 사용 가능 |- ! Wakanda | 자바스크립트 | Wakanda Studio 사용 | 안드로이드, iOS (아이폰, 아이패드), 윈도우 폰 10 (곧), HTML5 앱 | 온프레미스 또는 클라우드 | 커뮤니티 및 상업용 에디션 |- ! Verivo Akula | 자바 | 모든 프론트엔드 IDE 사용 | 안드로이드, iOS (아이폰, 아이패드), 윈도우 폰 7 | 온프레미스, 클라우드 또는 하이브리드 | 무료 개발 라이선스; CPU당 배포 라이선스. Appery.io로 대체됨 |- ! WebORB 통합 서버 | C 샤프, VB.NET, 자바, PHP, 액션스크립트, 자바스크립트, 오브젝티브-C, XML | 이클립스, 비주얼 스튜디오, intelliJ IDEA 및 Amethyst IDE와 함께 작동 | 안드로이드, iOS (아이폰, 아이패드), 블랙베리 플레이북, 윈도우 폰 7 | 온프레미스 | 무료 개발 라이선스; 무료 및 상업용 배포 라이선스 |}
## 보안 추가 레이어
점점 더 많은 기업에서 브링 유어 온 디바이스(BYOD)가 일반화됨에 따라, IT 부서는 기존 앱, 전화기 및 플랫폼 구성 요소 위에 계층화되는 임시적, 전술적 솔루션이 필요한 경우가 많다. 기능은 다음과 같다. * 보안을 위한 앱 래핑 * 데이터 암호화 * 클라이언트 작업 * 보고 및 통계
## 시스템 소프트웨어
모바일 앱 개발을 위한 기능적 플랫폼을 갖추려면 많은 시스템 수준 구성 요소가 필요하다. {| class="wikitable sortable" |- ! 어도비 AIR | 액션스크립트, HTML, CSS, 자바스크립트 | Yes | Yes | 플래시 빌더, 플래시 프로페셔널, IntelliJ IDEA | 안드로이드, iOS (아이폰, 아이패드, 아이팟 터치), 블랙베리 | 각 플랫폼의 기본 배포 형식 | 플래시 빌더, 플래시 프로페셔널, IntelliJ IDEA - 상업용 라이선스 사용 가능 어도비 AIR SDK (명령줄 도구) - 무료 |- ! BREW | C; API는 C++ 스타일 인터페이스와 함께 C로 제공됨 | 네이티브 ARM 대상 코드에 대한 디버거 지원. Visual Studio를 사용하여 x86 테스트 코드 디버깅 가능 | 대상 ARM 코드용 에뮬레이터 없음, x86 테스트 코드용 시뮬레이터 있음 | Visual Studio 6.0, Visual Studio 2003 .NET, Visual Studio 2005 | 핸드셋에서 사용 가능한 특정 BREW 버전에 대해 컴파일 | OTA | Brew 앱 인증에 일반적으로 필요한 관련 개발 수수료 - 인증된 개발자가 되기 위한 VeriSign 연간 수수료. BREW용 Realview ARM 컴파일러 (무료 GNU C/C++ 사용 가능하지만 기능 및 지원 제한됨). 애플리케이션 배포를 위한 TRUE BREW 테스트 수수료. |- ! 파이어폭스 OS | HTML5, CSS, 자바스크립트 | Yes | 아니요, 하지만 시뮬레이터 사용 가능. | 파이어폭스 브라우저, 파이어버그 | 다른 플랫폼의 웹 브라우저 | 파이어폭스 마켓플레이스, 웹 URL | 개발에는 모질라 파이어폭스 및 시뮬레이터 추가 기능 필요 |- ! 닷넷 컴팩트 프레임워크 | C 샤프, VB.NET, Basic4ppc | Yes | 무료 에뮬레이터, 소스 코드 사용 가능, IDE에 번들로 제공됨 | 비주얼 스튜디오 2008, 2005, 2003, Basic4ppc IDE | 윈도우 모바일, 윈도우 CE, 타사 도구를 통한 심비안 기반 장치 | OTA 배포, CAB 파일, ActiveSync | 대부분의 도구는 무료이지만, 비주얼 디자이너를 위해 비주얼 스튜디오의 상업용 에디션 필요 |- ! OpenFL | Haxe (액션스크립트 및 자바와 유사) | Yes | Yes | IntelliJ IDEA, FlashDevelop | 안드로이드, iOS (아이폰, 아이패드, 아이팟 터치), 블랙베리 플레이북, WebOS, HTML5, 플래시, 윈도우 (exe), 리눅스 | 각 플랫폼의 기본 배포 형식 | 무료 |- ! 팜 OS | C, C++, 파스칼 | Yes | OS 1.0–4.1: PalmSource (Access)에서 제공하는 무료 에뮬레이터; OS 5.0: - 5.4 Palm (palmOne)에서 제공하는 장치별 시뮬레이터 | Palm OS 개발 시스템 (이클립스), 코드워리어, PocketStudio, HB++, Satellite Forms | 팜 OS 핸드헬드 또는 StyleTap 에뮬레이터가 있는 윈도우 모바일 | PRC 파일, PalmSource 설치 프로그램 (.psi) | 무료 (POSE 또는 GCC for Palm OS) 또는 상업용 (CodeWarrior) 또는 다양한 상업용 신속 개발 프레임워크 |- ! 파이썬 | 파이썬 | Yes | 노키아 에뮬레이터에 대한 추가 기능 | 이클립스용 플러그인을 포함한 여러 가지 | 인터프리트 언어는 노키아 Series60 (및 데스크톱)에서만 기본적으로 사용 가능하지만, 팜 OS를 포함한 다른 모바일 플랫폼으로의 포팅이 존재함 | py2sis를 사용한 Sis 배포 또는 파이썬 런타임 사용 가능 | 무료 |- ! 심비안 OS | C++ | Yes | 무료 에뮬레이터 | 다양한 선택 | 대상별 컴파일 | SIS 배포 | 상업용 및 무료 도구 사용 가능 |- ! 타이젠 | 웹 기반: HTML5, CSS, 자바스크립트 네이티브: C, C++ | Yes | 무료 에뮬레이터 | 타이젠 SDK | 웹 브라우저에서 웹 기반 앱 사용 가능 | 앱 스토어를 통한 타이젠, 웹 URL | 개발에는 윈도우, OS X 또는 우분투 데스크톱 필요 |- ! 우분투 터치 | 웹 기반: HTML5, CSS, 자바스크립트 네이티브: QML, C, C++ | Yes | Yes | 우분투 SDK | 웹 브라우저에서 HTML5 앱 사용 가능. | 앱 스토어를 통한 우분투 터치, 웹 URL | 개발에는 우분투 데스크톱 12.04 이상 필요, 무료 |- ! 웹OS | 자바스크립트, CSS, HTML, PDK를 통한 C 및 C++ | Yes | 무료 에뮬레이터 | 이클립스 | 웹OS, 팜 전용 | OTA 배포, 앱 스토어를 통한 웹OS, 웹 URL, Precentral, .ipk | 무료 |- ! 윈도우 모바일 | C, C++ | Yes | 무료 에뮬레이터 (소스 코드 사용 가능), IDE에 번들로 제공됨 | 비주얼 스튜디오 2010, 2008, 2005, eMbedded VC++ (무료), Satellite Forms | 윈도우 모바일, 윈도우 CE | OTA 배포, CAB 파일, ActiveSync | 무료 명령줄 도구 또는 eMbedded VC++, 또는 비주얼 스튜디오 (표준 에디션 이상) |- ! 윈도우 폰 | C 샤프, 비주얼 베이직, C, C++ | Yes | 무료 에뮬레이터, IDE에 번들로 제공됨 | 비주얼 스튜디오 2012, 비주얼 스튜디오 2010 | 윈도우 폰 | OTA 배포, XAP 파일 | |} 개발 플랫폼을 선택하는 기준에는 일반적으로 대상 모바일 플랫폼, 기존 인프라 및 개발 기술이 포함된다. 크로스 플랫폼 개발로 두 개 이상의 플랫폼을 대상으로 할 때는 도구가 사용자 경험에 미치는 영향도 고려하는 것이 중요하다. 모바일 앱에 대한 연구에서 애플리케이션 성능과 사용자 만족도 사이에 강한 상관관계가 있음을 나타내므로 성능도 중요한 기준이다. 성능 및 기타 기준과 함께 기술 가용성 및 프로젝트 요구 사항에 따라 네이티브 및 크로스 플랫폼 환경 간의 개발이 결정될 수 있다. 네이티브 및 크로스 플랫폼 환경 간의 선택을 돕기 위해 일부 지침 및 벤치마크가 게시되었다. 일반적으로 크로스 플랫폼 환경은 여러 플랫폼에서 재사용 가능하며, HTML, CSS 및 자바스크립트를 사용자 인터페이스에 사용하면서 네이티브 컨테이너를 활용한다. 이와 대조적으로 네이티브 환경은 각 환경에 대해 하나의 플랫폼을 대상으로 한다. 예를 들어, 안드로이드 개발은 안드로이드 개발 도구(ADT) 플러그인을 사용하여 이클립스 IDE에서 이루어지며, 애플 iOS 개발은 오브젝티브-C 및 스위프트를 사용하여 엑스코드 IDE에서 이루어진다. 윈도우 및 블랙베리 각각 자체 개발 환경을 가지고 있다.
## 모바일 앱 테스트
모바일 애플리케이션은 먼저 개발 환경 내에서 에뮬레이터를 사용하여 테스트되고 나중에 필드 테스트를 거친다. 에뮬레이터는 개발자가 물리적으로 액세스할 수 없는 휴대폰에서 애플리케이션을 테스트하는 저렴한 방법을 제공한다. 다음은 가장 인기 있는 모바일 운영체제에서 애플리케이션을 테스트하는 데 사용되는 도구의 예이다. * 구글 안드로이드 에뮬레이터 – 완전하고 복잡한 안드로이드 SDK를 다운로드하고 설치할 필요 없이 독립 실행형 앱으로 윈도우 PC에서 실행되도록 패치된 안드로이드 에뮬레이터. 설치하고 안드로이드 호환 앱을 테스트할 수 있다. * 공식 안드로이드 SDK 에뮬레이터 – 일반적인 모바일 장치의 모든 하드웨어 및 소프트웨어 기능을 모방하는 모바일 장치 에뮬레이터(통화 기능 제외). * TestiPhone – 아이폰 웹 애플리케이션을 빠르게 테스트하기 위한 웹 브라우저 기반 시뮬레이터. 이 도구는 인터넷 익스플로러 7, 파이어폭스 2 및 사파리 3을 사용하여 테스트되었으며 작동한다. * iPhoney – 사파리로 구동되는 화소 정확한 웹 브라우징 환경을 제공한다. 아이폰용 웹 사이트를 개발할 때 사용할 수 있다. 아이폰 시뮬레이터는 아니지만, 아이폰에서 사용할 320x480 (또는 480x320) 웹 사이트를 만들려는 웹 개발자를 위해 설계되었다. iPhoney는 OS X 10.4.7 이상에서만 실행된다. * 블랙베리 시뮬레이터 – 실제 블랙베리 제품의 기능을 에뮬레이션하고 장치 소프트웨어, 화면, 키보드 및 트랙휠이 애플리케이션과 어떻게 작동하는지 테스트하는 데 사용할 수 있는 다양한 공식 블랙베리 시뮬레이터가 있다. * 윈도우 UI 자동화 – 마이크로소프트 UI 자동화 기술을 사용하는 애플리케이션을 테스트하려면 윈도우 자동화 API 3.0이 필요하다. 윈도우 7, 윈도우 서버 2008 R2 및 이후 버전의 윈도우에 사전 설치되어 있다. 다른 운영 체제에서는 윈도우 업데이트를 사용하여 설치하거나 마이크로소프트 웹 사이트에서 다운로드할 수 있다. * MobiOne Developer – 윈도우용 모바일 웹 통합 개발 환경(IDE)으로, 개발자가 아이폰, 블랙베리, 안드로이드 및 팜 프리와 같은 장치에 모바일 웹 애플리케이션을 코딩, 테스트, 디버그, 패키징 및 배포하는 데 도움을 준다. MobiOne Developer는 2014년 말에 공식적으로 서비스 종료가 선언되었다.access-date=31 May 2021 도구 포함 * Eggplant Functional – 모든 운영 체제 및 장치에서 모바일 앱을 위한 GUI 기반 자동화 테스트 도구 * Ranorex – 모바일, 웹 및 데스크톱 앱을 위한 테스트 자동화 도구 * Testdroid – 모바일 및 웹 앱 테스트를 위한 실제 모바일 장치 및 테스트 자동화 도구
# 디자인 원칙
2020년 애플리케이션 산업 보고서에 따르면 모바일 앱 사용자 중 46%가 성능 불량으로 인해 앱 사용을 중단하거나 제거했다고 밝혔다.language=en-US 디자인 전문가는 성공적이고 효과적인 모바일 앱을 만들기 위해 다음 디자인 원칙을 주장한다. 깔끔한 화면 – 상호 작용을 빠르고 간단하게 유지하여 사용자가 여러 기능과 작업에 압도되지 않고 하나의 특정 작업에 집중할 수 있도록 한다. 디자인 전문가는 화면당 하나의 작업을 강력히 주장하며, 깔끔함을 최소화하기 위해 긴 양식을 페이지로 나누고 새로운 작업이나 필드를 점진적으로 공개할 것을 권장한다.language=en 인지 부하 감소 – 앱 사용을 가능한 한 원활하게 만들고 앱을 통해 자연스러운 흐름을 유지한다. 디자인 전문가는 인지 부하를 줄이기 위해 자동 완성, 맞춤법 검사, 예측 문자 지원 및 드롭다운 메뉴를 통합할 것을 제안한다. 또한 사용자가 앱을 일시적으로 떠났다가 다시 들어올 때 앱 상태를 유지하여 사용자가 중단한 부분부터 계속 사용할 수 있도록 권장한다.language=en-US 간단한 탐색 – 약 11%의 사람들이 복잡한 인터페이스로 인해 앱을 제거했다. 디자인 전문가는 사용자가 자주 사용하고 우선순위가 높은 화면으로 즉시 이동할 수 있도록 앱에 탐색 모음을 눈에 띄게 표시하는 것이 중요하다고 말한다. 그들은 사용자가 메뉴를 열거나 설정을 변경하거나 이전 화면으로 돌아가거나 페이지 내에서 검색하는 것과 같은 작업을 쉽게 수행할 수 있도록 장치 운영 체제에 특정한 인식 가능한 아이콘을 사용할 것을 제안한다. 그들에 따르면 사용자는 앱을 탐색하는 동안 혼란스러워해서는 안 되며, 질서 있고 명확하며 논리적인 탐색 흐름이 앱 내에서 참여와 발견을 유도한다. 알림 – 사용자 중 약 19%가 잦은 푸시 알림으로 인해 앱을 제거했다고 보고되었다. 디자인 전문가에 따르면 알림은 신중한 계획을 통해 보내야 한다. 전문가들은 알림이 사용자의 시간대에 가장 편리한 시간에 보내져야 하며, 메시지는 사용자에게 큰 가치를 가져다줄 수 있도록 개인화되어야 한다고 말한다. 속도 외관 – 약 19%의 사람들이 지연 문제로 인해 앱을 제거한다. 디자인 전문가는 사용자가 콘텐츠를 기다리지 않도록 앱이 빠르고 반응성이 있는지 확인하는 것이 중요하다고 말한다. 그들은 개발자가 콘텐츠를 더 빠르게 제공하거나 진행 중이라는 인식을 주어야 한다고 말한다. 전문가들이 제안하는 몇 가지 접근 방식은 콘텐츠가 회색으로 표시된 앱의 레이아웃을 보여주는 스켈레톤 화면, 진행 표시줄 또는 로딩 스피너, 백그라운드에서 작업을 수행하고 사용자가 요청할 때 콘텐츠를 빠르게 제공하거나, 사용자가 페이지를 로드하는 동안 일부 작업이나 콘텐츠를 제공하는 것이다. 사용성 – 모바일 사용자 중 약 85%가 한 손으로 휴대폰을 사용하므로 디자인 전문가는 최상위 메뉴, 자주 사용하는 제어 요소 및 일반적인 작업 항목이 사용자의 엄지손가락이 닿는 범위 내에 있는 것이 중요하다고 말한다. 그들은 또한 가독성의 중요성을 강조하며, 사용자가 확대하지 않고도 일반적인 읽기 거리에서 읽을 수 있도록 텍스트 크기를 최소 11포인트 글꼴로 권장한다. 앱 화면의 헤더와 제목은 iOS 운영 체제에서는 San Francisco 17pt, 안드로이드 운영 체제에서는 로보토 16sp를 사용하는 것이 권장된다. 전문가들은 또한 텍스트와 배경색 사이에 최소 4.5:1의 명암비가 있어야 한다고 말한다. 디자인 전문가는 개발자가 장애인을 포함한 모든 사용자를 위해 앱을 접근성 있게 만들 것을 강력히 권장하며, 음성 탐색, 스크린 리더 호환성 및 모바일 앱의 사용자 인터페이스 적응성과 같은 기능을 제안한다.
# 특허
새로운 휴대폰 앱에 대한 많은 특허 출원이 계류 중이다. 대부분은 비즈니스 방법, 데이터베이스 관리, 데이터 전송 및 운영자 인터페이스와 같은 기술 분야에 속한다.Nowotarski et al., "Increasing Allowance Rates by Selectively Targeting Patent Class" IPwatchdog, April 6, 2011