Apple Platform (iOS i Mac)
Udostępnianie kodu
W przypadku elementów kodu, które nie mają elementów interfejsu użytkownika, najlepszym sposobem udostępniania kodu między systemami iOS i Mac jest nadal korzystanie z bibliotek klas przenośnych.
W przypadku kodu, który musi wykonać pewną pracę interfejsu użytkownika, a mimo to chcesz udostępnić, należy użyć projektów udostępnionych , które umożliwiają umieszczenie kodu w jednym projekcie i skompilowanie go zarówno z komputerami Mac, jak i iOS podczas odwołowania się.
Ujednolicony interfejs API
Projekty ujednoliconego interfejsu API dla systemów iOS i Mac używają tych samych przestrzeni nazw dla struktur, dzięki czemu ten sam plik kodu może być używany na obu platformach w celu bezproblemowego udostępniania kodu. Umożliwia również kompilacje 32 i 64-bitowe. Ujednolicony interfejs API jest domyślnym szablonem od początku 2015 r. i jest zalecany dla wszystkich nowych projektów — do sklepu App Store można przesyłać tylko projekty ujednoliconego interfejsu API.
Klasyczne interfejsy API
Uwaga
Wycofanie profilu klasycznego: w miarę dodawania nowych platform w środowisku Xamarin.iOS zaczynamy stopniowo przestarzać funkcje z profilu klasycznego (monotouch.dll). Na przykład opcja innej niż NRC (new-ref-count) została usunięta. Funkcja NRC zawsze była włączona dla wszystkich ujednoliconych aplikacji (tj. non-NRC nigdy nie była opcją) i nie ma znanych problemów. Przyszłe wersje spowodują usunięcie opcji użycia narzędzia Boehm jako modułu odśmiecającego śmieci. Była to również opcja nigdy nie dostępna dla ujednoliconych aplikacji. Całkowite usunięcie klasycznej pomocy technicznej zaplanowano na jesień 2016 r. wraz z wydaniem platformy Xamarin.iOS 10.0.
Oryginalne (inne niż ujednolicone) interfejsy API platform Xamarin.iOS i Xamarin.Mac utrudniły udostępnianie kodu, ponieważ struktury natywne miały MonoTouch.
prefiksy albo MonoMac.
przestrzeni nazw. Udostępniliśmy puste przestrzenie nazw, które umożliwiają deweloperom udostępnianie kodu przez dodanie using
instrukcji odwołujących się zarówno do przestrzeni nazw MonoMac, jak i MonoTouch w tym samym pliku, ale było to trochę brzydkie. Klasyczny interfejs API powinien być nadal używany tylko w starszych aplikacjach, które są wewnętrznie rozproszone (zaleca się uaktualnienie do ujednoliconego interfejsu API).
Aktualizowanie z wersji klasycznej do ujednoliconego interfejsu API
Istnieją szczegółowe instrukcje dotyczące aktualizowania dowolnej aplikacji z klasycznego do ujednoliconego interfejsu API.
Wiązanie Objective-C bibliotek
Platforma Xamarin umożliwia przenoszenie bibliotek natywnych do aplikacji z powiązaniami. W tej sekcji wyjaśniono:
- jak działają powiązania,
- jak ręcznie utworzyć projekt powiązania, który umożliwia wprowadzenie Objective-C kodu do platformy Xamarin i
- jak używać naszego narzędzia Objective Sharpie , aby pomóc zautomatyzować proces.
Odwołania natywne
Typy natywne dla komputerów Mac/iOS
Aby w sposób niewidoczny dla języka C# i F#obsługiwać 32 i 64-bitowy kod, wprowadzamy nowe typy danych. Więcej informacji na ten temat możesz uzyskać tutaj.
Kompilowanie aplikacji 32 i 64-bitowych
Co musisz wiedzieć, aby obsługiwać aplikacje 32 i 64-bitowe.
Praca z typami natywnymi w aplikacjach międzyplatformowych
W tym artykule opisano używanie nowych typów natywnych interfejsów API ujednoliconego systemu iOS (nint
, ), nfloat
w aplikacji międzyplatformowej, w której kod jest udostępniany urządzeniom z systemem innym niż iOS, nuint
takim jak systemy operacyjne Android lub Windows Telefon.
Zapewnia wgląd w to, kiedy należy używać typów natywnych i udostępnia kilka możliwych rozwiązań, w których nowy typ musi być używany z kodem międzyplatformowym.
Stos HttpClient i selektor implementacji protokołów SSL/TLS
Nowy selektor stosu HttpClient steruje implementacją klienta HttpClient do użycia w aplikacjach Xamarin.iOS, Xamarin.tvOS i Xamarin.Mac. Teraz możesz przełączyć się na implementację korzystającą z natywnych transportów systemu iOS, tvOS lub OS X (NSUrlSession
lub CFNetwork
w zależności od systemu operacyjnego).
Protokół SSL (Secure Socket Layer) i jego następca, TLS (Transport Layer Security), zapewniają obsługę protokołu HTTP i innych połączeń sieciowych za pośrednictwem usługi System.Net.Security.SslStream
. Nowa opcja kompilacji implementacji protokołu SSL/TLS przełącza się między własnym stosem TLS mono i jednym obsługiwanym przez stos TLS firmy Apple obecny w systemach Mac i iOS.