SlideShare a Scribd company logo
IVAN ĐIKIĆ
INTRO
COMMON APPROACHES TO MOBILE
APP DEVELOPMENT
• NATIVE APPROACH
• HYBRID APPROACH
• XAMARIN APPROACH
01NATIVE APPROACH
“SILO”
02HYBRID APPROACH
“BLACK BOX”
03XAMARIN APPROACH
“UNIQUE APPROACH”
04XAMARIN PLATFORM
WHAT YOU GET WITH XAMARIN?
• single language C#(F#)
• class library
• runtime that works across platforms
• complete binding for underlying platform
• ability to directly invoke ObjC, Java, C, C++
• huge BCL
• powerfull IDE
05HOW DOES XAMARIN WORK
XAMARIN UNDER THE HOOD
• built on top of Mono, open source .NET framework
• can be run on nearly every imaginable platform
• Unix
• Linux
• FreeBSD
• OSX
HOW IT WORKS
• trough usage of P/Invoke Service
MANAGED
SOURCE
CODE
COMPILER
COMMON LANGUAGE
RUNTIME
STANDARD
MARSHALLING
SERVICE
PLATFORM
INVOKE
MANAGEDUNMANAGED
DLL
FUNCTION
METADATA
IL CODE
ASSEMBLY
HOW IT WORKS - P/INVOKE
1. read [*h] header files to map [C/Obj-C] API to [C#] → (marshalling)
2. compile [*.m/*.mm/*.c] files to object files and link them into static/
dynamic libraries.
3. embed libraries from #2. step into .Net project
4. generate [C#] wrappers to expose #2. to the [C#] world
NATIVE PERFORMANCE
06POSSIBLE ISSUES
POSSIBLE ISSUES
• binding of third party libraries
• Xamarin Store, lots of open sourced components
• If missing, you need to BIND it yourself
• memory management
• lambdas + GC + marshalling
• (object references across interop boundaries)
07HOW TO START
GETTING STARTED
• MAC:
• Xamarin Studio [UI + CODE]
• Xamarin Studio [Code] + Xcode [UI]
• WINDOWS:
• Visual Studio [UI + CODE] + MAC for building
• Xamarin Studio [UI + CODE] + MAC for building
* installer will download everything that you need (SDK, …)
HOW DOES IT FEEL :)?
Q&A

More Related Content

PPTX
intoduction to java
PDF
Introduction to Phoenix Web Framework
PPTX
Lara technologies
PPTX
Lara Technology
PPTX
Introduction of java technology
PPTX
Introduction to xamarin
PDF
UI Prototyping with Smalltalk at Thales
intoduction to java
Introduction to Phoenix Web Framework
Lara technologies
Lara Technology
Introduction of java technology
Introduction to xamarin
UI Prototyping with Smalltalk at Thales

What's hot (17)

PDF
Introduction to Zend framework Boilerplate
PPTX
haXe - One codebase to rule'em all
PDF
Don Wibier
PPT
Ria Applications And PHP
PPTX
Elixir Phoenix
PDF
Docker security microservices
PDF
Alfresco tech talk live mobile sdks
PDF
BASTA 2019 - Docker + Azure DevOps + Kubernetes = ♥
PDF
Basta! Spring 2019 - Docker + Azure DevOps + Kubernetes = ♥
PDF
Erlang/Elixir and OTP
PPTX
Tehran's 1st Android bootcamp - Part2
PDF
Pharo, Spec and GTK
PDF
Docker and Pharo @ZWEIDENKER
PPTX
Its320 power point
PPTX
ITS320 Presentation
PPTX
Java presetstion
PPTX
KazooCon 2014 - WebRTC
Introduction to Zend framework Boilerplate
haXe - One codebase to rule'em all
Don Wibier
Ria Applications And PHP
Elixir Phoenix
Docker security microservices
Alfresco tech talk live mobile sdks
BASTA 2019 - Docker + Azure DevOps + Kubernetes = ♥
Basta! Spring 2019 - Docker + Azure DevOps + Kubernetes = ♥
Erlang/Elixir and OTP
Tehran's 1st Android bootcamp - Part2
Pharo, Spec and GTK
Docker and Pharo @ZWEIDENKER
Its320 power point
ITS320 Presentation
Java presetstion
KazooCon 2014 - WebRTC
Ad

Viewers also liked (15)

PDF
Infinum iOS Talks #4 - Making your Swift networking code more awesome with Re...
PDF
Infinum Android Talks #14 - Facebook for Android API
PDF
Infinum iOS Talks #4 - Making our VIPER more reactive
PDF
Infinum Android Talks #18 - In-app billing by Ivan Marić
PDF
Infinum Android Talks #20 - Making your Android apps fast like Blue Runner an...
PDF
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
PDF
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
PDF
Infinum Android Talks #9 - Making your app location-aware
PDF
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
PDF
Infinum Android Talks #14 - Gradle plugins
PDF
Infinum Android Talks #18 - How to cache like a boss by Željko Plesac
PDF
Infinum Android Talks #14 - Log4j
PDF
Infinum Android Talks #13 - Using ViewDragHelper
PDF
Infinum Android Talks #18 - Create fun lists by Ivan Marić
PDF
Infinum iOS Talks #1 - Swift done right by Ivan Dikic
Infinum iOS Talks #4 - Making your Swift networking code more awesome with Re...
Infinum Android Talks #14 - Facebook for Android API
Infinum iOS Talks #4 - Making our VIPER more reactive
Infinum Android Talks #18 - In-app billing by Ivan Marić
Infinum Android Talks #20 - Making your Android apps fast like Blue Runner an...
Infinum iOS Talks #2 - VIPER for everybody by Damjan Vujaklija
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum Android Talks #9 - Making your app location-aware
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
Infinum Android Talks #14 - Gradle plugins
Infinum Android Talks #18 - How to cache like a boss by Željko Plesac
Infinum Android Talks #14 - Log4j
Infinum Android Talks #13 - Using ViewDragHelper
Infinum Android Talks #18 - Create fun lists by Ivan Marić
Infinum iOS Talks #1 - Swift done right by Ivan Dikic
Ad

Similar to Infinum iOS Talks #2 - Xamarin by Ivan Đikić (20)

PPTX
Introduction to xamarin
PPTX
Introduction to xamarin
PPTX
Hybrid Mobile App Development - Xamarin
PDF
Introduction to xamarin
PDF
iOS & Android Dev in C# & Visual Studio using Xamarin
PPTX
Xamarin介紹
PPTX
Open source and .net
PPTX
Hybrid Mobile Applications
PDF
Xamarin v.Now
PDF
MS Experiences 17 - Xamarin: Future of Mobile Development
PPTX
DNN Connect - Mobile Development With Xamarin
PDF
Introduction to Cross Platform Development with Xamarin/ Visual Studio
PDF
Xamarin: Create native iOS, Android and Windows apps in C#
PPTX
Introduction to Xamarin
PDF
Infinum Android Talks #09 - Xamarin platform
PPTX
Xamarin - Victim of Phonegap’s horrible reputation
PPTX
Xamarin - Beyond the Basics
PPTX
Cross-Platform Development
PDF
Visual studio + Xamarin == Love
PPTX
Cross Platform Mobile Development with C# and Xamarin
Introduction to xamarin
Introduction to xamarin
Hybrid Mobile App Development - Xamarin
Introduction to xamarin
iOS & Android Dev in C# & Visual Studio using Xamarin
Xamarin介紹
Open source and .net
Hybrid Mobile Applications
Xamarin v.Now
MS Experiences 17 - Xamarin: Future of Mobile Development
DNN Connect - Mobile Development With Xamarin
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Xamarin: Create native iOS, Android and Windows apps in C#
Introduction to Xamarin
Infinum Android Talks #09 - Xamarin platform
Xamarin - Victim of Phonegap’s horrible reputation
Xamarin - Beyond the Basics
Cross-Platform Development
Visual studio + Xamarin == Love
Cross Platform Mobile Development with C# and Xamarin

More from Infinum (15)

PDF
Infinum Android Talks #20 - DiffUtil
PDF
Infinum Android Talks #20 - Benefits of using Kotlin
PDF
Infinum iOS Talks #1 - Becoming an iOS developer swiftly by Vedran Burojevic
PDF
Infinum Android Talks #17 - Testing your Android applications by Ivan Kust
PDF
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
PDF
Infinum Android Talks #17 - Developing an Android library by Dino Kovac
PDF
Infinum Android Talks #17 - Intro by Ivan Kocijan
PDF
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
PDF
Infinum Android Talks #16 - Enterprise app development with Samsung by Blaz S...
PDF
Infinum Android Talks #16 - Retrofit 2 by Kristijan Jurkovic
PDF
Infinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
PDF
Infinum Android Talks #16 - App Links by Ana Baotic
PDF
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
PDF
Infinum Android Talks #15 - Timber + Crashlytics -> A match made in heaven
PDF
Infinum Android Talks #15 - How to develop a simple 2D game with physics engine
Infinum Android Talks #20 - DiffUtil
Infinum Android Talks #20 - Benefits of using Kotlin
Infinum iOS Talks #1 - Becoming an iOS developer swiftly by Vedran Burojevic
Infinum Android Talks #17 - Testing your Android applications by Ivan Kust
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - Developing an Android library by Dino Kovac
Infinum Android Talks #17 - Intro by Ivan Kocijan
Android Meetup Slovenia #5 - Don't go crashing my heart by Zeljko Plesac, Inf...
Infinum Android Talks #16 - Enterprise app development with Samsung by Blaz S...
Infinum Android Talks #16 - Retrofit 2 by Kristijan Jurkovic
Infinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
Infinum Android Talks #16 - App Links by Ana Baotic
Infinum Android Talks #15 - Garfield Android Studio Plugin - Be Smart, Be Lazy
Infinum Android Talks #15 - Timber + Crashlytics -> A match made in heaven
Infinum Android Talks #15 - How to develop a simple 2D game with physics engine

Recently uploaded (20)

PPTX
Online Work Permit System for Fast Permit Processing
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Introduction to Artificial Intelligence
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Digital Strategies for Manufacturing Companies
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
ai tools demonstartion for schools and inter college
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Online Work Permit System for Fast Permit Processing
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How Creative Agencies Leverage Project Management Software.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Understanding Forklifts - TECH EHS Solution
Introduction to Artificial Intelligence
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms I-SECS-1021-03
Digital Strategies for Manufacturing Companies
ManageIQ - Sprint 268 Review - Slide Deck
ai tools demonstartion for schools and inter college
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Adobe Illustrator 28.6 Crack My Vision of Vector Design

Infinum iOS Talks #2 - Xamarin by Ivan Đikić

  • 3. COMMON APPROACHES TO MOBILE APP DEVELOPMENT • NATIVE APPROACH • HYBRID APPROACH • XAMARIN APPROACH
  • 11. WHAT YOU GET WITH XAMARIN? • single language C#(F#) • class library • runtime that works across platforms • complete binding for underlying platform • ability to directly invoke ObjC, Java, C, C++ • huge BCL • powerfull IDE
  • 13. XAMARIN UNDER THE HOOD • built on top of Mono, open source .NET framework • can be run on nearly every imaginable platform • Unix • Linux • FreeBSD • OSX
  • 14. HOW IT WORKS • trough usage of P/Invoke Service MANAGED SOURCE CODE COMPILER COMMON LANGUAGE RUNTIME STANDARD MARSHALLING SERVICE PLATFORM INVOKE MANAGEDUNMANAGED DLL FUNCTION METADATA IL CODE ASSEMBLY
  • 15. HOW IT WORKS - P/INVOKE 1. read [*h] header files to map [C/Obj-C] API to [C#] → (marshalling) 2. compile [*.m/*.mm/*.c] files to object files and link them into static/ dynamic libraries. 3. embed libraries from #2. step into .Net project 4. generate [C#] wrappers to expose #2. to the [C#] world
  • 18. POSSIBLE ISSUES • binding of third party libraries • Xamarin Store, lots of open sourced components • If missing, you need to BIND it yourself • memory management • lambdas + GC + marshalling • (object references across interop boundaries)
  • 20. GETTING STARTED • MAC: • Xamarin Studio [UI + CODE] • Xamarin Studio [Code] + Xcode [UI] • WINDOWS: • Visual Studio [UI + CODE] + MAC for building • Xamarin Studio [UI + CODE] + MAC for building * installer will download everything that you need (SDK, …)
  • 21. HOW DOES IT FEEL :)?
  • 22. Q&A