为 ShareKit 增加国内相关微博/SNS 服务

在 iDev 圈内,众所周知 ShareKit 是一个家喻户晓的分享框架,很多人都在问哪有支持国内相关微博/SNS 服务(比如,新浪微博,腾讯微博,豆瓣,开心网,校内等)的类似框架或者谁去做贡献,造福那些拿来主义的人类。正好碰巧我刚刚接触 iOS 开发不久,为了验证文章开头的那段话,恰巧我开发的应用也需要设计这块的内容,我就只好啃下了这块“硬面包”,实际上在熟悉整个 ShareKit 的代码后,外加上对于 OAuth 协议又非常的了解,做一个扩展还是很轻松的,虽然我对 Objective-C 代码并不是很熟悉,这一切得益于 ShareKit。

ShareKit 在整体上,代码写的比较完美,对于新增的服务可以轻松实现,而且另外最最大的一个好处在于国内的这些服务实际上都是 Copy to China,这有大大减少了移植的开发量,比较恶心的事,国内为了证明我们的结构和功能不同于原版,对其有做了细微的调整,这就导致使用标准化的协议不能通过,这对于只是想用的人来说就是一种灾难。

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。

上面是从 V2EX 某帖子挖出来的一个评论,实际上这段文字大家在学校的时候应该并不陌生,随后又看到了《凭什么是我们》这篇文章,更是印证了上面这段话。

为什么我要说上面这段和标题并不沾边的文字呢,实际上现在要发布的日志本来在我看来是非常没有必要的,因为这个项目我已经在 git 上面 fork 并贡献了关于国内相关微博/SNS 服务的代码,我以为大家可以通过搜索引擎搜索到,可想还是有人来问我,那好吧,为了减少询问我的次数,以及这篇日志的 SEO,我还是写下了这个日志。

Github 项目地址:https://github.com/icyleaf/ShareKit

衷心希望这个 fork 的代码对热情开发的人有所帮助!

如何在开发和发布环境使用 Android Map Key

在项目中第一次使用并涉及 Google Map 的功能,而由于 Google 的限制,Google Map 模块出来需要单独下载模块之外,对于每一个应用还都必须具有一个 Google Map Key,这点和使用 Web 开发调用 Google Map API 是一致的。

对于 Android 采用的 Google Map Key 来说,是由一串 MD5 值(类似这样:94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98)生成的。那么这个 MD5 是哪来的呢?

1. 开发环境的 Google Map Key

这个比较简单,网上大面积教程所采用的 android 系统默认带有一个 debug.keystore。假如开发使用 Eclipse,在其 windows -> Preference -> Android -> Build 下,其中 Default debug keystore 的值便是 debug.keystore 的路径。

在命令行或者终端执行下面命令(注意指明 debug.keystore 的路径)即可获取到 MD5 值。

keytool -list -keystore debug.keystore

2. 发布环境的 Google Map Key

假如你的应用需要上线到官方的 Google Market 上面,则需要根据其 apk 的签名证书(keystore)的 MD5 值去生成,方法也很简单,发布的签名同样可以使用 Eclipse 的 Export 工具制作。制作完毕后(或许这个生成的签名没有 .keystore 后缀,不用在意)。同样也使用上面的命令获取其 MD5 值。

# 比如,证书路径 /home/icyleaf/android/ews
keytool -list -keystore /home/icyleaf/android/ews
...
#  查询到了 MD5 值
Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98

使用其 MD5 值在 Sign Up for the Android Maps API 页面填写生成即可。

接下来的步骤就没什么了,又是搜索出千篇一律的教程,大家 Google 之。

个人常用 OS X 软件集合

用了 OS X 已经半年多了,整理下日常常用的软件。大多数都是开源或者免费软件,少数需要购买

  • AppCleaner:卸载软件必备,适合用于第三方安装和 App Store
  • aliwangwang:淘宝用户必备
  • DiffMerge:文件、文件夹对比的工具,貌似对中文支持有问题(没有细研究)
  • Dropbox:改 hosts 还能继续用的多平台文件云同步软件
  • DoubanFM:豆瓣电台
  • Cdto:可以快速从 Finder 切换当前路径到 terminal 里
  • Evernote:笔记整理同步必备
  • Facetime:大家都知道,免费版, HD 是收费版
  • Firefox:就是一火狐
  • FIT:免费开源的 OSX 输入法
  • fraise:文本编辑器,个人比较喜欢,比 TextWrangler 好用
  • git:SCM 软件
  • brew:terminal 下的软件包管理器
  • Chrome:浏览网页的神器
  • Growl:消息半透明窗提醒,Ubuntu 都模仿
  • iOS Simulator Cropper:可以截 iOS 模拟器截图
  • iTerm:Cocoa 重写的 Terminal,支持 Linux 下快捷键切换 Tab
  • MesaSQLite:SQLite 数据库管理软件
  • MPlayerX:视频播放器
  • mysql workbench:Mysql 建模软件
  • OmniDiskSweeper:磁盘空间使用率情况
  • PHPStorm:Jetbrain 的新一神器,PHP IDE(收费)
  • PlistEditPro:plist 编辑器
  • PowerWord:金山词霸(最新版是 08 年,汗颜)
  • Reeder:Google Reader for OSX
  • Sequel pro:Mysql 数据库管理软件
  • SIMBL
  • Simple Comic:漫画软件
  • Skitch:处理截图的好工具
  • Sparrow:Gmail 客户端
  • TextWrangler:又一文本编辑器
  • The Unarchiver: 最智能且免费的解压缩软件
  • TotalFinder:Finder 增强型工具,强烈推荐(收费)
  • VirtualBox:开源虚拟机
  • Xcode 4:Apple 开发必备

    睡觉前的粗略整理,待续…

    2010年度总结

    2011年已至,又到了一年一度的年终终结的时候了。上个星期还和 @CNBorn 同学聊了年终总结的事情,今天在看翻 Google Reader 发现订阅的很多人都写了总结,虽然晚了几步,还得赶紧跟上。提炼过往的一年内所经历的事情,所感受到的一些事物…整体来说 2010 年对我来说是憧憬的一年。

    2008 年是起步并定制计划的一年,2009 年是 2008 年计划沉淀后发挥的一年,2010 年在事业,技术,思想得到了逐步提高,这次总结大致按照性质为工作,技术,生活等几类:

    工作

    2010年可谓是 Twitter 年,作为一名从 2007 年就开始使用的轻度用户到现在随时关注的中度用户。之所谓不能说重度用户,现在已经逐渐减少了 Twitter 的牢骚,慢慢的沉淀浮躁的心,做一些自认为有意义的事情。其中最大的也是让我最满意的一件就是通过 Twitter 让我成功的从 Java 转到了 PHP 开发,感谢  @lnsoso 给我这个机会。对个人来说,比较遗憾的是在转入 PHP 这一行业之前,曾尝试以移动互联网开发者的身份“杀入”豆瓣,后因逢遇高人 @flycondor 告知个人能力有待提高,未遂 >.<

    虽然没能进入豆瓣,但能转入互联网开发领域已经让人欣喜了,在新浪乐居的一年内,由于公司技术氛围很融洽,经常会在一起讨论一些技术,分享会。给个人有很好的成长空间和发挥能力。同时非常欣喜能遇上这么多好好的同事和领导 :)

    技术

    • PHP/Kohana
      1. 2009 年提到的 Douban API Package 以开源的形式正式发布到了 github 上面。
      2. alpaca 社区系统在整个一年之中虽然没太多的功能增加,但其代码在不断的重构(最近在读重构更加确定了重构的重要性)
      3. 学习了一个轻量级的模版引擎框架 twig-php,虽然也是今年开始熟悉 Smarty 的,但是我更喜欢 twig,语义清晰,解析速度迅速,其实框架的灵感来自于 Django 自身的模版系统,而且易于扩展开发。 详情请看作者在最初的介绍
      4. gears 项目一个类似于 ROR 下面 Redmine 的项目需求管理系统,由于 PHP 上面没也太好的系统,自己着手开发并熟悉下复杂逻辑的开发,项目尚在开发中,没有源码发布 :(
    • JAVA/Android
      在 2010 年的后半年因好奇和对 Google 开源的个人憧憬心态开始对 Android 开发做了一些研究,开始东拼西凑的做了一些小的应用,后被公司看中正式着手一个公司项目的 App,历时近 3 个月,边学习边琢磨边专注 Android 界面设计,在 12 月中旬终于可以缓一口气,并可以拍拍胸脯说这个软件可以在同等行业内软件的用户体验是可以最棒的!当然功能也不差的 :) 不过该项目还没有最后的完成,等待发布吧!
    • Objective-C/iOS
      接触 iOS 开发的时间在 Android 之后,正好在做完一两个 Android 应用的时候拥有的人生的第一台 MacBook Pro,破不急奈的安装了 Xcode 一展其 IDE 和 Interface Builder 的风采,体验完之后傻了,相对于 Android 的界面设计,我真想发泄一下摔些东西。同等的时间在 Android 下只能设计界面,而在 Xcode 里面设计界面只是几分钟的时候(参考 Apple HIG)其余的时间可尽情的编码。于是从头开始学 Objective-C 下一步尝试 iOS 开发。、

    另外很高兴成功 Beijng Open Party 活动的志愿者,希望在新的一年中可以努力为 OP 加油&奋斗!

    Continue reading