专栏首页Flutter入门到实战黑科技:使用AI和机器学习将Android项目秒变IOS项目

黑科技:使用AI和机器学习将Android项目秒变IOS项目

最近看Github,发现了一个刚出炉的黑科技:利用人工智能(AI)和机器学习(ML)技术将现有Android源代码转换成iOS代码。目前支持Android项目中的资产目录文件和UI布局转换,以及部分外部库的转换。有了这个神器,以后一个人就可以轻松搞定两个平台了,真是爽歪歪啊。。。。我根本不需要学习iOS了。。。


已支持的功能:

  1. Android的资产目录 (如:jpgpng.9图等) => "Assets.xcassets"
  2. mipmap目录的图片资源 => “.appiconset”
  3. Color形式的xml => “.colorset”
  4. Shape形式的xml => PDF format in asset catalog
  5. Vector形式的xml文件 => Swift Code (CAShapeLayer)
  6. Animation形式的xml文件
  7. UI布局的xml文件 => storyboard file
  8. Java的POJO类 => Swift
  9. 外部的库Glide的转换

正在开发中的功能:

  1. 资源(Resource)xml文件
  2. Android SDK的类
  3. 更多的外部的库,比如:GSON, Retrofit2, ButterKnife等。
  4. 矢量图动画(Vector Animation)xml资源

未来支持的功能:

  1. Android的Kotlin语言
  2. Android的JetPack
  3. Android的代码编写的布局 转成 SwiftUI
  4. Lagacy .storyboard 转成 SwiftUI
  5. 测试用例的生成

UI的转换

目前支持CardView,Switch,ImageButton,ToggleButton这些控件类型的转换。

部分效果图如下:

CardView的屏幕截图:

image

开关,ImageButton,ToggleButton的屏幕截图:

image

Button的屏幕截图:

image

TextView的屏幕截图:

image

使用普通键盘的EditText的屏幕截图:

image

带电话拨号键盘的EditText的屏幕截图:

image

布局的转换

目前支持RelativeLayout,FrameLayout,LinearLayout (Nested),ConstraintLayout,TableLayout和ScrollView这些布局类型的转换。另外只有部分布局属性做了转换,如下表所示:

Control

Attributes

LinearLayout

orientation, gravity, background, textAppearance

RelativeLayout

layout_centerHorizontal, layout_centerVertical, layout_toLeftOf, layout_toRightOf, layout_above, layout_below, layout_alignParentTop, layout_alignParentBottom, layout_alignParentRight, layout_alignParentLeft

FrameLayout

layout_marginTop, layout_gravity = right, left, right+bottom, left+bottom, center, center_horizontal, center_vertical, right+center_vertical, bottom+center_horizontal

ConstraintLayout

Bottom_toBottomOf, Top_toTopOf, Top_toBottomOf, Left_toLeftOf, Start_toEndOf, Right_toRightOf, Baseline_toBaselineOf, Vertical_bias, Horizontal_bias

TableLayout

TableLayout, TableRow, background, padding

ScrollView

ScrollView, android.support.v4.widget.NestedScrollView, HorizontalScrollView, android:scrollbars

LinearLayout的屏幕截图:

image

image

RelativeLayout的屏幕截图:

image

image

FrameLayout的屏幕截图:

image

image

ConstraintLayout的屏幕截图(这个也做了移植,确实经惊艳到我了):

image

image

TableLayout的屏幕截图:

image

image

ScrollView的屏幕截图:

ScrollView_ScreenRec.gif


资产目录文件的转换

这一部分内容比较多,简单的说就是把Android工程的res目录的文件转换成iOS工程的Assets.xcassets目录的文件。

  • mipmap目录的图片资源:Android工程的mdpi,hdpi,xhdpi和xxhdpi的图像资源被映射到iOS工程的1x,2x和3x图像资源路径里面。
  • 针对.9.png图片文件:在catalog中为asset添加了切片(slicing )信息。
  • Vector图片形式的xml被转换成Storyboard上能够使用的.pdf文件。
  • 向量图像xml也被转换成Swift代码,并在VectorStore.swift中为每个vector文件添加一个静态方法。

除此之外还支持.png,color形式的xml,Shape形式的xml,Animation形式的xml的转换。


以下是使用截图:

Android和iOS设备的显示了各种资产的使用情况的屏幕截图:

image


Android Studio布局编辑器:

image

Xcode Storyboard编辑器:

image


Android Studio Asset资源图片:

image

Xcode Asset 面板:

image


Android Studio .9.PNG 图片资源编辑器:

image

Xcode Asset面带有从.9.png文件中提取的切片信息:

image

Vector矢量图的转换截图对比:

image

Shape xml文件的对比:

image

动画转换的对比:

Android

iOS

事实上效果是同步的,只是录屏和操作步骤不一致的原因,看起来有些延迟。


外部库Glide的转换

支持的功能:

  • 从本地res文件夹加载drawable
  • 从URL加载图片
  • 将图片加载到UIImageView
  • 在下载过程中提供占位符图片
  • 在图片之间应用过渡:CrossFade,Flip
  • 支持图片Transformation (变换)API:circleCrop(),centerCrop(),fitCenter(),centerInside()
  • 清除待处理的请求
  • RequestOptions类可在实例之间重用设置

待支持的API:

  • priority()
  • diskCacheStrategy()
  • asBitmap()
  • error()
  • fallback()
  • clearMemory()

使用截图:

image


计算器App

这是一个移植的计算器项目。

使用截图如下,还是挺酷选的呢,效果保持一致,操作也很流畅:

image


最后附上官网地址,有兴趣的可以去看看。

官网地址:http://www.reflectcode.com/

Github: https://github.com/ReflectCode/

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.jianshu.com/u/f408bdadacce复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 业界 | 谷歌用 AI 让自拍一键变表情包,斗图从此立于不败之地

    AI科技评论按:为了让你在聊天斗图中立于不败之地,谷歌使用机器学习技术,最新开发了一个可以让你用自拍生成个人专属表情包的工具,更新在自家聊天软件Allo上。 拍...

    AI科技评论
  • 手机看PDF有救了!Adobe发布「Liquid Mode」液体模式自适应手机屏幕

    我们可能都经历过这种情况: 你已经在手机上闲逛了一个小时,终于找到了一个几乎可以肯定有你在找的信息的链接。你点击它... ... 啊,它是一个50页的 PDF ...

    新智元
  • 2018年,谷歌人到中年

    如果用一个词来概括中国互联网行业的2018,我觉得应该是“水逆”,大大小小的科技公司都面临层出不穷的“水逆”事件。与中国科技行业水逆不同,硅谷科技巨头呈现出冰火...

    罗超频道
  • 滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star

    2018 年,科技企业纷纷布局开源战略后迎来的第一个“丰收年”。但对滴滴来说,2019 年才迎来其第一波开源小高潮。

    AI科技大本营
  • Cozmo+Python+ROS+AI会产生什么样的奇妙反应呢?(玩Cozmo机器人,学Python编程,掌握ROS和AI技术)

    关键词::涉及Anki Cozmo机器人/Python编程/ROS机器人操作系统/AI人工智能(TensorFlow)::

    zhangrelay
  • 关于Google Assistant,你想知道的都在这里了丨Google I/O 2017

    AI科技评论按:很多读者在思考,“我和AI科技评论的距离在哪里?” 答案就在文末。 ? 图片来源:CNET AI科技评论按:在谷歌 I/O 2017大会开始之前...

    AI科技评论
  • 扎克伯格凌晨放大招,说几句话能造世界的那种

    杨净 发自 凹非寺 量子位 | 公众号 QbitAI 你能想象,这样一个元宇宙世界,是用AI造出来的吗? 这是扎克伯格Meta最新AI黑科技——Builder...

    量子位
  • 人工智能基础(高中版)教材补充和资源分享之番外篇 Cozmo+Python+ROS+AI

    ROS Melodic的迷失与救赎::https://blog.csdn.net/column/details/28058.html

    zhangrelay
  • Cozmo+Python+ROS+AI会产生什么样的奇妙反应呢? (玩Cozmo机器人,学Python编程,掌握ROS和AI技术)

    关键词::涉及Anki Cozmo机器人/Python编程/ROS机器人操作系统/AI人工智能(TensorFlow)::

    zhangrelay
  • 荐读 | 除了会下棋的阿法狗,AI军团还有这44个知名项目

    在科幻小说中,我们经常看到AI软件的身影,许多人认为AI是一门存在于未来的技术,也许会变成现实,也许永远会停留在空想之中。 事实并非如此,我们当中的大多数人每天...

    新智元
  • 一周简报|智齿科技携手无忧我房VR+AI新品亮相GTC奖”

    编辑导语 TuSDK更新至2.4.5,推出视频直播功能;讯众云通信平台正式开放,提供丰富的通信API;云适配自主创新浏览器Enterplorer,荣获工信部“优...

    BestSDK
  • 《HelloGitHub》第 66 期

    这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源...

    冬夜先生
  • 英伟达GauGAN上线测试一个月,生成图像超50万张!

    今年3月,在加州圣何塞举行的GPU技术大会(GTC)上,Nvidia揭开了GauGAN的面纱,这是一种生成对抗性AI系统,可以让用户创建实际并不存在的逼真风景图...

    新智元
  • 微软向左谷歌向右,AI已成为科技巨头的血液丨科技云·视角

    两大科技巨头谷歌和微软去年就已将AI定义为自己的未来战略,无论是微软的“AI重新定义一切”(AI Redefine All),还是谷歌提出的“移动优先转向AI优...

    科技云报道
  • 【重磅】Facebook贾扬清发文,Caffe2go将开源,手机就能训练神经网络

    【新智元导读】Caffe作者,Facebook研究科学家贾扬清11月8日在Facebook官方网站上发文,介绍了他在Facebook 最新的机器学习研究成果——...

    新智元
  • 用AI消灭「带病裁判」,撒贝宁直呼内行!

    为了将奥运现场完美呈现给世界各地的「云端」观众,4K、8K、VR甚至是AR技术都出现在了奥运直播的屏幕前。

    新智元
  • 小兴逛Google I/O 2017(day3实况)

    作者介绍:陈志兴,Google I/O 2017大会的小时光茶社特派员 ,腾讯SNG增值产品部内容中心Android组leader,主要负责手Q个性化业务、手Q...

    小时光
  • Meta 开移动端 AI 生成神器 PyTorch Live,打造人工智能驱动的移动体验

    近日,PyTorch 开发者大会如期召开。在会上,Meta 发布了PyTorch Live,这是一套可以为移动端用户提供人工智能体验的工具。PyTorch Li...

    AI科技大本营
  • 这一回,谷歌要来真的!

    2017年10月5日,谷歌在2017 年秋季新品发布会上,一口气发布了8款硬件新品,其中包含: Pixel 2、Pixel 2 XL、Pixelbook、Goo...

    企鹅号小编

扫码关注腾讯云开发者

领取腾讯云代金券