Uso de Librerías Objective-c en Xamarin.iOS
-
Upload
alejandro-ruiz-varela -
Category
Engineering
-
view
153 -
download
4
Transcript of Uso de Librerías Objective-c en Xamarin.iOS
![Page 1: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/1.jpg)
Alejandro Ruiz – Microsoft & Xamarin MVP, CTO @ [email protected]
Humberto Jaimes – Microsoft & Xamarin [email protected]
Uso de Librerías Objective-c en Xamarin.iOS
![Page 2: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/2.jpg)
Conceptos básicos.h -> Definiciones
.m -> implementaciones
Protocolos <-> Interfaces o clases abstractas
![Page 3: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/3.jpg)
Conceptos básicosStatic Library <-> Class Library (DLL)
Framework <-> DLL con recursos
CocoaPod <-> Paquete Nuget
.xcodeproj<-> .sln .csproj
![Page 4: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/4.jpg)
Binding• Es un tipo de proyecto mediante el cual podremos exponer codigo
Obj-C / Swift embebido en un .framework o .a
![Page 5: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/5.jpg)
3 pasos para exponer una librería nativa a Xamarin• Escribir la definición de la API en C# esto se logra mediante el uso de
atributos y definiciones de interfaces.*• Una vez teniendo la definición escrita es momento de compilarla
mediante el uso de un proyecto tipo binding o mediante la linea de comando.• Una vez que tengamos el ensamblado del binding, ahora puedes
usarlo y añadirlo como referencia a tu proyecto Xamarin.iOS.
*Este paso puede ser automatizado mediante el uso de la herramienta Objective Sharpie.
![Page 6: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/6.jpg)
Generar binding por linea de comando.• Se realiza mediante el comando btouch-native para Xamarin.iOS y
bmac-native para Mac
![Page 7: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/7.jpg)
Proyecto Binding• Es un tipo de proyecto que se puede generar desde Xamarin Studio o
Visual Studio(solo iOS) para poder editar y compilar de manera sencilla.
![Page 8: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/8.jpg)
Como funcionan los bindings• Es posible usar atributos [Register], [Export] y Obj-C Selectors juntos
para poder exponer los tipos de Obj-C
![Page 9: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/9.jpg)
Como crear un proyecto
![Page 10: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/10.jpg)
Exponiendo la API
![Page 11: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/11.jpg)
Estructura de ensamblado tipo binding
![Page 12: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/12.jpg)
Ejemplos de exposición de API• Métodos
![Page 13: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/13.jpg)
Ejemplos de exposición de API• Propiedades
• Constructores
![Page 14: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/14.jpg)
Ejemplos de exposición de API• Protocolos
![Page 15: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/15.jpg)
Binding
Crear un API Definition Crear el proyecto de Binding
Utilizar el resultado del proyecto de binding en
nuestras apps
![Page 16: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/16.jpg)
Objective Sharpie
Es una línea de comandos que ayuda a
los desarrolladores con el paso del
proceso de crear una definición
https://download.xamarin.com/objective-sharpie/ObjectiveSharpie.pkg
![Page 17: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/17.jpg)
Objective Sharpie
Objective Sharpie
CocoaPod
.h
Framework
Proyecto
ApiDefinition
StructsAndEnums
sharpie verify-docs
![Page 18: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/18.jpg)
Objective Sharpie -Help
![Page 19: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/19.jpg)
Ejemplo Binding Proyecto Xcodehttps://goo.gl/QRnzeP
![Page 22: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/22.jpg)
![Page 23: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/23.jpg)
Referencias
Bindings iOS:https://developer.xamarin.com/guides/cross-platform/macios/binding/
![Page 24: Uso de Librerías Objective-c en Xamarin.iOS](https://reader033.fdocumento.com/reader033/viewer/2022042510/58e499891a28aba3458b4919/html5/thumbnails/24.jpg)
Gracias, ¿Preguntas?Alejandro Ruiz / Humberto JaimesUso de Librerias Objective-C en Xamarin.iOS
[email protected] - [email protected] @alejandroruizva - @HJaimesDevhttp://alejandroruizvarela.blogspot.com - http://hjr.com.mx