
正文
flutter建设游戏,flutter游戏框架
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
《知行》技术人的管理之路(三)管理规划
《知行》感悟系列文章历史浏览:
《知行》技术人的管理之路(一)管理的基本框架
《知行》技术人的管理之路(二)角色认知
在互联网行业中当角色转变为管理岗位或者是某个团队的负责人的时候,就不能事事等着上级来安排,要学会自己规划事情。
这在里所说的管理规划就不仅仅是指工作上的规划,而是上升到整个团队;从核心内容来看,管理规划要求管理者回答清楚这样一个问题: “这个团队你打算怎么带?”
怎么回答这个问题呢?我们要根据管理规划四要素以做回答。
本文围绕管理的四要素,以及移动端负责人的身份来进行展开讨论..
团队所谓的“职能”就是回答“团队是干什么的”这个问题。
如果你想回答好这个问题不妨先思考以下下面3个问题
我的回答:
思考的问题回答完了,那么我的团队职能是什么呢?也就是我的团队是干什么的呢?
开发并设计一款高质量的使用在移动端的应用程序,以提高居民的生活的便利,并且可以为公司提供良好的品牌效应。
当所有的团队成员清楚了团队职能才能产生如下的效果:
1.提升团队凝聚力
2.有效激励员工
3.提升员工的主动性
为什么这里说是团队的职能而不是说职责,因为团队的职能包含了两个层次:
职责和使命。职责是团队职能的下限,使命是团队职能的上限。
简单描述就是基本职责解决的是团队的“生存问题”,而使命解决的是“团队实现”问题。类似就像个人的自我价值实现一样,具体就不展开说了。
既然团队职能的2个层次都说明了,那么我们就要做点什么了,那就是为团队设定基本职责,也需要为团队确定使命。
第一步:收集信息
从如下的四个角度梳理收集职能信息
第二步:提炼和升华
第三步:确认和主张
团队的职能的设定和宣贯是一个长期任务,不是一蹴而就的。越早做越好,逐渐的形成潜移默化的概念。
职能的界定明确来团队的价值,那么目标就是回答了“通过什么来体现团队价值”。也就是取得什么成果来体现其价值,以自身为例
本节主要是通过意义、原则、维度、形式、挑战来展开对目标的讨论。
1.目标首先意味着期待
2.目标意味着资源的有效配置
3.目标意味着执行力
4.目标意味着凝聚力
5.目标意味着激励
确定下清晰合理的目标不仅可以“做事”,甚至还可以“带人”,是一举两得的事情。在目标确定之后要想一想,是否和团队成员都同步了目标,以及对这个目标是否有疑惑等等。
目标的设定我们遵守SMART原则即:
1.明确性(Specific)
2.可衡量性(Measurable)
3.可达性(Attainable)
4.相关性(Relevant)
5.时限性(Time-bound)
我们首先看一个没有设定原则的目标:
我们的目标是优化App的体积。
在看一个通过设定原则优化过的目标:
从本周一到下周一,将App的体积大小减少20%。
判断一个目标是否足够清晰,只有当SMART都符合的时候才能说明目标是清晰的,而且设定的目标时尽可能少而细。通过SMART原则检查清单可以检测当前目标是否足够清晰
SMART原则检查清单:
目标维度从3个维度考虑:1.业务目标。 2.团建目标(梯队、规模)。 3.专业目标
简单说书这3个维度,这三个维度简单点说就是业绩产出,团队发展和专业能力。
业绩是要对公司以及上级或者是老板负责的,这个目标是一定要设定的;而团建目标的设定体现了管理规划的完整性,也就是说为什么目标和带人是不可分的;专业目标的设定可以提升团队的专业性,也有利于提高个人的专业能力。
从个人成长角度来说,业务的目标设定到完成的过程中,可以在时间充裕时设定自己的专业目标,通过专业目标的达成最好是能提高业绩的产出;这种不仅提高了个人的能力,还完成了公司的任务。
1.可以量化的指标 KPI
2.不可量化的目标 KRA或OKR
简单的通过KPI常见句式为:到某时间点,什么指标达到什么数字
例:“到九月底,把单机性能从300qps提升到500qps”
KRA或者OKR常见句式为:到某时间点,完成什么工作,该工作实现了哪些功能活达到了那些效果
例:“到12月地,发布BI系统1.0,支持KPI数据统计、全量数据到吃分析功能”
这部分的内容先不展开说了,有必要的时候单独写一篇文章来分析 KPI、KRA、OKR。
作者的总结就是,OKR适用于开放性强、追求创造性的组织;KPI适用于规则成熟、追求执行性的组织。
通常在目标设定遇到困难的时候,可以通过以下四类问题换个角度找到答案。
这类问题往往的情况就是,接到了一个需求任务,给你的第一反应就是这个项目够呛能做完,压力很大,完成的程度也不确定。
面对这类问题和挑战的钥匙叫做“以终为始的出发点”; 通过最终你想要什么来对你的团队进行调配或者是补充资源。
遇见这类性通常都是接到的任务太庞统,太大,比如说今年年底上线一个APP。。主要强调了“我做了什么”,没有交代做完这些工作后“收到了什么效果”
面对这类问题和挑战的钥匙叫做“结果导向的描述”。根据这个任务的需求,来对该任务进行拆分,上线的APP都具有什么功能。比如上限一个APP具有登记开门的功能。
解决办法就是向下传达了,方式有很多,可能就是微信QQ的简单一句话。如果功能业务比较复杂,可以开一个简短的业务分析会。
例如最近的时候做了一个移动端产品的一个业务规划(业务稍微有点复杂),在规划的过程中也确定了当时所能想到的方案和解决办法。方案出来了就是具体的任务落地,将方案转变成实际的工作下发出去。这时候如果不向下传递,那么可能会导致开发者不知道你的需求和业务,开发完的东西不一定满足要求,并且反复修改还会出现抱怨。 借鉴了以往的经验,这次选择了直接和该模块的后台开发负责人进行了过会讨论,在讨论问题和向下传递的过程中,还总结出了一些之前方案中不足的地方,并且愉快的进行了消息同步,效果感觉特别好。
由于公司的战略转变或者是其他的原因,往往大的目标会经常出现改变,而导致了之前我们设立的目标出现了变形,或者是根本不能执行了
面对这类问题和挑战的钥匙叫做 “设定专业目标” 。用专业目标来增强团队的内在定力,而不是被外在的需求将团队作为了救火队员。所谓的那些需求战略的改变往往都是大的战略方向的改变,但是团队内部的核心业务往往也存在于各个项目中。
这一点从自己团队的角度来说,团队内有很长的一段时候都属于那种救火队员,遇到了紧急需求而全力应对,导致看上去没有属于自己的核心业务。这时候需要找到一条出路来做一定的改变。比如重构以往的工程,后台使用微服务的架构,这就属于内在目标;而通过微服务每个团队成员都各负责一个模块,每个人都对自己的模块负责;
对自己来说,设定一个专业目标就是flutter的学习以及产品思维的锻炼,无论工作内容如何改,这两点贯穿到最后,个人的能力都会得到锻炼。
本节主要是从3个团队规划角度分析团队问题,团队建设问题会从后续的章节展开讨论。
刚刚我们说明了团队的目标设定的要点,现在说明的是团建的目标如何设定。团建目标就是团队未来会发展成什么样?
衡量方式如下:
通过上述的3中衡量方式只要盘点清楚现在实际的规模、分工、梯队和未来的规模、分工、梯队,就能把握住未来团建工作的重心了。
从资源视角看待团队,是一个成熟管理者的标志之一。
管理者做人力预算的时候要给出十分充足的理由,为什么需要这些人,为什么会是这么多人,以及依据和估算逻辑是什么。
那么要如何做这个预算呢,首先是自己对业务的理解,以及希望达成的目标角度来看;其次是参照行业资源配比情况,例如产品、设计、开发、测试、运维几个方面。
这个视角的核心含义是,到下一个时间节点,你需要重点培养出哪些人,给他们什么样的平台和空间,以及你有能力提供给他们什么指导和支持,期待他们能够胜任什么职能和角色。
新人的引进我们要了解一个概念“团队消化能力”。就是说团队现在的梯队情况和新人导师的经理问题,一个团队能够良性吸纳的新人是有限的,我们把这个限度称为“团队消化能力”。
怎么估算团队消化能力呢?首先看看团队内谁能带人,分别带几个比较合理。这里的合理就是新人导师既能带人又能兼顾对业务的投入;其次看看团队的新人培养机制是否成熟健全。
带着团队前往目标有那些可选的路径是需要管理者进行筹划的。筹划的工作主要回答了2个问题
第一个问题可以判断出我们达成目标手段是否合理,第二个问题可以判断我们申请的资源是否合理。
综上,我们通过下面的三个方面考虑路径和资源的问题
完成团队的目标需要考虑所带的团队都有那些资源;在这里资源包括时间、信息、权限。时间就是你的目标完成时间,信息就是为了完成这个目标需要自己主动的在公司内外主动收集一些相关的信息,权限就是公司在然你完成这个任务你有多大的权限协调资源等。
站在管理者的视角,需要评估一段时间内的产出效率,而不是追求工作的极致品质了。衡量一项工作“到底需要话5天完成70分,还是花10天做到90分”,这个是管理者的日常工作。通过全局来看,由于时间原因90分不一定有70分好。注意这里优秀的工程师应该放弃一些执念,转换视角,完成工作有很多手段供选择。
对于不同的方案意味着多高的成本,如下的表哥可以帮助新经理扩展思路,看到解决问题手段的多样性,避免思路过于单一。(填写大中小或者打分)
手段-成本盘点表
成熟而职业的技术管理者在倚重技术和迷信技术中间会找到一个平衡,提供一个既能解决问题、成本又合理、兼顾长短期的可行方案,而不是一个只顾眼前的“应急”对策。不是所有的人力短缺都是通过招聘来决绝的,需要综合前面的手段多样性综合来考虑。
我们在评估一个项目的结果的时候,有三个衡量维度是最重要的。
在这3个维度上是有弹性的,可以在一定的范围内灵活把握,这3个维度称为“结果评估三要素”。
在这里值得注意两点
这样我们可以总结出一个原则:对于任何一项工作,评估其结果的关键指标到底是进度、质量还是效果,决定着我们以什么方式投入什么类型的资源,就是说只有我们清楚了最关注的指标,才能让资源的投入得到最大化的发挥。
管理规划从4个方面展开职能、目标、团队、路径。
设定目标的时候,要基于当前的团队的现实情况和可用资源;盘点团队的时候,脱不开目标的设定和路径的选择;探讨路径以及做预算资源的时候,离不开目标和团队。
所以虽然把几个点展开讨论,但是几个要素之间并不独立和割裂的而是以职能为基础,彼此依赖,需要把四个要素统筹来梳理明白,才是一份完整的管理规划。
相关问答
Q1: Flutter上线项目实战——Vap视频动画
透明视频动画是目前比较流行的实现动画的一种, 大厂也相继开源自己的框架,最终我们选中 腾讯vap ,它支持了Android、IOS、Web,为我们封装flutter_vap提供了天然的便利,并且它提供了将帧图片生成带alpha通道视频的工具,这简直太赞了。
VAP(Video Animation Player)是企鹅电竞开发,用于播放酷炫动画的实现方案。
video for youtube
video for qiniu
apk download
github
Q2: Flutter iOS 苹果IAP(内购)实现步骤及问题总结(全网最全)
点击 “协议、税务和银行业务”
内购用的是付费应用程序,先签署《付费应用程序协议》,同意后状态变更为“用户信息待处理”,等待审核。
状态更改完毕后,点击“开始设置税务、银行业务和联系信息”。
(1)添加银行账户,按照要求填写相关内容即可。
(2)选择报税表,并填写。所有与 Apple 有商业合作者必选都是美国,若有其他需求,可以多选。
继续填写,首先认证公司基本信息,选择所有人类型,确认无误后认证条款处打对勾
Part I 部分,继续核对公司相关信息,选填内容可不填。
Part III 部分,签署税务条约,设置利益限制条款的种类,选填内容可不填。此部分如果需要可勾选上下图勾选框,不需要可不勾选,我们这个项目没有用到part III 部分,所以没有勾选。
Part XXX 部分,确认之前填写的信息,勾选完毕后,提交
(3)填写联系信息,共5个。高级管理、财务、技术、法务、营销。只需要提供5个人的基本信息即可。
只可使用一次的产品,使用之后即失效,必须再次购买。
示例: 钓鱼 App 中的鱼食。
只需购买一次,不会过期或随着使用而减少的产品。
示例: 游戏 App 的赛道。
允许用户在固定时间段内购买动态内容的产品。除非用户选择取消,否则此类订阅会自动续期。
示例: 每月订阅提供流媒体服务的 App。
允许用户购买有时限性服务的产品。此 App 内购买项目的内容可以是静态的。此类订阅不会自动续期。
示例: 为期一年的已归档文章目录订阅。
App 内购买项目的截屏,即所售项目的示意图。例如,如果 App 内购买项目是一本图书,您可以提交图书的截屏。您也可以提交购买页的截屏。该截屏仅用于 Apple 审核,不会在 App Store 中显示。
截屏要求如下:
iOS 至少需要 640 x 920 像素
Apple tvOS 需要 1920 x 1080 像素
macOS 需要 1280 x 800 像素
App 审核图像上传后,可以替换,但无法移除。当您的 App 内购买项目处于审核中时,您无法更新截屏。
沙箱账号是不能直接在App Store进行登录的,只能在点击了购买商品之后,在弹出的登录框进行登录 。
验证是否已登录沙箱测试账号:
设置--iTunes Store与App Store,页面拉到最底部,会看到沙箱账户项会列出你已登录的沙箱测试账号!
操作方法一:打开App Store应用首页滑到最下方--选中AppleID--注销
操作方法二:设置--iTunes Store与App Store--选中AppleID--注销
checks if the client can make payments(检测App是否能支付)
getAvailablePurchases
Get all non-consumed purchases 获取未消费的商品
打印信息查询;
原因:
没有先执行getProducts,直接执行requestPurchase方法,要先拉取商品列表,再执行购买操作.
问题描述;
1.漏单必须要处理,玩家花RMB购买的东西却丢失了,是绝对不能容忍的。所谓的漏单就是玩家已经正常付费,却没有拿到该拿的道具。
解决:只要购买成功,便将购买记录(receipt等账单信息)保存下来,然后将账单信息传送给我们游戏服务器,游戏服务器获得账单后,和苹果服务器验证,账单有效的话,回馈给游戏服务器处理,游戏服务器处理后,返回给游戏客户端处理,处理完毕,将本地保存的购买记录删除。
官方文档:向苹果校验支付凭证
21000 App Store无法读取你提供的JSON数据
21002 收据数据不符合格式
21003 收据无法被验证
21004 你提供的共享密钥和账户的共享密钥不一致
21005 收据服务器当前不可用
21006 收据是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中
21007 收据信息是测试用(sandbox),但却被发送到产品环境中验证 【请求sandbox校验支付凭证】
21008 收据信息是产品环境中使用,但却被发送到测试环境中验证
消耗类型: 例如:金币、道具等。
非续订订阅: non-renewable subscription 例如:VIP
您的首个 App 内购买项目必须以新的 App 版本提交。请创建您的 App 内购买项目,然后前往 App 的“App Store”页,从“App 内购买项目”中进行选择,点按“提交”。 了解更多
在上传二进制文件并提交首个 App 内购买项目以供审核后,您可以使用下表提交其他 App 内购买项目。
唐巧-iOS应用内付费(IAP)开发步骤列表
未完~待续
当使用内购购买过商品之后没有把这个交易关闭,所以再次去购买商品后就会调用以前已经购买成功的交易去购买因为已经购买过,才会有这个提示
原因:添加内购项目时,信息填写不完整,app审核图像未上传
处理方法:上传app审核图片( 合适的尺寸 ),点击提交,状态改为正在准备审核中。
这个是内购选择类型不匹配原因导致。
购买成功之后,Apple会返回以下四个数据给应用
Reference
Review the updated Paid Applications Schedule.
游客身份解决方案:即不登录也要能购买
1)服务器端做一个苹果审核机制,审核期间游客身份可以进行一切行为,一旦审核通过,修改服务端即可达到强制用户登录进行内购买的目的(这个有点。。。)
2)游客可以进行内购买,购买时以设备UUID为准,生成一个游客账号,将购买信息保存在服务器和本地,当用户登录正式账户后判断此设备是否进行过内购,有的话提示用户将游客身份购买的权益与现有账号绑定,如果绑定,游客权益则迁移到正式账户,如果不迁移,则游客身份和正是账户是两个独立账户,正式账户不享有游客身份的权益(我用的这个)
内购游客模式解决方案
iOS内购规则
Q3: Flutter笔记三之Dart库文件的使用
一个 dart 文件就是一个库文件
每个 dart 文件默认导入了系统核心库 dart:core 其他库需手动导入:
import 'dart:系统库库名';
import 文件后可直接使用,默认导入一个库的所有变量和方法。
文件名后+ as +自定义名称,导入的库起的别名,同python
文件名后+ show +导入的变量或方法:只导入 show 后面的变量或方法
文件名后+ hide +隐藏的变量或方法:出 hide 后面的变量或方法,其他的变量和方法全部导入
export 公共的库文件的抽取
可以在pub.dev网站中查找第三方库。
然后即可引用使用
Q4: 应用程序和软件有什么区别
1、概念不同。
应用程序(applicationsoftware或 application Program)是计算机软件的主要分类之一,是指为针对用户的某种特殊应用目的所撰写的软件。
应用程序在分类上也比较多,系统应用程序,桌面应用程序,驱动应用程序,网络应用程序,手机应用程序,物联网应用程序等。
根据《软件工程:实践者的研究方法》中的定义,软件(software)是一系列按照特定顺序组织的计算机数据和指令,是计算机中的非有形部分。计算机中的有形部分称为硬件,由计算机的外壳及各零件及电路所组成。
软件由一个或多个应用程序组合而成,分类上有编程语言、系统软件、恶意软件,嵌入式软件,游戏软件,应用软件和介于这两者之间的中间件。
系统软件就是常见的操作系统,Windows,MacOS,Linux都是操作系统软件。
应用软件是需要运行在操作系统上的软件,比如常见的文档处理软件,图像处理软件,编程软件等。
恶意软件会故意造成隐私或机密数据外泄、系统损害(包括但不限于系统崩溃等)、数据丢失等故障及信息安全问题。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
软件包括所有在计算机运行的程序,和其架构无关,例如可执行文件、库及脚本语言都属于软件。软件不分架构,有其共通的特性。
应用程序只是软件的一部分,而软件的概念及其广泛,不是只有应用程序。
2、功能不同
软件由多个应用程序组合而成,功能及其复杂,比如常见的office软件,能做表格,做PPT,处理文档等功能。
而应用程序功能比较单一,只能处理一类工作。PPT只能用来处理幻灯片,没有办法处理复杂表格,想要录制音频需要调用office软件包里录制音频的应用程序。
3、开发难度不同。
软件的开发难度要比应用程序大得多,由于需要多个应用程序配合,而且需要在不同的操作系统平台上发布,都是用不同的编程语言混合开发而成。
软件对性能有一定的要求,很少选择性能比较差的脚本语言开发,一般都是使用C++,Java这类编译型语言开发。
但编译型语言的问题是,有的语言设计不合理,历史积累,不够成熟等原因,造成开发起来较繁琐,调试比较困难,开发时间较长。因此一个功能完整的软件开发起来通常需要几年才能完成。
最常见的游戏软件就是如此,很多游戏软件的游戏引擎都是C++,C#这种编译型语言开发(有现成的也需要二次开发),也是整个游戏的灵魂,开发难度也是最大的。
而游戏的动作,事件等则选择LUA,JavaScript或者Python这些脚本语言开发。很多游戏大作都是跨平台的,开发周期最少的都在1年以上。
应用程序的功能相对比较单一,遇到的业务场景也不会很复杂。通常开发一个功能完善的应用程序,只需要几个月时间,复杂的应用程序最多1-2年就能完成。
应用程序通常对性能的需求没有软件那么大,很多解释型的脚本语言也可以开发。开发一个移动端手机应用程序(web应用程序),功能不算很复杂,开发周期都不长。通常一个完整的web应用程序,会分为客户端和服务端两部分。
客户端软件技术选型上,常用ReactNative或者flutter(IOS有自己的一套UI),服务端软件一般常用C++、Java、PHP、Python、Ruby等编程语言开发,通常都会同时在安卓和IOS平台上发布。
参考资料来源:百度百科——应用软件
参考资料来源:(美) Rosger S Pressman著,《软件工程:实践者的研究方法(原书第六版)》第一章





