Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cross platform mobile development with Xamarin
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Marcin Kuptel
June 18, 2015
Programming
0
28
Cross platform mobile development with Xamarin
A talk I gave at CocoaHeads Copenhagen in June 2015.
Marcin Kuptel
June 18, 2015
Tweet
Share
Other Decks in Programming
See All in Programming
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.3k
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
Oxlintはいいぞ
yug1224
5
1.3k
AI & Enginnering
codelynx
0
110
AI巻き込み型コードレビューのススメ
nealle
2
410
組織で育むオブザーバビリティ
ryota_hnk
0
180
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
310
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.3k
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
HDC tutorial
michielstock
1
380
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
55
How to Talk to Developers About Accessibility
jct
2
130
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
The Invisible Side of Design
smashingmag
302
51k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Odyssey Design
rkendrick25
PRO
1
500
Designing Experiences People Love
moore
144
24k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Transcript
CROSS PLATFORM MOBILE DEVELOPMENT WITH XAMARIN MARCIN KUPTEL
None
NOT IDEAL ▸ Double the amount of work ▸ More
developers required ▸ Changes need to be made in multiple places
CAN WE DO BETTER?
None
None
XAMARIN STUDIO
BUT WHAT ABOUT THE UI? ▸ Either use Xamarin Designer
▸ Or stick with Interface Builder!
PROFILING TOOLS ▸ HeapShot - Xamarin's own memory and performance
tool ▸ Xamarin Profiler
C# ▸ generics ▸ lambda expressions ▸ optionals
C# USES GARBAGE COLLECTION
HOW DO C# AND OBJECTIVE C WORK TOGETHER?
GOTCHA NO. 1 UIIMAGE
THE DISPOSE PATTERN
IOS C# ➡ ARM ASSEMBLY ANDROID C# ➡ IL ➡
ASSEMBLY AT RUNTIME
All IOS FRAMWORKS ARE AVAILABLE
... WITH A FEW DIFFERENCES ▸ Strongly typed arrays instead
of NSArray ▸ Delegate methods exposed through events and properties ▸ NSString becomes string
GOTCHA NO. 2 UITableViewDelegate and UITableViewDataSource are classes
THIRD PARTY LIBRARIES ▸ NuGet is a package manager built
into Xamarin Studio ▸ Over 37,000 libraries ▸ Notifies you when a library has been updated ▸ You can easily publish your own
BINDING PROJECTS
API DEFINITION namespace Cocos2D { [BaseType (typeof (NSObject))] interface Camera
{ [Static, Export ("getZEye")] nfloat ZEye { get; } [Export ("restore")] void Restore (); ... } }
SHARING CODE
SHARED PROJECT #if __IOS__ nsDispatcher.BeginInvokeOnMainThread(NotifyListeners); #elif __ANDROID__ Dispatcher.RunOnUiThread(() => NotifyListeners());
#endif
PORTABLE CLASS LIBRARY
OUR PROJECTS
SHARING ASSETS
CONTINUOUS INTEGRATION /Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool -v build “--configuration:Release|iPhone” app/MyAwesomeApp.sln UNFORTUNATELY IT
IS NOT POSSIBLE TO BUILD WITHOUT CODE-SIGNING security unlock-keychain -pPASSWORD ~/Library/Keychains/login.keychain
NUNIT FOR UNIT TESTING [TestFixture] public class LoginViewModelTests { [Test]
public void TestThatLoginViewModelCanBeCreated() { Mock<IAccountApi> mockAccount = new Mock<IAccountApi>(); Mock<IDialogService> dialogServiceMock = new Mock<IDialogService>(); ... Assert.IsNotNull(viewModel); }
THE VERDICT ! Very easy to share code between platforms
! Good support from Xamarin ! Not enough iOS open source projects ! Xamarin Studio issues
THANKS! @MARCINKUPTEL