expo-osm-sdk
Version:
OpenStreetMap component for React Native with Expo
142 lines (110 loc) • 3.29 kB
Markdown
# 📱 Expo Go vs Development Builds Guide
## 🤔 **Why doesn't expo-osm-sdk work in Expo Go?**
Unlike `react-native-maps` which is **pre-built** into Expo Go, `expo-osm-sdk` is a **custom native module** that requires compilation. Here's the difference:
### **react-native-maps (Works in Expo Go)**
- ✅ **Pre-compiled** into Expo Go app
- ✅ **Officially supported** by Expo
- ✅ **Zero setup** required
### **expo-osm-sdk (Requires Development Build)**
- ❌ **Not pre-built** into Expo Go
- ✅ **Custom native code** (Android/iOS)
- ⚠️ **Requires compilation**
## 🛠️ **How to Use expo-osm-sdk**
### **Option 1: Development Build (Recommended)**
```bash
# Install the SDK
npm install expo-osm-sdk
# Create development build
npx expo run:android
npx expo run:ios
```
### **Option 2: With Config Plugin (Easier Setup)**
1. **Install the SDK with plugin:**
```bash
npm install expo-osm-sdk
```
2. **Add plugin to app.json:**
```json
{
"expo": {
"plugins": [
"expo-osm-sdk/plugin"
]
}
}
```
3. **Build and run:**
```bash
npx expo prebuild
npx expo run:android
```
### **Option 3: EAS Build (Production)**
```bash
# Configure EAS
npx eas build:configure
# Build for testing
npx eas build --profile development
# Build for production
npx eas build --profile production
```
## 📋 **Feature Comparison**
| Feature | Expo Go | Development Build | EAS Build |
|---------|---------|-------------------|-----------|
| expo-osm-sdk | ❌ No | ✅ Yes | ✅ Yes |
| react-native-maps | ✅ Yes | ✅ Yes | ✅ Yes |
| Hot Reload | ✅ Fast | ⚠️ Slower | ❌ No |
| Setup Time | ✅ Instant | ⚠️ 5-10 mins | ⚠️ 10-20 mins |
| Custom Native Code | ❌ No | ✅ Yes | ✅ Yes |
## 🎯 **Which Option Should You Choose?**
### **For Development:**
- **Quick Testing**: Use our online demo or web version
- **Full Development**: Use development builds
### **For Production:**
- **App Store/Play Store**: Use EAS Build
- **Internal Testing**: Use development builds
## 🔮 **Future: Getting into Expo Go**
To make `expo-osm-sdk` work in Expo Go like `react-native-maps`, it would need to:
1. **Gain Popular Adoption** 📈
2. **Maintain High Quality** ✅ (Already achieved!)
3. **Get Expo Team Approval** 🤝
4. **Be Officially Adopted** 🎯
## 💡 **Pro Tips**
### **For Plugin Users:**
```json
{
"expo": {
"plugins": [
"expo-osm-sdk/plugin",
[
"expo-location",
{
"locationWhenInUsePermission": "Show current position on map."
}
]
]
}
}
```
### **For Web Development:**
```tsx
import { OSMView } from 'expo-osm-sdk';
// Works in Expo Go web version!
export default function App() {
return (
<OSMView
style={{ flex: 1 }}
initialCenter={{ latitude: 22.5726, longitude: 88.3639 }}
initialZoom={10}
/>
);
}
```
## 🚀 **Get Started**
1. **Try the Web Demo**: [GitHub Pages Demo](https://your-demo-url.github.io)
2. **Development Build**: Follow Option 1 above
3. **Easy Setup**: Use the config plugin (Option 2)
---
**Question? Issues?**
- 📖 [Documentation](../README.md)
- 🐛 [Report Issues](https://github.com/mapdevsaikat/expo-osm-sdk/issues)
- 💬 [Discussions](https://github.com/mapdevsaikat/expo-osm-sdk/discussions)