社区(OkCommunity)Android 通讯app开发简介
2016-10-01 16:55
411 查看
前言
在7月中旬的时候,突然想做一个上线的app,同时也巩固一下自己的android开发知识。于是开始动手坐了起来,终于在8月5号左右的时间,完成了历时20多天整个app的开发。我个人觉得,这个app虽不能说做得很好,但也是对我3个月的安卓学习的一个总结,当我发到论坛上,想听听其他开发人员的建议和评价时,另外意外的是,基本评论的都是好评。但与此同时,我也发现有很多android的初级学习者,看完第一行代码或者做几个小demo,就不知道干什么了。想想一直以来,在学习的过程中,博客和github都帮助了我很多,也正是因为开源,所以大家才能一起进步。所以,这个app,我将它开源的目的,也是为了更好地帮助其他的安卓开发者。Ok社区 介绍
一款以新闻浏览为主,附带各种特色功能的新闻社区,在ok社区,你可以表达对实时新闻的评论,也可以在社区中心表述你的心情,无聊时还可以体验一下各种附带小功能。UI大致还是借鉴了知乎日报的界面风格,但也融入了很多个人的风格。ok社区的安卓客户端和后台都是我自己写的,虽然安卓开发不需要做后台,但是我觉得最好还是要了解一下后台的知识,这样对整个项目的架构会更加的了解!
github地址:https://github.com/jeff-leo/OkCommunity
app下载链接:http://www.wandoujia.com/apps/com.liu.sportnews
(欢迎大家star和下载,这是给我的动力)app 演示图:
主界面登录注册
社区发帖
个人信息
更多功能请下载app自行体验。
具体模块
侧边栏是采用DrawerLayout实现,但是我个人不推荐,最好还是使用github的第三方侧边栏,因为DrawerLayout的局限性太大,而第三方功能非常丰富和灵活。主界面的新闻列表,轮播条的实现思路是,采用handler和message,每隔3s就用handler发送message,通知viewpager让currentPage++;
轮播条下面的列表是采用CardView实现。
//利用handler循环发送消息 mHandler = new Handler() { public void handleMessage(Message msg) { mTopCurrentItem = ((HeaderViewHolder) holder).headerPager.getCurrentItem(); if (mTopCurrentItem < mTopList.size() - 1) { mTopCurrentItem++; } else { mTopCurrentItem = 0; } ((HeaderViewHolder) holder).headerPager.setCurrentItem(mTopCurrentItem, false); mHandler.sendEmptyMessageDelayed(0, 3000); } };
整个app的网络通信框架用的是okHttp,不过要进一步的封装,我使用的是鸿洋的OkHttpUtil。
图片加载使用的Glide,不过Glide会有一点小问题,下面会提到。
新闻详情页是采用5.0的新特性api实现的, Android5.x新特性之Toolbar,AppBarLayout,CoordinatorLayout,CollapsingToolbarLayout等汇总,不懂得可以看看这个链接。
图片选择器是使用github上的开源框架,MultiImageSelector。
开发途中遇到的问题
主页面的viewpager的嵌套有可能会导致事件冲突,这涉及到事件传递机制和滑动嵌套的问题,这篇文章讲得很好,所以我不再多写,Android Touch事件传递机制解析Glide配合圆形image,有可能会导致第一次不能加载,第二次才能加载成功的问题,具体的解决方案:Glide加载圆形image第一次显示占位图的原因
主界面的fragment之间的切换,有可能会导致数据不刷新,具体的解决方案:让多个Fragment 切换时不重新实例化,FragmentPagerAdapter刷新数据原理分析与解决
在开发登录注册模块时,手机上使用,点击输入框,软键盘弹出时会覆盖掉布局,具体的解决方案:Android 软键盘遮挡的四种解决方案
使用ListView时会导致图片移位等问题,并且随着现在开源社区越来越多的开源RecyclerView,所以推荐首选使用RecyclerView。
上线的项目一定要在app内开发新版本推送的功能,之前我在网上差的资料十分混乱,后来索性自己写了博客记录了下来, Android版本检测更新
给大家的福利
在这里,献上我学习安卓以来,收藏的一些非常好的学习资源。现在的app开发架构,比较流行的是mvp+RxJava+Retrofit,这三种知识点的资料:给 Android 开发者的 RxJava 详解, 选择恐惧症的福音!教你认清MVC,MVP和MVVM, Android网络请求–Retrofit基础
收藏的一些UI图标和设计的网站:materialpalette, UI中国, 阿里巴巴图标库, iconfinder
当时我个人完成app的开发时,觉得基础真的很重要,特别是Java的基础,如果java基础不好,你的代码没办法写得漂亮,所以我花了10天左右的时间,写了一个系列的java系列的博客文章(我是真的认真写了这个系列的博客)让我意外的是,本来我对博客不怎么维护,写安卓博客文章的时候,更多是用来做笔记,所以总访问量只有1000+,自从写了java的文章之后,一个月,访问量就上到了6000+,可能这就是认真写博客的收获吧:Java系列博客
结尾
这篇文章,本人是真的用心去写,如果读者认为我写的还可以或者app的体验还可以,欢迎去下载使用和github star。后台开发的功能,如登录注册,发帖,更新个人信息,评论等,电脑里没有服务端,是使用不了这些功能的,由于7月时,我对后台也不是很熟悉,只会简单得jsp,servlet和jdbc等,所以后台都是用servlet来写得,现在学习了ssh,ssm之类的框架,觉得之前写的实在不好,不过那也是初学者必须经过的路,所以还是不放在github了
相关文章推荐
- Android开发之APP换肤简介(一)
- Android开发之APP直播简介
- Android开发之APP直播简介
- 上门洗车APP --- Android客户端开发 前言及业务简介
- 我有罪我用了1下午时间终于无师自学用C#开发了俺的领先个Android 浏览器APP我对不起java 社区
- 我有罪啊,我用了一下午时间,终于无师自学,用C#开发了俺的第一个Android 浏览器APP,我对不起java 社区啊(附开发过程讲解)
- (OK) Android的NDK开发(1)————Android JNI简介与调用流程
- Android开发之APP直播简介
- Android开发之APP换肤简介
- Android App开发基础篇—四大组件之Activity简介
- Android App开发基础篇—常用布局简介
- Android开发之APP直播简介
- 上门洗车APP --- Android客户端开发 前言及业务简介
- Android 浏览器APP:我有罪啊,我用了一下午时间,终于无师自学,用C#开发了俺的第一个Android 浏览器APP,我对不起java 社区啊
- Android 开发简介
- Android开发环境配置简介
- Android 即时通讯软件开发日志系列
- Android开发——HTTP通讯
- Android 开发简介
- Android开发简介