微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AndroidUIO Android UI 及 IO 工具库

程序名称:AndroidUIO

授权协议: LGPL

操作系统: Android

开发语言: Java

AndroidUIO 介绍

Android
UI 及 IO 工具库(基础框架)

Android APP framework 是一个拖沓冗余的体系,正是因为他的不足,才需要我们去完善他。

通用回调机制

---- 有物混成,先天地生

函数,是编程中最常见的处理单元,加上泛型信息,我们可以让函数的表达能力更强。

Java的函数虽然用起来不如一些函数式语言那样简洁,但是,包装在接口下面的函数,还可以更加方便的携带更丰富的信息。

在这套类库中,一个简单通用的可以携带泛型信息的回调接口, 将贯穿整个系统。

设计理念

---- 有之以为利,无之以为用。

设计一个具有良好扩展性的基础框架, 最重要的一点是掌握 “有”和“无”的平衡。

  • 有: 我需要提供那些模块?那些功能?什么结构?

  • 无: 我在我的系统中提供那些自定义的坑,可以让你自己去完善,去扩展。

在这套类库中, 通过一个通用回调接口, 用来描述“无”的存在,绝大部分功能都以“无” 为中心来设计。

自动化处理

---- 太上,不知有之。

上善若水,我认为最好的工具,就是,当他帮你做了实实在在的事情,而你不需要关心他的存在。

在这个UI&IO框架中,大多数情况下都尊崇这个设计思想。

如:

  • 当你适用网络图片的时候,不用关心图片缓存的操作;

  • 当你编写网络任务时,Activity暂停/恢复/终止时,您无需再为相关的任务调度优化操心;

  • 没有网络的时候,不需要关心离线展示的支持;等等…

网络请求

  • 任务管理

    • 自动根据生命周期调度(终止/暂停/继续)任务。

    • 随时手动终止任务。

  • 网络缓存优化

  • 双回调机制

图片处理

比如,如果你想画个圆角阴影什么的

自动模型转换

数据结构和java对象是一一对应的, 但是我们很多老实的程序员天天乐此不疲的手动解析json,手动吧这些json一个个复制到java对象模型中,
这些实在是没有必要。

存储模型

状态管理

  • Activity 状态

  • 其他

  • 网络检测。

  • Toast,Application等等


    //the http request will be canceled after activity finished
    //and auto paused after the activity is paused when the task is pauseable.
    //and auto resume after the activity is resume again.
    Cancelable task = UIO.get(new Callback<MyClass>(){
        //http stream will be auto parsed and mapping to you standard javabean object.
         public void callback(MyClass javabean){
             //Todo:...
         }
         public void error(Throwable ex, boolean callbackerror){
             //Todo:....
         }
    },url);
    // and you can cancel it any time by yourself
    // task.cancel();

    // double callback (cache first show and update on need)
    Cancelable task = UIO.get(new CacheCallback<MyClass>(){
         public void callback(MyClass javabean){
            //Todo: on cache parsed!
         }
         public void update(MyClass javabean){
            //Todo: on new network result(null for not modified data)
         }
         public void error(Throwable ex, boolean callbackerror){
            //Todo:....
         }
    },url);

    // post file
    Cancelable task = UIO.post(new Callback<MyClass>(){
         public void callback(MyClass javabean){
            //Todo: upload success!
         }
         public void error(Throwable ex, boolean callbackerror){
            //Todo:....
         }
    }, url, fileName, file);
//the image url will auto load and parse and set as the drawable for the imageView 
//if the image url is a animated gif,then it is show as a movie!
UIO.bind(imageView,imageUrl);

//you can set the drawableFactory for the image loading(getLoadingDrawable) and process(such as radious, shawdown....)
//and set the fallback drawable for the action
UIO.bind(imageView,imageUrl,drawableFactory,fallbackResourceId);


//you can set the callback for the bind action(callback on image load(or cached) and bind to image view)
UIO.bind(imageView, imageUrl,drawableFactory,fallbackResourceId,  callback);//Callback<Drawable>

AndroidUIO 官网

https://github.com/jindw/AndroidUIO

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐