Giter VIP home page Giter VIP logo

aisenforandroid's Introduction

AisenForAndroid

说明

AisenForAndroid是一个android快速开发框架,内置的orm、ioc、bitmaploader均修改自afinal1.0版本。不同于其他,Aisen专注如何使用这些组件来更快速更健壮的开发app。四层结构:UI层、业务接口层、持久层、网络通讯层。面向敏捷、AOP编程,基于Aisen,让你的工作更倾向于具体的业务逻辑、UI特效开发。

我能做什么

  • 使用ViewInject绑定view
  • fragment可以
  • activity可以
  • adapter的itemview可以
  • 任何地方
  • BitmapLoader,一行代码加载图片
  • 可以加载web、sdcard、assets、drawable、contentprovider、任何地方
  • 可以裁剪图片、圆角、压缩、任意处理
  • 二级缓存
  • 下载进度回调,开始、错误、进度、结束等事件
  • 其他配置:Displayer、LRU算法
  • ORM
  • 一行代码针对object的sqlite增删改查操作
  • 业务接口规范:BizLogic
  • 看这里SinaSDK,再看这里OSCSdk
  • 网络通讯协议规范:HttpUtlitiy
  • http、https
  • soap
  • socket
  • 接口缓存管理
  • 将接口数据保存为文件
  • 将接口数据保存到db
  • 将接口数据保存到任何你想保存的地方
  • 异步线程:WorkTask

我还能做什么

  • Loading视图、Failure视图、Empty视图、Empty视图、Content视图这5中基本视图的切换管理,你什么java代码都不需要写,只需要在layout的xml文件中按照自己的需求绘制5种视图的ui部分,就能
  • 加载数据时显示Loading界面
  • 加载失败显示Failure界面,将faild的提示信息绑定到ui显示,如果有ReloadBtn点击自动刷新
  • 加载空数据显示Empty界面,将empty的提示信息绑定到ui显示,如果有ReloadBtn点击自动刷新
  • 加载成功后显示Content界面
  • 只需实现3个方法,你就做完了一个刷新列表界面(支持三种刷新控件:示例一、示例二、示例三)。它有这些功能:
  • 支持ListView、GridView
  • 上拉刷新、自动加载更多
  • 接口分页加载
  • 自动保存、刷新缓存数据
  • 缓存数据时效过期自动刷新列表
  • 保存阅读位置
  • 资源重用
  • app运行时切换网络通讯协议
  • 某些项目,根据网络环境切换网络通讯协议,网段内实现p2p的wifi socket协议通讯,网段外与云服务器的http+soap+https协议通讯,或者与硬件交互的bluetooth socket协议通讯等。不管什么协议之间的切换,只需要一行代码动态配置即可
  • 事件传递机制
  • 没有任何耦合,任何异常信息以Exception的形式上报至UI层。UI层只处理异常信息的UI反馈,业务接口层上报业务异常信息(登录失败、表单错误等业务相关),网络通讯层上报通讯异常信息(无网络、连接超时等)
  • 4层结构,层与层之间低耦合,恪守单一职责原则,面向AOP
  • UI层,处理ui上的特效、事件、基本的业务逻辑处理
  • SDK层(业务接口层),规范所有与服务端通讯的接口定义,包括定义方法的入参、出参、异常
  • HttpUtility层(网络通讯层),实现app所支持的网络通讯协议
  • CacheUtility层(持久层),针对业务接口的数据持久管理

ORM(SqliteUtility)

假设你已经熟悉sqlite操作,那么,SqliteUtility的相关api方法就不需要再说太多。同样面向对象,一行代码对数据库进行增删改查操作,但是剔除了一对一或者一对多这些操作,更多的示例代码请查看SqliteUtility

IOC(ViewInject)

继承BaseActivity、ABaseFragment等均可以使用ViewInject对属性自动装配,可以给view设置点击事件,像这样

@ViewInject(idStr = "layoutLoadFailed", click = "reload")
View loadFailureLayout;// 加载失败视图

或者像ItemView,也可以自动绑定,像这样

public class TimelineItemView extends AbstractItemView<StatusContent> 
											implements OnClickListener {
	@ViewInject(id = R.id.imgPhoto)
	ImageView imgPhoto;
	@ViewInject(id = R.id.txtName)
	TextView txtName;
  ...
}

目前只支持click事件,我是个很实在的人,确实还没有遇到其他例如OnLongClick事件需要绑定就没有添加支持。

BitmapLoader

请使用这一行代码加载图片

BitmapLoader.display(BitmapOwner owner, String url, ImageView imageView, ImageConfig ImageConfig)

更多详细请查看BitmapLoader

依赖工程

License

Copyright (c) 2014 Jeff Wang

Licensed under the Apache License, Version 3.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.