Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/EasyIOS/EasyIOS-Swift

Swift 2.0 version of EasyIOS,support HTML and FlexBox
https://github.com/EasyIOS/EasyIOS-Swift

Last synced: about 2 months ago
JSON representation

Swift 2.0 version of EasyIOS,support HTML and FlexBox

Awesome Lists containing this project

README

        

![image](https://raw.githubusercontent.com/zhuchaowe/EasyIOS/gh-pages/images/logo.png)

EasyIOS For Swift 2.0
=======

[![Version](https://img.shields.io/cocoapods/v/EasyIOS-Swift.svg?style=flat)](http://cocoapods.org/pods/EasyIOS-Swift)
[![License](https://img.shields.io/cocoapods/l/EasyIOS-Swift.svg?style=flat)](http://cocoapods.org/pods/EasyIOS-Swift)
[![Platform](https://img.shields.io/cocoapods/p/EasyIOS-Swift.svg?style=flat)](http://cocoapods.org/pods/EasyIOS-Swift)
[![qq](http://img.shields.io/badge/QQ%E7%BE%A4-340906744-green.svg)](http://shang.qq.com/wpa/qunwpa?idkey=562d002e275a8199081313b00580fb7111a4faf694216a239064d29f5238bc91)

* [中文README](/README/Chinese.md)
* [IOSX - EasyIOS Official Forum](https://www.iosx.me)
* [EasyIOS-ObjC](https://github.com/zhuchaowe/EasyIOS)
* [EasyIOS-Swift-Doc](http://swift.easyios.iosx.me)

* EasyIOS官方qq群1群 :340906744(已满)
* EasyIOS官方qq群2群 :495121980

## DEMO Video
[![ScreenShot](http://g3.tdimg.com/0d239f40817111df0dfe941cbc6f9d5e/b0_2.jpg)](http://www.tudou.com/v/aWwPwUhdt5E/&rpid=6059352&resourceId=6059352_04_05_99/v.swf)

## Features

* MVVM : `Model-View-ViewModel` inspired by [Functional Reactive Programming](http://en.wikipedia.org/wiki/Functional_reactive_programming)
* HTML To Native : Transform HTML&CSS to Native Control.
* FlexBox Support:It can uses Facebook's [flexbox implementation](https://github.com/facebook/css-layout) ,and work well with AutoLayout。

![flexBox](README/flexbox.png)

* JavaScript and Native Bridge: We can declare the js function in native and call the js function in html
* DataBinding : We can use the SwiftBond to Bind the data via swift,and use the EZViewModel to Bind the data via html.example `{{title}}`
* Reflect Cocoa Touch : Reflect all the Cocoa Touch Api ,we can use the Cocoa Touch Api via HTML
* AutoLayout : The HTML layout based on the `AutoLayout`
* Live Load : Edit the HTML and the view in smulator will update automaticly without rebuild your app
* Cryptographic HTML : To make the HTML be safety,we provide the `AES Encryption` to encrypt the HTML
* URLManager : Push or Present the Controller by the custom URL
* Elegant PullToRefresh : Add PullToRefresh or InfiniteScrolling by HTML

## HTML To Native

* UITableView With PullReflash
* `align`,`margin` to control the AutoLayout of the UIView
* `pull-to-refresh="handlePullRefresh." `,`infinite-scrolling="handleInfinite. PullFooter"` to add the PullRefresh or InfiniteScrolling .
* `handlePullRefresh.` handle the event by `func handlePullRefresh (tableView:UITableView)` ,you can define it by yourself.
* `PullFooter` can load the custom PullReflashView

```HTML




{{title}}
{{subTitle}}



{{title}}

```

* UIScrollView With CSS and JS
* Use the CSS by `@` for example `@contentAlign`.

```HTML

.contentAlign{
edge:0 0 0 0;
left:0 root;
right:0 root;
}
.inputStyle{
font-size:15;color:#999999;
}










Login

function tap(){
um.present('demo://login',true);
};

function login(){
var password = document.getElementById("passwordTextField");
password.attrs({
placeholder:"hello",
secureTextEntry:"NO"
});

<!-- var logo = document.getElementById("logo")-->
<!-- password.callWithObject("test:",logo);-->

console.log(password.val("text"));
}

```

* HTML Label and reusable html
* `@import(LabelHtml)` to import the `LabelHtml.xml`
* When span set `style="color:#ACACAC;font-size:18px;"` node ,we can use the origin html inner the span tag.
```HTML

<!--支持css 样式设置,html中利用@的方式进行调用-->
.contentAlign{
edge:0 0 0 0;left:0 root;right:0 root;
}






@import(LabelHtml)


```

* UICollectionView with FlowLayout

```HTML



{{name}}

```

## Declare JS funciton By Swfit

```swift
//定义一个可以给JS调用的下拉刷新回调方法handlePullRefresh()
define("handlePullRefresh"){
let delayTime = dispatch_time(DISPATCH_TIME_NOW,
Int64(3.0 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
tableView?.pullToRefreshView?.stopAnimating()
}
}
```

## MVVM

The MVVM based on the Swift binding framework [SwiftBond](https://github.com/SwiftBond/Bond)

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.

## [EasyCoreData](https://github.com/EasyIOS/EasyCoreData)(1.0.1)

## Usage

To run the example project, clone the repo, and run `pod install` from the Demo directory first.

## Requirements

* Swift
* IOS8

## Installation

EasyIOS-Swift is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:

```ruby
platform :ios, '8.0'
use_frameworks!
pod 'EasyIOS-Swift', '~> 2.0'
```

import the EasyIOS

```swift
import EasyIOS
```
## Author

zhuchao, [email protected]

## License

EasyIOS-Swift is available under the MIT license. See the LICENSE file for more info.