iOS-Oncenote

这是一款类似于印象笔记Evernote的生活类iOS应用——朝夕笔记 Oncenote。我希望能为更多的iOS开发者提供帮助与服务。当然App中还有不少bug和可扩展的功能模块,也希望各位开发者为该项目贡献自己的code力量。项目地址: https://github.com/chenyufeng1991/iOS-Oncenote 。大家可以通过点击右上角的fork到自己的Github仓库,也可以点击star实时关注项目进度。

1.项目简介

该应用基本实现了一款笔记类应用的所有基本功能,如使用手机号进行注册登录以及短信验证;密码昵称以及个人资料的修改;笔记的增删改查等功能和笔记分享功能。其中最重要的是使用了 Bmob移动后端云 作为应用的服务器。对于开发者来说,Bmob可以快速架构应用的服务器后台和数据库,几乎能免去所有服务器端编码工作量。让你的所有个人资料和笔记资料保存在云端,能够随时的对数据进行访问。这可以让你在不同的iOS设备上对自己的笔记进行管理与同步,实现了一款真正可使用的App。
注意下:该项目我使用Cocoapods进行第三方包管理的,并且在Xcode7下进行开发。运行程序前需要先安装好Cocoapods,并在在项目根目录下执行pod install,pod update命令,来加载更新第三方包。由于Xcode不同版本原因,也建议升级到Xcode7下调试程序。有多人反映说项目编译不成功或者运行时报错,经本人多次测试,代码是没有问题的。原因可能是Xcode版本不同问题或者Cocoapods更新问题。想要了解如何安装Cocoapods,请参考 《iOS包管理工具Cocoapods的安装与使用》 这篇博客。如果有任何问题,请及时与我联系。
其中我还留出多个接口可供大家开发其他模块:照片功能、提醒功能和群聊功能等等。之后我还会适配到Apple Watch上。如果你有好的idea,也可以在App里面实现。希望在更多开发者的共同努力下,把这个应用开发成一个优秀的产品。让我们一起来超越印象笔记吧!。系统主界面如下:
Alt text

2.开发指南

(1)Bmob后端云简介

Bmob后端云官网: http://www.bmob.cn/ .大家可以去注册一个账号,然后进入我的控制台,然后就可以创建应用进行开发了。Bmob非常方便的集成了数据库,你可以可视化的对数据库进行操作和管理。我将在Bmob存储用户信息和笔记资料,并对用户和笔记进行增删改查操作。为了便于开发,大家也可以去学习使用一下Bmob。
Alt text

(2)数据库设计

目前我的数据库中有2张表。分别是_User表和Note表。这是最简单的数据库设计,大家也可以根据自己的需求设计。数据库设计如下:

1)_User表

objectId:String
username:String
password:String
mobilePhoneNumberVerified:Boolean
mobilePhoneNumber:String
nickname:String
Password:String
emailVerified:Boolean
email:String
authData:authData
createdAt:Date
updatedAt:Date
ACL:ACL

1)Note表

objectId:String
userId:String
noteText:String
noteTitle:String
username:String
createdAt:Date

(3)短信验证

为了防止用户的恶意注册和无效账户,该应用使用手机号进行验证并登陆。一个手机号对应一个账户,不能进行重复注册。其中短信验证接口我使用了mob移动开发者服务平台: http://www.mob.com/#/index 中的短信验证码SDK。里面包含了不错的SDK和demo,大家可以研究和试玩一下。但是要注意,进行短信验证时,一个手机号码12小时内只能发送5条验证短信,24小时内只能发送10条验证短信,规定时间内超过该额度就不能收到验证短信了。同时在进行验证的时候,无论你验证输入正确与否,你只能在服务器端验证一次。第二次即使你验证码输入正确,也不能验证成功。这就是短信验证的机制。
Alt text

(4)分享功能

在该应用中,你可以把笔记分享到QQ好友、QQ空间、微信好友、微信朋友圈、微信收藏、新浪微博、邮件、短信等等。同样的,分享接口我也使用了mob移动开发者服务平台: http://www.mob.com/#/index 中的ShareSDK社会化分享。ShareSDK可以分享到国内外主流的几十个社交平台。配置和开发也非常的方便,几十行代码即可。里面也包含了不错的SDK和demo,大家可以研究和试玩一下。
Alt text

(5)笔记功能

笔记功能当然是该应用的核心功能了。一条笔记包括了标题、正文和创建时间。当你打开App的时候,自动会从服务器同步下你的所有笔记。你可以随时增加一条笔记、删除一条笔记、修改笔记等操作,在服务器端也能进行实时的备份与更新。默认在主界面会显示3条笔记,在全部界面显示所有笔记,在全部界面可以删除笔记。

(6)其他业务逻辑

在App中还包括了其他比较繁琐的业务逻辑,比如:

1)引导页

第一次在手机上安装App时会出现引导页,这和其他App是一样的。之后就再也不会出现引导页了,除非你重新安装。

用户成功登录一次后,以后每次都可以直接登录自己App账户,而不会再出现登录界面。除非用户在App中点击了退出登录按钮。

3)忘记密码

忘记密码功能使用了同样的短信验证机制,如果用户还未注册,需要先注册,然后才能重置密码。

3.开发建议

通过查看主界面可以知道,照片功能、提醒功能、群聊功能还没有实现,大家如果有其他比较好的实现方式,也可以进行体现。如果找到了bug,欢迎fix it。希望这个开源项目可以在大家的努力下越来越好,期待你的code。

4.运行效果

(1)引导页

(2)登录界面

(3)注册界面

(4)主界面

(5)所有笔记界面

(6)笔记详情界面

(7)设置界面

5.Github主页

我的Github主页: https://github.com/chenyufeng1991 。欢迎大家访问!

1.1导入处理响应消息的类 BMoocJSONResult.class 作用:提供给门户, ios ,安卓, 微信 商城用的 , 门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式(类,或者list) package com.bmooc.utils; /*自定义响应数据结构 * 这个类是提供给门户, ios ,安卓, 微信 商城用的 * 门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式(类,或者list) * 其他自行处理 * 200:. Android一款类似 印象笔记 的App,随时记录您的生活点滴一款类似 印象笔记 的App,随时记录您的生活点滴,但时目前 功能 还没达到 印象笔记 那样,但是本人后期将通过版本迭代的方式来逐渐完善该App达到 印象笔记 的全部 功能 ,欢迎大家follow,star与fork。#v2.1.0 ## 功能 特色:相对v2.0版本主要增加以下几个 功能 : 草稿保存:当用户新添加一条 笔记 ,但没点击保存按钮,直接按返回时会提醒用户... 大家估计都会装 印象笔记 ,所以这里不演示效果了 ;) 我这里简单说说如何尽可能的“像”印象的主界面,这里所说的“像”并不力求完全一致,而是吸取和参考其优秀的UI布局框架,在灵活的加入一些自己的想法 ;) 因为是模 仿 ,所以没有特别... 一般,评判一个app的性能好与坏,有以下几个方面: 内存、电量消耗、初始化时间、执行速度、响应速度、本地存储、互操作性、网络环境、带宽、数据刷新、多用户支持、单点登录、安全、崩溃 内存消耗,指的是 应用 消耗的RAM RAM的使用者不仅包括在前台运行的 应用 ,还包括操作系统服务,甚至还包括其他 应用 所执行的后台任务。 应用 中的内存消耗分为两部分:栈大小 和 堆大小 应用 中,新创建的每个线程都有专用的栈空间 栈决定了: 可被递归调用的最大方法数 方法调用,使用到了栈 视图层级中可 一个 仿 印象笔记 的TimeBar。项目地址:https://github.com/wuapnjie/TimeBar 效果图:如何使用:获得当前时间:mTimeBar = (TimeBar) findViewById(R.id.timeBar);int hour = mTimeBar.getHour();     int minute = mTimeBar.getMinute();     String time = mTimeBar.getTime();