Android Setup

Android support for expo-ai-kit is coming soon. Here's what to expect and how to prepare.

Android Beta

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 === false

Planned Features

When Android support launches, it will include all core features available on iOS:

FeatureStatus
Availability detectionPlanned
Session managementPlanned
Message sendingPlanned
Streaming responsesPlanned
Multi-turn conversationsPlanned
System promptsPlanned

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:

hooks/useAI.tstypescript
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:

components/AIFeature.tsxtypescript
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:

RequirementExpected
Android VersionAndroid 14+ (API 34+)
HardwareDevices with NPU/AI accelerator
Google Play ServicesLatest version required
RAM6GB+ 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.