winobjc - windows bridge for ios
TRANSCRIPT
![Page 1: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/1.jpg)
#helloWindows10
Hel10 Windows 10!
![Page 3: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/3.jpg)
![Page 4: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/4.jpg)
#helloWindows10
¿Qué es Windows Bridge for iOS?Cocoa Touch en Windows 10Uso de proyeccionesControles XAML con el Bridge¿Qué queda por hacer en el Bridge?
Agenda
![Page 5: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/5.jpg)
#helloWindows10
Padre orgullosoDesarrollador apasionado currando en Plain Concepts
Bebedor y fabricante aficionado de cervezas
Microsoft MVP
Eduard Tomàs
![Page 6: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/6.jpg)
Introducción
![Page 7: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/7.jpg)
#helloWindows10
Antiguamente conocido como “Project Islandwood”
Actualmente la gente se refiere a él como WinObjC
Conjunto de herramientas para ayudar a migrar apps de iOS a Windows 10Open Source - https://github.com/Microsoft/WinObjC/
Qué es Bridge For iOS
![Page 8: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/8.jpg)
WinObjC no está terminado
Hay *mucho* hecho, pero queda *mucho* por hacer
Antes de nada…
![Page 9: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/9.jpg)
![Page 10: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/10.jpg)
#helloWindows10
Visual Studio 2015 capaz de compilar código Objective-C
Se usa el compilador de CLANG para ello, de forma integradaSensación de depuración integrada
Herramienta (básica) para crear un .sln a partir de un proyecto de XCodeAPIs principales de Foundation y Cocoa Touch usablesProyecciones para funcionalidades nativas de Win10
Qué está hecho…
![Page 11: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/11.jpg)
#helloWindows10
NO es una máquina virtual o un emulador
MS ha creado un runtime de Objective-C propioHa reimplementado Foundation y Cocoa Touch usando código C/Objective-CHa integrado CLANG dentro de VS para poder compilar código Objective-C
Como funciona…
![Page 12: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/12.jpg)
Demo: Un vistazo al código de WinObjC
![Page 13: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/13.jpg)
#helloWindows10
Herramienta que crea una solución de VS a partir de un proyecto de XCode
Mapea los “groups” de XCode a las carpetas virtuales de Visual Studio en proyectos C++
Permite exportar todos o un solo de los “targets” del proyecto XCode
VSImporter
![Page 14: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/14.jpg)
Demo: De Xcode a VS en lo que canta un gallo
![Page 15: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/15.jpg)
#helloWindows10
Librería de UI de iOS
Contiene los controles básicos de UI (UIButton, UILabel, UIImageView,…) así como las clases para soportar el modelo MVC de iOS (UIViewController,…)
WinObjC ha implementado la mayoría de controles básicos para Windows 10 con un look and feel similar al de iOS
Cocoa Touch
![Page 16: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/16.jpg)
Demo: Cocoa Touch en Windows 10
![Page 17: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/17.jpg)
Click icon to add picture
Uso de proyecciones
![Page 18: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/18.jpg)
#helloWindows10
WinRT es una API C++ basada en COM y con metadatos en formato CLI. Es una API unmanaged
Windows define “proyecciones” para poder usar la API en varios lenguajes de desarrollo
.NET (C# / VB.NET)JavaScript
¿Qué son las proyecciones?
![Page 19: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/19.jpg)
#helloWindows10
Bridge from iOS añade una proyección para poder usar las APIs de Windows 10 con Objective-C
Para ello debemos usar los ficheros de cabecera include/platform/Universal Windows/UWP
Usar esas proyecciones nos permite acceder a las APIs nativas de Windows 10 y reemplazar aquellas partes no disponibles
¿Qué son las proyecciones?
![Page 20: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/20.jpg)
Demo: Lanzar una URL
![Page 21: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/21.jpg)
Demo: Bing Maps
![Page 22: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/22.jpg)
Demo: Checkbox
![Page 23: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/23.jpg)
¿Qué queda por hacer?
![Page 24: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/24.jpg)
#helloWindows10
No hay soporte para storyboards
Ni tampoco para ficheros .xib
Debe usarse código Objective-C para crear las vistas
Qué queda por hacer
![Page 25: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/25.jpg)
#helloWindows10
Sin soporte para layout constraints
... Ni tampoco para las size classes
Muy dificil migrar aplicaciones “universales de XCode” o adaptativas
Qué queda por hacer
![Page 26: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/26.jpg)
#helloWindows10
No hay soporte para mapasNo hay soporte para AddressBookNo hay soporte para MediaCapture ni PlaybackEsas funcionalidades deben reimplementarse usando las proyecciones hacia los componentes nativos de Win10
Qué queda por hacer
![Page 27: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/27.jpg)
#helloWindows10
Q&A
http://aka.ms/W10Ev12
Los ejemplos están en https://github.com/eiximenis/WinObjC-Samples
![Page 28: Winobjc - Windows Bridge for iOS](https://reader036.vdocuments.net/reader036/viewer/2022062412/589f1f531a28ab7b208b5cc9/html5/thumbnails/28.jpg)
#helloWindows10
No olvides realizar la encuesta¡Gracias!Eduard TomàsSoftware [email protected]@eiximenis http://aka.ms/W10Ev12