ONNX Runtime gives you a variety of options to add machine learning to your mobile application. This page outlines the general flow through the development process. You can also check out the tutorials in this section:
* [Build an objection detection application on iOS](./deploy-ios.md)
* [Build an image classification application on Android](./deploy-android.md)
## ONNX Runtime mobile application development flow
{:width="60%"}
* Mobile (onnxruntime-mobile-c) and full (onnxruntime-c) packages
* iOS Objective-C
* Mobile (onnxruntime-mobile-objc) and full (onnxruntime-objc) packages
The full package has the full ONNX Runtime feature set.
The mobile package has a smaller binary size but limited feature support, like a reduced set of operator implementations and no support for running ONNX models.
A [custom build](../../build/custom.md) is tailored to your model(s) and can be even smaller than the mobile package. However, using a custom build is more involved than using one of the published packages.
If the binary size of the full package is acceptable, using the full package is recommended because it is easier to use.
Otherwise, consider using the mobile package or a custom build.
To give an idea of the binary size difference between mobile and full packages:
2. Which machine learning model does my application use?
You need to understand your mobile app's scenario and get an ONNX model that is appropriate for that scenario. For example, does the app classify images, do object detection in a video stream, summarize or predict text, or do numerical prediction.
ONNX models can be obtained from the [ONNX model zoo](https://github.com/onnx/models), converted from PyTorch or TensorFlow, and many other places.
Once you have sourced or converted the model into ONNX format, it must be [converted to an ORT format model](../../reference/ort-format-models.md#convert-onnx-models-to-ort-format) in order to be used with the ONNX Runtime mobile package. This conversion is not necessary if you are using the full package.
If you are starting from scratch, bootstrap your mobile application according in your mobile framework XCode or Android Development Kit. TODO check this.
**To reduce binary size:** Use the ONNX Runtime mobile package or a custom build to reduce the binary size. The mobile package requires use of an ORT format model.