A year ago, I was contacted with an unusual request: How can users with iPhone participate in WebRTC video conferencing?
All other browsers on the desktop already supported WebRTC, and Safari on Mac needed a plugin for it. But Mobile Safari never supported Flash or any other plugins. But I knew how to accomplish this, and this resulted in the development of the Klickerr.com app.
Since Klickerr.com launched today, I'd like to tell you something about it. Besides the question of how I solved the riddle, you might be like offering coaching services for payment to an international audience. Or you may be interested in learning new skills from international experts.
On Klickerr experts in a wide range of topics, their services offer video conferencing. Experts can offer their services in all languages they can talk about. They can specify a subject, a duration between 5 and 90 minutes and a price between $ 5 and $ 1
Do you want someone to criticize your yoga positions or you need market advice. Be that you want to understand some area of physics or deepen your programming skills. Klickerr wants you covered … when enough experts have listed their services. Of course, I was the first to add something to the technology – Apps section.
As a service provider – I prefer the term "expert" – you can specify when you will be available to be booked. Clients send a request for a particular service and time. If the supplier accepts, the customer must pay in advance for the service. Then all that remains for both parties is to meet in a private chat room and start the session when the scheduled time comes.
As an expert, you'll probably have the session on Mac and Chrome because you have a built-in camera and the ability to share the screen.
WebRTC on iOS
As a new launch, Klickerr had its platform primarily on the web. As mentioned earlier, most desktop browsers already support WebRTC native or via plugin. But how did we get iOS to play with it?
The answer is a combination of universal links and an iOS WebRTC SDK. Users can make the entire session from Mobile Safari, but when it comes to starting the video conference, the link leads to another subdomain set up in the site's app association file as representative of the iOS app.
The process is explained thoroughly by this discussion I gave in 2015. At this point, my experience was with the integration of the prod.ly website and the app. But after investigating this a year earlier, the basis for the approach I suggested was Klickerr.
Pressing the session link opens the app you have installed before hand. If you have not installed it yet, the universal link will open from the web server and you will find a smart app banner and instructions on how to install the iOS app. The universal link contains all information to be handed over to the video conference of the iOS app.
From WWDC 2017, we know that a form of WebRTC support comes to Mobile Safari, but the current solution through app makes Klickerr available to everyone on iPhones and iPads right now.
Some Mild App Review Trouble
The app does nothing if you do not open it via universal link. So we only show a label that no session is currently active and that the user should go to klickerr.com to start one. I had a simple openURL to leave the app and go into Mobile Safari.
App Review did not like it and referred to "Section 4 – Design preamble" from the App Review Guidelines.
We noticed that the user has been taken to Safari to log in or sign up for an account that gives a poor user experience.
They provided us with this advice:
To resolve this issue, please refer your app to enable users to sign in or sign up for an account in the app.
We recommend that you implement the Safari View Controller API to display web content in your app. Safari View Controller allows viewing a URL and inspection of the certificate from a built-in browser in an app so customers can verify the URL and SSL certificate to confirm that they enter their credentials into a legitimate page.
openURL was easily replaced with a Safari View Controller. After I submitted this update, version 1.0 passed and was approved.
Some time passed, and we made some user interface improvements around the app. This update was rejected for another reason, and refers to "Section 4.2 – Design: Minimum Functionality".
Your app has a limited user experience, as it is not sufficiently different from a mobile browsing experience. As such, the experience it gives, similar to the overall experience of using Safari. Including iOS features like push notifications, Core Location and Sharing do not provide a robust enough experience to be suitable for the App Store.
One more occasion I had emphasized that Mobile Safari was unable to WebRTC and therefore the app provided functionality as a website could not on iOS.
I could not believe Apple would not understand this distinction. I even offered to remove the link to Klickerr.com or Safari View Controller because they were the only way to suppose the app was a repackaged version of the site. This went back and forth about 5 times with 2 new submissions that were also rejected for the same reasons.
I was at the end of my wits but finally gave the answer:
Please let us know if we misunderstood your app, please let us know. So we can set up a conversation to understand your app.
Three days later, I called from the United States while flying with my drone next to a wind turbine. Once I landed, I explained to the friendly appreciate why this app was necessary for the users to participate in Klicker. The worst case would be to get live with the previously approved 1.0 version, which would lack the improvements I had made, but would technically be functional.
After some explanation, prayer and a little gentle begging, reviewers agree to give us a one-time exception. We will get the update approved, provided that the next update will contain functionality so that users can launch video sessions from the app.
App Review is Also Human
The learning from this episode was this:
- If you try something new where you do not know that Apple will approve it, you must create a minimum viable first version and see if Apple approves this. You can keep it back from publishing if they fully approve it, but you get valuable insights.
- If you do not seem to come anywhere by answering messages in the Resolution Center, asks for a phone call to explain personally. Having to dedicate some time to conversation with another person may cause the appreciator to be more receptive to your explanations and special circumstances.
- reviewers have the guidelines, but have any freedom to interpret these. Sometimes you can succeed in explaining how a slightly different interpretation plays better with the rules and causes the coveted approval.
- it goes without saying that you should be polite grateful to be given a conversation and respectful. You can catch more flies with honey than you can with vinegar.
I think the idea behind this platform is great. Google tried something similar in 2013 – limited to mother tongue in a few countries – but they quit 2 years later because it did not grow at a pace they'd wanted to see. The service offered by HackHands can be seen as similar, but this service is run by clients seeking help with specific items with a kind of auction system to find a vendor and exclusively for programming topics.
The iOS app I built for Klickerr is just a small part of the entire platform. Nevertheless, I'd like to see it flourish and become the place to go for one-to-one expert advice, just knowing that it had a small role in it.
Please check out the Klickerr.com website and if you feel as if you have some coaching in you, list your services! Or maybe pass the word if this is released.
Also published on Medium.