

EasyIOS开源至今已经1周年,全新Swift版本今日发布,支持利用HTML来开发IOS应用,支持模拟器实时预览,基于MVVM思想,HTML数据绑定,反射所有CocoaTouch API。
EasyIOS 再一次加速IOS开发,优化IOS开发体验,拥抱Swift
Model-View-ViewModel 实现代码分离,分离ViewController中的大量逻辑代码,解决ViewController承担了过多角色而造成的代码质量低下。增加视图与模型的绑定特性。 SwiftBond,可以实现数据绑定操作,同样HTML里也可以进行数据绑定操作,识别标签是双大括号比如{{title}}Autolayout布局,真的很简单!AES Encryption对HTML进行加密align,margin 来控制UIView的布局pull-to-refresh="handlePullRefresh.",infinite-scrolling="handleInfinite. PullFooter" 来添加下拉刷新和上拉加载handlePullRefresh. handle the event by func handlePullRefresh (tableView:UITableView) ,you can define it by yourself.PullFooter can load the custom PullReflashView <body> <div id="tableview" align="64 0 0 0" content-inset="{0,0,0,0}" type="UITableView" estimated-row-height="100" separator-style="None" pull-to-refresh="handlePullRefresh." infinite-scrolling="handleInfinite. PullFooter"> <div align="0 0 0 0" type="cell" id="cell" > <img id="avatar" align="10 10 -10 *" clips-to-bounds="YES" width="45" height="45" layer_corner-radius="5" src="{{srcUrl}}" /> <span align="top:2 avatar;right:-10" margin="left:12 avatar" fOnt=id="title">{{title}}</span> <span align="bottom:0 avatar;right:-10" margin="left:12 avatar" fOnt="13 system" text-color="#ACACAC" id="subTitle" style="color:#ACACAC;" link-style="color:green;" >{{subTitle}}</span> </div> <div type="section" id="bgView" background-color="#F2F1F6" > <span align="left:15;center-y:0" fOnt="14 system">{{title}}</span> </div> </div> </body> @ for example @contentAlign.<style> .contentAlign{ edge:0 0 0 0;left:0 root;right:0 root; } .inputStyle{ font-size:15;color:#999999; } </style> <body> <div align="0 0 0 0" type="UIScrollView" background-color="#F3F3F3"> <div align="@contentAlign"> <img id="logo" image="login-logo" user-interaction-enabled="YES" present="demo://login" align="center-x:0;top:110;"/> <div id="username" layer_corner-radius="8" background-color="white" align="* 15 * -15" margin="top:30 logo" height="45"> <input class="userTextField" id="userTextField" align="edge:10 10 -10 -10;" placeholder-style="@inputStyle" keyboard-type="EmailAddress" style="@inputStyle" placeholder="上面的logo可以被点击"/> </div> <div id="password" layer_corner-radius="8" background-color="white" align="* 15 * -15" margin="top:13 username" height="45"> <input id="passwordTextField" secure-text-entry="YES" align="10 10 -10 -10" placeholder="密码" placeholder-style="@inputStyle" style="@inputStyle" /> </div> <button id="submit" style="color:white;font-size:20;" background-color="#3FBCFB" align="* 15 -10 -15" margin="top:25 password" height="45" layer_corner-radius="8" OnEvent="touch-up-inside:login">登陆</button> </div> </div> </body> @import(LabelHtml) to import the LabelHtml.xml style="color:#ACACAC;font-size:18px;" node ,we can use the origin html inner the span tag.<style> <!--支持css 样式设置,html中利用@的方式进行调用--> .contentAlign{ edge:0 0 0 0;left:0 root;right:0 root; } </style> <body> <div align="0 0 0 0" type="UIScrollView" background-color="#F3F3F3"> <div align="@contentAlign"> <!--span标签设置了style属性则启用富文本模式,span内部可以支持原生HTML的所有属性,具体请看LabelHtml.xml文件--> <span align="64 0 0 0" style="color:#ACACAC;font-size:18px;" link-style="color:green;" number-of-lines="0"> <!--import the xml --> @import(LabelHtml) </span> </div> </div> </body> <body> <div id="collectionView" align="0 0 0 0" type="UICollectionView" flow-layout="scroll-direction:Vertical;item-size:{300,50};section-inset:{3,3,0,3};minimum-interitem-spacing:3;minimum-line-spacing:3" content-inset="{64,0,0,0}" background-color="white" pull-to-refresh="handlePullRefresh." infinite-scrolling="handleInfinite."> <div align="0 0 0 0" type="cell" id="cell" background-color="red"> <span align="10 10 -10 -10" fOnt="10 system">{{name}}</span> </div> </div> </body> 1 zpvip 2015-05-27 15:02:51 +08:00 我想知道还有什么语言不能开发 iOS 应用 |
3 jetbillwin 2015-05-27 16:34:51 +08:00 @zhuchaowe 貌似随着React Native的出现,这类封装现在越来越多了。 |
5 yanchao7511461 2015-05-27 17:19:14 +08:00 我觉得语言真的不是问题啊.... |
6 robertlyc 2015-05-27 17:20:02 +08:00 呵呵 等你上过app store就知道语言是大问题 |
7 run2 2015-05-27 17:20:22 +08:00 @jetbillwin 这一类的好像国内不少都比React Native早多了。 |
8 zhuchaowe OP @jetbillwin 这类应该算对跨平台,或者对降低开发难度的一种探索吧 |
10 tonyYo 2015-05-27 17:25:40 +08:00 强烈支持,正在学习。 |
11 run2 2015-05-27 17:29:04 +08:00 一些特性全么? 比如调用相机,蓝牙,定位,扫条码(1D/2D,iOS8有内置的API) |
12 zhuchaowe OP @sobigfish 这个框架其实主要语言是Swift,应该算原生开发,所以不存在这些问题。这里的HTML知识UI布局里的一个辅助工具 |
13 run2 2015-05-27 17:34:04 +08:00 我知道啊,我就是问直接用js API绑定这些系统的API 有没有这样的feature(用户不用再去写swift / Objective-C 来获取相应的功能) (比如微信js sdk那样) |
16 jsq2627 2015-05-27 19:08:08 +08:00 大爱 MVVM 有时间可以了解下微软的 WPF / Silverlight / WinRT。WPF 是 MVVM 的鼻祖,有很多可以借鉴的东西。 尤其是 Win10 SDK 引入的 Trigger 和 Action 模型(在 Win8 里可以用 Behavior SDK 库来支持),可以把很多原先要在 ViewModel 里写代码处理的逻辑,直接通过声明式语句写在 View 里。目前没见到哪个微软系之外的 MVVM 框架有实现这个。 |
17 pheyer 2015-05-28 09:46:32 +08:00 用HTML布局,动画咋办呢? |
18 zhuchaowe OP @pheyer 简单动画可以把UIView用Swift取出来,再更新约束,做动画。其实HTML仅仅是一个辅助工具,如果动画很复杂,完全可以纯Swift实现。以后会考虑HTML里如何实现动画的方案 |
19 banxi1988 2015-05-28 13:04:51 +08:00 1. 从写布局上,我觉得没有怎么解放生产力呢? 将CocoaTouch 的 属性转为 HTML的属性. 没有编译器的配合,没有自动补全会是一个问题 2. autoLayout的支持有限, 还有 sizeClass 的支持 不过, 加油! |
21 ciwonderful 2015-06-03 18:06:31 +08:00 不错,我原来也写过类似的框架。 不过我还加了lua脚本。 你可以尝试加入js。 |
22 ciwonderful 2015-06-03 18:13:02 +08:00 html可以搞一个GUI的代码生成器。唯一的工作只需要填写属性就行。 |
23 zhuchaowe OP @ciwonderful 这个想法不错,可以搞搞 |