Deliver the power of machine learning to your mobile applications.
- Upload custom models from any training environment to the dashboard
- Store and version models associated with your app
- Deliver or roll-back model versions to application environments (dev or prod)
- Update models over-the-air without resubmitting your application to the app store
- Track active devices, model installations, and other analytics
A recommended functional architecture looks something like this:
You build with Skafos as an Organization (either an individual or a team of collaborators). For a given organization, Skafos has the following components:
An Application on Skafos represents an iOS app integration. Create a new application for each new iOS app that has a unique Bundle ID.
The structure for a typical application is shown on the left and a more complex application is shown on the right:
Utilize application Environments to manage model version deployments to either:
- Dev: Use this environment when building/testing your app in Xcode (with DEBUG flag as True).
- Prod: Use this environment when testing your app in TestFlight or when it’s released to the App Store.
Learn how to set Skafos environment keys in your iOS app.
Models represent a component of your application powered by a machine learning artifact.
- Each model is a collection of model versions as they are updated over time.
- Create a new Skafos model for each discrete ML-powered feature.
- Model versions are automatically version-controlled once uploaded to the platform.
- Model versions may be assigned to environments.
Skafos provides three development tools to get started.
A Python wrapper for uploading, fetching, and listing model versions from the platform. Install the SDK from PyPI using the pip package manager:
$ pip install skafos
Follow the link in the header to get to the SDK Documentation.
An iOS framework for managing model deployments in your mobile application. Visit the Integration Guide for usage details.
A web-based user interface designed to help you do the following:
Create New App Integrations
- Start with an example app
- Bring your own; start with a custom app
Manage & Deploy Models
- Version and organize your models and applications
- Deploy or roll-back model versions to different environments
Send Background Updates
- Push an asset to iOS devices through Apple’s Prod or Dev Push Notification Service.
- Increase model adoption rate by having devices download them automatically in the background
- Notifies devices via a silent push, your users won’t see it
Learn how to enable push notification model updates for your app.
Monitor Models & Devices
- Track total installations and iOS specs (device type and iOS version) for active devices using your deployed models
- View the adoption rate of your newly deployed model versions
Review Push History
- View a delivery log of push notifications
We’ve assembled a collection of resources to help you learn and start using Skafos today.
Learn how to integrate your app with Skafos.
Using Skafos with External Platforms
- MakeML - Get up and running with a CoreML object detection model without having to write any code.
If you prefer to learn by example:
- Image Classification iOS App
- Object Detection iOS App
- Text Classification iOS App
- More Example ML Apps
- Model Training on Google Colab
- Model Training on AWS Sagemaker
- Model Training on Microsoft Azure
Read through our set of FAQs (Frequently Asked Questions).
- Visit our YouTube channel for step-by-step tutorials and other helpful content
- Check out our Blog @ Medium