最近看Github,發現了一個剛出爐的黑科技:利用人工智能(AI)和機器學習(ML)技術將現有Android源代碼轉換成iOS代碼。目前支持Android項目中的資產目錄文件和UI佈局轉換,以及部分外部庫的轉換。有了這個神器,之後一我的就能夠輕鬆搞定兩個平臺了,真是爽歪歪啊。。。。我根本不須要學習iOS了。。。android
jpg
,png
,.9
圖等) => "Assets.xcassets".appiconset
」.colorset
」asset
面板中的PDFCAShapeLayer
)目前支持CardView,Switch,ImageButton,ToggleButton這些控件類型的轉換。git
部分效果圖以下:github
CardView的屏幕截圖:swift
開關,ImageButton,ToggleButton的屏幕截圖:app
Button的屏幕截圖:機器學習
TextView的屏幕截圖:編輯器
使用普通鍵盤的EditText的屏幕截圖:ide
帶電話撥號鍵盤的EditText的屏幕截圖:佈局
目前支持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的屏幕截圖:
RelativeLayout的屏幕截圖:
FrameLayout的屏幕截圖:
ConstraintLayout的屏幕截圖(這個也作了移植,確實經驚豔到我了):
TableLayout的屏幕截圖:
ScrollView的屏幕截圖:
這一部份內容比較多,簡單的說就是把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設備的顯示了各類資產的使用狀況的屏幕截圖:
Android Studio佈局編輯器:
Xcode Storyboard編輯器:
Android Studio Asset資源圖片:
Xcode Asset 面板:
Android Studio .9.PNG 圖片資源編輯器:
Xcode Asset面帶有從.9.png文件中提取的切片信息:
Vector矢量圖的轉換截圖對比:
Shape xml文件的對比:
動畫轉換的對比:
Android | iOS |
---|---|
![]() |
![]() |
事實上效果是同步的,只是錄屏和操做步驟不一致的緣由,看起來有些延遲。
支持的功能:
待支持的API:
使用截圖:
這是一個移植的計算器項目。
使用截圖以下,仍是挺酷選的呢,效果保持一致,操做也很流暢:
最後附上官網地址,有興趣的能夠去看看。
官網地址:www.reflectcode.com/
Github: github.com/ReflectCode…
關於做者:公衆號「Flutter那些事」,獨家放送最新Flutter、Dart和Fuchsia等技術動態,以及衆多原創,有技術深度的技術乾貨文章,還有Flutter實戰乾貨文章,等你來看,喜歡Flutter和跨平臺開發以及原生移動端開發的朋友們,趕忙來看看,歡迎你們關注。