Suppose you've developed an awesome computer vision application and you want to get the word out on how your tech will solve user X's problem. You'll need to consider how to proliferate your work if you want to gather more data to improve models.
When we were developing Kindbot, we were eager to share our preliminary work and found a cannabis themed reddit community to help validate the idea and generate new ones for future improvements. Since our first deployment was on an AWS EC2 server, the natural follow up question would be: when will the mobile app be released?
This would be our first mobile app but clearly we need to meet users in the ecosystem they are comfortable computing in.
Tensorflow-for-poets walks you through building an image classifier in Android and iOS. Having built Buddy for each platform, we offer a few points for consideration:
- Android: one-time $25 licensing fee, Apple: $100 annual fee
- Android and Tensorflow work well together, for iOS, consider converting your models into CoreML
- Android Camera2 api is a bit convoluted
- Android Studio has a complicated layout; XCode GUI flat layout makes for easier navigation
- Android is well-documented
- Android code signing more manual, Apple takes care of more automatically
- Android has larger global market share of mobile devices
Probably the most important factor for us as developers of an AI application, which requires periodic model updates, is the approval process for app distribution. It took less than a day for Google Play to approve our app and it was up for distribution in a few hours. The Google Play review team scrutinizes apps more thoroughly after they have been placed in the store.
The App Store review criteria is much more subjective. Additionally, approval could take a few days or months, so it can be difficult to plan releases. This review process applies to each app update.
Overall, putting your model on a mobile platform is an excellent way to make your AI tool more accessible. The inference is done on device, so there is no need for an internet connection. Also, the mobile interface is the most intuitive for the modern consumer.
However, for AI apps, you may find the iOS approval process a hinderance for releasing updates. It may be best to hit the market with your android app first and hold off until development slows if you need to release on the App store.