SlideShare una empresa de Scribd logo
#helloWindows10
Hel10 Windows 10!
#helloWindows10
Eduard Tomàs
Software Engineer
etomas@plainconcepts.com
@eiximenis
Windows Bridge for iOS
Winobjc - Windows Bridge for iOS
#helloWindows10
¿Qué es Windows Bridge for iOS?
Cocoa Touch en Windows 10
Uso de proyecciones
Controles XAML con el Bridge
¿Qué queda por hacer en el Bridge?
Agenda
#helloWindows10
Padre orgulloso
Desarrollador apasionado currando
en Plain Concepts
Bebedor y fabricante aficionado de
cervezas
Microsoft MVP
Introducción
#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 10
Open Source -
https://github.com/Microsoft/WinObjC/
Qué es Bridge For iOS
WinObjC no está
terminado
Hay *mucho* hecho, pero
queda *mucho* por
hacer
Antes de nada…
Winobjc - Windows Bridge for iOS
#helloWindows10
Visual Studio 2015 capaz de compilar código
Objective-C
Se usa el compilador de CLANG para ello, de forma integrada
Sensación de depuración integrada
Herramienta (básica) para crear un .sln a partir de un
proyecto de XCode
APIs principales de Foundation y Cocoa Touch usables
Proyecciones para funcionalidades nativas de Win10
Qué está hecho…
#helloWindows10
NO es una máquina virtual o un emulador
MS ha creado un runtime de Objective-C propio
Ha reimplementado Foundation y Cocoa Touch
usando código C/Objective-C
Ha integrado CLANG dentro de VS para poder
compilar código Objective-C
Como funciona…
Demo: Un vistazo
al código de
WinObjC
#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
Demo: De Xcode a
VS en lo que canta
un gallo
#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
Demo: Cocoa
Touch en Windows
10
Uso de
proyecciones
#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?
#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?
Demo: Lanzar una
URL
Demo: Bing Maps
Demo: Checkbox
¿Qué queda por
hacer?
#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
#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
#helloWindows10
No hay soporte para mapas
No hay soporte para AddressBook
No hay soporte para MediaCapture ni Playback
Esas funcionalidades deben reimplementarse usando
las proyecciones hacia los componentes nativos de
Win10
Qué queda por hacer
#helloWindows10
Q&A
http://aka.ms/W10Ev12
Los ejemplos están en
https://github.com/eiximenis/WinObj
C-Samples
#helloWindows10
No olvides realizar la encuesta
¡Gracias!
Eduard Tomàs
Software Engineer
etomas@plainconcepts.com
@eiximenis
http://aka.ms/W10Ev12

Más contenido relacionado

PDF
Guia instalación NetBeans como entorno de desarrollo para Android:
PDF
[Ayd2]ht3 200819214
PPTX
Lenguajes de interfaz sw assembler
PPTX
Sdbfjksbdfsj .-
PPTX
PDF
Hardware y software
PPTX
Azure DevOps y Blazor Web Assembly
DOCX
Cuestionario
Guia instalación NetBeans como entorno de desarrollo para Android:
[Ayd2]ht3 200819214
Lenguajes de interfaz sw assembler
Sdbfjksbdfsj .-
Hardware y software
Azure DevOps y Blazor Web Assembly
Cuestionario

La actualidad más candente (18)

PPTX
Windows 10: Novedades en XAML
PPTX
Visual basic
PPTX
Windows movie maker
PDF
Visual Basic
PDF
Primer Ejemplo de Proyecto en Android Studio
PPTX
Pasos a seguir en la descarga, instalación y uso de reload editor
DOCX
Practica 2
PDF
Error inesperado "GenerateResourceDesigner"
PPTX
Presentacion programas
PPTX
Presentacion phonegap phonegapbuilt
PPT
Presentación PhoneGap
PPTX
Talks4Kids 2015 - Consejos Heisenberg para conseguir Apps Windows 10 con 99% ...
PPT
Net Beans
PPT
Programacion vb
PPTX
Introducción a Blazor
PPTX
PRESENTACION DE LA HERRAMIENTA DE MOVIE MAKER.
PDF
Instalar plugins de android en netbeans
Windows 10: Novedades en XAML
Visual basic
Windows movie maker
Visual Basic
Primer Ejemplo de Proyecto en Android Studio
Pasos a seguir en la descarga, instalación y uso de reload editor
Practica 2
Error inesperado "GenerateResourceDesigner"
Presentacion programas
Presentacion phonegap phonegapbuilt
Presentación PhoneGap
Talks4Kids 2015 - Consejos Heisenberg para conseguir Apps Windows 10 con 99% ...
Net Beans
Programacion vb
Introducción a Blazor
PRESENTACION DE LA HERRAMIENTA DE MOVIE MAKER.
Instalar plugins de android en netbeans
Publicidad

Destacado (20)

PPTX
Introducción al desarrollo de videojuegos 2D con Wave Engine
PPTX
Introducción a ReactJS
PPTX
Aplicaciones Metro UI para Windows8 con C# y XAML (12 horas Visual Studio)
PPTX
React native - t3chfest 2016
PPTX
JavaScript - HTML5 - IndexedDb
PPTX
Microsoft Code Contracts
PPTX
Introducción a ObjectiveC e IOS
PPTX
Asp.Net vNext - La revolución que viene
PPTX
EcmaScript unchained
PPTX
MongoDb (BcnDevCon Nov 2011)
PPTX
#netIO 1 - Ecosistema .NET
PPTX
Handlebars
PPTX
Interfaces rest
PPTX
ASP.NET vNext... Desarrollo cross platform
PPTX
Una tapa de ecmascript 6
PPTX
React native - Unleash the power of your device
PPTX
Vista aérea de los lenguajes de programación
PPTX
JavaScript in 2016 (Codemotion Rome)
PPTX
Async / Await: Programación asíncrona para dummies (12 horas visual studio)
PPTX
Novedades de ASP.NET MVC6
Introducción al desarrollo de videojuegos 2D con Wave Engine
Introducción a ReactJS
Aplicaciones Metro UI para Windows8 con C# y XAML (12 horas Visual Studio)
React native - t3chfest 2016
JavaScript - HTML5 - IndexedDb
Microsoft Code Contracts
Introducción a ObjectiveC e IOS
Asp.Net vNext - La revolución que viene
EcmaScript unchained
MongoDb (BcnDevCon Nov 2011)
#netIO 1 - Ecosistema .NET
Handlebars
Interfaces rest
ASP.NET vNext... Desarrollo cross platform
Una tapa de ecmascript 6
React native - Unleash the power of your device
Vista aérea de los lenguajes de programación
JavaScript in 2016 (Codemotion Rome)
Async / Await: Programación asíncrona para dummies (12 horas visual studio)
Novedades de ASP.NET MVC6
Publicidad

Similar a Winobjc - Windows Bridge for iOS (20)

PPTX
WinObjC: Windows Bridge para iOS
PPTX
Webinar 1 Intro a NET MAUI.pptx
PDF
Introduction to .NET MAUI.pdf
PPTX
Dev days 1 Introducción a Xamarin
PPTX
Xamarin Dev Days - Introducción a Xamarin
PPTX
Introducción al desarrollo de aplicaciones Xamarin
PDF
Frameworks iOS
PPTX
Visual Studio 2017 Launch Event Sevilla
PPTX
Keynote NET MAUI.pptx
PPTX
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
PPTX
[Evento WPSUG] Universal Windows Platform Bridges
PPTX
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
PPTX
Windows 10 Dev Readiness - Colombia
PDF
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
PPTX
Reconnect(); Sevilla - Introducción a Xamarin 4
PPTX
Regreso al futuro, la proposición indecente de Microsoft
PPTX
Introduction to xamarin
PPTX
Introducción a Xamarin
PPTX
RIATec Sharing code between win8 & wp8
PDF
Azure Storage y Xamarin - Tec Tianguistenco
WinObjC: Windows Bridge para iOS
Webinar 1 Intro a NET MAUI.pptx
Introduction to .NET MAUI.pdf
Dev days 1 Introducción a Xamarin
Xamarin Dev Days - Introducción a Xamarin
Introducción al desarrollo de aplicaciones Xamarin
Frameworks iOS
Visual Studio 2017 Launch Event Sevilla
Keynote NET MAUI.pptx
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
[Evento WPSUG] Universal Windows Platform Bridges
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
Windows 10 Dev Readiness - Colombia
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
Reconnect(); Sevilla - Introducción a Xamarin 4
Regreso al futuro, la proposición indecente de Microsoft
Introduction to xamarin
Introducción a Xamarin
RIATec Sharing code between win8 & wp8
Azure Storage y Xamarin - Tec Tianguistenco

Más de Eduard Tomàs (20)

PPTX
Kubernetes: Do's, don'ts and why's
PPTX
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
PPTX
Escalando workloads serverless en Kubernetes con Keda
PPTX
C#9 - Más C# que nunca
PPTX
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
PPTX
Keda o como convertir Kubernetess en Serverless
PPTX
.NET Memoria y Rendimiento
PPTX
Containers en .NET (Dot Net 2018 - Spain)
PPTX
Esos contenedores, ¡a producción! (Commit Conf 2018)
PPTX
Codemotion 2015 - Bienvenido de nuevo c++
PPTX
El "peor" lenguaje del mundo
PPTX
Containerize a netcore application with aks
PPTX
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
PPTX
Aplicaciones de consola fáciles? Más quisieramos
PPTX
Serverless with Azure Functions and CosmosDb
PPTX
Docker y todo eso... más o menos
PPTX
Microservices: Yes or not?
PPTX
ASP.NET MVC Core
PPTX
Azure functions
PPTX
Asp.Net Core 1.0 Deep Dive
Kubernetes: Do's, don'ts and why's
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
Escalando workloads serverless en Kubernetes con Keda
C#9 - Más C# que nunca
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
Keda o como convertir Kubernetess en Serverless
.NET Memoria y Rendimiento
Containers en .NET (Dot Net 2018 - Spain)
Esos contenedores, ¡a producción! (Commit Conf 2018)
Codemotion 2015 - Bienvenido de nuevo c++
El "peor" lenguaje del mundo
Containerize a netcore application with aks
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Aplicaciones de consola fáciles? Más quisieramos
Serverless with Azure Functions and CosmosDb
Docker y todo eso... más o menos
Microservices: Yes or not?
ASP.NET MVC Core
Azure functions
Asp.Net Core 1.0 Deep Dive

Último (20)

DOCX
Las nuevas tecnologías en la salud - enfermería técnica.
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
DOCX
Trabajo colaborativo Grupo #2.docxmkkkkkkl
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Conceptos básicos de programación tecnología.pdf
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
ACTIVIDAD 2.pdf j
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
La electricidad y la electrónica .pdf n
PPTX
Presentación de Redes de Datos modelo osi
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Influencia-del-uso-de-redes-sociales.pdf
Las nuevas tecnologías en la salud - enfermería técnica.
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
historia_web de la creacion de un navegador_presentacion.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Presentación PASANTIAS AuditorioOO..pptx
Introduccion a servidores de Aplicaciones (1).pptx
Trabajo colaborativo Grupo #2.docxmkkkkkkl
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Conceptos básicos de programación tecnología.pdf
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
ACTIVIDAD 2.pdf j
Plantilla para Diseño de Narrativas Transmedia.pdf
Estrategia de apoyo tecnología miguel angel solis
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
La electricidad y la electrónica .pdf n
Presentación de Redes de Datos modelo osi
introduccion a las_web en el 2025_mejoras.ppt
Calidad desde el Docente y la mejora continua .pdf
Influencia-del-uso-de-redes-sociales.pdf

Winobjc - Windows Bridge for iOS

Notas del editor

  • #2: Presentación de #WinObjC para el Hel10 de Microsoft España
  • #10: Vamos… que está todo muy verde. Como esta PPT 
  • #17: Usar la demo WOCCatalog que viene con el Bridge y explicarla.
  • #21: Demo: ViewUri
  • #23: WUXCMMapControl* mapElement= [WUXCMMapControl create]; UIView *mapView = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 400.0f, 300.f)]; [mapView setNativeElement: mapElement];
  • #25: WXCCheckBox *checkBox = [CustomCheckbox create]; checkBox.requestedTheme = WXApplicationThemeDark; checkBox.content = [WFPropertyValue createString:@"Check"]; UIView *checkBoxView = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 100.0f, cell.frame.size.height)]; [checkBoxView setNativeElement:checkBox]; [checkBox addCheckedEvent:^(RTObject* sender, WXRoutedEventArgs* e) { // Code }]; [checkBox addUncheckedEvent:^(RTObject* sender, WXRoutedEventArgs* e) { // Code }];