With iOS 8, Apple allowed developers to make their crazy custom Keyboard ideas real (Believe me there are lots of crazy keyboards on App Store). And actually I had my own keyboard idea and I started doing it. My keyboard app is called Caps Klavye .
In January, I finished coding and started the submit process. The process was too hard for me and Apple rejected my App 10+ times. After that painful process, they approved the app. Since there aren't so many blog post about custom keyboards on the internet, I want to write a blog post about my experience.
Read App Store Guidelines
Before making an Custom Keyboard, first you should read the App Store Guideline Extensions Section. Here is a screenshot of the section.
Actually that is all Apple wants you to do before submitting your Keyboard. I will explain some of them to make sure Apple won't reject your keyboard.
25.2 - Apps hosting extensions must provide some functionality (help screens, additional settings) or they will be rejected
Even if you don't want to add screens to the app, at least teach your users how to add your keyboard. Some users may need help to use your keyboard. Look at:
25.4 - Keyboard extensions must provide a method for progressing to the next keyboard
Just don't forget to add the little world icon :) If your keyboard can't progress the next keyboard, Apple will reject your app. Check out:
25.5 - Keyboard extensions must remain functional with no network access or they will be rejected
Apple wants us to make offline mode for every custom keyboard. Make sure your app is functional without connection. The best way to do that is storing some data in the keyboard extension and showing that data when user is offline.
25.6 - Keyboard extensions must provide Number and Decimal keyboard types as described in the App Extension Programming Guide or they will be rejected
Actually, this is an awkward request from Apple. Why every keyboard must provide number and decimal keyboard types ? In this step, you can just add numbers and decimals like this:
or even better for user experience, you can add abc keyboard like these:
In this post, I try to share some best practices for custom keyboards. If you have any experience or tips, please let me know and update this post. Write me on Twitter @ayalcinkaya_
Developing Keyboards for iOS -http://norbertlindenberg.com/2014/12/developing-keyboards-for-ios/
App Extension Programming Guide - Custom Keyboard https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html