GithubHelp home page GithubHelp logo

andme's Introduction

Andme

学者之患,在于好谈高妙,而自己脚根却不点地。 --宋·朱熹《朱子文集·答胡宽夫》

然而将最基础的做好却更能形成一个良性的开发循环。 --21世纪 鄙人

前言

在实际的开发过程中,我们经常会遇到许多非常繁琐、纠结的问题,比如依赖的管理问题(杂乱、版本号、交叉依赖等);代码的兼容问题(不同的版本要采用不同的方式去处理,还可能存在特定设备版本的运行问题);重复性问题(我不喜欢相同功能的代码反复出现);选择问题(到底选择哪个库更好,有什么区别,为什么?萌新可能连这种问题都费神);库的替换问题(你能够从你的库中轻而易举的替换掉使用的第三方库?);

我们如果基于某个功能去开发一个库,也许在不长的时间里,不知不觉中这个库就被人遗忘,成为历史;Android开发已过去这么多个年头,比如图片加载库,早期我自写了一个库,随后出现了UIL,切换到UIL上去写的津津乐道,然而到现在还有人用UIL么?一个特定领域的功能库,很容易销往,尤其是在当今开发环境下,各种库百花齐放,拿权限处理框架来说,一搜一大把,那到底用谁好呢,我自己还写过一个权限框架呢?今天很热销,明天说不准就过时了,所以我追求最基础的功能,因为我也没有能力维护特定领域功能的库,而维护基础功能层面的库是我觉得对个人而言价值最大的。

库的定位

Andme的定位是用更为合理的方式提供Android开发所需的方方面,而非提供某种具化的业务功能,可以理解为一个基础性框架,在具体的业务开发过程中可以不用去考虑一些繁琐、重复的工作;Andme的定位是提供基础性功能,而非一种非常重量级的功能,因为所有的功能,基础才是最重要的,我们可以实现不同的业务功能,今天能够开发出一个A应用,明天能够开发一个B应用,但是永恒不变的是支撑这些业务的基础功能,所以Andme所做的就是这一层的工作,并尽量的去解决前面所说的那些烦人的纠结的问题。

所以Andme对于任何人来说都是可以用的,我用Andme开发过百万级用户的产品,也用Andme开发过无数的应用;也正是如此,Andme是在这些过往的经验之下产出的无任何特定业务逻辑特性的基础性框架。

工程说明

工程核心module为core和arch

  • core

提供核心的工具类、组件等与任何具体业务形态无关的东西,你可以想像成一个工具库,里面可能有非常好用的工具函数、也可能有非常好用的自定义view等;

  • arch

基础开发框架,依赖core,提供具体的业务形态及实现,比如Activity分发返回键事件到Fragment中等,而分发器的实现是放在core中的;

  • integration(暂未放入)

未来引入,第三方库的集成封装,尽可能的避免第三方库使用的侵入和配置化管理。

使用

目前Andme并未把所有的代码放入,所以也并未发布jecenter,如果有需要尝试的童鞋,可以使用git将代码拉下去,后续发布的代码不会随意改动。等到内容差不多放完之后,便提供远程依赖。

支持功能

所有功能我会写对应的文章进行描述,也就是我不仅提供你工具,我还会告诉你这个工具为什么是这样子,能够什么,因此我觉得这个过程是可以互相交流和学习的过程,大佬可以无视了。 由于工程主要采用Kotlin编写,所以发布的内容视情况看是否提供关于kotlin的基础内容。

1、Application、Activity、Fragment、ViewModel基类功能

[Andme系列]基础框架之Application、Activity、Fragment、ViewModel基类封装

2、异常处理统一管理

//文章待补充 统一处理app相关的已捕获异常、UI交互异常、未捕获异常

3、UI交互统一管理

//文章待补充 对话框交互、Toast等统一管理

4、还在整理中

由于此次是将之前产品和项目中的功能重新整理成库,因此在代码和文件组织上进行了重构和优化,所以并未一次性导入到Andme

欢迎入群交流:QQ276097690

更欢迎关注公众号:赶快扫码加入吧

如果您有更多的建议或者交流,欢迎入群讨论,添加公众号更能第一时间了解最新内容。

andme's People

Contributors

uni-cstar avatar

Stargazers

沐尧 avatar luning avatar Gavin avatar  avatar Barry Lee avatar louisgeek avatar kingyu avatar  avatar  avatar 周健力 avatar 飞侠恒 avatar 黄典新 avatar Nineteen avatar  avatar iFly丶 avatar 爱可可-爱生活 avatar sclimin avatar 张贺荣 avatar  avatar  avatar  avatar  avatar TSimeon avatar  avatar ruichaoqun avatar tk avatar  avatar  avatar  avatar Alpha Hu avatar Better avatar

Watchers

James Cloos avatar  avatar  avatar

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.