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

5,151 views

Published on

서론: 현재의 다양한 플랫폼 상황

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

결론: 마이크로소프트 솔루션 확장으로 멀티 플랫폼 대응

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,151
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
49
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

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

  1. 1. Visual Studio 2012를 활용한 멀티플랫폼 대상 애플리케이션 개발 . - iOS, 안드로이드, Windows, HTML5 애플리케이션 개발을 한번에 박중석 과장 | http://blogs.msdn.com/jspark 기술 에반젤리스트 | 한국마이크로소프트
  2. 2. 기존의 사용자 플랫폼 환경(Windows) 다양한 윈도우 버전 Windows 95, Windows 98, Windows ME Windows NT, Windows 2000, Windows XP Windows Vista, Windows 7, Windows 8 Window Mobile, Windows Phone,
  3. 3. 다양한 플랫폼의 등장 아이폰 스마트폰 활성화 견인 앱스토어 생태계 구축 멀티터치 UI 발전 … 안드로이드 다양한 제조사의 다양한 디바이스 (화면 크기 등) 현재 세계 시장 점유율 1위 …. 윈도우폰 기존 Windows OS 시장의 장점을 활용 마이크로소프트는 운영체제 개발 및 관리 HW 디바이스는 여러 제조사가 만듦 기존 Windows 개발자가 편리한 개발 환경 Visual Studio 개발툴 .NET Framework 활용
  4. 4. 앱 개발 시에 멀티 플랫폼을 고려한다면… 개발언어 다름 Objective C, Java, C++, C#, HTML5 개발도구 다름 xcode (on Mac), Eclipse, Visual Studio 사용자 UI 다름 Back 버튼 & 메뉴 버튼 유무 등
  5. 5. 멀티 플랫폼 문제의 해결을 위한 시도 PhoneGap 과 같은 웹 앱 솔루션 Hybrid 형태로 HTML5 를 이용한 웹 앱을 구현 단점 HTML5를 활용해야 하므로 기존 개발 언어에 비하면 생산성이 떨어짐 Native 앱에 비하면 성능이 떨어질 수 있음(최적화 어려움) e.g. facebook app
  6. 6. 같은 언어와 도구로 멀티 플랫폼용 Native 앱을 만들 수는 없을까? 자바와 이클립스? C/C++과 컴파일러?
  7. 7. 1. 같은 언어와 도구를 사용해서 멀티 플랫폼 Native 앱을 만들려면?
  8. 8. 모노(mono) 크로스 플랫폼, 오픈 소스 .NET 개발 프레임 워크
  9. 9. 모노 Touch & 모노 for Android – Xamarin
  10. 10. Mono(Xamarin) 의 기능과 성능 iOS 와 Android UI와 API에 완벽히 접근 Native 바이너리를 통한 높은 반응성 앱 개발 사례 Infinite Flight TouchDraw Rdio 게임 분야에서는 MonoGame, Unity 등에서 활발히 사용 중
  11. 11. 개발 도구 편의성 UI 구성 편리 C#언어로 iOS 와 Android API로 코드 완성 디바이스나 시뮬레이터에서 쉽게 디버깅 Visual Studio 나 자체(Xamarin) 크로스 플랫폼 IDE 활용
  12. 12. Xamarin.iOS Mono Touch C#으로 아이폰, 아이패드 앱 개발 높은 성능 (Native 바이너리로 컴파일 됨) 애플의 API와 UI 컨트롤에 완벽히 접근 .NET 프레임워크 활용 Xcode 활용한 디자인 가능 (C#으로 직접 그리는 것도 가능)
  13. 13. Xamarin.Android Mono for Android C#으로 안드로이드 앱을 개발 안드로이드 API와 UI 컨트롤에 완벽한 접근 .NET 프레임워크 활용 안드로이드 디자이너 Visual Studio 에서 컨트롤 드래그앤 드롭 가능 스크린 크기 지정, 회전, 버전 타겟 가능 표준 안드로이드 XML 저장
  14. 14. Visual Studio 플러그인을 통한 개발 C# 언어를 최우선으로 지원 자동 완성, 디버깅, UI 디자인 가능
  15. 15. 데모
  16. 16. 같은 언어와 도구로 개발 할 수 있지만… 여전히 멀티 플랫폼 용으로 솔루션을 각각 만들어야 하는가? 공유할 코드(e.g., Data 관련 Business 로직)를 만들면 될 것 같은데 각각 알아서 해야 할까? Presentation Layer에서도 각 플랫폼에 특화된 내용의 코딩을 줄일 수 있는 방법은 없을까?
  17. 17. 2. 멀티 플랫폼에서 개발한 코드를 최대한 재 활용 하려면?
  18. 18. 모노크로스(Monocross) C# .NET 그리고 모노를 사용하는 오픈 소스 크로스 플랫폼 모바일 프레임워크 대상: 아이폰, 아이패드, 안드로이드, 윈도우폰, 웹킷 기반의 폰
  19. 19. 특징 비즈니스 로직을 쉽게 공유 할 수 있도록 프레임워크 제공 Native 와 HTML5 앱 모두에 활용 가능
  20. 20. 구조 MVC(Model-View-Controller) 패턴을 활용
  21. 21. iFactr (from ITR Mobility) iFactr – 모토크로스를 기반으로 엔터프라이즈 급 UI 추상화와 데이터 동기화를 제공할 수 있도록 만든 프레임 워크
  22. 22. 데모
  23. 23. 3. 마이크로소프트의 플랫폼 사이의 개발에서는 어떻게 할까?
  24. 24. .NET 플랫폼 마이크로소프트 플랫폼 간에도 유사한 접근이 필요할 수 있음
  25. 25. 포터블 클래스 라이브러리(Portable Class Libraries) 하나의 소스 하나의 프로젝트 하나의 바이너리 멀티 플랫폼 지원 가능
  26. 26. Model-View-View Model (MVVM) Views 플랫폼 특화 부분 XAML로 작성된 정보를 보여줌 View Models 데이터바인딩(Databinds) 어떤 정보를 보여줄 지 정보 교류의 흐름 관리 Models 데이터 객체(Data objects) 비즈니스 로직(Business logic) 그 외. 참조(References) 재활용 가능한 부분 (Portable)
  27. 27. 마이크로소프트 멀티 플랫폼 앱 구조 예 Startup Startup Views Views 플랫폼 특화 기능 플랫폼 특화 기능 참조 View Models Models 플랫폼 특화 기능 참조
  28. 28. 데모: PCL
  29. 29. 4. Server 쪽도 Client와 같은 언어와 도구로 개발하려면?
  30. 30. 멀티 플랫폼 앱에서 서버 접근
  31. 31. 모바일 앱 관련 서버 쪽에서 필요한 작업들
  32. 32. 윈도우 애저 모바일 서비스 모바일 클라이언트에서 자주 사용 되는 서버 쪽 개발에 최적화 된 클라우드 서비스
  33. 33. 멀티 플랫폼과 통신할 서버를 직접 구축하고자 한다면… ‘ASP.NET Web API’ 고려 닷넷을 활용해서 HTTP 서비스를 쉽게 개발할 수 있는 프레임워크 브라우저, 모바일 기기를 포함한 광범위한 클라이언트 대상 닷넷 프레임워크 기반에서 RESTful 앱을 개발시에 최적
  34. 34. 데모: 윈도우 애저 모바일 서비스 & ASP .NET Web API
  35. 35. 결론 마이크로소프트 플랫폼의 확장을 통하면 멀티 플랫폼에서 구동되는 Native 앱 개발을 한번에 하기 용이! 멀티 플랫폼 대상 앱을 개발 시엔 마이크로소프트의 플랫폼과 도구를 적극 고려!
  36. 36. 관련 링크 Xamarin http://xamarin.com/ Monocross http://monocross.net/ IFactr http://ifactr.com/ Portable Class Library http://msdn.microsoft.com/en-us/library/vstudio/gg597391(v=vs.110).aspx Azure Mobile Service http://www.windowsazure.com/en-us/develop/mobile/ ASP.NET Web API http://www.asp.net/web-api
  37. 37. 감사합니다. 박중석 | 한국마이크로소프트 jspark@microsoft.com http://blogs.msdn.com/jspark

×