微信号:guolin_blog

介绍:Android技术分享平台,在这里不仅可以学到各种Android相关的最新技术,还可以将你自己的技术总结分享给其他人,每周定期更新.

我的开源项目,趣享GIF源代码已正式公开

2019-01-29 08:02 郭霖

大家早上好,猪年春节将至,先跟大家拜个早年。另外提醒一下大家,从明天开始我的公众号就要停更了,春节期间我也准备好好休息休息,到2月11号再正常恢复更新。

当然,跟往年一样,除夕那天我依旧会在公众号里抽奖发红包,有兴趣参与的朋友当天记得来我的公众号里瞧一眼。

接下来我们开始进入主题。自从上个月发布了我编写了两年之久的开源项目趣享GIF的App版本,不少朋友都一直在博客、微信公众号上催问我什么时候开放源代码?为了能够尽量将源代码公开,我这一个多月也是没少忙活,基本上是每天下班就开始抓紧写代码,尽量能早一天是一天。

可能有些朋友不明白,项目不是已经开发好了吗,还有什么东西要写的呢?这是因为开源版和非开源版本在某些地方是不一样的,比如说非开源版本登录是使用的QQ、微信、微博这种第三方登录的方式,而开源版用不了,因为第三方登录一定要验证App的包名和签名才行,大家在各自电脑上打出来的APK包签名肯定是验证不过的。

于是在开源版本中,我将登录方式改成了手机号登录,之所以我一直排斥做传统的账号密码登录功能,是因为这样还需要专门开发一套账号管理系统,包括设置密保问题,以及找回密码等功能,太过于麻烦。而使用第三方登录和手机号登录,就相当于把安全性问题交给了第三方解决,我这里就相对轻松了很多。

手机号登录功能我一开始选用的是阿里云的短信服务,结果我开发服务器使用的语言是Ruby,而阿里云并没有提供Ruby的SDK,得用原始的HTTP方式来对接才行。但是阿里云短信服务的原始对接方式太复杂了,各种身份验证绕来绕去,我实在没搞定,最终换成了腾讯云的短信服务,在这方面着实花了不少时间。

除了修改了登录功能之外,我还调整了App的主题颜色,使用绿色作为开源版的主色调,还修复了几个由大家测出来的Bug。并且大家在试用了趣享GIF之后提出来了不少建议,本来我是想将这些建议也一一优化的,但是这样肯定无法在春节之前开源出来了,最终我决定将这些建议缓一缓,先发一个初始的开源版,以后再慢慢进行版本迭代吧。

开源版本和之前发布的非开源版本功能基本是完全一致的,因此大家应该也体验的差不多了,我这里就简单再发几张截图吧。

可以看到,开源版的Logo以及整体App的主色调我都进行了调整。

手机号由于不方便在截图里面显示出来,登录功能就不跟大家演示了,总之如果这是一个已注册的手机号,那么登录成功后将会直接跳转至主界面,如果是未注册的手机号,那么会跳转到注册界面。

注册界面如下图所示:

由于这是非第三方登录的情况,我无法像第三方登录时那样自动获取到第三方账号的昵称和头像,因此昵称需要自己手动输入才行,头像使用的是一个系统默认的图标,当然大家后面可以再自行进行修改。注册成功会自动跳转到主界面。

浏览GIF界面如下图所示,这些大家应该都很熟悉了:

分享动画效果,可以将图片分享到QQ、微信、微博、或者保存到手机:

点赞动画效果:

发布GIF趣图:

应大家的建议,增加了一键回到顶部的功能,点击当前页面的Tab项即可一键回到顶部:

由于没有了第三方账号的头像,默认的个人主页界面可能并不会很好看,如下图所示:

但是你可以点击Fab按钮来对你的个人主页进行随意的定制,编辑出好看的个人主页:

设置界面如下图所示:

关于界面也进行了一些调整:

更多功能就不再向大家演示了,因为很多朋友对这个App已经很熟悉了。那么就话不多说,接下来进入到本篇文章最重要的部分,公开趣享GIF的源代码。目前趣享GIF已在GitHub上开源,大家可以随手点一下Star,算是对我的支持吧,项目主页地址是:

http://github.com/guolindev/giffun

另外需要提醒大家一点的是,趣享GIF的源代码仅供学习和交流使用,严禁用于任何商业用途,否则我将保留一切追究法律责任的权力。当然,如果你是通过这个App的源码学到了很多知识,然后应用到了自己的项目当中,这种我是非常欢迎的,但如果只是在我的源码基础上稍微改了改代码或者界面,然后就拿去用作赚钱目的,这种行为是不被允许的。

本来考虑到服务器安全的问题,我有想过客户端与服务器接口通讯的这部分代码不进行开源,但是后来仔细考量之后我还是决定将所有的源代码都进行公开。我不知道这样会不会导致一些我没考虑到的服务器漏洞暴露出来,但是请大家不要试图对我的服务器进行攻击,我不是专业的服务器开发人员,这个服务器的存在只是为了方便大家更好地学习。

好了,狗年的最后一篇文章就到这里了,如约将趣享GIF开源我也算是如释重负。愿大家都能有一个愉快的春节假期,我们除夕见。

 
郭霖 更多文章 Android自定义IM聊天界面 一种新的架构设计思路,用户行为驱动开发 记一位非科班Android程序员的进阶之路 使用Fragment优雅地申请运行时权限 Gradle妙用,统一化自动依赖管理
猜您喜欢 「黄泽瑄的成长记」第四季来啦 如何写一份靠谱的软件测试计划?(三) 如何做好架构之架构切分 生活如何不无聊 在哪里写Autolayout布局最合适?