阅读更多

1顶
0踩

移动开发
对于开发者来说,要想在苹果应用商店占有一席之地可不是一件容易的事情。尽管苹果已经对此做了许多改进,但要想让自己开发的应用在应用商店取得成功依然很艰难。应用推荐创业公司Appsfire联合创始人Ouriel Ohayon日前发表评论文章,深入探讨了该问题的本质,以及解决之道。

以下为原文:

你已经经历了苹果应用的审查程序并且耐心的等待着苹果给你的通过消息(有时真的是非常需要耐心)。最终,恭喜你,你的新应用现在可以在苹果应用商店上架了。你满怀欣喜的查看自己的服务器日志——流量并没有暴增,隔天再看看你的iTunes连接报告——收入没有增加。你还在给自己打气,试图在苹果应用商店的排行榜里找到自己的应用,但很可惜,你的应用并没有出现在那里。最后,你在应用商店里搜索自己的应用以确定它是否已经上架,结果是,你可以找到它。

因此你等待了一个星期又一个星期,但所开发的应用并没有带给你收入,同时你的应用也没有从商店里下架。情况就是这样,似乎一切都没有改变。为什么大多数开发者在苹果应用商店里发布应用后很难获得成功呢?为什么成功的只是极少数人呢?你把这一切都归咎于苹果应用商店,责备它没有确立正确的应用发现机制以便于他人能够很轻易的发现你的应用。但事实是,这并不是苹果的错。

许多开发者都明白在苹果应用商店里取的成功是多么的艰难,尽管苹果在努力改变这一状况,但情况并没有得到较大改观。自从苹果应用商店上线后,我一直对它所建立的应用发现机制感到沮丧。我们都有自己的信念。我执着于发现伟大的应用,这也就是我成立Appsfire的原因,这是一间致力于为寻找伟大应用提供解决方案的公司。

但是为什么该问题依旧很难被解决呢?想要回答这个问题并不容易,让我们从几个不同的角度来探讨一下该问题。

开发者的角度

要想开发出一个伟大的应用程序,仅拥有一个不错的设计和良好的用户体验是不够的。移动应用就如同商业一般,而你得像管理企业一样来管理自己的应用。

如果一款应用没有很好的解决人们的迫切需求,那么它将很难长期存活下去。

在你发布自己的应用前,你必须明确自己的市场计划,这包括知道自己拥有哪些竞争对手。要记住,应用都陈列在iTunes里,而iTunes是一个应用仓库。

依据用户数据和自身价值,应用得不断的被改进和优化。许多开发者执着于低的CPI(cost per install,每次安装所花费的费用)而不是尝试得到最好的用户,并持续得到来自他们的支持。

开发一款应用不仅仅是把优秀的代码变为现实,这真的是商业行为。一些应用开发商越做越大(例如Zynga 和Outfit7),以至于它们并不需要通过苹果或Google来获得知名度。实际上,它们自身就是一块很好的招牌。

苹果应用商店

苹果宣布拥有超过70万iOS应用(到目前为止已经有接近100万款应用被开发出来)和一个新的应用商店。他们也宣布每月有90%的应用被下载。但每个人都知道,只有那些出现在排行榜上或被苹果高亮的应用才能够得到真正的利益。

因此,你对于苹果对你的新应用所做的工作感到满意吗?

但是,许多开发者忘记了苹果应用商店仅仅是一个商店,他不是一个市场营销或广告公司。是的,苹果推出了新版的应用商店,但就像其它在线零售商一样,苹果并不会让开发者控制应用发现机制。

为什么苹果不让开发人员好过一点呢?更快的审查过程有助于开发者更快的发布自己的应用,一个更好的应用管理或分析接口将会对此有帮助。将游戏应用与非游戏应用分开将会给其它20余种分类带来帮助。这些都将是不错的改进,但没有带来显著变化。

排行榜是用户发现新应用的首要途径。这也就是为什么许多开发人员尝试各种营销技巧,千方百计的想要进入排行榜。取消排行榜将会迫使用户自主发现应用,这将会给开发者更多机会。但很不幸,目前这似乎不太可能发生。

用户角度

大多数智能机用户都会在他们的手机上安装超过75款应用,但经常使用的只有一小部分。大多数应用将会被遗忘并在稍后被卸载,这就是事实。

对于用户来说,要发现一款好的应用并不容易。但是,他们并不会去阅读关于应用的评论,比较不同的应用甚至自主搜索应用。你知道,移动用户都很懒。

人们需要依靠某些可信的信息来帮助他们做决定。这也就是为什么第三方应用推荐类解决方案是如此的流行。它们会很快的替用户做决定,就像购物引擎为电子商务网站所做的那样。

但是相信第三方发现类应用或许并不是一件那么好的事情。它很难构建、交流和保持,因为它需要持续不断的努力、透明度、工程、专业知识、相关性和独立性。

苹果应用商店所做的并不够,它为每个人提供的是相同的服务。

这也就解释了为什么Facebook要开发自己的应用中心,但这远远不够。有时候你也不能相信你的朋友单方面所做的决定。要想解决这个问题似乎并不容易,而Facebook也不能很好的完成这个任务。

广告商的角度

数以百万计的用户通过广告或付费搜索发现新的应用。但是移动广告行业依然很年轻,并且移动广告对用户或广告主并不友好。横幅广告很烦人,具有侵入性且效率低下。许多时候它们看起来甚至并不像广告。

应用开发者很容易在广告网络的丛林里迷失方向,每个广告商都宣称自己拥有每周数亿的浏览量,并且拥有不同的定价结构、广告单元、追踪技术,但极少拥有商业承诺。

付费应用搜索很难,并且要想成功价格昂贵,这不仅仅是买一个广告位那么简单——尽管数以千计的开发者都是这么干的。进行高效的移动广告活动很复杂、耗时并且价格昂贵。

底线

你不能把一款应用的成功归结于某一单个因素。建立移动应用业务是很难的,因为它牵涉到一系列的因素,而很少有开发者能够真正的理解和控制这些因素。

我们还处在移动应用商业的早期,对于如何让一款移动应用获得成功也没有一劳永逸的解决方法。不断的进行尝试是比追随既定方向更好的办法。

每一个人都应该学会如何在这条路上继续行进,不断的尝试、不断的失败直至最终成功。
来自: 搜狐IT
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)

    JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)

  • java将以逗号分隔的字符串转换为字符串数组/将字符串数组转化为整形数组

    将以逗号分隔的字符串转换为字符串数组; 将字符串数组转化为整形数组

  • C# 16进制字符串与byte数组互转

    【代码】C# 16进制字符串与byte数组互转。

  • 数组转为逗号分隔的字符串

    数组转为逗号分隔的字符串

  • 将逗号分隔的字符串 转换成 Byte数组,

    [code="...//将逗号分隔的字符串 转换成 Byte数组, class GetByte{ public byte[] getByte(String str){ System.out.println("getByte..."); int wn = 0; for(int ...

  • Kotlin程序将字符串转换为字符数组

    Given a string, we have to convert it into a ... 给定一个字符串,我们必须将其转换为字符数组。 Example: 例: Input: string = "IncludeHelp India Pvt Ltd" Output: char_arr = [I, n, c, l, u,...

  • c# byte数组转换为字符串

    Int16 ival = 20;... byte[] btvals = BitConverter.GetBytes(ival);  foreach(byte i in btvals)  //Console.WriteLine( i.ToString()); //10进制显示  Console.WriteLine("0x" + i.ToString("X2")); //16

  • 【各种转换】数组转换成字符串,集合转换成字符串,字符串转集合

    由于在工作中经常用到各种类型的互相转换,... String数组转换成字符串:使用 Apache Commons 组件中的 commons-lang3.jar包5. String转换成byte[]或者byte[]转换成String 1. 基本类型转字符串: 基本数据类型.t...

  • java把数组转成字符串_java 怎么把数组转成字符串

    将数组变成字符串代码如下:使用StringUtils中的join函数。org.apache.commons.lang.StringUtils;示例:StringUtils.join(null)=nullStringUtils.join([])=""StringUtils.join([null])=""StringUtils.join(["a","b",...

  • Java数组和字符串的相互转换

    Java数组和字符串的相互转换

  • 如何将Swift数组转换为字符串?

    Apple的Swift语言是否可以有一种轻松地将数组转换为字符串的内置方法,还是在对数组进行字符串化时始终必须明确? #1楼 参考:https://stackoom.com/question/1kMn3/如何将Swift数组转换为字符串 #2楼 If the array ...

  • C# 16进制与字符串、字节数组之间的转换

    目录 1、Encoding类介绍 2、几个常用转换函数介绍...4、字符串和16进制字节数组转换 5、16进制和汉字转换 1、Enconding类介绍  构造函数:Enconding()  属性:ASCII//7位表示  Default  方法:C...

  • JS数组转字符串

    本篇文章将介绍JS数组转字符串的三种方法。 文章目录一、toString()方法二、toLocalString()方法三、join() 方法 JavaScript 允许数组与字符串之间相互转换。因此提供了三种方法用来进行转换。 以下开始分别介绍...

  • C++ 用逗号分割字符串

    一,用逗号分割字符串 #include <iostream> using namespace std; int main() { std::stringstream ss(inputStr); std::string str; while (getline(ss, str, ',')) { //do something } }

  • 将字符串(16进制数据样式 以“ “为分隔符)转换成16进制的字节数组

    将字符串(16进制数据样式 以" "为分隔符)转换成16进制的字节数组 /// <summary> /// 此方法用于将字符串(16进制数据样式 以" "为分隔符)转换成16进制的字节数组 /// </summary> /// <param name=...

  • C# 16/10进制与字符串、字节数组之间的转换

    C# 16进制与字符串、字节数组之间的转换

  • 字符数组相互转换成字符串

    将字符数组转换成字符串,以逗号分割String[] ary = {"abc", "123", "45"}; 想要得到 String str="abc,123,45"; 方法1、需要引入Apache Commons组件中的个commons-lang.jar包: String str1=StringUtils.join(ary, ...

  • 数组转字符串

    数组中 toString() 方法能够把每个元素转换为字符串,然后以逗号连接输出显示。 let arr=[1,2,3]; for(let i=0;i<arr.length;i++){ console.log(arr[i].toString(),typeof arr[i].toString()); } 2....

  • vue字符串、数组之间的相互转换

    【代码】vue字符串、数组之间的相互转换。

  • 基于OpenGL的C语言的魔方项目.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得

Global site tag (gtag.js) - Google Analytics