zoukankan      html  css  js  c++  java
  • iOS项目生成通用Windows应用

    WinObjc - 使用iOS项目生成通用Windows应用

     

    Github上一周年的WinObjc项目最近发布了预览版本,终于等到了这一天。WinObjc项目就是Build 2015大会上微软宣布的Project IslandWood项目,致力于将iOS应用快速移植成UWP应用。废话不多说,让我们来看看WinObjc项目到底如何使用。

    开始之前


     

    开始转制iOS项目前我们要先部署好WinObjc工具,工具链如下:

    1. 一台安装了Visual Studio的Windows 10 PC,2015社区版可以直接下载:免费下载
    2. 安装转制iOS应用的WinObjc Bridge工具,直接下载:Github
    3. 准备一些可以使用的iOS项目,github上有不少开源项目

    注意:确定你已经安装了Windows 10 SDK, 不然无法生成使用UWP项目。

    此外,还可以直接使用微软已经配置好的评估版Windows 10开发环境虚机。虚机里已经配置好了最新的满足需求的开发环境,方便你快速在Mac或PC上使用评估最新工具。针对不同虚机的下载地址如下:

    使用方法


     

    在将下载后的Winobjc.zip文件解压到本地文件中后,我们就有了可以直接使用的iOS Bridge工具了。这里我使用的是iOS著名HUD框架MBProgressHUD的示例项目做测试,下载地址如下:https://github.com/jdg/MBProgressHUD

    其中我们主要使用vsimporter工具,使用步骤如下:

    1. 打开命令行,并定位到iOS项目所在的目录中。 cd C:UserschangweiDesktopiOSMBProgressHUD-masterDemo
    2. 从命令行中运行vsimporter工具。 C:UserschangweiDesktopwinobjcinvsimporter.exe 
    3. vsiimporter自动排除了目前还不支持的测试项目和tvOS项目,生成了一个UWP项目,结果如下:

        4.可以看到已经生成了sln解决方案文件,直接打开即可

    5.Winobjc文件夹bin目录下有个Objective-C语言高亮插件objc-syntax-highlighting.vsix,大家别忘了安装哦。当前解决方案sln文件双击打开后就是一个标准的UWP项目,直接Ctrl+F5运行此项目。

        第一次编译生成要较长时间,然而最蛋疼的是编译失败了,拜拜(果然还是大坑)。

          

        之后又尝试了很多iOS项目包括Apple开发者中心下载的一些示例项目。大部分都会编译错误,少部分能运行的很多UI界面和功能都不对,目前除了官方自带的Winojc示例项目外还没有能正常运行的。

        我们来看看官方能运行的示例项目实际运行效果是什么样子的,如下:

        

    列表视图 UITableView

    集合视图 UICollectionView

    图片视图 UIImageView

    我试着写入了一段Objective-C代码到项目中,会在当前窗口添加一个橘黄色的视图,如下:

    UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0,0,200,200)];
    testView.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:testView];

    编译运行后,确实执行也没有问题,功能也是正常运行的,如下:

    总结


    Winobjc项目看着很美,但目前还是一张不堪使用的大饼。搞了一年,总归比开始进步多了,重写支持了大多数的iOS基础库,UIKit之类的基本framework完成度都挺高的,AutoLayout、Storyboard和XIB也都支持了,但是未来还有很长的路要走。目前大家还是可以尝尝鲜的,其实在我看来与其照搬重写iOS framework,倒不如开发一套支持Objective-C的Windows开发框架,想比也比现在好多了,不至于被iOS牵着鼻子,问题不断。

  • 相关阅读:
    VC 常见问题百问
    python windows 环境变量
    Check server headers and verify HTTP Status Codes
    Where are the AES 256bit cipher suites? Please someone help
    outlook 如何预订会议和会议室
    安装Axis2的eclipse插件后,未出现界面
    windows 环境变量
    python 时间日期处理汇集
    openldap学习笔记(使用openldap2.3.32)
    set p4 environment in windows
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5734891.html
Copyright © 2011-2022 走看看