I‘m in the fortunate position of having released my first iOS app today.
Background is that I’m new to developing on iOS, but had an interest in photography/video, and have spent the last six months developing an app that controls multiple cameras from multiple vendors.
It took me six months to get the app to where I needed it to be, but I submitted two days ago. Yesterday I got a rejection, with some perfectly reasonable objections:
info.plist strings for camera and microphone usage didn’t say why we needed those permissions, or the advantage to the user in granting those permissions.
The EULA wasn’t referenced in the App Description.
Subscription promotion icons didn’t adequately show the differences between the subscription levels.
None of these were hard to fix, and a couple hours fixing those resulted in me waking up this morning to find my app was approved and a couple hours after that, was available in the App Store.
I’d just like to say “THANK YOU” to the folks at Apple for making it easy to submit my app. I was fairly trepidated at the prospect of launching, but it’s been pretty seamless.
The rejection reasons were fair, and once fixed, pretty quickly resulted in the app being available.
All too often I’ve seen people whining about their experiences, and I’d just like to balance the equation with my experience, which has been very positive indeed.
6502A
Post
Replies
Boosts
Views
Activity
New member here, please be gentle :) I am getting ready for App Review for my first iOS app, and I am curious if ANY level of obfuscation is allowed? Say I had a drone controller App, I might have something like this:
struct Drone{
var name : String
var forwardVelocity : Double
var lateralVelocity : Double
var verticalVelocity : Double
var receivedSignalStrength : Int
var rssThreshhold : Int
var gpsCoordinates : Data
func reverseCourse(){
//do a 180
//...
}
}
func onUpdateReceivedSignalStength(drone:Drone){
if drone.receivedSignalStrength < drone.rssThreshhold{
drone.reverseCourse()
}
}
But I don't really want to make it easy for someone to pull the strings from the binaries and try and copy my work. I realize it's pretty much inevitable, but it seems sensible to protect my IP as much as I can. Is something like this acceptable?
struct D{ //obfuscated Drone
var parameter1 : String //name
var parameter2 : Double //forwardVelocity
var parameter3 : Double //lateralVelocity
var parameter4 : Double //verticalVelocity
var parameter5 : Int //receivedSignalStength
var parameter6 : Int //rssThreshhold
var parameter7 : Data //gpsCoordinates
func funcSeven(){
//do a 180
//...
}
}
func funcSix(d:D){ //check if signal strength requires a course reversal
if d.parameter5 < d.parameter6{ // signal strength less than threshhold
d.funcSeven() //reverse course
}
}
The comments make it clear what the similarly-named parameters are doing, and what the functions do. I fully understand that something like the below is a no-no, just writing it made my eyes bleed:
struct DDF{
var SXR : String
var KYV : Double
var GTC : Double
var DKY : Double
var ENY : Int
var WKN : Int
var DJV : Data
func BDO(){
//do a 180
//...
}
}
func PUL(KHY:DDF){
if KHY.ENY < KHY.WKN{
KHY.BDO()
}
}
Is there any level of IP protection through obscurity that is acceptable? I realize that the more genericized the variable and function names are, the harder it is to debug, but that might be an acceptable trade-off against IP protection.
To be clear, my app isn't anything to do with drones, this was just a vehicle to ask the question with. My code isn't currently at all obfuscated, everything is in clear terms, but I am wondering if I could/should obfuscate the critical parts before App Review and release?
The reason for my concern is that a key feature of the app is something very novel, and I have filed a patent application for it. The patent (if granted) won't be granted for 18-24 months, so anything I can do to protect the IP seems like the right thing to do.
As a complete newcomer to releasing Apps, I have no experience at all, so I would be grateful for any help/steers from those that do have experience in trying to protect their IP while not making life difficult for the App Review team.
Thanks in advance!
6502A