App Store no llamará. O cómo hice mi solicitud, pero no llegará a los usuarios

Una vez pensé que para ejecutar mi aplicación es suficiente escribir código. Un poco más tarde descubrí que es bueno complementar el código con el diseño. Más tarde, me di cuenta de que era necesario buscar una audiencia y promocionar mi producto. Pero todo esto puede ser superfluo si no sigue las pautas. A continuación, hablaré sobre mi primera experiencia de autodesarrollo y por qué mi aplicación no verá usuarios.



Para empezar, haré una reserva de que he estado desarrollando aplicaciones durante aproximadamente cinco años y esta no es mi primera aplicación en general, sino la primera completamente independiente, en la que pasé de una idea a una implementación. Resultó que el año pasado no escribí el código en absoluto, sino que era gerente de producto. Me pareció que nunca volvería a escribir código, que era demasiado aburrido. Pero nunca comenzó a romperse en seis meses, cuando me resultó interesante comprender la ciencia de datos y Python. Y finalmente se rompió en un año, cuando realmente quería hacer algo con mis manos y mi aplicación comenzó a aparecer.


La aplicación en la primera versión se llamaba TinderCall. Ayuda a escapar de citas o reuniones aburridas. Varias veces me encontré en una situación tan incómoda que fue más fácil para mí escribirle a mi amigo: "Llámame pronto" y espera. Decidí que esto podría ser un poco automatizado, y llamarme a mí mismo. También parecía una excelente manera de trabajar con CallKit y PushKit. La idea misma de la aplicación se me ocurrió al leer un blog en un instagram, en el que la autora habla sobre cómo tiene citas (un instagram también es útil). Allí, muchas chicas enfrentaron una situación similar. Un poco más tarde, la aplicación se hizo conocida como "KateCall" o "Katya, call". El nombre apareció en una conversación con una amiga que también estaba muy inspirada por la idea y dijo que generalmente le pide a Katya que haga esto: "Katya, llámame". Me parece un hermoso juego de palabras.


Entonces comencé a mirar, y lo que ya está sobre este tema. Encontramos varias aplicaciones similares. No es de extrañar, la idea yace en la superficie. Para todos ellos, estaba claro que esta era la primera aplicación de alguien. Sin diseño, y con la necesidad de mantener la aplicación abierta para que llegue la llamada. Decidí que una cosa más que hacer. Solo será más hermoso y funcional. De todos modos, quería estirar el músculo de la programación con algo.


La funcionalidad se definió lo más simple posible: la capacidad de seleccionar el nombre de la persona que llama y el tiempo después del cual se producirá la llamada. Al principio, decidí que haría el diseño yo mismo, porque es simple: el color favorito de las personas es el azul, la cuadrícula de elementos es 8, y también enseñé xCode para diseñadores. Pero cuando lo hice, me di cuenta de que sería mejor recurrir a mis colegas diseñadores.



La versión de diseño me gustó mucho más y comencé la implementación. En total, el desarrollo tomó 35 días desde la creación del proyecto hasta hacer clic en el botón Enviar. 17 commits y aproximadamente 40 horas, incluyendo escribir código, leer y combatir errores. El jueves hice el mayor número de confirmaciones.


Para aquellos que estén interesados ​​en conocer los detalles y las limitaciones de trabajar con CallKit y VoIP push, bienvenidos aquí

El código del proyecto está disponible aquí .


Con CallKit, puede hacer llamadas lo más creíbles posible.


  • utiliza la pantalla de llamada estándar
  • melodía y contactos corresponden a real
  • la llamada se muestra en el libro de llamadas.

Hay varios matices. En primer lugar, no puede transferir ninguna imagen a la pantalla de llamada estándar. En segundo lugar, la pantalla de llamada se comporta de manera diferente dependiendo de si la aplicación está abierta o no. Entonces, si la llamada está en la aplicación, luego de la respuesta, debe mostrar la pantalla de conversación usted mismo. Y si responde en una pantalla bloqueada, aparecerá una pantalla de conversación estándar. En tercer lugar, CallKit no se puede usar en China.


El segundo punto técnico está relacionado con empujar. El temporizador no me convenía, porque para ello debes mantener la aplicación constantemente abierta. Estaba pensando en el empuje local, pero no garantizan que la aplicación se active. Resultó que hay un tipo separado de empuje para VoIP. Tienen una lista de excelentes características:


  • la aplicación se inicia automáticamente en el momento de recibir el envío, incluso si se cerró.
  • No es necesario obtener el permiso del usuario para usar este tipo de inserción.
  • después de recibir el empuje es procesado inmediatamente por la aplicación.

Pero solo puede usarlos si hay funcionalidad de llamada. Resultó que no quería escribir un middleware separado para recibir este envío, y no era necesario. La biblioteca OneSignal le permite enviar cualquier tipo de envío remoto desde la aplicación a tiempo. Honestamente, no puedo imaginar una situación en la que aún se pueda necesitar el empuje de VoIP en un horario, pero existe la oportunidad de enviarlos. Para OneSignal, debe usar un certificado voip-push separado. Puedes conseguirlo en el mismo lugar de siempre.


Cuando se completó la funcionalidad principal, decidí que esto no era suficiente. Quería hacer una pantalla más comprensible con tiempo de espera de llamadas, y luego más información sobre mí y los comentarios, agregar táctica, agregar selección de voz, agregar ... Pude detenerme después de la primera revisión y decidí que conociendo la AppStore y su número de restricciones, vale la pena enviarlas la aplicación tal como está, y luego terminar las cosas agradables. Y no se pierde.



Mi solicitud fue rechazada en dos puntos: 1.1.6 Las aplicaciones que permiten llamadas telefónicas anónimas o bromas o mensajes SMS / MMS serán rechazadas (Las aplicaciones que le permiten hacer llamadas anónimas o bromas, SMS, MMS serán rechazadas), y 5.2.5 Su aplicación contiene características que imitan el comportamiento o la interfaz de llamada de iOS (la aplicación imita el mecanismo de llamada estándar). Por lo tanto, las aplicaciones existentes probablemente no usaron CallKit, no porque no lo adivinaran, sino porque era imposible.


Desafortunadamente, el diálogo con el servicio editorial no condujo a nada. Las llamadas falsas no se pueden combinar con CallKit y VoIP push de ninguna forma. Los argumentos de que esto se hizo no por diversión, sino por una causa útil, no ayudaron.


Ya planeé cómo promocionaré mi aplicación en ProductHunt y otros sitios, comenzaré a comunicarme con los usuarios y me convertiré en una verdadera startup. Pero para esto necesita recortar la funcionalidad al nivel de las aplicaciones que ya existen. Realmente no me gusta esta idea todavía, y solo estoy pensando en dejar mi código en gitHub y olvidarme de la aplicación, ya ha traído experiencia.


La próxima vez, cuando publique mis aplicaciones, definitivamente :


  1. Revisaré al menos una búsqueda en las guías de publicación en la AppStore
  2. Publicaré la aplicación lo antes posible
  3. Pensaré por qué dicha funcionalidad no está disponible en los productos existentes en el mercado, y repasaré las guías con más cuidado.
  4. No voy a bromear con Apple.

Source: https://habr.com/ru/post/es429326/


All Articles