2013年10月

这个项目的目的,是了解一下App开发的流程。

App的名字叫做“微写真”,主要功能是查看图片+评论+上传。代码放在Github上,并且提交到了百度市场里。

技术

主要使用到的一些开发技术点:

  • ActionBarActivity: 用了这个才符合Android4.0的设计规范
  • Fragment:差不读就是“页面”,可复用。(其实很蛋疼,Fragment之间唤起/传递参数很麻烦)
  • ViewPager:左右滑动
  • FragmentStatePagerAdapter
  • StaticData

外部组件库

  • StaggeredGridView:堆叠式的布局(后来改用其他了)
  • Picasso: 图片加载库。用法很RESTful,很简约,很赞
  • AndroidAsyncHttp:网络请求库
  • GoogleAdMobAdsSdk: 谷歌的广告库+分析统计库
  • ActionBar-PullToRefresh-0.9: 下拉刷新
  • ViewPagerIndicator:翻页标记

本地存储:

  • SharedPreferences: 保存登录态!简单粗暴

界面:

  • 手画:使用感觉XML写界面很蛋疼。至今没有引入CSS来设计界面,很想吐槽
  • icon: 从豆瓣app里抓出来的
  • 图片处理:从网上下载,使用GIMP处理

广告库

  • 谷歌:首先试用了一下谷歌的;简单就配置成功了
  • 友盟:后来发现友盟也有广告库,挺牛逼的感觉,也用了一下
  • 芒果:最后同事推荐芒果平台!

体会

一个App涉及到的确好多。光是外部组件就有N个,在代码上管理外部库的规范貌似也没啥好规则(后来琢磨出outer-projects的方式会比libs方式更好)。另外则是界面。XML的界面调整起来真是非常坑爹。很难写,配置也很难用。最后则是兼容性。为了兼容Android2.3,许多系统库都得使用兼容版的,于是就经常出现新版旧版同时用,缺这少那的,IDE的自动补齐都快崩溃了。

另外,APP写出来后,没有推广,果然就是没有流量、没有收入啊。。。。

演示

启动Splash,图片是用GIPM处理的
App主界面,使用了瀑布流布局

出师不捷。解压typecho的安装包、执行完安装界面后,却提示:500 Database Query Error。查看nginx的日志,只有一行:

PHP message: SQLSTATE[HY000]: General error: 1 no such table: typecho_options

百度了一下,并没有找到什么特别的帮助。

手动查看config.inc.php配置文件,猛然想起安装时填写的database信息都是mysql的(host、port、database),而sqlite安装明明只需要一个文件路径啊!于是翻看install.php的代码,发现

$adapter = _r('dbAdapter', 'Mysql');
$type = explode('_', $adapter);

。。。果然,默认是Mysql!(奇怪的是界面上明明只有Pdo_SQLite的选项啊?)

手动加上参数重新访问:
http://talebook.org/blog/install.php?config&dbAdapter=SQLite
然后一切就正常了。
Sigh。