一旦想到运行我的应用程序,编写代码就足够了。 过了一会儿,我发现用设计补充代码是很好的。 后来,我意识到有必要寻找受众并向其推广我的产品。 但是,如果您不遵循准则,那么所有这些可能都是多余的。 下面,我将讨论我的自我开发的初体验以及为什么我的应用程序看不到用户。

首先,我会保留一个想法,即我已经开发了大约五年的应用程序,这不是我总体上的第一个应用程序,而是我从构思到实现的第一个完全独立的应用程序。 原来,去年我根本没有编写代码,但是是产品经理。 在我看来,我再也不会写代码了,那太无聊了。 但是当我对理解数据科学和python变得有趣时,它在六个月内从未中断过。 终于在一年后,当我真的想用手做些事情并且我的应用程序开始出现时,它就破裂了。
第一个版本中的应用程序称为TinderCall。 它有助于摆脱无聊的约会或会议。 几次我发现自己处在一个尴尬的境地,最容易写信给我的朋友:“尽快拨号给我”,然后等待。 我决定可以稍微自动化一点,然后打电话给我自己。 这似乎也是与CallKit和PushKit一起工作的好方法。 这个应用程序的主意来自我在instagram上阅读一个博客的过程,作者在其中谈论她约会的方式(instagram也是有用的)。 那里,许多女孩面临着类似的情况。 不久之后,该应用程序被称为“ KateCall”或“ Katya,通话”。 这个名字出现在与一个朋友的对话中,这位朋友也对此想法感到非常启发,并说她通常要求Katya这样做:“ Katya,给我打电话。” 在我看来,这是一个美丽的双关语。
然后我开始看,这个话题已经有什么了。 发现了几个类似的应用程序。 难怪,这个想法浮出水面。 对于他们所有人来说,很明显这是某人的第一个应用程序。 无需设计,并且需要保持应用程序打开才能进行调用。 我决定再做一件事。 只有它才会更加美丽和实用。 无论如何,我想用一些东西来扩展编程能力。
该功能被定义为尽可能简单:选择呼叫者姓名和呼叫发生时间的能力。 一开始,我决定自己进行设计,因为它很简单:人们最喜欢的颜色是蓝色,元素网格是8,我还为设计师教了xCode。 但是当我做到这一点时,我意识到我最好去找我的同行设计师。

我更喜欢设计版本,然后开始实施。 从创建项目到单击提交按钮,整个开发过程共耗时35天。 17次提交,大约40个小时,包括编写代码,阅读和解决bug。 我在星期四进行的提交次数最多。
对于那些有兴趣了解使用CallKit和VoIP push的细节和局限性的人,欢迎在这里项目代码可在此处获得 。
使用CallKit,您可以进行尽可能可信的通话。
- 使用标准通话画面
- 旋律和联系人对应于真实
- 该呼叫将显示在电话簿中。
有一些细微差别。 首先,您无法将任何图片传送到标准通话屏幕。 其次,呼叫屏幕的行为根据应用程序是否打开而有所不同。 因此,如果呼叫在应用程序中,则在应答之后,您需要自己显示对话屏幕。 并且,如果您在锁定屏幕上回答,则会显示标准对话屏幕。 第三,CallKit无法在中国使用。
第二个技术要点与推动有关。 计时器不适合我,因为为此您需要保持应用程序不断打开。 我当时在考虑本地推送,但是他们不保证应用程序会被唤醒。 事实证明,VoIP有另一种推送方式。 它们具有许多重要功能:
- 即使已关闭该应用程序,该应用程序也会在收到该请求时自动启动。
- 不需要获得用户许可即可使用这种类型的推送。
- 收到推送后,应用程序将立即处理该推送。
但是,只有在具有通话功能的情况下,您才能使用它们。 事实证明,我不想编写单独的中间件来接收此推送,并且也不需要这样做。 OneSignal库允许您按计划从应用程序发送任何种类的远程推送。 老实说,我无法想象仍然需要按计划进行VoIP推送的情况,但是有机会发送它们。 对于OneSignal,必须使用单独的voip-push证书。 您可以像往常一样在同一位置获得它。
当主要功能完成时,我认为这还不够。 我想制作一个更加容易理解的屏幕,其中包含呼叫等待时间,然后提供有关我和反馈的更多信息,添加语音,添加语音选择,添加...我能够在第一次修订后停下来,并决定了解AppStore及其限制数量,值得发送给他们照原样应用,然后完成令人愉快的事情。 并没有迷路。

我的应用程序有两点被拒绝: 1.1.6启用匿名或恶作剧电话或SMS / MMS消息传递的应用程序将被拒绝 (允许您进行匿名或恶作剧,SMS,MMS的应用程序 ),以及5.2.5您的应用程序包含模仿iOS调用界面或行为的功能 (应用程序模仿标准调用机制)。 因此,现有应用程序很可能不使用CallKit,不是因为他们没有猜测,而是因为这是不可能的。
不幸的是,与发布服务的对话并没有带来任何结果。 假电话不能与任何形式的CallKit和VoIP推送结合使用。 认为这样做不是出于娱乐目的,而是出于有益的理由,这一点没有帮助。
我已经计划了如何在ProductHunt和其他站点上推广我的应用程序,开始与用户沟通,并成为一个真正的初创公司。 但是为此,您需要将功能调整到已经存在的那些应用程序的级别。 我还不太喜欢这个主意,我只是想将代码留在gitHub上,而忘记了该应用程序,它已经带来了经验。
下次,当我发布我的应用程序时,我肯定会 :
- 我将至少浏览一下AppStore中的发布指南
- 我将尽早发布该应用程序
- 我会考虑为什么在市场上现有的产品中不提供这种功能,因此我将更加仔细地阅读这些指南。
- 我不会和苹果开玩笑。