Android Setup
Android support for expo-ai-kit is coming soon. Here's what to expect and how to prepare.
Current Status
Android support for expo-ai-kit is in active development. We're working on integrating with Android's on-device AI capabilities to provide the same seamless experience as iOS.
Development Progress
We're evaluating multiple Android AI frameworks to determine the best approach. Our goal is to provide a unified API that works identically on both platforms.
Current API calls on Android:
import { isAvailable } from 'expo-ai-kit';
// Currently returns false on Android
const available = await isAvailable();
// available === falsePlanned Features
When Android support launches, it will include all core features available on iOS:
| Feature | Status |
|---|---|
| Availability detection | Planned |
| Session management | Planned |
| Message sending | Planned |
| Streaming responses | Planned |
| Multi-turn conversations | Planned |
| System prompts | Planned |
Potential Native Frameworks
We're evaluating these Android AI frameworks:
- Gemini Nano — Google's on-device LLM, available on select Pixel and Samsung devices
- ML Kit — Google's cross-device ML framework with various on-device models
- MediaPipe LLM Inference — Supports running various LLMs on-device
- TensorFlow Lite — For running optimized models on Android devices
Device Limitations
Android on-device AI may have different hardware requirements than iOS. Initial support will likely be limited to newer flagship devices with sufficient NPU capabilities.
Preparing Your App
While waiting for Android support, you can prepare your app to handle both platforms gracefully:
import { isAvailable, createSession, sendMessage } from 'expo-ai-kit';
import { Platform } from 'react-native';
interface AIConfig {
onDeviceAvailable: boolean;
platform: 'ios' | 'android' | 'web';
fallbackEnabled: boolean;
}
export async function getAIConfig(): Promise<AIConfig> {
const onDeviceAvailable = await isAvailable();
return {
onDeviceAvailable,
platform: Platform.OS as 'ios' | 'android' | 'web',
fallbackEnabled: !onDeviceAvailable,
};
}
export async function sendAIMessage(
message: string,
options?: { preferOnDevice?: boolean }
): Promise<string> {
const config = await getAIConfig();
// Use on-device AI when available
if (config.onDeviceAvailable && options?.preferOnDevice !== false) {
const session = await createSession();
try {
const response = await sendMessage(session, { message });
return response.text;
} finally {
await session.close();
}
}
// Fallback to cloud AI
if (config.fallbackEnabled) {
return await cloudAI.complete(message);
}
throw new Error('No AI provider available');
}UI Considerations
Design your UI to handle the "not yet available" state on Android:
import { isAvailable } from 'expo-ai-kit';
import { Platform } from 'react-native';
function AIFeatureStatus() {
const [status, setStatus] = useState<'checking' | 'available' | 'unavailable'>('checking');
useEffect(() => {
isAvailable().then((available) => {
setStatus(available ? 'available' : 'unavailable');
});
}, []);
if (status === 'checking') {
return <Text>Checking AI availability...</Text>;
}
if (status === 'unavailable') {
if (Platform.OS === 'android') {
return (
<View>
<Text style={styles.title}>Coming Soon to Android</Text>
<Text style={styles.subtitle}>
On-device AI will be available in a future update.
In the meantime, you can use cloud-based features.
</Text>
<Button title="Use Cloud AI" onPress={useFallback} />
</View>
);
}
return (
<View>
<Text>On-device AI requires iPhone 15 Pro or newer.</Text>
</View>
);
}
return <AIChat />;
}Expected Requirements
While not finalized, here are the anticipated requirements for Android support:
| Requirement | Expected |
|---|---|
| Android Version | Android 14+ (API 34+) |
| Hardware | Devices with NPU/AI accelerator |
| Google Play Services | Latest version required |
| RAM | 6GB+ recommended |
These requirements are estimates based on current Android AI frameworks. Final requirements will be announced when Android support is released.
Stay Updated
To get notified when Android support is available:
- Watch the GitHub repo — github.com/expo/expo-ai-kit
- Join the discussion — Participate in GitHub Discussions to share feedback and feature requests
- Follow Expo on X — @expo for announcements
Want to Help?
We welcome community contributions! If you have experience with Android ML frameworks and want to help bring expo-ai-kit to Android, check out our contribution guidelines.
In the meantime, check out the Platform Support guide for current iOS support details.