Setelah saya berpikir bahwa untuk menjalankan aplikasi saya sudah cukup untuk menulis kode. Beberapa saat kemudian saya menemukan bahwa itu bagus untuk melengkapi kode dengan desain. Kemudian, saya menyadari bahwa perlu mencari audiens dan mempromosikan produk saya ke sana. Tetapi semua ini mungkin berlebihan jika Anda tidak mengikuti pedoman. Di bawah ini saya akan berbicara tentang pengalaman pengembangan diri pertama saya dan mengapa aplikasi saya tidak akan melihat pengguna.

Untuk mulai dengan, saya akan membuat reservasi bahwa saya telah mengembangkan aplikasi selama sekitar lima tahun dan ini bukan aplikasi pertama saya secara umum, tetapi yang pertama sepenuhnya independen, di mana saya beralih dari ide ke implementasi. Ternyata tahun lalu saya tidak menulis kode sama sekali, tetapi adalah seorang manajer produk. Tampaknya bagi saya bahwa saya tidak akan pernah menulis kode lagi, itu terlalu membosankan. Tapi itu tidak pernah mulai pecah dalam enam bulan, ketika itu menjadi menarik bagi saya untuk memahami ilmu data dan python. Dan akhirnya pecah dalam setahun, ketika saya benar-benar ingin melakukan sesuatu dengan tangan saya dan aplikasi saya mulai muncul.
Aplikasi dalam versi pertama disebut TinderCall. Membantu melepaskan diri dari kencan atau rapat yang membosankan. Beberapa kali saya menemukan diri saya dalam situasi yang canggung sehingga paling mudah bagi saya untuk menulis kepada teman saya: "Segera panggil saya" dan tunggu. Saya memutuskan bahwa ini bisa sedikit otomatis, dan menyebut diri saya. Itu juga tampak seperti cara yang bagus untuk bekerja dengan CallKit dan PushKit. Ide aplikasi datang kepada saya dari membaca satu blog pada sebuah instagram, di mana penulis berbicara tentang bagaimana dia berkencan (sebuah instagram juga berguna). Di sana, banyak gadis menghadapi situasi yang sama. Beberapa saat kemudian, aplikasi tersebut dikenal sebagai "KateCall" atau "Katya, panggilan." Nama itu muncul dalam percakapan dengan seorang teman yang juga sangat terinspirasi oleh gagasan itu dan mengatakan bahwa dia biasanya meminta Katya untuk melakukan ini: "Katya, panggil aku." Bagiku, itu pun kata yang indah.
Kemudian saya mulai melihat, dan apa yang sudah ada di topik ini. Menemukan beberapa aplikasi serupa. Tidak heran, idenya terletak di permukaan. Bagi mereka semua, jelas bahwa ini adalah aplikasi pertama seseorang. Tanpa desain, dan dengan kebutuhan untuk menjaga aplikasi tetap terbuka sehingga panggilan datang. Saya memutuskan untuk melakukan satu hal lagi. Hanya saja akan lebih indah dan fungsional. Lagi pula, saya ingin meregangkan otot pemrograman dengan sesuatu.
Fungsionalitas didefinisikan sesederhana mungkin: kemampuan untuk memilih nama pemanggil dan waktu setelah panggilan akan terjadi. Pada awalnya, saya memutuskan untuk membuat desain sendiri, karena sederhana: warna favorit orang adalah biru, kisi elemen adalah 8, dan saya juga mengajar xCode untuk desainer. Tetapi ketika saya melakukannya, saya menyadari bahwa saya akan lebih baik beralih ke sesama desainer.

Saya lebih menyukai versi desain, dan saya mulai implementasi. Secara total, pengembangan membutuhkan waktu 35 hari dari penciptaan proyek hingga mengklik tombol Kirim. 17 komit dan sekitar 40 jam, termasuk menulis kode, membaca dan melawan bug. Jumlah komit terbesar dibuat oleh saya pada hari Kamis.
Bagi mereka yang tertarik mempelajari detail dan batasan bekerja dengan CallKit dan VoIP push, selamat datang di siniKode proyek tersedia di sini .
Dengan CallKit, Anda dapat membuat panggilan dapat dipercaya semaksimal mungkin.
- menggunakan layar panggilan standar
- melodi dan kontak sesuai dengan yang asli
- panggilan ditampilkan di buku panggilan.
Ada beberapa nuansa. Pertama, Anda tidak dapat mentransfer gambar apa pun ke layar panggilan standar. Kedua, layar panggilan berperilaku berbeda tergantung pada apakah aplikasi terbuka atau tidak. Jadi, jika panggilan itu ada dalam aplikasi, maka setelah jawabannya Anda perlu menampilkan layar percakapan sendiri. Dan jika Anda menjawab di layar yang terkunci, layar percakapan standar akan muncul. Ketiga, CallKit tidak dapat digunakan di Cina.
Poin teknis kedua terkait dengan mendorong. Timer tidak cocok untuk saya, karena untuk itu Anda harus menjaga aplikasi tetap terbuka. Saya berpikir untuk mendorong lokal, tetapi mereka tidak menjamin bahwa aplikasi akan dibangunkan. Ternyata ada jenis dorongan untuk VoIP yang terpisah. Mereka memiliki daftar fitur hebat:
- aplikasi dimulai secara otomatis pada saat menerima dorongan, meskipun ditutup.
- Tidak perlu mendapatkan izin dari pengguna untuk menggunakan jenis dorongan ini.
- setelah menerima push segera diproses oleh aplikasi.
Tetapi Anda hanya dapat menggunakannya jika ada fungsi panggilan. Saya tidak ingin menulis middleware terpisah untuk menerima dorongan ini, ternyata, dan tidak perlu. Pustaka OneSignal memungkinkan Anda mengirim segala jenis push jarak jauh dari aplikasi sesuai jadwal. Sejujurnya, saya tidak bisa membayangkan situasi di mana push VoIP masih bisa dibutuhkan sesuai jadwal, tetapi ada peluang untuk mengirimnya. Untuk OneSignal, Anda harus menggunakan sertifikat push-voip yang terpisah. Anda bisa mendapatkannya di tempat yang sama seperti biasanya.
Ketika fungsi utama selesai, saya memutuskan bahwa ini tidak cukup. Saya ingin membuat layar yang lebih dimengerti dengan waktu tunggu panggilan, dan kemudian lebih banyak informasi tentang saya dan umpan baliknya, tambahkan taptik, tambahkan pilihan suara, tambahkan ... Saya bisa berhenti setelah revisi pertama dan memutuskan bahwa mengetahui AppStore dan jumlah batasan mereka, ada baiknya mengirim mereka. aplikasi apa adanya, lalu selesaikan hal-hal yang menyenangkan. Dan tidak hilang.

Aplikasi saya ditolak karena dua hal: 1.1.6 Aplikasi yang mengaktifkan panggilan telepon anonim atau prank atau SMS / MMS akan ditolak (Aplikasi yang memungkinkan Anda melakukan panggilan anonim atau prank, SMS, MMS akan ditolak), dan 5.2.5 Aplikasi Anda berisi fitur yang meniru antarmuka atau perilaku panggilan iOS (Aplikasi ini meniru mekanisme panggilan standar). Jadi aplikasi yang ada kemungkinan besar tidak menggunakan CallKit, bukan karena mereka tidak menebak, tetapi karena itu tidak mungkin.
Sayangnya, dialog dengan layanan penerbitan tidak menghasilkan apa-apa. Panggilan palsu tidak dapat digabungkan dengan CallKit dan push VoIP dalam bentuk apa pun. Argumen bahwa ini dilakukan bukan untuk bersenang-senang, tetapi untuk tujuan yang bermanfaat, tidak membantu.
Saya sudah merencanakan bagaimana saya akan mempromosikan aplikasi saya di ProductHunt dan situs lainnya, mulai berkomunikasi dengan pengguna, dan menjadi startup yang nyata. Tetapi untuk ini, Anda perlu memangkas fungsionalitas ke tingkat aplikasi yang sudah ada. Saya belum benar-benar menyukai gagasan ini, dan saya hanya berpikir untuk meninggalkan kode saya di gitHub dan lupa tentang aplikasi, itu sudah membawa pengalaman.
Lain kali, ketika saya menerbitkan aplikasi saya, saya pasti akan :
- Saya akan membahas paling tidak pencarian pada panduan publikasi di AppStore
- Saya akan menerbitkan aplikasi sedini mungkin
- Saya akan memikirkan mengapa fungsi seperti itu tidak tersedia di produk yang ada di pasaran, dan saya akan membahas panduan dengan lebih hati-hati.
- Saya tidak akan bercanda dengan Apple.