0

点赞

0

回复

687

浏览

学习App开发的两个关键点

学习移动App的开发,有两个要素大家应该着重关注。下面的两张图都是来自苹果官方的开发者文档,但是内容对iOS开发和Android开发都适用。 如何构造用户界面 首先就是要去了解移动App的用户界面是怎么样构成的。比如说iOS提供了“视图(View)”这样一种抽象来表示界面以及界面中的元素。它的视图是这样一种层级的树状结构。我们现在的移动App一般都需要拼交互,很多都是要交互做的非常好的大家才愿意用。即使做一个交互达到平均水平的App,也需要重点关注如何实现用户界面。我们需要专门去了解这样构造视图的API,以及表达视图的层次结构的各种概念。 那你怎么样把这么好的交互以及这么好的UI展现出来呢,首先当然是需要有好的设计师给出设计稿原型了,然后靠程序员通过我们SDK里的这些API,通过IDE提供的界面构建工具,去把视图(这时也通常称为UI组件)去呈现出来。 所以,去了解表达页面树状层次结构的各种关键类的用法,是你应该关注的第一个要素。 MVC模式 第二点大家需要去了解MVC这样一种模式,MVC是这三个词的缩写,Model、View、 Controller。那为什么需要做这样一个划分呢? 我们刚刚已经谈到了View,Mode实际上就是你的程序是什么,主要包含你核心的业务逻辑跟相关的数据。比如说你去开发一个博客的一个App,那其实博客本身的这些信息,就是你核心的业务逻辑,你需要去新建博客、删除博客,你需要去发表评论。那么View就是你体现给用户的,让用户进行交互,以及响应用户的东西。 这里的重点是Controller,不特指iOS或者Android,哪种平台下你都要去了解它的Controller的内部机制,你掌握了这些它的内部机制,你就知道怎么样来去协调你的业务逻辑,跟协调你的视图。当用户去产生交互的时候,你要去给用户呈现合适的内容,进行合适的响应。 ...

androidios

0

点赞

0

回复

555

浏览

走进互联网应用编程

我们已经知道了互联网的一些基础概念,我们也回顾了它的发展历程以及它内部的架构。接下来让我们开始了解一点点编程技术吧。 学习路径 首先告诉大家一个基本的学习路径,如果你希望去做互联网应用开发的话,首先你肯定要去熟悉IDE,IDE是我们这个叫软件开发中得一个术语,Integrated Development Environment,集成开发环境。建立开发环境非常重要,工欲善其事,必先利其器。做任何开发,首先就是要把这个环境准备好,之后就可以去做各种尝试,尝试过程中的话就能逐渐建立信心。初学者往往在环境配置中被各种预想不到的问题弄得很沮丧。 第二点就是要去学习一门编程语言,建立起来环境了,改变世界就靠你的代码了。学习一门编程语言没有太多的诀窍,你可能可以去找一本比较好的经典的入门书籍,现在网络上也有非常多的资料,图文或者视频都可以,根据个人喜好选择,比如说像智慧树可能就有编程课程。最重要的练习,熟能生巧,在不断的练习中去加深自己对程序语言的理解。 接下来需要了解这三个术语,叫SDK、API跟Lib,分别表示软件开发套件,应用编程接口和库。这三者之间其实有一定的联系,或者是交叉。总体来说,它们都是给我们提供的一些封装了底层功能的基础设施。比如我们希望在iOS的App中能够启动拨打电话的界面,这就需要了解iOS的SDK中哪个API能够实现这样的功能。通过在程序中去按照约定的格式和方式去调用API,才能实现拨打电话的功能。像iOS的SK提供的API有成千上万,事实上要成为一个资深的iOS开发者,了解API可能是花时间最多的一个地方。当然你也不可能把所有API或者SDK种的所有内容完全弄懂。在软件开发中也有二八原则,少数的API能够胜任开发中的大部分场景。所以你只需要掌握这些关键部分,当在新场景下遇到不能解决的新问题时,再去查看帮助文档。所以帮助文档的阅读也是技术学习的一个关键因素。了解了基础原理之后一般就能上手开发了,帮助文档可以帮助你在实践中学习。 三个神器 这里介绍三个神器,对于软件开发者来说非常重要。 第一个Google,虽然因为各种原因的话有时候我们访问不了,但是这基本上是可以去寻找技术资料最好的方式。 第二个是Github,之前我们提到过库的概念,Github就是一个可以找到大量第三方库的地方,那是别人给我们封装好的可以复用的代码。比方说造一辆汽车的话,我们经常不要自己造轮子,而Github上可以找到很多优质的轮子,这些轮子还是免费(代码都是开源的),我们应该尽量利用它们来拼装自己的汽车。 第三个是StackOverflow网站,在这个问答网站上你遇到的几乎任何开发问题都能快速找到答案。 小节 那基于这个学习路径的话,我总结了一下不同平台的技术,这是一个非常粗略的总结。 比如就以iOS开发为例,你需要首先你去下载Xcode这样一个IDE, 接下来你需要去掌握一名编程语言,你可以选择Objective C或者是Swift,这两门都是可以用来开发iOS应用。那SDK就是Xcode包含的iOS的SDK,它提供了与iOS系统交互的API,同时提供了很详细的开发者文档。 ...

androidwebios

0

点赞

0

回复

584

浏览

iOS平台和Android平台概览

IOS平台概览 接下来要跟大家介绍的iOS平台,首先看看它是怎么诞生的。 上面两张图第一张是2007年的iPhone 1,右边是2015年的iPhone 6S。iOS这样一个操作系统就是依附在iPhone设备中。iPhone相比于在他出现之前的这些移动设备,有这三个核心的特征:首先是一个变革性的移动电话,其次带来一种多点触控技术,最后强调和优化与互联网的连接,是一个Internet Communicator。iPhone的出现真正意味着移动互联网时代的到来。 那关于iPhone介绍,大家可以去看看2007 iPhone的发布会,乔布斯发布iPhone的片段也成为一个经典的商业演讲,成为无数演讲培训的参考案例。 iPhone是一款设计精美的硬件设备。用乔布斯说,他把有灵魂的软件装进了一个非常漂亮的盒子。iPhone本身它在硬件设计、工艺、工业设计都很多创新,我们主要关注互联网应用开发,所以这些不是我们关注的焦点。我们来讲一讲让iPhone这个硬件盒子有了灵魂的软件,iOS操作系统。 IOS的发展 iOS的历史,要从NeXTSTEP说起。这个操作系统的页面现在看起来有点简陋,但是在它那个时代已经是非常先进和酷炫的桌面操作系统了。NeXTSTEP是NeXT公司开发的,而NeXT公司是乔布斯当年被赶出苹果公司之后创建的,这段历史推荐大家去读一读《乔布斯传》。1997年当时江河日下的苹果公司收购了NeXT,而乔布斯也藉此机会重新执掌苹果,后来的故事每个人都应该非常了解了,the next is history。 NeXTSTEP中的技术被整合进Mac笔记本的操作系统,成为了非常漂亮的Mac OS X。OS X是运行在大屏幕的电脑上,将这个操作系统移植到小屏幕的移动设备上同时增加多点触控的支持,就形成了运行在iPhone中的操作系统iOS。 那这个操作系统它包含什么呢? 在iPhone的硬件基础之上,首先iOS包含了一个操作系统的内核,它主要是跟硬件打交道。比如说电源的管理,摄像头的驱动等。内核之上是一些核心服务,比如说基础类库和多线程支持等。核心服务上面它提供了多媒体的支持,包括是图像、音频、视频和3D等,iOS中很多酷炫的效果和动画都基于iOS中的多媒体支持。 最上层就是与用户交互的组件,如果大家要去学习iOS开,基本上90%的工作是和这一层来打交道的。比如利用多点触控去开发新颖的手势操作,比如绘制一个动画效果,都需要使用这些交互组件,它们也是iOS SDK的重要组成部分。 那在这个平台之上,苹果也构建了一个开发者的生态系统。开发者可以依托于iOS,为用户去开发各式各样的应用。所以苹果首先提供了Xcode,进行iOS开发的集成开发工具;其次提供了App Store这样一个应用分发的市场,开发者的应用提交到App Store,iPhone的用户就能从中下载。 ANDROID平台概览 我们用类似的方式来介绍Android平台。Android平台它最早的是一个叫Andy Rubin这个人创立的。有意思的是这个人也是早年的苹果的员工,在苹果时期他就从事便携式设备操作系统的开发工作。Android早期其实是一个智能照相机的操作系统,在2005年Andy Rubin的公司被Google收购了,收购了之后转型做了做了移动手机的操作系统,在2008年发布了Android的第一个版本。 大家看这是它的版本号,它的版本号也很有意思,每个版本都是以甜品的名字命名。版本号从小到大也是按字母排序,每发布一个版本号,它的首字母就是往前面增加,目前已经从A发展到M了,M开头单词是Marshmallow,棉花软糖的意思。目前使用最广泛的是果冻豆系列,即Jelly Bean(Android4.1 4.3)。 从技术的角度看它跟iOS平台是类似的,它封装了Linux内核。Linux是广泛使用的开源操作系统。Android在Linux内核上进一步引入了Java 虚拟机,开发库和框架,使得开发者可以使用Java程序开发Android上的应用。 Android平台提供的开发工具叫Android Studio,是现在Google官方主推的IDE,Android的应用市场叫Google Play。Android和iOS不一样的地方在于Android是开源的,允许不同的厂商去修改和定制,比如国内的华为小米锤子等手机上运行的操作系统,都是基于Android的定制操作系统。Android应用的分发也是开放的,不同于iOS应用只能在苹果官方的App Store下载,Android应用可以在各种应用分发渠道上下载。封闭和开放之间孰优孰劣没有定论,留给大家去思考。 小节 我们讲了这两大移动平台的技术概览和发展历程之后,回头和Web的发展结合起来看,是不是有一次验证了基础设施发展的规律。我们之前说过,智能设备的普及和移动通讯技术的发展催生了移动互联网,现在你对这句话应该有了更深入的理解。万维网在互联网的基础之带来了真正意义上的信息连接,而移动互联网,在此基础之上把无处不在的移动设备也接入进来了。连接的广度和深度再一次延伸了。 ...

iosandroid

0

点赞

0

回复

538

浏览

移动互联网应用开发概览

前言 今天跟非计算机专业的同学讲一讲移动互联网应用开发,希望帮助大家对互联网和互联网开发建立技术方面的基础认知。 首先让我们从一个普通用户的视角转换为一个开发者的视角去看待互联网。让我们拨开诸如“云计算”,“移动互联网”这样的热门词汇的表层,从技术架构和技术发展的角度来去审视互联网,希望给大家增加一点技术修养。不管你是做产品的创新,还是你去组建一个真正去实现这个产品的软件开发团队,应该都是大有裨益的。也希望能激起同学们一点编程的兴趣,如果能让非计算机专业的同学喜欢上编程的话,那就更好了。编程正在成为一项基本技能,编程教育将来甚至可能成为通识教育。连奥巴马总统都说开始学习编程了,所以大家也不用犹豫了。 如果你希望进一步的来深入去学习一门技术的话,我之后还会告诉大家一个基本的学习路径,按照这样一个路径去深入的话,那你对于掌握比如Web开发,或者iOS开发,Android开发,你都知道下一步如何深入。 互联网 V.S. 移动互联网 今天我们谈到互联网,一般情况下默认指的是移动互联网。那么互联网和移动互联网这两者之间是什么关系呢?如果说互联网是把计算机连接在一起的话,那么移动互联网则在计算机连接的基础之上,进一步把无处不在的移动设备连接到了一起,而这得益于过去这些年来智能设备的普及,以及3G和4G这样移动通讯技术的发展。 移动设备相对PC而言的话,天然具有位置信息,比较容易携带,这些特征使得移动互联网时代的产品和商业相比于互联网时代具有了更多的可能性,更多的想象空间。比如说现在只要有一台智能手机就可以随时随地的去打车,那可以知道你附近有什么好玩的好吃的,这都是移动互联网带给我们的可能性。 但是我们回归到技术本身,从技术内涵上来讲的话,其实移动互联网就是互联网在计算能力和通讯能力上的一个自然的延伸,并谈不上是一个技术的跃迁。所以这两者从技术的内涵上来说本质上是一样的。互联网它同时是一个技术的术语,也是一个学术的术语,而移动互联网更多的是一个商业的名词,由此也可见一斑。 所以我们谈的互联网应用开发,一般情况下就是指移动互联网应用开发。接下来我们现在从各种视角来审视互联网。 从用户视角看互联网 首先从用户视角来看互联网,互联网是什么?我们都是互联网的忠实用户,俗称网民,我们现在的大学生应该都是互联网时代的原住民。从用户的视角来看的话,其实互联网就是我们通过PC或者是通过移动设备能够去访问和使用的各种信息和服务。互联网已经是现代社会的基础设施,已经成为我们生活中的水和电,我们衣食住行现在基本都离不开它了。互联网这个基础设施其实也跟电一样,看不见摸不着,而我们能看到是什么呢?那就是无数的App以及无数的网站,那比如说我们在淘宝上购物,我们可以通过PC去访问淘宝的网站,也可以使用淘宝提供我们的App,通过安卓手机或者苹果手机来完成网购,这就是一个普通用户看到的互联网。 从商业视角看互联网 我们再从商业的视角来看互联网。 首先互联网带给我们一种思维模式。互联网思维这个词现在非常火,各有各的说法。各种创业创新论坛上,不管是江湖大佬还是创业新秀,都会就互联网思维指点江山唾沫横飞。比较典型的有雷军早年提过的互联网七字诀“专注、极致、口碑、快”。在互联网时代做软件开发,我们所开发的产品也必然应该是互联网思维所驱动的。 我们不去罗列各种各样的互联网思维,这里我们来探讨互联网思维的本质。这些思维的立足点都是因为互联网带来了人和信息的连接,信息的扁平化消除了信息的不对称,使得信息非常快速的获取和传播。而各种所谓的互联网的大招,你的降龙十八掌,我的独孤九剑,其实不外乎都立足于此。 举例来说,七字诀里头的“口碑”,其实在任何时代做任何事情我们都应该好好做,都应该形成口碑,让人口口相传,但为什么互联网时代我们要专门去强调口碑呢?因为如果我们的产品有创新极致的用户体验,如果能够口口相传,那么在这个信息扁平化的时代,能够最大化形成它的传播效应,从而低成本的获取大量的用户。 比如说七字诀里头的“快”,互联网时代信息的流通是非常快速和透明的,机会稍纵即逝,你不快别人就抢先了。所以我们立足于信息连接这一点,就可以批判的去看互联网思维,也更清楚在产品中也知道怎么样去应用它。 互联网同时催生了一批商业模式。我们从技术的角度来看看这些商业模式,会发现互联网基于对计算机的连接,使得我们去连接海量的用户非常快速方便,而海量用户带来了边际成本的急剧降低,所以让免费可以成为一种趋势,出现了羊毛出在猪身上这样的商业模式。谷歌就是最典型的免费经济的代表,它让用户可以免费搜索信息,但是每年从广告主身上获取几百亿美金的收入。 移动互联网使得我们共享自己闲置的物品非常方便,并且还能获得回报。所以出现了像Uber和Airbnb这样共享经济的代表,让我们非常方便的可以去共享自己的房子和车子,中国也出现了像滴滴出行这样的飞速成长的互联网企业。再比如说O2O这样一种线上和线下结合模式,它这个名词本身这种就深深的印上了互联网的印记。 再扩大一点看,其实互联网也带来一种经济形态。互联网通过连接机器进而把人和信息、人和服务、人和人连接到一起,形成了我们现代社会的一个新的基础设施。我们现在的的确确能够感受到这样一种基础设施能够优化社会资源的配置,甚至能够去改变整个社会的话语权,从而去重述产业结构和经济结构,形成一种新的经济发展形态。而这正是我们每天都在说的“互联网+”的概念。 为什么我们要从用户的角度和从商业的角度来去看待互联网呢?如果我们有一个创新的创意,它一定是互联网思想所驱动的。而我们做任何开发,最终体现出来的都是用户所感受到的东西,所以我们也要有用户的思维。 从开发者视角看互联网 接下来我们再从开发者的视角来看互联网,如果我们进入互联网开发这样一个领域的话,那就意味着基本上你要从事这三种开发中的一种:Web开发、iOS开发、Android开发,当然更复杂的应用可能涉及到大数据、分布式之类的更高级的技术,我们暂不深究。 这里需要重点说一下的是微信公众号的开发。我们学生团队或者创业团队在资源和人力有限的情况下,希望去快速的去验证创意的话,公众号开发是一种非常非常好的方式。 首先微信它本身就是一个App,而App的话正在成为一个超级App,成为了大部分人移动互联网的入口,成为了马化腾口中的所谓的连接器。微信已经在互联网之上又形成了更上一层的的连接的基础设施。那么我们为什么不把这个基础设施利用起来呢? 从技术的内涵上来说的话,公众号的开发其实就是Web开发的技术范畴,你只要去开发出能够通过微信访问的网页。通常我们去开发一个App所需要的时间是比较多的,而公众号应用的开发所需的工作量相对要少。公众好还有几个很重要的优点: 公众号可以非常快速的到达用户,而不需要经历像iOS这样长期的审核过程,所以应用的分发和更新非常快速。 你不需要去适配不同的平台,不管是Android还是iOS的手机,只要有微信就能访问。 微信的通讯功能使得我们搜集应用的反馈非常方便,用户只要在公众号上去发一条消息,就跟你去给好朋友发一条消息一样,就可以对产品形成反馈。 所以公众号对于快速开发和验证构想,可以说是叫居家旅行的必备良品。最近微信之父张小龙做了他的第一次公开演讲,他提到微信除了订阅号和服务号之外,也会提供一种新的叫应用号的形态,这对我们应用开发者来说,是一个非常好的消息。我们应该去充分利用它更强大的功能,更快速的去验证我们创新想法,去早推给用户试错。 云和端 我们提到了Web、iOS和Android这三种开发,但实际上我们只看到了冰山的一角。我们通过这个各种设备所能看到的表象下面还有什么呢?实际上通过我们网线或者WIFI,还有大量我们看不到的东西。 首先,在我们网线的连接到的其实是有大量的服务器。一台服务器上面一般还跑着中间件。中间件是一个软件开发里的概念,大家可以把它想成就是一个容器,这个容器的话装着各式各样的应用。这些应用程序都要去存储海量的数据。那比如说你今天用微信发了一条消息,这条消息其实也是存储在某个地方的,而且大家想这么多信息是需要大量的存储设备来保存的。这些都是我们看不见的东西,而这些东西其实构成了我们今天经常说的一个词叫做“云”。当然我们从开发的角度会说这些“后端”。 今天大家看到“云”的时候,你可以这样去理解。从技术的角度云是通过服务化,通过弹性计算通过让你按需获取资源。我们对云感性的认识就可以想成是整个应用后端的一套体系。 那怎么样把前段跟后端连接到一起呢?这就回过头来再看我们当时说互联网怎么延伸到移动互联网的。我们可以通过网线,通过WIFI,也可以通过3G和4G这样的技术,把云跟端连接在一起,从而最终形成我们每天在用的App或者网站。 云听起来很神奇,那它长什么样子呢?我们来看几张Google云计算中心的样子,让大家有一个更感性的认识。这张图里有无数的机器了,这是它内部。那外部是什么样子呢?这是处在芬兰的一个数据中心,白雪皑皑。为建在这个地方呢?因为大量的机器会产生巨大的热量,制冷和散热是非常重要的,所以需要选择温度低的地方。散热的话也需要有水把热量传导出去,所以这里也有大量颜色各异的水管。 当然这里头我们看到的是一个超级巨头的建立的云计算中心,我们自己去开发应用,是不可能去建立这样的云计算中心的。这些巨头都已经提供给开发者云服务了,我们自己开发应用的话,可以使用他们给我们提供的云服务,把我们后端的程序放到到他们提供的基础设施上去。 这就是我希望给大家建立的对互联网应用的一个基本的认知。 ...

ioswebandroid

1

点赞

0

回复

614

浏览

如何打造一款互联网软件产品

互联网软件产品开发过程 我们来讲一讲如何去打造一款软件产品,把开发一个网站或者一个App的过程来进行简单的分解和梳理。和传统的软件开发,从需求分析到软件设计与实现不同,这里我们讲究快速迭代,原型驱动。 1. 我们有了一个好的创意之后,首先需要进行原型设计。这不属于传统意义上的软件开发的工作。而且这一个步骤可以进一步细分为: 信息架构设计:如何组织整个系统的信息。 用户交互设计:用户如何与系统进行交互,大到整个操作流程,小到一个触控手势设计。 视觉设计:Logo的设计,颜色的设计,总之怎么让用户看起来更爽。 这个阶段也需要一些工具来帮助我们设计,比如说Sketch、PhotoShop、Axure等。 2. 原型设计就可以作为开发团队的输入了。我们需要把原型变为实际可用的产品。我们可能要去做服务器端的开发和做客户端的开发。服务器端的开发是可选的,比如说我们做一个闹钟的应用,可能不需要去连接服务器端,完整的功能不需要网络就能完成。但是现在的应用一般是有服务器端的,这样你才有更多的可能性和发挥空间。如果只是本地的话,意味着这个应用完全跟外界是没有关系,你一定要去建立联系才能让你的应用去发挥最大的价值。即使是闹钟应用,也可以看到做得非常好的产品,它们基于时间提醒将你的行为习惯存储到云端,帮你做规划和分析,这样是不是就给一个小小的App带来的无限的想象空间了。 3. 客户端的开发,就包括你要做iOS、Android和Web三个平台的开发了,视我们选择的平台而定。 4. 做完开发之后,对于服务器端我们要进行部署。在本地计算机上上完成了开发,别人也是访问不到我们的应用的。那别人要怎么样才能访问到我的应用呢?需要把它放到某一台全世界都能访问的服务器上去,而现在我们通过像Amazon EC和像阿里云这样的云计算基础设施,我们能够很方便的拥有一台能够让别人访问的计算机。我们可以按需购买云端的服务器,这也是云计算时代给我们带来的一个便利性。我还记得以前我最早开发Web应用的时候,在中关村配了一台服务器之后,去IDC机房托管,安装Linux系统部署应用折腾了半天。而今天一个中小型的团队完全可以利用比如像阿里云这样的云端的基础设施来部署我们的应用。 5. 把后端代码去部署到云端之后,你的客户端你要进行应用的分发,你要去提交App Store,或者提交到各种Android的应用市场,你提交上去的时候,用户就能下载了,用户下载之后应用就最终就送达了用户。Web应用不需要经历客户端分发的过程,用户有一个浏览器就能从服务器上获取所有内容和功能,所以说HTML5跨平台嘛。 当用户将App下载安装之后,它在产生交互的时候,应用就会跟我们部署在远程机器上的程序进行通讯,最终形成应用的完整体验。这就是开发的整个过程,而这个过程也是不断迭代的。 客户端的开发过程 我们将原型设计到前端实现的这个过程再进一步细化,可以看到编写代码的具体过程。这是一张从苹果官方的开发者文档中拿过来的图片,非常具有代表性。 定义概念:在原型设计中概念应该已经定义清楚了,不清楚就继续头脑风暴把。 定义用户界面:比如做一个任务管理软件,那么就需要把任务展示、操作和管理的界面构造出来。 定义交互:有了界面,我们还需要定义用户如何与界面进行交互呢?就比如用户点击一下任务或者滑动一下任务,应该如何来响应这样的操作呢,如何在不同屏幕之间跳转等。对于定义用户界面和定义交互,iOS和Android都提供了可视化的界面设计工具,就包含在Xcode和Android Studio中。我们也可以通过编写代码动态配置。 实现行为:这是体现应用核心业务逻辑的地方,一般情况下我们就要在编程时使用系统中的事件处理的API来响应用户操作,实现具体的行为,比如创建一个任务,完成一个任务。 整合数据:我们要把应用的状态和数据最终保存起来,比如任务管理,保存起来之后是为了以后可以随时获取。否则应用关闭了,数据也就丢失了。 组建你的开发团队 最后就需要组建你自己的团队了,我们今天创新和创业,人是最主要的因素,同行人比到达的地方更重要。 一个开发团队里需要有很多角色, 设计师,项目经理、产品经理、前端开发者、后端开发者、iOS开发者、Android的开发者等等。这么多的角色,同学们组成的一个团队里一般是很难凑齐的。事实上,创业公司也面临着相同的情况。所一般需要一个人身兼多职,在程序员领域一般称之为“全栈工程师”。当然初期我们都是选择某一种平台进行开发,我们去建立自己的团队的时候,找到能够胜任目标平台(比如Web、iOS和Android中的一种)开发工作的同学就可以了。如果能自学成材那就更棒了! ...

ioswebandroid

2

点赞

0

回复

738

浏览

创业团队做手机客户端,应该先做 Android 还是 iOS?

这个时候,你最重要的并不是做1和2的选择,而是要做从0到1的突破。厘清这点,就好展开了。 错误思路一:用android的人多,先做android? 对于种子轮融资阶段之前的产品,哪个平台的用户量大,对你来说,没有任何统计学意义。 这一阶段,活跃用户能做到10万级已经很牛了,百万级的是少数。不管是android,还是ios的用户数都是以亿级计算,把你的app扔进这么海量的用户池子里,甚至连一丝涟漪都没法泛起。就别去纠结哪个平台用户量大,从哪个平台切入了,任何一个平台,只要你的需求切中用户需要或痛点,拿到几十万的用户数量都完全不成问题。 我喜欢举栗子,举个简单的栗子说明一下,大家都知道双色球的中奖概率是1700万分之一,你买1注彩票,和买100注彩票,这么小的样本,实际上在1700万这么大的中奖概率池子里面,都是一样中奖概率的。不信?你每期买100注彩票坚持十年看看中不中一等奖。 错误思路二:ios平台用户高端,先做ios? 在腾讯,组长或总监以上领导,几乎一大半都在使用三星note2、3、4代。你经常会发现他们深夜发的邮件“来自三星note邮件客户端”的小尾巴。观察了身边的其它传统公司的领导,大多数也这个情况。 而在收入夹心层用户眼里,苹果逐渐成为一种炫耀品。这里说的收入夹心层指的是因工作需要、或因虚荣心需要的群体,如地产销售、无付费能力的学生。这类夹心层用户人手一个二手iphone4或5,甚至不惜节省两个月工资或不吃一个学期早餐买一个不知道倒腾了多少手的二手iphone4,你还认为他们是高端用户么? 近两年,安卓增增日上,系统体验逐渐提升,加上苹果迟迟不推出大屏幕手机,以三星为代表的高端android手机逐渐占据了大屏幕高端机市场。愿意花7000块买android手机的用户才是真正的低调奢华有内涵好么。 当然,随着iphone6的上市,在大屏幕手机市场方面,苹果将逐渐挽回失去的市场份额,不过这个爬坡过程,至少需要一年。 随着智能终端的发展,“高端用户用ios平台,低端用户用android平台”这一概念已逐渐模糊,甚至在某些细分领域出现了扭转。相信将来会有更多的高端android品牌系列机型出现。 用户是否高端,不取决于平台,取决于你自己的产品的定位,你的产品是低俗app,即使放到ios,也依然不能改变低俗的本质。 不信,你们看看appstore健康类、娱乐类应用榜单top20中有多少是低俗、诈骗、伪科学的垃圾app?错误思路三:android分辨率参差不齐,兼容性问题难解决,先做ios? 错误思路三:ios平台用户高端,先做ios? 市面上在售的android手机分辨率多达十几种,可是,你们没发现么,主流的1920 1080和1280 720两个分辨率几乎占据了一半android市场份额。无法全面解决兼容性问题,就先从主流分辨率切入吧。互联网最讲究快速迭代,先出主流版本,再逐渐将剩余重要分辨率兼容补齐,千万别等到把所有的分辨率都兼容了再上市,严重些,等你上市的时候,有些分辨率的手机可能已经退市了。另一方面,随着iphone6和iphone6 plus的上市,ios的兼容性问题也开始凸显。因此,从兼容性这方面来说,考虑到主流分辨率的用户份额,做出一定取舍的情况下,实际上并不存在严重不可解决的问题,ios和android两者相差不大。 不要因为技术实现细节,将自己的产品思路牵制住了。 错误思路四:ios的支付渠道成本高达30%太黑了,而android的支付渠道成本只有2%左右,从android切入? 亲,这个时候,你的产品是否能活下来还是一回事,还没到考虑支付渠道成本的问题呢。而当你活下来了,用户量级也达到了一定的量级,那个时候是ios和android双平台并发,两个平台的渠道成本都无法避免,既然无法避免,为何要去思考?不如将更多精力放在分析用户需求上,更精准的切中用户痛点,拿回更多的活跃用户。 另外,我要跟你说android渠道应用商店的黑幕么?这里展开又是一篇长文。别以为表面上android的支付渠道成本只有2%左右,实际是加上应用商店的杂乱无章,以及换量成本和站队文化,你的android平台综合成本只会比ios的30%还要高。 好了,不再去拆解更多的主观错误的决策思路了,重要的是: 种子期最重要的是验证市场,你要让投资机构尽快的看到你的团队的执行力,你的想法的市场空间有多大?你的产品是否符合用户预期?你的产品是你臆想出来的,还是真正切中了用户痛点? 这个时期,对于用户数量的要求并不高,甚至无需10万级别的用户,都足以验证你的想法是否适合进一步投入资源发展扩张了。 随着你任一平台的发展,用不了多久你就可以进入天使轮融资阶段,开始扩张团队,那个时候已是多平台并发了。 因此,你的团队擅长哪个平台,哪个平台能让你的想法更快速的面世,就从哪个平台切入。 其它方面什么都不用想。没任何统计学意义。 出自: https://www.zhihu.com/question/19586465 https://www.zhihu.com/question/19586465 ...

android创业ios

0

点赞

1

回复

732

浏览

iOS开发基础:迅速掌握Objective C

Objective C是C语言的超集,继承了C语言的语法、基本数据类型、控制流语句;同时加入了对象和动态的运行时:类和方法、动态类型和绑定、直到运行时才做责任推导。 类与对象 类的定义分为接口和实现,对象方法和类方法用 和 + 标识,使用 进行方法调用,方法调用被视为发送消息: //声明...

iosobjective-c

0

点赞

0

回复

1333

浏览

使用Swift在iOS中微信分享功能的实现

通过微信进行分享是现在很流行的功能,接下来就让我们学习一下如何实现微信分享的功能。 下载SDK 到微信开放平台下载 SDK https://open.weixin.qq.com/cgi bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319164&token=&lang=zh_CN ,下载后解压出来有四个文件,分别为: libWeChatSDK.a read_me.txt WXApi.h WXApiObject.h 将整个文件夹拖入到项目中。 修改项目设置 往项目中增加以下四个 Linked Frameworks and Libraries libc++.dylib SystemConfiguration.framework libsqlite3.0.dylib libz.dylib 如果不添加的话,可能会出现编译错误! 进入 Build Settings Swift Compiler Code Generation ,将 Objective C Bridging Header 的值设置为 SDKExport/WXApi.h 接下来我们就可以调用微信的API啦! 注册API 使用微信分享的API,首先在 AppDelegate 的代码中进行注册: import UIKit...

iosswift

新建主题 记录代码

学员动态

  • s**1在课程作业中回复了老师:我看了下Blog类的...
  • 三年添加了笔记:在嵌套映射中id元素...
  • D**3添加了笔记:封装是一种隐藏信息的...
  • D**3添加了笔记:注意多个字段可以一起...
  • 天码君评论了三年在课程中的作业:这里把@Reques...
  • D**3添加了笔记:数据定义功能:提供数...
  • D**3添加了笔记:与抽象类类似的一个重...
  • D**3添加了笔记:类需要对接口中的每一...
  • s**1在课程作业中回复了老师:搞定了,原因是我在j...
  • 三年添加了笔记:引入分页插件后,在Q...
  • u**i向课程作业中提交了代码
  • D**3添加了笔记:这时我们可以给blo...
  • 三年添加了笔记:我们在Questio...
  • A**i向课程作业中提交了代码
  • D**3添加了笔记:接口的继承使用ext...
  • D**3添加了笔记:这样的重复代码显然是...
  • 三年添加了笔记:通过Mapper配置...
  • w**3评论了C**u在课程中的作业:Post类不需要动,...
  • D**3添加了笔记:Java中的流分为两...
  • 三年添加了笔记:此外还需在appli...
  • c**h向课程作业中提交了代码
  • 三年添加了笔记:注意resultMa...
  • D**3在课程作业中回复了老师:为什么setID方法...
  • 三年添加了笔记:如果你希望传入多个参...
  • D**3向课程作业中提交了代码
  • c**h向课程作业中提交了代码
  • 天码君回复了D**3在课程中的问题:欢迎来到天码营学习,...
  • 三年添加了笔记:discrimina...
  • c**h向课程作业中提交了代码
  • c**h向课程作业中提交了代码
  • 三年添加了笔记:MapperFact...
  • X**E在课程作业中回复了老师:为什么会提示setI...
  • 天码君回复了u**i在课程中的问题:欢迎来到天码营学习,...
  • D**3添加了笔记:想要让外部访问该成员...
  • w**3评论了s**1在课程中的作业:对,获取的是Obje...
  • D**3添加了笔记:抽象类除了不能实例化...
  • D**3添加了笔记:使用接口类型来声明一...
  • 三年添加了笔记:对于单表查询,大部分...
  • D**3在课程作业中回复了老师:去掉这行赋值代码就可...
  • D**3添加了笔记:Exception类...
  • D**3添加了笔记:在最底层,所有的输入...
  • f**a向课程作业中提交了代码
  • 三年添加了笔记:如果我们进行了这样的...
  • D**3向课程作业中提交了代码
  • t**e添加了笔记:if (i % 2 ...
  • 天码君回复了A**i在课程中的问题:欢迎来到天码营学习,...
  • 三年添加了笔记:如果你希望传入多个参...
  • w**3评论了D**3在课程中的作业:不是通过了吗,还显示...
  • 三年添加了笔记:MyBatis Sp...
  • X**E向课程作业中提交了代码
  • D**3在课程作业中回复了老师:加上l也不行。我在继...
  • c**1在课程作业中回复了老师:老师,后台一直说该模...
  • A**i向课程作业中提交了代码
  • D**3向课程作业中提交了代码
  • D**3添加了笔记:如果一个类包含抽象方...
  • 三年添加了笔记:回顾一下Questi...
  • w**3评论了s**1在课程中的作业:你自己那可以正常用吗...
  • z**x在课程中提出了问题:想请问下,这里的i是...
  • w**3评论了D**3在课程中的作业:初次赋值,Long数...
  • w**3回复了z**x在课程中的问题:i是一个for循环里...
  • A**i向课程作业中提交了代码
  • D**3添加了笔记:MySQL提供了10...
  • D**3添加了笔记:Map具有两个泛型参...
  • X**E向课程作业中提交了代码
  • D**3添加了笔记:我们可以使用Ecli...
  • C**u向课程作业中提交了代码
  • 三年添加了笔记:为了让Spring ...
  • 三年在课程作业中回复了老师:为新建问题设置标签 ...
  • 天码君回复了w**6在课程中的问题:欢迎来到天码营学习,...
  • c**1向课程作业中提交了代码
  • u**i向课程作业中提交了代码
  • D**3添加了笔记:如果父类抛出多个异常...
  • 三年添加了笔记:使用MyBatis,...
  • D**3添加了笔记:getAll方法就通...
  • f**a向课程作业中提交了代码
  • L**z在课程作业中回复了老师:老师我在Grid里面...
  • C**u在课程作业中回复了老师:提交后说我add有问...
  • D**3向课程作业中提交了代码
  • 三年添加了笔记:mybatis.co...
  • D**3添加了笔记:一个方法被覆盖时,覆...
  • D**3向课程作业中提交了代码
  • c**h向课程作业中提交了代码
  • c**h向课程作业中提交了代码
  • 三年添加了笔记:创建Question...
  • C**u向课程作业中提交了代码
  • A**i向课程作业中提交了代码
  • A**i向课程作业中提交了代码
  • w**3评论了C**u在课程中的作业:add方法中的参数是...
  • A**i向课程作业中提交了代码
  • A**i向课程作业中提交了代码
  • z**x添加了笔记:Math.pow(a...
  • D**3添加了笔记:类使用impleme...
  • D**3添加了笔记:一个变量可以声明为f...
  • 三年添加了笔记:如果列名与属性名依然...
  • D**3添加了笔记:假如我们希望将博客内...
  • 三年添加了笔记:嵌套查询方式很简单,...
  • u**i向课程作业中提交了代码
  • u**i向课程作业中提交了代码
  • A**i向课程作业中提交了代码
  • D**3添加了笔记:在Java中,使用e...
反馈意见