超值干货:个人开发者如何使用免费又简单的开发后台
我之前分享了两篇文章分别是《科普技术贴:个人开发者的那些赚钱方式》和《绝对干货:供个人开发者赚钱免费使用的一些好的API接口》,教个人移动开发者如何在业余时间做点开发赚点小钱,上次分享的一些开放的API接口其实非常的实用,但是毕竟有些限制,不能自己想做什么就自己做什么,而是别人提供什么,我们才能自己做相应的开发。今天给大家分享的是一些限制级的免费后台供大家开发使用,做一些自己喜欢的app。
何为限制级的免费后台,那就是限制了每月的服务请求次数,在这个限定的次数范围内是免费的。比如每月请求次数在150万次,就免费,超过了这个次数就开始收费。但是通过我的经验来说,个人开发者开发的小的app每月请求次数不会那么多,除非你做的这个app非常的火爆,所以不用担心会超过这个次数,如果超过了这个次数的请求,收费就收费吧,毕竟我的app火了,应该高兴,既然火了广告费就高了,挣钱就多了,交点小钱没什么的。
个人比较欣赏的一个开发后台提供者是Bmob:
Bmob可以开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息。
其实对于我们很多Android/ios/wp个人移动开发者来说,开发一个具有网络功能的应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌握一门诸如Java/.net/php这类的服务器开发语言,每开发一款移动应用程序,就必须开发维护对应的服务器程序。这一切对于移动开发者来说,都是一个冗长的噩梦。在Bmob平台上,您只需注册一个帐号,成功后申请创建任意多个数据库,获得对应的Key,下载对应版本的SDK并将其嵌入到移动应用中,便可以调用存取API,进行数据的任意操作。
而且更重要的是Bmob提供的SDK中,提供了封装好的服务请求方法,直接就可以拿到你在后台数据中设置的数据,非常的方便。
举个例子,比如你查询后台的数据:
查询所有数据
查询某个数据表中的所有数据是非常简单的查询操作,例如:查询GameScore表中playerName为“比目”的50条数据记录。
BmobQuery<GameScore> query = new BmobQuery<GameScore>();
//查询playerName叫“比目”的数据
query.addWhereEqualTo("playerName", "比目");
//返回50条数据,如果不加上这条语句,默认返回10条数据
query.setLimit(50);
//执行查询方法
query.findObjects(this, new FindListener<GameScore>() {
@Override
public void onSuccess(List<GameScore> object) {
// TODO Auto-generated method stub
toast("查询成功:共"+object.size()+"条数据。");
for (GameScore gameScore : object) {
//获得playerName的信息
gameScore.getPlayerName();
//获得数据的objectId信息
gameScore.getObjectId();
//获得createdAt数据创建时间(注意是:createdAt,不是createAt)
gameScore.getCreatedAt();
}
}
@Override
public void onError(int code, String msg) {
// TODO Auto-generated method stub
toast("查询失败:"+msg);
}
});
查询的结果不需要进行任何处理,BmobSDK已经为你封装成相应的JavaBean集合了,你直接使用即可。
- 数据库表反向生成(一) MyBatis-generator与IDEA的集成
- 数据库表反向生成(二) Django ORM inspectdb
- RabbitMQ与AMQP协议
- 大数据算法设计模式(2) - 左外链接(leftOuterJoin) spark实现
- hs_err_pid
- django celery的分布式异步之路(二) 高并发
- django celery的分布式异步之路(一) 起步
- SpringMVC拦截器Interceptor
- 元宵快乐:看SQL大师们用SQL绘制的团圆
- Python Redis pipeline操作
- python concurrent.futures
- Deepmind的星际争霸2强化学习教程(1):建立环境与训练模型
- python contextlib 上下文管理器
- Django扩展自定义manage命令
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- zabbix入门学习
- 突击并发编程JUC系列-ReentrantReadWriteLock
- Qt音视频开发33-ffmpeg安卓版
- Vue.js|Nuxt仿制探探堆叠滑动|vue仿Tinder卡片效果
- Elasticsearch:透彻理解 Elasticsearch 中的 Bucket aggregation
- html+js开发模拟考试在线评分系统
- iOS音视频接入 - TRTC接入实时视频通话
- LRU缓存淘汰机制C++实现
- ant-design-vue运行时动态切换主题色
- 使用electron将vue-cli3.x项目打包为桌面应用
- Ubuntu 16.04下安装服务器端Shadowsocks
- 解决vue cli3.x打包上线静态资源找不到路径问题
- Ant-design-vue+vue-i18n实现前端国际化
- Mac OSX终端安装主题(oh my zsh)
- 谷歌浏览器油猴插件安装教程,让你的浏览器更加强大