Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Android vs iOS 앱 개발
2012.3.19.
채원석콘텐츠서비스연구팀차세대콘텐츠연구소한국전자통신연구원
Android 와 iOS 개발 비교
진입장벽
◦ 초기 비용
◦ 개발 장비(Android: Mac, Win, Linux vs. iOS: Mac)
SDK 접근성
◦ Xcode 4, iOS SDK(유료, 개발자 등록 1년 $99, 앱스토어 $4.99)
◦ Eclipse, ADT … (무료)
SDK 설치 및 업데이트
◦ Xcode 4, iOS SDK(4.5G, 업데이트(x), 패치(x), 최신버전 재설치)
◦ Android : 기본 설치 + JDK + Eclipse + ADT plugin + USB driver + …
타겟 장비 및 출시 스케줄
◦ 단일 제조회사, 출시 계획 예측 가능
◦ 수백가지의 장비, 테스트 계획을 세우기 어려움
Simulator(iOS) vs. Emulator(Android)
Android 와 iOS 개발 비교iOS Android
Computer (Mac Mini) US$499 US$499
Access to the SDK US$4.99 Free
Installing the SDK One Easy Installer Multiple Tech.
Beta SDKs US$99/yr Free
SDK Runtime Native Interpreted
Language Objective-C Java
Development Tools Advanced Primitive
Development Cycle Quick and Easy Slow and Tedious
Simulator Testing US$4.99 Free
On Device Testing US$99/yr Free
Number of Target Devices 14 100s – 1,000s
Platform Release Schedule Predictable Unpredictable
Testing Strategy Proactive Reactive
Developer Forums US$99/yr Free
Learning Method Structured Unstructured
Simulator vs. Emulator
10 major differences 개요◦ 유사하지만 매우 다름
◦ 개발자 55,000명중 10,199명 안드로이드 vs. 43,185명 iOS
◦ 두 플랫폼 모두 개발 가능 -> only 1,412명 (MacLife 기사)
아이폰과 안드로이드 차이
10 major differences 멀티태스킹(Multitasking) 위젯(Widgets) 앱 마켓 제약사항(Restriction) 알림 기능(Notification) 기기 종류(Devices) ROMS 편집(Editablity) 설정 변경(Settings) 각종 구글 서비스(Integration) 비용(Cost) 통신사 선택(Choice)
재코딩 이슈를줄이기 위해서는위 10가지를반드시 고려해야한다!!
Better Tools vs. More Freedom iOS 개발 도구◦ Xcode, Interface Builder, iOS Simulator
◦ 장점 커스터마이징(단축키, 컬러링), 코드완성, 폴더 구성, GUI 편집, 테스팅
◦ 단점 도큐먼트 탭(다수의 문서 동시 작업이 어려움)
Android 개발 도구◦ Eclipse + ADT plugin
◦ 장점 멀티플 도큐먼트 탭, 작업공간 커스터마이징, Definition 조회 쉬움
◦ 단점 폴더 구성, 잦은 에러(재실행, java 편집 <> XML 편집 전환), 런칭 시간
GUI 작업 툴 미흡(XML 코딩), Emulator의 안정성, 재실행
Better Tools vs. More Freedom Objective-C vs. JAVA◦ 헤더파일(*.h)과 구현파일(*.m) 분리◦ 코딩 분량: Android < iOS
iOS◦ AppDelegate(메인) + UIViewController(다수)◦ View Stack
Andorid◦ 안드로이드 앱 = Activities의 집합◦ ‘Intent’라는 메시지 전달 체계를 통해Activities가다른Activities를 부르는 방식◦ 서로 다른 앱 간Activities를 공유 가능
View1
View2
View3
View4
AppDelegate
UIViewControllerUIViewController
UIViewControllerUIViewController
…
…
iOS App 구조
Activities
Activities
Activities
Activities Activities
Activities
Android App 구조
App A
App B
Better Tools vs. More Freedom Background Processing◦ iOS: 앱 스위칭, 오디오 재생◦ Android: “Services”, Activities간 공유
Sharing Data(스크린간 데이터 공유)◦ Both: SQLite, notification broadcast◦ iOS: Passing parameters◦ Android: GAO, Bundle, file system
Memory Management◦ iOS: 반드시 관리되어야 함, 명시적◦ Android: JAVA garbage collector, 단순함
UI Design◦ iOS: UITableView(vs. ListView)◦ Android: 물리적 Back, Menu, Search 버튼, 테마, 스타일, 위젯
Handling Multiple Screen Sizes◦ iOS: pixel doubling◦ Android: 9 patch png 이미지, device independent pixels
Sample Codepackage kr.re.etri.paint;
import java.util.Vector;
public class SPStroke {long time;PenProperties pen_properties;Vector<Integer> x_array, y_array;
}
public SPStroke() {time = 0;…
}
\src\kr\re\etri\paint\SPStroke.java
#import <vector>#import “PenProperties.h”
class SPStroke {public:
long long time;PenProperties pen_properties;std::vector<int> x_array, y_array;
SPStroke(void);}
\Classes\SPStroke.h
\Classes\SPStroke.mm
SPStroke::SPStroke() {time = 0;…
}
Summary iOS와Andorid 기기는 용도나 하드웨어적인측면, 기능면에서 많은 유사점이 있지만, 백그라운드와 내부 구조에는 차이가 많음
서로 장단점이 달라서 어느 플랫폼이 더 우수하다고 말할 수는 없지만, 잠재고객을 늘리기 위해서는 개발 초기에 두 플랫폼에 대한차이를 이해하고 동시에 고려해야함
폐쇄성 vs. 개방성
개발 도구 편의성 vs. 높은 개발 자유도