最近看Github,发现了一个刚出炉的黑科技:利用人工智能(AI)和机器学习(ML)技术将现有Android源代码转换成iOS代码。目前支持Android项目中的资产目录文件和UI布局转换,以及部分外部库的转换。有了这个神器,以后一个人就可以轻松搞定两个平台了,真是爽歪歪啊。。。。我根本不需要学习iOS了。。。
jpg
,png
,.9
图等) => "Assets.xcassets"目前支持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
目录的文件。
.9.png
图片文件:在catalog中为asset添加了切片(slicing )信息。.pdf
文件。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 |
---|---|
事实上效果是同步的,只是录屏和操作步骤不一致的原因,看起来有些延迟。
支持的功能:
待支持的API:
使用截图:
image
这是一个移植的计算器项目。
使用截图如下,还是挺酷选的呢,效果保持一致,操作也很流畅:
image
官网地址:http://www.reflectcode.com/
Github: https://github.com/ReflectCode/