
Micelio
An intelligent iOS mushroom identification and tracking app with ML recognition, location-based discovery, and weather-powered hunting forecasts.
Overview
Micelio (Italian for "mycelium") is a comprehensive iOS mushroom identification and tracking application that transforms mushroom foraging into a data-driven, educational experience. Built entirely with SwiftUI and featuring custom-trained Core ML models, the app addresses the complex challenge of safe mushroom identification through on-device machine learning, intelligent location tracking, and weather-based forecasting.
Unlike generic nature apps, Micelio was purpose-built for mycology enthusiasts, offering features specifically tailored to the complexity of mushroom identification, seasonal tracking, and safe foraging practices, all while maintaining complete user privacy through local-first processing and storage.
Motivation
Mushroom foraging is a rewarding but challenging activity that requires extensive knowledge, careful identification, and awareness of optimal conditions. Misidentification can be dangerous—even deadly—making reliable resources essential. Existing solutions were either too basic (simple field guides without context) or too complex (academic databases not designed for field use).
Micelio was conceived to bridge this gap by creating an app that:
- Enables safe identification: Custom ML model trained on European mushroom species with confidence-based filtering
- Tracks discoveries: GPS-tagged findings with photos, notes, and personal mushroom diaries
- Predicts optimal conditions: Weather-based calendar that forecasts favorable mushroom hunting days
- Educates users: Comprehensive catalog of 45+ species with detailed edibility, habitat, and seasonal information
- Respects privacy: Complete data ownership with local-only processing, no cloud services, and zero data collection
The goal was to create a tool that empowers both novice and experienced foragers while maintaining the highest safety and privacy standards.
System Architecture
Micelio is built on a sophisticated, maintainable iOS architecture that prioritizes performance, user experience, and data privacy:
SwiftUI Interface Layer The entire user interface leverages SwiftUI's declarative paradigm, featuring a tab-based navigation system with four main sections: interactive map, ML recognition, comprehensive catalog, and weather calendar. Custom view modifiers and styles ensure consistent, polished UI throughout the app.
Core ML Recognition Pipeline The heart of Micelio is its custom-trained mushroom classifier (
MicelioMushroomClassifier_v6), optimized for on-device inference. The pipeline includes image preprocessing, prediction confidence filtering, and intelligent matching against the catalog database. A backup MobileNetV2 model provides fallback recognition capabilities.CoreData Persistence User-generated data is stored locally using CoreData with two primary entities:
MushroomMapAnnotation(storing location, date, and mushroom information) andMushroomMapAnnotationPhoto(managing multiple photos per finding). The schema maintains referential integrity while enabling efficient queries and batch operations.Intelligent Location Services A sophisticated location manager handles real-time tracking, geofencing, and region monitoring. The system creates circular regions around saved mushroom locations, triggering notifications when users return to previously successful spots, turning past discoveries into future opportunities.
Weather-Based Forecasting The MiCalendar feature integrates weather data (temperature, humidity, precipitation, moon phases) with a configurable rule-based evaluation system. The algorithm classifies days as Excellent, Good, Fair, or Poor for mushroom hunting based on scientifically-informed criteria, helping users plan expeditions effectively.
Extension-Based Code Organization The codebase leverages over 20 Swift extensions to maintain pristine separation of concerns, covering array operations, date handling, coordinate transformations, and view modifiers. This architecture facilitates rapid feature development while preserving code quality and testability.
Key Features
Custom ML-Powered Recognition Micelio's standout feature is its custom-trained Core ML model capable of identifying European mushroom species directly on the device. The recognition system processes images through multiple stages—preprocessing, classification, confidence filtering—and matches results against the curated catalog, presenting users with ranked predictions and complete species information. The entire process happens locally, ensuring privacy and enabling offline functionality.
Interactive Mushroom Map The map interface transforms mushroom foraging into a personal discovery journal. Users can mark findings with GPS precision, attach multiple photos, add detailed notes, and build a comprehensive database of their foraging history. Color-coded annotations provide at-a-glance information about species edibility, making past successes easily identifiable for future reference.
Smart Geofencing Notifications Leveraging iOS geofencing capabilities, Micelio creates intelligent circular regions around saved mushroom locations. When users enter these areas, the app sends contextual notifications reminding them of previous findings, including the species name and discovery date. This feature transforms the entire landscape into a personalized mushroom memory map.
Comprehensive Species Catalog The app includes detailed information on 45+ European mushroom species, each with 10 high-quality photographs, scientific and common names, comprehensive descriptions, edibility classifications, habitat preferences, seasonal availability, and interesting trivia. Advanced filtering and grouping capabilities allow users to organize mushrooms by edibility, environment, or season.
Weather-Based MiCalendar The innovative calendar feature evaluates upcoming days for mushroom hunting potential using a sophisticated rule-based system. Factors like recent precipitation, temperature ranges, humidity levels, and even lunar phases are analyzed to predict favorable conditions. Users can save favorite locations, and the system provides location-specific forecasts with detailed reasoning for each day's classification.
Rich Educational Content Every mushroom in the catalog includes multiple information sections: general description, habitat and environment details, edibility information with safety notes, and fascinating trivia. This transforms Micelio from a simple identification tool into a comprehensive educational resource for mycology enthusiasts.
Technical Excellence
The project demonstrates numerous iOS development best practices:
- Protocol-Oriented Design: Extensive use of Swift protocols and enums for type-safe, flexible code architecture
- Computed Properties: Clean, expressive code with computed properties handling complex data transformations
- Custom View Modifiers: Reusable view modifiers encapsulating common styling and behavior patterns
- Memory Efficiency: Careful memory management with appropriate use of value types and weak references
- CoreLocation Mastery: Advanced geofencing, region monitoring, and background location updates
- Robust ML Integration: Sophisticated image processing pipeline with confidence thresholding and error handling
- Calendar Intelligence: Complex calendar calculations with proper timezone and localization handling
Privacy & Security
Micelio takes privacy seriously, implementing a privacy-first approach throughout:
- Zero data collection: The app collects absolutely no personal information, usage analytics, or behavioral data
- No tracking: No third-party SDKs, no advertising frameworks, no user tracking of any kind
- Local-first processing: All ML recognition happens on-device; images never leave the user's phone
- Local-only storage: All mushroom findings, photos, and preferences remain exclusively on the device
- Offline capable: Core functionality works without internet connection, ensuring privacy and availability
- Complete transparency: Users maintain full control and ownership of their foraging data
Development Philosophy
The project reflects a thoughtful, user-centered approach to software development:
- Safety First: Comprehensive edibility information and safety warnings prioritize user wellbeing
- Code Quality: Extensive use of Swift's type system, clear naming conventions, and modular architecture
- Maintainability: Clean structure facilitating long-term evolution and easy addition of new species
- Educational Focus: Every feature designed to teach users about mushrooms and safe foraging practices
- Innovation: Unique combination of ML recognition, location intelligence, and weather forecasting
Impact
Micelio represents a new category of nature apps—combining artificial intelligence, location services, and environmental data to create a truly intelligent foraging companion. By making mushroom identification more accessible while maintaining uncompromising safety and privacy standards, the app empowers users to explore mycology with confidence.
The innovative weather calendar feature demonstrates how computational intelligence can predict natural phenomena, turning abstract environmental data into actionable foraging advice. The geofencing system creates a living map of personal discoveries, ensuring that every successful spot becomes a permanent part of the user's foraging knowledge.
Most importantly, the comprehensive catalog and educational content help users develop genuine mycological expertise rather than simple pattern recognition, fostering deeper appreciation for fungal ecology and biodiversity.
Future Directions
Potential enhancements under consideration include:
- Expanded species database covering additional geographic regions
- Community features for sharing safe, verified mushroom spots (with privacy controls)
- Integration with additional weather services for enhanced forecasting
- Apple Watch companion app for quick field logging
- Advanced ML model supporting more species and better accuracy
- Spore print analysis tools and additional identification aids
- Multi-language support for international foraging communities
- HealthKit integration for tracking wild food consumption
Micelio represents a complete, polished iOS application that successfully merges machine learning, location intelligence, and mycological education into a privacy-respecting tool that genuinely enhances the mushroom foraging experience.