DEVELOPING CROSS PLATFORM APPS
USING XAMARIN
TECHCAMP 2014
RMIT, HCMC
MARCH 23
$ WHOAMI
Nguyễn Lê Phú An
Senior Software Engineer
R&D, KMS Technology
anlpnguyen@kms-technology.com
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
An Nguyen
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
 Multiple platforms
 Performance
 Native UI & UX
AGENDA
 Introduction to Xamarin
 Getting started
 Other Worth Mentioning
 Things to take away
 Q&A
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
INTRODUCTION TO XAMARIN
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
INTRODUCTION TO XAMARIN
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
 Founded in May 2011
 From 2 Microsoft guys:
 Nat Friedman: CEO
 Miguel de Icaza: CTO
 Based on Mono Framework
BINDING TO NATIVE SDK
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
SAMPLE CODE – ANDROID UI
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
SAMPLE CODE – IOS UI
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
CODE SHARING
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
LIBRARY BINDING
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
Libraries
XAMARIN STUDIO
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
 Common IDE features (auto completion,
source control…)
 Design UI:
o Android: Xamarin Designer
o iOS: Xcode integration
 Debugging and Building Tools (support
simulator and device)
VISUAL STUDIO PLUGIN
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
GETTING STARTED
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
FIRST STEP
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
 Create a iOS project
 Play with Xcode IB
 Create a Android project
 Play with Xamarin Designer
SIMPLE PROJECT
CODE SHARING
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
TASKY
 Create core project
 Link core project
 Implement
LIBRARY REUSE
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
ADSLIDING CONTROLLER
 Get source code
 Build static library
 Implement C# wrapper
 Reference
LIBRARY REUSE
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
ACTION BAR SHERLOCK
 Get source code
 Packing (JAR or ZIP)
 Generate C# Wrapper
 Reference
OTHER WORTH MENTIONING
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
CUSTOMER SERVICE
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
COMMUNITIES
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
WHAT WE LOVE
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
Cross-platform development in C#
Native UI, Native Performance
Reuse native libraries
Visual Studio or Xamarin Studio
WHAT WE HATE
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
Requires platform’s knowledge
Expensive!
Need Mac OS X machine for iOS
development
COMPETITORS
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
Xamarin Titanium PhoneGap Corona
Platforms iOS, Android,
Windows Phone
7 & 8
iOS, Android,
Blackberry
iOS, Android, Windows
Phone, Blackberry…
iOS, Android
Language C# Javascript HTML, CSS, Javascript… Lua
Pricing Free (limited)
$299/year
Per platform, per
developer
Free Free Free (limited)
$192/year
Per developer
UI Capabilities Native UI Native UI Web UI Common native UI
controls
Access of device
API
Full Access Full Access Limited Almost Full Access
Performance Nearest Native Nearly Native Device’s Web View
performance
Nearly Native
OpenGL
Application Types Productivity and
Utility Apps
Productivity and
Utility Apps
Basic/Simple Apps Game
THINGS TO TAKE AWAY
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
 C#
 Native Performance
 Separating native UI
 Sharing the logic code
 Reuse native libraries (not a piece of cake)
 Require knowledge for each platform
 Require a Mac machine (not be considered by everyone)
 Free with limited feature
QUESTIONS?
DEVELOPING CROSS PLATFORM APPS USING XAMARIN
anlpnguyen@kms-technology.com

Techcamp xamarin 2014

  • 1.
    DEVELOPING CROSS PLATFORMAPPS USING XAMARIN TECHCAMP 2014 RMIT, HCMC MARCH 23
  • 2.
    $ WHOAMI Nguyễn LêPhú An Senior Software Engineer R&D, KMS Technology anlpnguyen@kms-technology.com DEVELOPING CROSS PLATFORM APPS USING XAMARIN An Nguyen
  • 3.
    DEVELOPING CROSS PLATFORMAPPS USING XAMARIN  Multiple platforms  Performance  Native UI & UX
  • 4.
    AGENDA  Introduction toXamarin  Getting started  Other Worth Mentioning  Things to take away  Q&A DEVELOPING CROSS PLATFORM APPS USING XAMARIN
  • 5.
    INTRODUCTION TO XAMARIN DEVELOPINGCROSS PLATFORM APPS USING XAMARIN
  • 6.
    INTRODUCTION TO XAMARIN DEVELOPINGCROSS PLATFORM APPS USING XAMARIN  Founded in May 2011  From 2 Microsoft guys:  Nat Friedman: CEO  Miguel de Icaza: CTO  Based on Mono Framework
  • 7.
    BINDING TO NATIVESDK DEVELOPING CROSS PLATFORM APPS USING XAMARIN
  • 8.
    SAMPLE CODE –ANDROID UI DEVELOPING CROSS PLATFORM APPS USING XAMARIN
  • 9.
    SAMPLE CODE –IOS UI DEVELOPING CROSS PLATFORM APPS USING XAMARIN
  • 10.
    CODE SHARING DEVELOPING CROSSPLATFORM APPS USING XAMARIN
  • 11.
    LIBRARY BINDING DEVELOPING CROSSPLATFORM APPS USING XAMARIN Libraries
  • 12.
    XAMARIN STUDIO DEVELOPING CROSSPLATFORM APPS USING XAMARIN  Common IDE features (auto completion, source control…)  Design UI: o Android: Xamarin Designer o iOS: Xcode integration  Debugging and Building Tools (support simulator and device)
  • 13.
    VISUAL STUDIO PLUGIN DEVELOPINGCROSS PLATFORM APPS USING XAMARIN
  • 14.
    GETTING STARTED DEVELOPING CROSSPLATFORM APPS USING XAMARIN
  • 15.
    FIRST STEP DEVELOPING CROSSPLATFORM APPS USING XAMARIN  Create a iOS project  Play with Xcode IB  Create a Android project  Play with Xamarin Designer SIMPLE PROJECT
  • 16.
    CODE SHARING DEVELOPING CROSSPLATFORM APPS USING XAMARIN TASKY  Create core project  Link core project  Implement
  • 17.
    LIBRARY REUSE DEVELOPING CROSSPLATFORM APPS USING XAMARIN ADSLIDING CONTROLLER  Get source code  Build static library  Implement C# wrapper  Reference
  • 18.
    LIBRARY REUSE DEVELOPING CROSSPLATFORM APPS USING XAMARIN ACTION BAR SHERLOCK  Get source code  Packing (JAR or ZIP)  Generate C# Wrapper  Reference
  • 19.
    OTHER WORTH MENTIONING DEVELOPINGCROSS PLATFORM APPS USING XAMARIN
  • 20.
    CUSTOMER SERVICE DEVELOPING CROSSPLATFORM APPS USING XAMARIN
  • 21.
  • 22.
    WHAT WE LOVE DEVELOPINGCROSS PLATFORM APPS USING XAMARIN Cross-platform development in C# Native UI, Native Performance Reuse native libraries Visual Studio or Xamarin Studio
  • 23.
    WHAT WE HATE DEVELOPINGCROSS PLATFORM APPS USING XAMARIN Requires platform’s knowledge Expensive! Need Mac OS X machine for iOS development
  • 24.
    COMPETITORS DEVELOPING CROSS PLATFORMAPPS USING XAMARIN Xamarin Titanium PhoneGap Corona Platforms iOS, Android, Windows Phone 7 & 8 iOS, Android, Blackberry iOS, Android, Windows Phone, Blackberry… iOS, Android Language C# Javascript HTML, CSS, Javascript… Lua Pricing Free (limited) $299/year Per platform, per developer Free Free Free (limited) $192/year Per developer UI Capabilities Native UI Native UI Web UI Common native UI controls Access of device API Full Access Full Access Limited Almost Full Access Performance Nearest Native Nearly Native Device’s Web View performance Nearly Native OpenGL Application Types Productivity and Utility Apps Productivity and Utility Apps Basic/Simple Apps Game
  • 25.
    THINGS TO TAKEAWAY DEVELOPING CROSS PLATFORM APPS USING XAMARIN
  • 26.
    DEVELOPING CROSS PLATFORMAPPS USING XAMARIN  C#  Native Performance  Separating native UI  Sharing the logic code  Reuse native libraries (not a piece of cake)  Require knowledge for each platform  Require a Mac machine (not be considered by everyone)  Free with limited feature
  • 27.
    QUESTIONS? DEVELOPING CROSS PLATFORMAPPS USING XAMARIN anlpnguyen@kms-technology.com