作者归档:daimajia

Google I/O 2015 为 Android 开发者带来了哪些福利?

昨天,在车库咖啡,和一群老朋友一起度过了一个愉快的 Google 之夜。

首先得说的便是,今年的更新有些不给力,至少显得不够 Geek。我也不打算接着盘点一些在 Keynote 中的资讯,想必很多人在各个站点已经看过不知道多少遍了,我接下来想说的一些是关于这次 Google I/O 为 Android 开发者们带来了怎样的福利。

福利一:

推出了 8 个新的组件,同时向后兼容,新推出的这几个官方组件多是在 GitHub 上很火热的一些项目。

AppBarLayout:全新,用来实现各种 Material Design 概念效果的一个 Layout,主要负责对滑动的响应。

更多组件相关的细节,查看官方 Blog

福利二

新增支持 SVG 图片资源,Android Studio 将自动根据 SVG 生成合适大小的图片。

福利三

全新的界面设计器,对布局,色彩等等资源的编辑能力大幅提升,个人最喜爱的一个改变是增加了主题编辑器。

福利四

新的 Gradle Plugin,编译速度大幅提升,引入了全新的 Compiler — Jack,以及新的高速 Png 资源处理器。

福利五

开始支持Data Binding,这也意味着MVVM将成为 Android 的一种新的 Android 开发技巧。

福利六

Android Studio 将集成 CLion,更好的支持 NDK C/C++ 的开发,需要留意的是他不是简简单单的集成 CLion,而是在 CLion 的基础上增加了与 Android 开发更贴切的特性,比如 Jni 方法名自动生成。

福利七

支持单元测试 以及 外部测试模块,未来 Android 的测试流程将会是下图这样的。

Google 对 Android 开发工具的更新大致就这些,总体还算是不错,可接受。

关于 Android Studio 的更多的细节,可能还要耐心等待官方放出新的 Android Studio 才能深挖出来。

最后,如果文中有任何疏漏或错误,欢迎指出

2014年的末尾

一晃一年过去了,这一年,就是不停的折腾。

2月份的时候开源了EverMemo。

3月份买了第一部iPhone,以前总是觉得自己是个Android开发者,用iPhone是很不合适的。现在看来也没什么。

4月份的时候心里一直惦记着写一个Android开源组件,大多数研究生得给导师干活,不过我倒是活的蛮轻松的,因为我很少会跟实验室的老师打交道,总是默默的藏在角落干自己的事情,实验室的一枚老师也总是会庇护我,让我努力去做点儿自己喜欢的事情,几个Android组件也是在4-6月份集中写完的。

4-6月就那么一晃而过了,什么科研也没搞,就是在不停的做些开源的Android组件,5月份的时候参加了GDG的Google I/O直播,做了关于开源的闪电演讲,认识了不少新朋友。

还去参加了AnimeTaste五周年纪念日的活动,再次见到了少楠,小胖,小简姐还有其他AT!的成员们。

暑假没回家,百无聊赖的写完了AndroidSwipeLayout

8月份的时候CSDN发了一篇「速来膜拜!20位活跃在Github上的国内技术大牛」,被小暴光了下。

9月份的时候,忽然想把「回望」做成一个产品,便建了个微信群,叫了我最好的朋友- kalasoo / 明泽 / 宋只羊 / 江江 一起开启Impressive这个项目。

做Impressive期间,参加了GDG的DevFest,做了另一个关于学习Android中自我提升的闪电演讲。

10月末的时候,impressive的雏形便有了,经历了无知乐观后,整个团队陷入了很深的悲观情绪中,担心用户不会使用,担心场景不够强,直到一日在「雕刻时光」里大家一起拍桌而起,认为想到了一个绝好的idea,便冲动的停掉了这个还没有出生的项目,开启了另一个有趣的项目「稀土 – 每天都有特别的人」。

11月末的时候,经历了一个月的开发,小心翼翼的开始了Alpha内测,反响还不错。

12月末的时候,也就是我正在写这篇POST的前几天,敲定了天使轮的投资,下学期也打算休学完全投入进去了。

来年注定是忙碌的一年,但又无妨,悠闲是可怕的陷阱。

附上几张团队码代码图,看到了吗?从穿短袖的夏天到寒冷的冬季:

另外得感谢36kr,感谢天使汇,感谢Luc。


关于前几天的GDG演讲

上周天(2014/10/26),受邀参加了GDG的Devfest,这是我第二次以演讲者的身份参加GDG的活动了。

较早的时候韩大叔(GDG的组织者)叫我去讲一个小时,我其实挺想讲讲如何Android的触摸机制和Android自定义组件的,但是我在跟一群好基友一起做东西,准备起来也比较费时间,想想也就推掉了。临开始的前两天,韩大叔私信我活动还差十分钟,让我顶顶。

感觉时间较短,就答应了,临开始前一晚做了个PPT,感觉讲的还可以,没有诡异的现场敲代码,讲的都是些经验之谈,微博上反响也不错。

学Android其实也挺麻烦的,尤其是想做的很好。最开始我学Android最大的动力应该是赚钱,听人说App挂广告能赚钱。我就执着的做了第一个App,一个叫无尽画廊的东西… 那会儿本科2年纪吧应该,每天真的执着到不行,早上6点起来,边学边写,还得自己作图,还反编译了遨游浏览器手机版的UI,把图抠出来放进去,快7点40的时候就拿起书和同学一起上课去了,中午回来也是,熬到快一点,睡一会儿,下午继续上课,真的是拼到不行。

就那样,持续了两个多月,最后自己打包,挂上广告,上传到各个市场,坐等收钱…. 不过到现在也只收到了200多块,还没有取出来呢,感觉纪念意义好重要,所以就让他那么一直放着。

Android进阶的时候应该是做AnimeTaste和EverMemo的时候(感谢少楠),一次次重构代码的时候,每次思考的越来越多,尝试各种新奇的小玩意儿,AnimeTaste和EverMemo最后也都开源了。

决定做自定义组件,最大的诱因应该是EverMemo在GridView的有个滑动删除的效果没有实现,一直耿耿于怀。

应该是从一个Google关键字开始的… “How to make custom widget”。 刚开始学起来还是挺吃力的,尤其是onMeasure这个函数,每次要重写,可是就是不知道怎么计算合适… 把这个视频翻看了好几遍,然后各种试….

自定义组件这种事情,折腾出来一次,再多折腾几次就熟了,也没啥了不起的。不会的时候看看Android源码,看看Android内部是怎么实现的一些效果,怎么定义的组件,其实也是挺简单的,只要坚持着做一些事情就好了。

恩,其实很多事情都没啥,喜欢的话,坚持着做就好了。

我这几年的变化

几个时间点:

—-本科了—-

2009: 我满怀憧憬的进入了我的大学(西北大学,以下称西大),作为新生,一入校就被组织去看学长们临走时候的一些分享,目的是让新生们对未来的四年有个规划。那会儿,坐在台上的学长,相互之间吹捧和调侃,给我一个错觉就是进腾讯,华为这样的公司已经算是一个不错的归宿了。

2009-2011:三年间读了很多书,自己研究了很多东西,做了一两个到现在用户量还没有过万的App,依旧没觉得西大给我带来了什么,只是给我提供了一个住的地方,我也在学校里没有深切的佩服过谁,因为确实没什么好佩服的,你问的问题在老师,同学那儿也得不到什么解答,他们也不会给你什么真的有用的建议。自己摸索最大的坏处总结下来大概是这种场景:毕业的前一年依旧觉得Python和Ruby是个小众的语言。

2012:感觉自己去工作完全没有竞争力,到目前为止投的唯一一封实习简历应该是腾讯的…人山人海,密密麻麻,笔试完后就没有了下文。

2013:感觉得去读个研缓一缓,浑水摸鱼的进了北师大,保研完后的几个月闲的要死,开始认真的逛起了GitHub,又申请了暑假的实习,那个实习完完全全的改变了我对很多事情的看法和未来研究生的日子。我开始做东西了,认认真真的做东西了。

—-读研了—-

2013:我开始做AnimeTaste和EverMemo,受到很多国内市场的免费推广,感觉还不错,虽然一开始没这么想,但是现在看来,至少有个东西可以拿出手了。我也慢慢开始让自己变得有影响力起来(这个是刻意的),没有社交网络影响力的话,做个东西想要推广真的很让人很捉急!我开始认真搞起微博和博客来,原创或者转发点儿有用的开发资料,博客最早是技术文章,后来发现心得才是最有价值的。也同时参加一些线下活动,认识很多以前在西安完全见不到的人们,至少刚来帝都的一年让我很兴奋。

2014:AnimeTaste和EverMemo稳定后,一下又不知所措了。 只不过,越来越爱GitHub了,无聊的时候就做俩小东西push上去,稍微得到一点儿关注的时候,就时常会受到国内一些公司的Email,问我要不要去,我猛然发现GitHub是个不错的宣传平台,我开始做更多的小东西,慢慢收到中等公司,大公司的Email,直到后来有来自全球的公司发我邀请,当然也收到了Facebook Android Team Frank的邀请问我要不要去。

—-开始想—-

收到的多了,好像也就变木了,不想去了,感觉没有挑战了,一份工作终究是一份工作,拿着不错的薪水,去了写写Android或者Node,22岁后的最能拼的时候,日子也就这么过了。当然,如果你只是单纯真爱着技术,那也还好,你不会想那么多,你喜欢稳定,你不爱冒险,你有家人要照顾,你得到了你最想要的,那也挺幸福的了。

不过

即便在大公司里当了一辈子工程师,又有几个人记得你呢。

其实,所有的有人存在的地方都是围城,一群人笑着进去,一群人笑着出来。唯有虔诚的去追逐自己想要的东西,才能到达最完美的世界。

加油吧!

实在无聊,又撸了一个库…

生产力跟生孩子一样,来了自己也挡不住…

小撸怡情,大撸伤身… 花了两周时间,也算是大撸了,确实挺伤身的。

特点:

– 两种模式
– 四个方向
– 可以嵌套在任何地方而不破坏触摸事件传递(这是最难的地方)
– 可以监听被隐藏孩子的出现百分比,并回调(可以用来完成滑动动画,第三个下拉的demo其实就有背景色过渡效果,以及星星的zoom的效果)

AndroidSwipeLayout: https://github.com/daimajia/AndroidSwipeLayout

欢迎大家使用和吐槽~ 有新的想法和需求也可以随时提哒~ 

请叫我做库达人

恩,标题的意思你应该懂…

做了个开源的库,我给他起名叫AndroidViewHover ,是想让更多的应用用一种更酷的方式显示菜单和信息,而不是总想着跳转到新的Activity,感觉还蛮酷的,我最近点子蛮多,也算是蛮拼的(好多蛮)。

库的样子大概是酱紫的(图片有点儿大,请耐性等):

可以再YouTube看看Demo的视频,也可以在YouKu看呐。

而且Api也炒鸡简单,上面四个效果每个效果都是10行代码以内(有代码为证),当时写的时候,还结合了AndroidViewAnimation的效果进去,动画效果这块儿自然轻松了很多。

看到第二个图的娃娃头掉下来的效果么?这个动画效果是结合了AndroidEasingFunctions的效果进去的,AndroidEasingFunctions也是自己写的一个用来让动画更逼真的一个库(忘了发博文了)。

最后,欢迎大家使用哦!

哦,又做了个库,关于动画的

前几天,在GitHub上看到一个iOS的动画库,一个Shaker,感觉还挺漂亮的,我记得以前自己也做过一个,不过是给Dialog对话框做的,然后忽有灵感,想收集上一些好看的动画库,集合起来,减轻开发者的压力。

于是

借鉴了Animate.css,花了两天的时间实现了,我给他起名AndroidViewAnimation,push到了GitHub,欢迎大家使用和吐槽。

GitHub

又是一发开源项目 AndroidImageSlider

最近闷声一周左右,打造了这么一款可能每个应用都会用到的组件——一个漂亮的Slider。
之所以做这个,是真心觉得没有一款Slider能让我觉得好看,觉得实用。

花了好久,兼容了Api 8+,包括动画喔~ 而且赋予了很强的自定义能力,比如自定义Indicators,自定义动画,自定义细节动画。 未来也会加入更多元素吧,最近也收集了好多风骚的指示器效果,打算做上十款左右漂亮的指示器,毕竟程序员们都没有审美。

哦,还有。

最近收到了一发实习(法国),一发工作(硅谷)。

能去湾区好激动!

记得初中上英语课老师问:

“What’s your dream?”

我答:

“I want to be a chairman, and have a communication with Bill Gates.”

十年了,那时的场景和我说的每一个单词都记得清清楚楚,奋斗了10年,好像离第二个理想更近了!

GitHub  Demo

折腾了两天,终于发布了

折腾了两天,终于发布了这个妖娆的ProgressBar,现在满心欢喜中。 ?  GitHub

其实,实现原理也是蛮简单的:

NumberProgressBar2

继承自View,添加两个方法,setMax , setProgress.

将这个View分成三个不同的区域:

1、已到达的区域

2、文字区域

3、未到达的区域

然后每次setProgress方法被调用的时候重新绘制整个Bar,重新计算三个区域所在画布的位置,然后通过Paint去绘制就好啦!

欢迎各路好汉使用和吐槽~  :0

psps: 居然上了GitHub Trending啦~ 乌拉阿拉~

我开始了一件需要坚持很久的事情

维护Blog是一件很痛苦的事情,尤其是在热情消退之后。

脑海里有事情想写,却没有时间,忽然一天有时间,却忘了要写点儿什么,就这样,距离上次写文章也就越来越久了。很多事情是以冲动开始,什么时候结束连自己都忘了。

前几天,我冲动了。

我忽然想办个新的博客,去收集Android上优美,实用的开发资源,然后让世界人看到。

不得不说,冲动是的高执行力的保证,不到一天的时间,我在ThemeForest上购买了一套主题,我在闲置的DO服务器上搭起了服务,安装好了Wordpress,发表了第一篇英文博文。

冲动吗,恩,冲动了!那就一直冲动下去吧!

现在每天早上第一件事情就是更新那个英文Blog,哪怕只更新一篇,选一张或者自己动手做一张优美的图片作为Feature Image,用碎成渣的英文扭扭捏捏的写下文章内容,然后编译一个或者几个开源项目,将Apk的Demo放在JumpShare上,留下GitHub的链接还有Apk的链接,简单的写两个单词作为SEO,轻轻的按下Publish,再去主页刷新一下看有没有出来,然后看着一个新生安安静静的躺在那儿,会心的一笑。

那一笑,乐在坚持,乐在分享。:smiley:

PS:

我的最近:新办的站点是Moo Droid(Moo是哞哞哞,Droid是Android),还收到了来自朋友们的明信片,每周和YinMing讨论互联网和设计的点点滴滴,还在执着的做着AnimeTaste,最后锻炼身体和参加学校活动的频率有所增加。