YouJoin新版本发布

简介

这个repo是YouJoin社交平台的Android客户端,代码由本人独立编写,新版本对UI做了大幅度修改,集成LeanCloud的即时通讯,添加“附近的人”功能。
详细的功能和特点包括:
– 采用Material Design设计
– 登录注册
– 即时聊天
– 个人中心(支持资料编辑、头像上传)
– 心情动态(支持最多九张图片;支持点赞、评论)
– 好友关注
– 附近的人(采用特征点匿名匹配算法,服务器不了解客户端真实地理位置,保护用户隐私)
– 支持emoji表情(原创emoji表情绘制中)
– 插件扩展(开发中)

运行截图

  • 欢迎页
  • 登录页
  • 动[……]

Read more

继续阅读

EventBus系列之简单三步上手EventBus

概述

EventBus是一个Android的发布/订阅框架,说得通俗点,就是观察者模式的牛逼实现。最近做项目遇到,发现国内的博客资料多数是2.x版本的,于是根据官方文档,基于最新的EventBus 3.0写成此文,分享给需要的同学。

准备工作:在Android Studio中添加依赖

非常简单,只需要在app的build.gradle中加入:

第一步:定义events

所谓的events,说白了就是非常普通的Java对象,无需任何特别的要求。这种形式使我们可以很方便地传递需要的数据。比如:

[crayon-58d9[……]

Read more

继续阅读

你真的会写单例模式吗——Java实现

单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,恳请读者指正。

饿汉法

顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建。代码如下:

这样做的好处是编写简单,但是无法做到延迟创建对象。但是我们很多时候都希望对象可以尽可能地延迟加载,从而减小负载,所以就需要下面的懒汉法:

单线程写法

这种写法是最简单的,由私有构造器和一个公有静态工厂方法构成,在工厂方法中对singleton进[……]

Read more

继续阅读

YouJoin新版设计理念

新版YouJoin已经在设计中,那么现在我们来谈谈这次设计上的一些理念

coverforweb

前方高能 >(oo)<

相较于上一版本,来说说他的区别!

以下这幅图是旧版的设计,采用了多彩的设计,不同的页面对应不同的色彩,看起来十分缤纷,而且在功能上集合了社交、音乐、照相等内容。

整体上遵循了Google的Material Design规范。动态以小卡片的形式展现,显得精致。

android-show2

 

现在说说着重解决的问题和一些升级内容,当然我是说交互设计上。

1.产品定位

从整个YouJoin来说,产品的定位相较于上一版是要重新梳理,之前说到的包涵社交、音乐等等,包涵的面太广,这样可能导致[……]

Read more

继续阅读

Android Scroll 学习笔记

本文是笔者学习《Android群英传》一书第五章的一些心得笔记。

滑动效果是如何产生的

View的滑动本质上就是View的移动,即改变View的位置。原理是不断改变View的坐标。为了实现这个效果,就必须不断监听用户的触摸事件,根据坐标动态地改变View的位置,从而实现滑动效果。那么首先就要了解一下Android中的坐标和触摸事件的相关知识。

Android中的坐标系

  • 绝对坐标系
  • 屏幕左上角的顶点为原点
  • getLocationOnScreen(int location[])
  • getRawX() getRawY()
  • 视图坐标系
  • 父视图左上角的顶点为原点
  • getX() getY()
  • 两种[……]

Read more

继续阅读

YouJoin社交 Android 客户端

简介

这个repo是YouJoin社交平台的Android客户端,代码由本人独立编写,采用Material Design设计,功能做到尽量精简,同时将扩展功能使用插件的方式呈现,给用户选择功能的自由。

项目为兴趣而生,非商业项目,请勿用作商业用途。目前还在开发中……

亲身体验

可以使用手机QQ扫描二维码进行体验

[……]

Read more

继续阅读

2015年度总结

2015年度总结

实习

暑期找到第一份实习,岗位Android应用开发。独立负责一个车载音乐播放器的开发工作。

项目

带队开发YouJoin社交平台,独立完成 YouJoin 桌面端 和 Android端的开发工作。
开发Tinted音乐播放器(Android)。
扩展《编译原理与实践》中的Tiny语言编译器。
做计算机组成课程设计获得满分。
对冰点播放器进行了改进。
接触过Web开发,参与一个医院网站外包项目的开发。

实用技能

掌握Git的常用命令,平时代码里使用版本控制。
掌握常用Linux命令,熟悉在Linux环境下进行开发。
熟悉Android S[……]

Read more

继续阅读