Skip to content

超级笔记Android客户端 基于Material Design设计模式、嵌有轻量级的IM框架(环信)

Notifications You must be signed in to change notification settings

lynn01247/NoteEx

Repository files navigation

NoteEx

超级笔记Android客户端

基于Material Design设计模式、嵌有轻量级的IM框架(环信)

效果图

整体效果


实验室效果:在线和本地换肤、在线和本地字体更换


其他功能效果


数据来源API接口

1. 数据是自己写的后台,后台搭建在LeanCloud【非广告:这是免费的轻量级后台管理维护系统,可以基于Java、PHP等语言,具体信息请移步官网:https://leancloud.cn/】

部分接口示例:【更多信息,可以访问我当时开发另一个项目使用的API文档,本项目也是挂载在这个数据库里(懒得新建啦 ^_^ )https://lynn01247.gitbooks.io/turtle_api_1-0/content/】

// 根据page获取全部笔记信息 $turtle_api->get('/getNote', function(Request $request, Response $response) { if(empty($_REQUEST['pageIndex'])){ $pageIndex = 1; }else{ $pageIndex = $_REQUEST['pageIndex']; } // .... // .... //判断用户的会话token是否还有效 $uidQueryUsers = new Query("Users"); $uidQueryUsers->equalTo("uid", intval($uid));

$tokenQueryUsers = new Query("Users");
$tokenQueryUsers->equalTo("token", $token);

$queryUidToken   = Query::andQuery($uidQueryUsers, $tokenQueryUsers);
try {
  $countUidToken = $queryUidToken->count();
} catch (CloudException $ex) {
  return json_encode(array(
    "code"     => 0,
    "info"     => "获取全部笔记自检失败! 异常信息: ".$ex
  ));
}
if ($countUidToken > 0) {// 用户的会话token有效
  try {
      //.....
  //...
        $data[] = array(
            "uid"          => $result->get("uid"),
            "nid"          => $result->get("nid"),
            "treeid"       => $result->get("treeid"),
            "tagid"        => $result->get("tagid"),
            "title"        => $result->get("title"),
            "content"      => $result->get("content"),
            "updatedTime"  => $result->get("updatedTime")
        );
      }
  } catch (\Exception $ex) {
      error_log("getNote failed!");
      $data = array();
  }
  return json_encode(array(
    "code"     => 1,
    "info"     => "查询成功!",
    "data"     => $data,
    "page"     => $pageIndex,
    "pageSize" => $pageSize,
    "total"    => ceil($count / $pageSize)
  ));
}else{
  return json_encode(array(
    "code"     => 0,
    "info"     => "用户token无效!请重新登陆验证token信息!"
  ));
}

});

2. 部分干货数据是基于PHP爬虫实现,当用户访问APP请求最新数据时,自动去抓取【掘金】最新的数据。部分图片数据和主题字体等存于七牛

3. 由于掘金对接口访问采用【X-LC-Id】 + 【X-LC-Sign】认证方式,因此我将Sign搁置于友盟在线参数。

笔记Model的数据Json格式:

"code": 1,           //返回值,
"info": "查询成功!", //返回提示,
[
    {
        "uid": 1,
        "nid": 1,
        "treeid": "1",
        "title": "标题",
        "content": "内容",
        "updatedTime": "2017-4-12 10:00:00"
	...
    },
	......
    {
        "uid": 2,
        "nid": 2,
        "treeid": "2",
        "title": "标题2",
        "content": "内容2",
        "updatedTime": "2017-4-12 11:00:00"
	...
    }
],
"page": 1,
"pageSize": 10,
"total":1

功能点记录:

  • Material Design 页面跳转动画,触摸响应和共享元素转场动画
  • 侧边栏动画效果:ActionBarDrawerToggle、DrawerLayout、ToolBar 的结合
  • RecycleView + BGARefreshLayout 下拉刷新上拉加载
  • DrawerLayout 实现抽屉菜单
  • Navigation 实现抽屉左边的导航
  • ToolBar 实现沉浸式布局
  • ViewPager 展示轮播图片(首尾循环,自动轮播)
  • okhttp 封装请求 异步获取 Json数据
  • skin 在线换肤和换字体【当然也支持本地】
  • 多dimens 适配大部分系统
  • CircleView 圆形头像
  • 支持三方登录【微信、QQ、新浪】,使用的是友盟
  • 支持三方分享【微信(含朋友圈/微信收藏)、QQ(含空间)、新浪、短信、邮件、文本、链接等 】
  • HtextView 字体特效
  • 轻量级环信聊天,实时红点信息提醒
  • 自主提取封装的aar 防止Module过多累赘
  • 集成友盟推送
  • 集成腾讯bugly监测和应用升级框架

部分依赖的开源库和工具

下拉刷新上拉加载BGARefreshLayout

网络请求okhttp

强大的图片处理工具picasso

炫酷的文字特效htextview不过:minSdkVersion要15

主题切换一直是个功能要点,网上有许许多多的方式,不是操作太复杂,批量更换;就是效果不如意。 找了个比较满意的ThemeSkinning

About

超级笔记Android客户端 基于Material Design设计模式、嵌有轻量级的IM框架(环信)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages