visual studio를 활용한 멀티플랫폼 대상 애플리케이션 개발

Post on 23-Jun-2015

2.584 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

서론: 현재의 다양한 플랫폼 상황 본론: 마이크로소프트 플랫폼 관점의 멀티플랫폼 접근 방법 1. C#과 VS로 이기종 플랫폼 개발: Mono 2. MVVM 로 공통 모듈을 재활용한 크로스 플랫폼 개발: MonoCross 3. 마이크로소프트 멀티 플랫폼 솔루션 개발: Portable Class Library 4. 서버 쪽도 클라이언트 개발처럼: Azure Mobile Service & ASP.NET Web API 결론: 마이크로소프트 솔루션 확장으로 멀티 플랫폼 대응

TRANSCRIPT

Visual Studio 2012 를 활용한 멀티플랫폼 대상 애플리케이션 개발.

- iOS, 안드로이드 , Windows, HTML5 애플리케이션 개발을 한번에

박중석 과장 | http://blogs.msdn.com/jspark기술 에반젤리스트 | 한국마이크로소프트

기존의 사용자 플랫폼 환경(Windows)다양한 윈도우 버전Windows 95, Windows 98, Windows MEWindows NT, Windows 2000, Windows XPWindows Vista, Windows 7, Windows 8Window Mobile, Windows Phone,

다양한 플랫폼의 등장아이폰

스마트폰 활성화 견인앱스토어 생태계 구축멀티터치 UI 발전 …

안드로이드다양한 제조사의 다양한 디바이스 ( 화면 크기 등 )현재 세계 시장 점유율 1 위 … .

윈도우폰기존 Windows OS 시장의 장점을 활용

마이크로소프트는 운영체제 개발 및 관리HW 디바이스는 여러 제조사가 만듦

기존 Windows 개발자가 편리한 개발 환경Visual Studio 개발툴 .NET Framework 활용

앱 개발 시에 멀티 플랫폼을 고려한다면…개발언어 다름

Objective C, Java, C++, C#, HTML5

개발도구 다름xcode (on Mac), Eclipse, Visual Studio

사용자 UI 다름Back 버튼 & 메뉴 버튼 유무 등

멀티 플랫폼 문제의 해결을 위한 시도PhoneGap 과 같은 웹 앱 솔루션

Hybrid 형태로 HTML5 를 이용한 웹 앱을 구현

단점HTML5 를 활용해야 하므로 기존 개발 언어에 비하면 생산성이 떨어짐 Native 앱에 비하면 성능이 떨어질 수 있음 ( 최적화 어려움 ) e.g. facebook app

같은 언어와 도구로 멀티 플랫폼용 Native 앱을 만들 수는 없을까 ?

자바와 이클립스 ?

C/C++ 과 컴파일러 ?

1. 같은 언어와 도구를 사용해서 멀티 플랫폼 Native 앱을 만들려면 ?

모노 (mono)크로스 플랫폼 , 오픈 소스 .NET 개발 프레임 워크

모노 Touch & 모노 for Android – Xamarin

monofor Android

for

Mono(Xamarin) 의 기능과 성능iOS 와 Android UI 와 API 에 완벽히 접근Native 바이너리를 통한 높은 반응성

앱 개발 사례

Infinite Flight TouchDraw Rdio

게임 분야에서는 MonoGame, Unity 등에서 활발히 사용 중

개발 도구 편의성UI 구성 편리C# 언어로 iOS 와 Android API 로 코드 완성 디바이스나 시뮬레이터에서 쉽게 디버깅Visual Studio 나 자체 (Xamarin) 크로스 플랫폼 IDE 활용

Xamarin.iOSMono Touch

C# 으로 아이폰 , 아이패드 앱 개발높은 성능 (Native 바이너리로 컴파일 됨 )애플의 API 와 UI 컨트롤에 완벽히 접근.NET 프레임워크 활용

Xcode 활용한 디자인 가능(C# 으로 직접 그리는 것도 가능 )

Xamarin.AndroidMono for Android

C# 으로 안드로이드 앱을 개발안드로이드 API 와 UI 컨트롤에 완벽한 접근.NET 프레임워크 활용

안드로이드 디자이너Visual Studio 에서 컨트롤 드래그앤 드롭 가능스크린 크기 지정 , 회전 , 버전 타겟 가능표준 안드로이드 XML 저장

Visual Studio 플러그인을 통한 개발C# 언어를 최우선으로 지원

자동 완성 , 디버깅 , UI 디자인 가능

데모

같은 언어와 도구로 개발 할 수 있지만…여전히 멀티 플랫폼 용으로 솔루션을 각각 만들어야 하는가 ?

공유할 코드 (e.g., Data 관련 Business 로직 ) 를 만들면 될 것 같은데 각각 알아서 해야 할까 ?

Presentation Layer 에서도 각 플랫폼에 특화된 내용의 코딩을 줄일 수 있는 방법은 없을까 ?

2. 멀티 플랫폼에서 개발한 코드를 최대한 재 활용 하려면 ?

모노크로스 (Monocross)C# .NET 그리고 모노를 사용하는 오픈 소스 크로스 플랫폼 모바일 프레임워크

대상 : 아이폰 , 아이패드 , 안드로이드 , 윈도우폰 , 웹킷 기반의 폰

특징비즈니스 로직을 쉽게 공유 할 수 있도록 프레임워크 제공Native 와 HTML5 앱 모두에 활용 가능

구조MVC(Model-View-Controller) 패턴을 활용

iFactr (from ITR Mobility)iFactr – 모토크로스를 기반으로 엔터프라이즈 급 UI 추상화와 데이터 동기화를 제공할 수 있도록 만든 프레임 워크

데모

3. 마이크로소프트의 플랫폼 사이의 개발에서는 어떻게 할까 ?

.NET 플랫폼마이크로소프트 플랫폼 간에도 유사한 접근이 필요할 수 있음

포터블 클래스 라이브러리 (Portable Class Libraries)

하나의 소스하나의 프로젝트하나의 바이너리

멀티 플랫폼 지원 가능

Model-View-View Model (MVVM)ViewsXAML 로 작성된 정보를 보여줌

View Models어떤 정보를 보여줄 지정보 교류의 흐름 관리

Models데이터 객체 (Data objects)비즈니스 로직 (Business logic)그 외 .

Model

View Model

View 플랫폼 특화 부분

재활용 가능한 부분(Portable)

참조 (References)

데이터바인딩 (Databinds)

마이크로소프트 멀티 플랫폼 앱 구조 예

Startup

Views

윈도우스토어 앱

플랫폼 특화 기능

View Models

Models

포터블 클래스 라이브러리

플랫폼 특화 기능

Startup

Views

윈도우폰 앱

플랫폼 특화 기능

참조 참조

데모 : PCL

4. Server 쪽도 Client 와 같은 언어와 도구로 개발하려면 ?

멀티 플랫폼 앱에서 서버 접근

iOSAndroid

Windows

Cloud

Windows Phone

모바일 앱 관련 서버 쪽에서 필요한 작업들

데이터 저장

알림 ( 푸시 등 )

사용자 인증

서버 로직 ( 웹 서비스 등 )

서버 용량 확장

로깅 ( 서버 기록 조사 )

진단 ( 상태 값 확인 )

윈도우 애저 모바일 서비스모바일 클라이언트에서 자주 사용 되는 서버 쪽 개발에 최적화 된 클라우드 서비스

멀티 플랫폼과 통신할 서버를 직접 구축하고자 한다면…‘ASP.NET Web API’ 고려

닷넷을 활용해서 HTTP 서비스를 쉽게 개발할 수 있는 프레임워크

브라우저 , 모바일 기기를 포함한 광범위한 클라이언트 대상닷넷 프레임워크 기반에서 RESTful 앱을 개발시에 최적

데모 : 윈도우 애저 모바일 서비스 & ASP.NET Web API

결론마이크로소프트 플랫폼의 확장을 통하면 멀티 플랫폼에서 구동되는 Native 앱 개발을 한번에 하기 용이 !

멀티 플랫폼 대상 앱을 개발 시엔 마이크로소프트의 플랫폼과 도구를 적극 고려 !

관련 링크Xamarin

http://xamarin.com/

Monocrosshttp://monocross.net/

IFactrhttp://ifactr.com/

Portable Class Libraryhttp://msdn.microsoft.com/en-us/library/vstudio/gg597391(v=vs.110).aspx

Azure Mobile Servicehttp://www.windowsazure.com/en-us/develop/mobile/

ASP.NET Web APIhttp://www.asp.net/web-api

감사합니다 .박중석 | 한국마이크로소프트jspark@microsoft.com http://blogs.msdn.com/jspark

top related