Skip to content

4.0.0

Latest

Choose a tag to compare

@nexron171 nexron171 released this 04 May 20:18

Improve logs UI and refactor architecture for better maintainability

UI Improvements

  • Add collapsible logs panel with Xcode-style chevron toggle button
  • Remove rounded corners from individual log entries for cleaner appearance
  • Add clear logs button with red styling to distinguish destructive action
  • Set logs panel to be hidden by default to save screen space
  • Implement smooth collapse animation using height transitions instead of slide effects
  • Reorganize log controls into compact header with copy/clear buttons only when expanded
  • Improve log entry styling with better padding and spacing

Architecture Refactoring

  • Extract MapSceneCoordinator for better separation of map-related logic
  • Create DeviceLocationRunning protocol to abstract device communication
  • Add SavedLocationsStore for persistent location management
  • Introduce AppPlatform and AppStorageKey enums for type safety
  • Split iOS device discovery into dedicated IOSUSBDeviceDiscovery service
  • Add SimulatorDiscovery service for cleaner simulator management
  • Create ProcessRunner utility for consistent command execution
  • Add CoordinateParsing utilities for location data handling
  • Extract SimVirtualLocationAlertModifier for reusable alert presentation

Code Quality Improvements

  • Replace magic strings with typed constants in AppStorageKey
  • Improve error handling with structured approach
  • Add proper async/await patterns for device discovery
  • Enhanced logging with structured message formatting
  • Better memory management with weak references

The logs panel now behaves like Xcode's console - collapsible, clean,
and non-intrusive while providing full logging functionality. The
architecture is now more modular and testable.