EasyIOS-Swift

iOS 开发框架
授权协议 MIT
开发语言 Objective-C Swift
所属分类 手机/移动开发、 iOS/iPhone/iPad开发包
软件类型 开源软件
地区 国产
投 递 者 章昊
操作系统 iOS
开源组织
适用人群 未知
 软件概览

image

EasyIOS 开源至今已经1周年,全新Swift版本今日发布,支持利用HTML来开发IOS应用,支持模拟器实时预览,基于MVVM思想,HTML数据绑定,反射所有 CocoaTouch API。

EasyIOS 再一次加速 IOS 开发,优化 IOS 开发体验,拥抱 Swift2.0

DEMO Video

ScreenShot

新版特性

  • MVVM :Model-View-ViewModel实现代码分离,分离ViewController中的大量逻辑代码,解决ViewController承担了过多角色而造成的代码质量低下。增加视图与模型的绑定特性。

  • HTML To Native : 利用类似HTML的语言来对UI进行布局,简单易学,可重用

  • FlexBox Support:支持facebook的flexbox实现 ,可以很好的配合AutoLayout进行布局。


  • DataBinding : 采用了第三方库SwiftBond,可以实现数据绑定操作,同样HTML里也可以进行数据绑定操作,识别标签是双大括号比如{{title}}

  • Reflect Cocoa Touch : 可以反射所有Cocoa Touch中UIKit的所有属性,目前实现了一部分,后面大家一起来维护,增加更多API

  • AutoLayout : 在HTML进行Autolayout布局,真的很简单!

  • Live Load : 在模拟器中运行app,在修改HTML之后进行保存,模拟器中会自动更新UI布局,不需要重新编译APP

  • Cryptographic HTML : 为了保证HTML代码的安全,我们提供了AES Encryption对HTML进行加密

  • URLManager : 我们可以利用URL来push或者present一个视图

  • Elegant PullToRefresh : 可以利用HTML轻松的添加下拉刷新和上拉加载控件

HTML To Native

  • UITableView With PullReflash

    • align,margin来控制UIView的布局

    • pull-to-refresh="handlePullRefresh.",infinite-scrolling="handleInfinite. PullFooter"来添加下拉刷新和上拉加载

    • handlePullRefresh.handle the event byfunc handlePullRefresh (tableView:UITableView),you can define it by yourself.

    • PullFootercan 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="15 system" 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>
<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>
  • HTML Label and reusable html

    • @import(LabelHtml)to import theLabelHtml.xml

    • When span setstyle="color:#ACACAC;font-size:18px;"node ,we can use the origin html inner the span tag.```HTML

"/>@contentAlign">            <!–span标签设置了style属性则启用富文本模式,span内部可以支持原生HTML的所有属性,具体请看LabelHtml.xml文件–>                            <!–import the xml –>                    @import(LabelHtml)                    

```

  • UICollectionView with FlowLayout

<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>

MVVM

The MVVM based on the Swift binding framework SwiftBond

Bond is a Swift binding framework that takes binding concept to a whole new level - boils it down to just one operator. It’s simple, powerful, type-safe and multi-paradigm - just like Swift.

Usage

To run the example project, clone the repo, and runpod installfrom the Demo directory first.

Requirements

  • Swift

  • IOS8

Installation

EasyIOS-Swift is available through CocoaPods. To installit, simply add the following line to your Podfile:

platform :ios, '8.0'
use_frameworks!
pod "EasyIOS-Swift"

import the EasyIOS

import EasyIOS
 相关资料
  • Swift版本最新发布: https://github.com/EasyIOS/EasyIOS-Swift 全新基于MVVM(Model-View-ViewModel)编程模式架构,开启EasyIOS开发函数式编程新篇章。 EasyIOS 2.0类似AngularJs,最为核心的是:MVVM、ORM、模块化、自动化双向数据绑定、等等 关于有疑问什么是MVVM,以及为什么IOS开发需要MVVM思想编

  • "One does not live by bread alone,but by every word that comes from the mouth of God" --(MATTHEW4:4) python开发框架 不管是python,还是php,亦或别的做web项目的语言,乃至于做其它非web项目的开发,一般都要用到一个称之为什么什么框架的东西。 框架的基本概念 开发这对框架的认识,由于

  • 「盘古开发框架」是一套轻量稳健的工业级前、中、后台三维多端行业数字化赋能开发框架。基于商业友好的 Apache-2.0 协议免费开源发布。我们希望不仅是开源的受益者也能成为开源贡献者,与开源社区一起共建共享开源生态。 生态子项目 盘古开发框架由「盘古服务开发框架」、「盘古中后台业务系统开发脚手架」、「盘古移动端多平台开发脚手架」三个子项目组成。可以单独拆箱使用,也可以打包整合。 盘古服务开发框架(

  • nebula3 是一个游戏引擎和开发框架,可移植的特性支持多平台,包括 iPhone。 http://code.google.com/p/nebula3-engine/

  • 在尝试了使用 AWS 开发 Serverless 应用之后,我便想尝试使用 OpenWhisk 框架来搭建自己的 Serverless 服务。 Apache OpenWhisk(http://openwhisk.org/)是一个由IBM和Adobe驱动的开源项目,它是一个健壮的FaaS平台,可以部署在 云或数据中心内。相比其他serverless项目,OpenWhisk是一个健壮的、可扩展的平台,

  • 本项目是win32下大型客户端游戏的游戏辅助开发框架,由于它集成并包含了游戏辅助开发的各方面功能,称本项目为win32辅助开发的组件也可。 内含具体项目有fifa online3、疾风之刃、怪物猎人online、流放之路等,也有辅助帐号验证服务器,帐号查寻与管理工具,特征码识别,资源文件系统等。 本人现已转型,特发布此项目,旨在分享一份只供参考的多年工作经验与心血,若本项目中有些您认为闪亮的设计、