QCon全球软件开发大会8折优惠倒计时,购票立减¥1760!了解详情 >>> 了解详情
写点什么

微软开源 WinObjC,为 Visual Studio/Windows 提供 Objective-C 开发环境

2015 年 8 月 10 日

在今年早些时候举行的 Build 2015 大会上,微软宣布将发布工具帮助Android 和iOS 开发人员将应用移植到Windows 平台。近日,微软发布了 Windows Bridge for iOS (又称为 WinObjC)预览版本(先前的 Islandwood 项目)。

WinObjC 提供了一个面向 Visual Studio/Windows 的 Objective-C 开发环境,允许 iOS 开发人员使用现有的 Objective-C 代码和技能创建 Windows 10 和 Windows 8.1 应用。据 Windows Bridge for iOS 项目经理 Salmaan Ahmed介绍,WinObjC 包含如下四个部分:

  • Objective-C 编译器:负责将 Objective-C 代码编译成原生的 Universal Windows 应用,预计会在今年秋天作为 Visual Studio 2015 更新的一部分推出;
  • Objective-C 运行时:提供 Objective-C 语言特性;
  • iOS API 头文件 / 库:基于 Objective-C 基础 API 构建,广泛兼容 iOS API;
  • Visual Studio IDE 集成:提供一款工具,将 Xcode 项目导入 Windows 开发工具(Visual Studio 2015)和 SDK。

按照 Salmaan 的说法,WinObjC 的目标不是简单地在 Windows 上运行 iOS 应用,而是使 iOS 开发人员可以充分利用现有的 Objective-C 代码和知识编写优秀的 Windows 应用。为此,其架构和设计遵循如下三个原则:

  1. 提供对 Windows API 的完全访问:能够使 iOS 开发人员可以很容易地在 Objective-C 代码中使用 Windows API;
  2. 兼容 iOS:能够使 iOS 开发人员尽可能合理地重用现有的 Objective-C 代码;
  3. 无沙箱:iOS 和 Windows API 可以一起使用。

WinObjC 是作为一个开源项目发布的,托管在 GitHub 上,遵循 MIT 许可协议。不过,Objective-C 编译器并不开源。据来自微软工程部门的 Kevin Gallo介绍

今天发布的版本无疑还处于积极开发状态——Build 大会上描述的部分特性还没有准备好或者尚处于早期阶段。无论如何,我们非常希望对此有兴趣和感到好奇的开发人员了解 iOS Bridge,将你们构建应用时的需求与我们正在构建的东西进行比较。

目前,iOS Bridge 仅支持针对 x86 和 x64 处理器架构构建的 Windows 8.1 和 Windows 10 应用。我们很快会增加编译器优化,并提供 ARM 支持,即增加移动支持。

虽然正在开发之中,但 WinObjC 已经包含了 UIKit 库 QuartzCore CoreAudio 音频框架的部分功能。今年晚些时候,微软会发布一个更稳定的版本。

另外,Windows Bridge for Android(又称为 Astoria 项目)目前尚处于技术预览阶段,只有受到邀请的开发人员才能参与。公开测试版本预计会在今年秋天发布。希望提前试用 Windows Bridge for Android 的开发人员,可以点此注册


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015 年 8 月 10 日 08:353678
用户头像

发布了 1008 篇内容, 共 321.1 次阅读, 收获喜欢 292 次。

关注

评论

发布
暂无评论
发现更多内容

堪称完美!淘宝内部百亿级Java高并发系统架构设计PDF手册分享

Java架构追梦

Java 架构 高并发 淘宝网 亿级架构设计

关于组件,你真的了解么?

架构精进之路

组件化 5月日更

iMazing比iTunes好用在哪些地方

懒得勤快

数据采集之js自定义采集

大数据技术指南

大数据

官宣:恭喜 ChaosBlade 项目进入 CNCF Sandbox

阿里巴巴云原生

go 容器 云原生 k8s 监控

Spring Cloud Bus 消息总线介绍

阿里巴巴云原生

Java 微服务 云原生 中间件 数据格式

如何做一场高质量的分享

阿里巴巴云原生

深度学习 开发者 云原生 分享

源码解析之Seata项目中的分布式ID生成算法

Coder的技术之路

分布式 分布式ID

智慧党建三维云展厅可视化

一只数据鲸鱼

数据可视化 智慧党建 三维可视化

“云演唱会”也有仪式感!能检票、可转赠,爱奇艺“云票”如何重构线上购票逻辑

爱奇艺技术产品团队

Linux C/C++ 学习路线总结!助我拿下腾讯offer

赖猫

后台开发 C/C++ Linux服务器开发

揭秘 Amazon Go 无人商店是如何炼成的!

亚马逊云科技 (Amazon Web Services)

Amazon Glue 版本 2.0 将作业启动时间缩短了 10 倍,现已全面开放!

亚马逊云科技 (Amazon Web Services)

华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)

华为云开发者社区

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

如何高效地存储与检索大规模的图谱数据?

华为云开发者社区

存储 知识图谱 检索 图结构 表结构

为啥你写的代码总是这么复杂?

华为云开发者社区

软件 代码 代码注释 bug 复杂度

论好文章和烂文章

阿里巴巴云原生

程序员 开发者 云原生 写作技巧 成长与思考

嵌入式程序调用函数的内部过程和机制

不脱发的程序猿

单片机 嵌入式程序 嵌入式设计

MapReduce排序以及序列化

五分钟学大数据

大数据 hadoop mapreduce

云图说|不要小看不起眼的日志,“小日志,大作用”

华为云开发者社区

运维 日志 云日志服务 安全监控审计

STM32电源框图解析(VDD、VSS、VDDA、VSSA、VREF+、VREF-、VBAT等的区别)

不脱发的程序猿

嵌入式 stm32 单片机 电源框图解析

怎么进大厂?166位Java工程师的大厂面试经验分享

北游学Java

Java 面试 大厂

CampusBulider(模模搭)学习笔记5:创建自定义建筑

森友小锘

前端 可视化 3D 3D可视化 数字孪生

再次荣获最受观众喜爱奖

Serverless Devs

阿里云 云原生 cncf #Serverless

Nginx负载均衡配置误区

运维研习社

nginx 负载均衡 5月日更

Amazon Route 53 Resolver 落地中国区,轻松玩转私有域名互访不是梦!| 新服务上线

亚马逊云科技 (Amazon Web Services)

HuskyLens人工智能摄像头

不脱发的程序猿

人工智能 智能硬件 AIOT HuskyLens 人工智能摄像头

2021年5月国产数据库排行榜:“华为高斯模式”取得成功,阿里OPA持续攀升

墨天轮

数据库 dba tdsql TiDB Gauss DB

更灵活的边缘云原生运维:OpenYurt 单元化部署新增 Patch 特性

阿里巴巴云原生

容器 运维 云原生 中间件 边缘计算

anyRTC 六周年 打造全网最低音视频价格

anyRTC开发者

音视频 WebRTC RTC sdk

限流与Guava RateLimiter原理解析

千珏

Java 微服务 限流算法 Guava 令牌桶

移动应用开发的下一站

移动应用开发的下一站

微软开源WinObjC,为Visual Studio/Windows提供Objective-C开发环境-InfoQ