游戏开发

2015.05.29 - 游戏开发主题

Unity集成开发工具简介 - 李仙鹏

  • Unity IDE界面介绍
  • Unity IDE扩展介绍

run-zombie-run HTML5 游戏 - 曾铭

  • HTML5 网页游戏,僵尸围攻对战游戏。支持局域网两名玩家,一名用键盘已经用手机打开手柄网页体感控制。
  • 移动开发前端开发不分家,推荐阅读:
    • HTML5 设计原理 极其经典的一篇文章,从根本上理解 HTML5 来龙去脉。网上竟然找不到原始链接,神奇!
  • Open Source
  • 链接有干货 ;)

Cocos2d闲扯与手游推荐 - 潘君

Cocos2d
  • 最早版本为oc版本,为cocos2d-iphone,源码地址

  • 现在C++移植版本cocos2d-x为手游两大跨平台手游开发引擎之一(另外一个为Unity),下载地址

  • 现在cocos2d-x维护主要为中国团队,触动科技

  • cocos2d基于OpenGL ES,与苹果官方游戏开发引擎Sprite一致

其他参考资料:

小游戏推荐
  • Shadowmatic
    益智类3D游戏,通过对物体投射在墙上的影子拼凑构成生活中某一样事物。

  • FRAMED
    拼图类过关游戏,你必须自己观察游戏中的拼图,只有完成正确的拼图,主人公才能通过关卡中敌人的拦截。

游戏的起源与发展 - 张超耀

  • 游戏的故事:揭秘电子游戏诞生史
    • 穿越时空,拯救世界,成为英雄……这些飘渺无际的虚幻想法,在这个时代,终于可以在“电子游戏”的世界中得以实现。而当我们在享受这个人类智慧结晶给我们带来的奇妙体验之时,有没有想过,是谁创造了如此这种娱乐方式?电子游戏又是如何发展蜕变的?
  • 游戏的故事:从“硅与神经键”到动视暴雪
    • 暴雪出品,必属精品。这句流传在玩家中的8个字,是人们对暴雪这家游戏公司的肯定和赞美。暴雪为何能成为全球谈论最多的游戏公司之一?它又是否实至名归?游久网游戏的故事带你揭秘——从“硅与神经键”到动视暴雪。

游戏(APP)开发学习网站小游戏分享 - 杨志平

包含最新的iOS技术、最新语言等教程

随便提一下程序员学习利器 Codecademy 免费, 起码做的比MOOC好

小游戏分享
  • Flappy Bird - 已下架
  • Mr Jump - 推荐
  • fight! - 愤怒的小鸟新品,存在不足

2015 Google I/O 大会 - 王胜

北京时间5月29日00:30,谷歌在美国旧金山召开了一年一度的开发者大会,发布了Android M等新品。

  • Android M 预览版
    Android M此次没有大规模新的API发布,而是回到质量上,改善用户体验。具体变动如下:
    • 应用程序权限控制
      应用程序在使用功能时才会询问用户是否通过权限,包括位置、相机、联系人、短信、麦克风或日历等。
    • Chrome 浏览器改善
      用户可根据需求对Chrome进行改善,用户可将自动填充密码保存在手机中。
    • APP关联
      例如:用户手机邮箱收到内容中有Twitter链接的邮件,点击该链接可直接跳到Twitter应用。
    • 安卓支付
      Android是个开放平台,用户可以选择各种支付方式。Android Pay支持4.4以后系统的设备。
    • 指纹支持
      令手机厂商兴奋的是,谷歌官方开始i支持指纹识别功能,还可以保证支付安全。
    • 电量管理
      电池管理更加智能,可以分辨出睡眠还是活动,如果长时间不移动时,可以自动关闭一些APP。
  • 其他产品线
    • 物联网操作系统 Brillo【能够在32MB或者64MB内存的设备上运行】
    • Google Now 更加智能【能够识别上下文、音乐搜索等】
    • 离线地图服务
    • 新产品:Google Photos
    • 虚拟现实【纸板VR眼镜Cardboard,支持Android和iOS双系统】
    • JUMP 虚拟现实相机
    • Android Studio 1.3版发布
    • 发布Polymer网页应用开发包V1.0版

《无主题》

2015.05.22

友盟自定义事件统计 - 王胜

  • 应用上线后发现注册转换率很低,如何办?
  • 注册流程繁琐?那么具体哪一步流失量最大?
  • 友盟提供了自定义事件埋点功能,需要在对应的点击事件发生时,调用onEvent方法进行埋点。
  • 友盟同时提供了事件转换率,可以创建漏斗,每个漏斗是一个操作路径,由一系列自定义事件组成,这样可以观察每一步具体的点击量,从而有了事件的转换率。

Android像素转换与Bitmap Config - 李仙鹏

  • 屏幕显示单位

    • 屏幕的px与dp转换公式:px = dp * (dpi / 160)
    • (dp:Density-independent pixel,独立密度像素;dpi:dots per inch)

    6种常见dpi:

    • ldpi (low) ~120dpi
      • mdpi (medium) ~160dpi
      • hdpi (high) ~240dpi
      • xhdpi (extra-high) ~320dpi
      • xxhdpi (extra-extra-high) ~480dpi
      • xxxhdpi (extra-extra-extra-high) ~640dpi
  • Bitmap Config

    • 四种配置:ALPHA_8,RGB_565,ARGB_4444,ARGB_8888。其配置信息后面的数字相加表示图片在被编码为Bitmap后,原来图片的一个像素点所占的内存空间大小。以ARGB_8888为例,其一个像素点所占的内存空间为32个byte。
    • Bitmap Config配置越高,图片显示越清晰,ARGB_8888为目前android的图片多默认编码方式

说说 LeanCloud - 曾铭

  • 数据存储
  • 公司历史
    • 陈士骏
    • Youtube -> Delicious -> AVOS -> mixbit.com -> AVOSCloud -> LeanCloud
    • 开放资源
    • Bigger 很重要

Android Studio分享 - 吴明

  • android studio是google的亲儿子,肯定以后是必然形势。
  • android studio总体运行速度比Eclipse快。
  • android studio和Eclipse对比:

    • 比Eclipse漂亮

      - android studio可以设置开发代码的背景,而Eclipse只能用那一直到死用的开发背景,有时候想换换背景换换心情都不行。Android Stuido自带的Darcula主题的炫酷黑界面都还可以。想换别的主题也可以自己下载导入的。
      
      • 比Eclipse速度快

        • android studio的启动速度,响应速度,内存占用等等全面领先与Eclipse。
      • 提示,补全更加智能,更加人性化。

        • 自动提示补全(有点开发ios的味道),现在android studio可以把快捷键设置为Eclipse的快捷方式
      • 整合了Gradle构建工具

        • gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。gradle能够完成构建、测试、发布和其他诸如软件打包、生成注释文档等等功能
      • 支持Google Cloud Platform

        • Android Studio支持本地的Google Cloud Platform(谷歌的云平台),就是说你可以运行服务器端的代码。
      • 强大的UI编辑器

        • Android Studio的编辑器非常的智能。比如新建一个控件,控件的width和height属性会自动的补全,不用每次都要手动的打上两行 android:layout_width和android:layout_height。还有定义颜色后会自动把颜色显示在旁边(这个对我超级好用)。等等还有其他很多小细节做的都非常不错,大大提高了编辑UI的效率。
      • 更完善的插件系统

        • Android Studio中可以像Apple store那样浏览所有的插件,直接搜索,下载和管理它.
      • 完美的整合版本控制软件

        • 安装的时候就自带了如GitHub, CVN等等流行的版本控制工具
      • Android Studio是Google推出的

        • Android Stuido是Google推出,专门为ANDROID“量身订做”的,Google的亲儿子。作为Android Developer大腿一定要抱紧。

平时闲暇时间喜欢看的微信公众号分享 - 张超耀

  • CocoaChina

    • 微信号:cocoachinabbs
    • 功能介绍:CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包以及培训信息、各类沙龙交流活动以及更多开发者服务。
  • iOS开发,唐巧

    • 微信号:iosDevTips
    • 功能介绍:唐巧,Info编辑,《iOS开发进阶》作者,现在在猿题库创业。开发过有道云笔记和猿题库的iOS客户端。该账号主要分享唐巧的博客文章以及他整理的一些iOS开发技巧。
  • 悟空的心灵花园

    • 微信号:wukong_000
    • 功能介绍:发现源自内心的喜悦!祝福你早日开启探索心灵和生命的旅程。
  • 36氪

    • 微信号:wow36kr
    • 功能介绍:36氪(36Kr.com)是中国领先的科技新媒体,报道最新的互联网科技新闻以及最有潜力的互联网创业企业。

iOS 物理引擎的简单运用 - 杨志平

iOS端的Demo
UIKitDynamics 作用及用法
UIDynamicAnimator 引擎载体
UIGravityBehavior 重力行为
UICollisionBehavior 碰撞行为
UIAttachmentBehavior 链接行为(弹簧效果)
UISnapBehavior 吸附行为
UIPushBehavior 受力行为

《无主题》

2015.05.15

Android emoji表情分享 - 吴明

  • 什么是emoji表情?

    • 一套起源于日本的12x12像素表情符号,由栗田穣崇(Shigetaka Kurit)创作,最早在日本网络及手机用户中流行.
  • emoji表情手机的支持?

    • IOS

      • iOS 4以及之前版本, 采用Softbank编码.
      • iOS 5以及之后的版本,或者OSX Lion之后的系统, 则改为使用了Unicode6.0编码
    • Android

      • 在android4.4开始支持emoji表情,Unicode编码,如sougou,谷歌等输入法都支持emoji表情。
  • emoji展示过程

    • 显示emoji表情——选中emoji表情——unicod编码字符串——ios或者android对unicode编码字符串处理——-如果是emoji表情编码—-则从系统中显示相应的emoji表情图片。
  • emoji表情的存储

    • iPhone:统一用unicode6.0编码保存

    • android或wp其他手机: 如果没有emoji表情库,将无法输入。针对输入问题,将统一采用unicode6.0编码存储,UBB代码.

    • 数据库存储:存数据以UTF-8编码用3个字节去存储的,而emoji表情要用4个字节的utf8,也就是utf8mb4格式.

      • 数据库编码转为utf8mb4,
        • emoji表情转为支持的utf-8,如转为UBB代码([emoji]2600[/emoji]),HTML转义字符(&#x2600)
  • emoji表情不支持处理

iOS 创建静态库 — 顾鹏凌

iOS国际化语言&CodeRunner — 张超耀

  • iOS国际化语言
    • iOS国际化语言是适配系统语言展示同一语义的不同语言。
    • 在工作目录结构文件下,单击InfoPlist.strings,在Localization栏添加语言。
    • 添加"Key"="value"; 然后使用时用NSLocalizedString(@"key", @""); 读取内容.Localization.strings English文件添加"key" = "english value";Localization.strings English文件添加 "key" = "中文内容";
    • 保持需要国际化的语言对应同一key值:比如English的添加CFBundleDisplayName="China";Chinese文件添加CFBundleDisplayName="中国".
    • 使用:NSString * str = NSLocalizedString(@"CFBundleDisplayName",nil];
  • CodeRunner
    • CodeRunner是Mac下一款可编辑多种主流编程语言,并且一键运行检测结果;带有缩进、自动补完、语法高亮和智能括号匹配等特性的APP。
    • Description
      • 官方描述:CodeRunner is the easiest way to write code on your Mac. You can run code in almost any language instantly, and you’ll be surprised by the powerful set of features in such a lightweight and easy-to-use editor.
      • iTunesStore:Edit and run code in any programming language with just a single click. With CodeRunner, It has never been easier to write and test code, run scripts, work with algorithms, or simply experiment with a new coding or scripting language.

《无主题》

2015.05.08

构建基于Jenkins+github的持续集成环境 - 张超耀

  • 什么是持续集成

  • 持续集成的流程

    • CI服务器控制持续集成的整个过程,轮询代码库更新,根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端
  • 为什么采用Jenkins+github的持续集成环境

    • Jenins是现在非常流行的持续集成CI服务器,Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了Email的通知机制,具有丰富的插件。
    • 对于版本控制,SVN & Git,Jenkins都有提供插件支持
  • Jenkins安装

  • 丰富插件安装
  • 环境配置
  • 构建项目
  • 配置构建方法

Axure工具分享 - 吴明

  • Axure是什么?
    • Axure界面原型设计工具,无须懂得控制人机交互的事件处理,设计好后可以导出html格式跨平台开发使用。
  • 原型工具对比:

    • 使用网页制作软件创建:可以直接操作HTML文件,更接近真实。缺点,你需要掌握HTML语法,掌握复杂的网页制作工具。操作复杂性高。
    • visio,可以快速的创建单个页面,也可以用创建,缺点:最多只能做到页面直接的关联,按钮,链接上无法创建事件,死板。无法作出接近真实的效果,无法生成HTML文件。
    • Axure,Axure可以以所见即所得的方式创建界面原型,优点:操作者无须懂的HTML语法,无须懂得控制人机交互的事件处理,例如页面跳转时、命令按钮按下时系统响应 程序脚本(JAVA Script)。因此很适合业务需求分析人员使用。生成的页面,串接在一起,可以进行操作,模拟场景,让系统“动”起来。
  • 怎么下载安装Axure

    • 网上下载axure RP7.0安装(如果有需要的的话下中文包)
  • Axure的使用:

ARC Welder -王胜

  • ARC Welder是一个Chrome插件,可以直接运行原生的安卓APP应用程序
  • 该插件需要Chrome的版本在40.x以上
  • 目前还处于不断完善阶段,所以一些特大游戏类型的App可能跑不起来

前端开发上手工具介绍 - 曾铭

  • 静态网页开发
  • SublimeText
  • powder
    • pow 37signals 出品,质量保证!
    • 零配置构建网站服务器,管理极轻量,支持局域网访问
    • powder link web-name 一条命令搞定
    • 适合静态网页开发,(或 ruby 动态网页开发)
  • Demo

《无主题》

2015.04.24

项目开发前期注意细节探讨 - 张超耀

  • 需求明朗
    • 最好有明确的需求说明文档
    • 能够及时和设计、PM沟通反馈,有效跟进需求变更
    • 工程师前期做好想法融合,先把需求想法抛出,不要等到研发过程中
  • 设计明确
    • 在研发过程中,功能和设计达到高度统一,不要做功能的时候忽略UI设计(前期UI设计模块尽量不要留下太多后期需要填补的坑)
  • 代码质量
    • 注释:在代码中一些自己写的方法尽量注释(功能、参数,使用)
    • code review(代码review很重要)
    • 复用
  • 团队协作
    • 沟通
    • 前期规划
    • 后期测试

分享 - 吴明

  • 快递100
    • 方便查询附近快递员电话
    • 扫描快递单号跟踪快递信息
  • Axure RP原型设计
    • Axure RP是一个专业的快速原型设计工具
    • Axure RP生成的原型文件是网页版,跨平台支持
    • Axure RP工具操作。

『世界那么大,我想去看看』之网络 - 曾铭

《无主题》

2015.04.17

优秀APP分享 - 张超耀

  • same
    • same追求和而不同,是由9种频道模式,177860个频道组成的,玩法多样,富有创造力的社区。
    • 在same,你可以建立一个个专属于你的音乐频道来表达自我情感。
    • same电影,体味人生:在same里看预告,写影评,记录你每一次的观影体验。
    • same同时可以虚拟打卡,跟踪自己的生活轨迹。
    • 可以用图文来记录自己的生活点滴
    • 如果你有一些纠结的难题,或你对一些事有疑惑,或者你干脆是个天秤座……都可以来投票频道,看看大家的想法。

App 上线后如何收集分析错误日志 - 王胜

  • 需求:App上线后,如何收集用户使用过程中产生的异常日志?
  • 自己开发?
    • 需要投入人力和时间,前端和后台都需要开发,而且可能是一个不断优化的过程
  • 使用专业的第三方工具
    • 不需要投入额外人力,就可以快速集成专业日志收集功能
    • 友盟
      需要注意事项:
      • Android 每次混淆编译后需要保存mapping.txt文件,用来还原原始的异常堆栈。
      • iOS 查看异常信息,点击出错内存地址的编码的那个链接,有执行命令,可通过在发版的电脑上执行获取原始的异常堆栈
    • 其他第三方工具

iOS-UINavigationBar-backBarButtonItem 的一种定制方式 - 曾铭

  • 需求:UINavigationBar 返回按钮使用自定义图标
  • 图标用 setBackIndicatorImage: + setBackIndicatorTransitionMaskImage: 搞定
  • 问题1: 如何去掉文字?
    • 修改文字定位偏移量?setBackButtonTitlePositionAdjustment
  • 问题2: title 不居中?
    • 在 BaseViewController 中 set backButtonItem
  • 问题3: better? -> library?
    • UIViewController Category.
  • 参考链接

android多国语言适配 - 吴明

  • android语言信息都是读取strings.xml(项目/res/values/strings.xml)文件指定key的索引值。

  • android语言适配需要在-项目/res下新建不同的语言目录(文件命名规范:values-zh(国家)-rTW(r+区域))如:

    默认:项目/res/values
    中国台湾:项目/res/values-zh-rTW
    中国简体:项目/resvalues-zh-rCN
    
  • 用户启动APP默认读取跟android系统一样的语言文件,如没有配置各国语言则默认读取系统默认语言文件(项目/res/vlues/strings.xml)

  • 正在使用app怎么切换语言?


    1. sharePreferences存入设置语言:


    2. Sharences sharedPreferences = getActivity().getSharedPrefeivity().getPackageName(), 0);
      sharedPreferences.edit().putString(“language”, lanAtr).commit();

    3. 语言更新后,对于之前出现且目前仍旧存活的activity,语言设置是不生效的。可以通过重启对应的activity,让语言及时生效。


    4. private void restart() {
      Intent it = new Intent(getActivity(), MainActivity.class); //MainActivity是你想要重启的activity
      it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      getActivity().startActivity(it);
      }

《无主题》

2015.04.10

Redmine - 王胜

  • Redmine是免费开源的基于ROR的项目管理工具
  • UI及交互实属开源软件中难得之作
  • Issue支持多种跟踪标签【如bug、功能、UI】,每种跟踪标签可单独设置工作流
  • 支持日历、甘特图等可视化进度管理
  • 支持WIKI语法,方便协作编辑文档
  • 可以集成SCM工具【如Git、Subversion、Mercurial等等】,可直接浏览源码进行Code Review
  • 丰富的插件支持

APP分享 - 吴明

  • 生日管家
    • 工具类APP
    • 公历农历记录用生日
    • 生日提醒
    • 生日,每天运势
    • 节日礼物推荐及购物
    • 节日祝福语,节日贺卡
    • 会员交流:同生缘

iOS push 调试方法 - 曾铭

  • Bundle ID: appid & profile(cer(privatekey)+appid)
  • Update profile to latest
  • Build to iPhone: adhoc_profile, has certificate
  • Get push token (建议用 copy 的方法)
    • Enable notification in Setting
  • Export .p12 from Keychain Access : has private key
  • .p12 to .pem
  • iOS 命令行调试工具 houston Apn CLI push to token: if production, add production param
  • 👌!
  • Server apn debug (注意 production 参数)
  • 注意:
    • 调试环境最小化(用 apn cli 代替 服务器 push)
    • 关注 关键点( profile中的私钥,pushtoken 有没有拿到)做追溯

storyboard中push变成present的情况讨论 - 张超耀

  • 在同一storyboard中有三个界面跳转用到push,其中一个效果变成present,而且这种情况只是在iOS7下才出现的,在iOS8下是正常的。目前觉得出现这种情况的可能性主要是由于当前界面的跳转实现是代码控制,其他两个正常界面的跳转是storyboard控制的,但是这种影响有点儿没有说服力。不过这个可能性需要进一步测试(下周报告…)!

《无主题》

2015.04.03

style样式在Android中的体现 - 王胜

  • Web开发中,HTML承担了组建的角色,CSS承担了润色的角色,极大提高了Web开发样式和组建的解耦性
  • Android设计之初,借鉴了Web开发的思想,布局中引入了style样式
  • res/values/styles.xml中可以定义组建的样式,然后再布局文件xxxx_layout.xml中可以直接引用。这样样式调整时,只需修改style样式即可。

基于 Github 的 单代码库(非 fork) 开发流程 - 曾铭

  • issues + tag 管理需求+bugs
  • 非 fork 的 Create Pull Requests 方式
  • 在 Pull Requests 中进行 Code Review
  • Commit 内容如何与 issues, pulls 关联

storyboard中cell宽度问题 - 张超耀

  • 在Xcode6,iOS8之后,storyboard中,若在width(any)和height(any)情况下自动布局中tableview的cell初始的宽度是600,只有在tableview实例化cell的时候才会自动计算出cell的宽度。在这种情况下,若事先需要cell的宽度(例如,需要根据内容来判断cell高度等),需要结合-(void)viewWillLayoutSubviews来做相应的处理。

《无主题》

2015.03.27

APP分享 - 张超耀

  • 网易云音乐

    • 播放界面的毛玻璃效果值得借鉴。
    • 网易云音乐是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。
  • 一问

    • 「一问」会坚持每天介绍一家创业公司,包括该创业公司的一开始的想法和思路,想创业的童靴可以参考下。
  • forest

    • 「Forest」是一个帮助您专心于生活中每个重要时刻的APP。
    • Forest能帮助您远离智慧型手机的诱惑。每当您想要专注时,种下种籽吧!在接下来的30分钟内,它将成长成为一棵大树。
  • 500px

    • 「500px」是一个致力于来自世界各地的摄影师的摄影分享、发现、售卖的专业平台。
    • APP的loading不错,小创意值得学习。
  • any.do

    • 无论从UI设计、易用性、实用性来讲,Any.Do 都在上流水准!Any.Do凭借简洁大方的界面设计和便捷直观的操作收获了大量用户,并通过云技术将日程安排等数据自动同步,帮助用户随时随地更系统更方便地管理自己的日程安排,让它来管理的你的日常生活再好不过了。

App 分享 - 王胜

  • 金山词霸
    • 本地、在线翻译功能
    • 每日一句很有文艺范
    • 最大亮点拍照翻译功能,支持自动取词、点击取词、长句拍译。以后再看到不会输入的日韩文字,一拍照,轻松搞定
  • 手机百度
    • 搜索功能
    • 最大亮点拍照搜索,以后参观植物园、动物园再也不用担心不知道这个是什么花,那个是什么动物了

App 分享 - 郁兵生

App 分享 - 曾铭

  • Slack
    • 坐上火箭的公司36Kr
    • 交流:(人员:channels、信息流 integration)
    • 重视用户反馈
  • Tweetbot
    • 无数神细节
    • 发布@#以及草稿
    • 一个@的产品设计
  • GBA4iOS
    • 一个模拟器该有的样子
    • 开源
  • 世界迷雾
    • 一个应用(游戏)的世界观
    • 使用一生的应用
  • Seven
    • 7分钟,坚持七个月 5%%
    • 成就+❤,进度+回顾
    • 收费

App 分享 - 顾鹏凌

《无主题》

2015.03.20

storyboard使用的总结和心得 - 张超耀

  • storyboard以直观的界面流程图展现软件的业务流程,使开发和维护思路更加清晰,一目了然。
  • UI控件在storyboard中添加约束条件后,可在代码中对其约束条件的constant属性进行修改
  • UI控件的一些特殊属性(例如cornerRadius、offset等)在storyboard中可自实现(Key Path - Type - Value)
  • 结合代码实现navigation Bar的现实与隐藏
  • Storyboard提供的 Static cell特性只适合于UITableViewController的子类。我很多时候的用法是一个TableView嵌套在另一个UIView中,static cell就不能用了。

JSON2Model 转换技术分享 - 曾铭

  • NSDictionary 转换至对应对象所面临的问题:代码繁复、安全难以保证(导致 crash);
  • YIModel 通过 runtime 如何设计解决这些问题,并支持 NSCodingNSCopy
  • 更好的实现:JSONModel