Mobile Part of the Implementation Milestone Report - bounswe/bounswe2025group8 GitHub Wiki

Mobile Implementation

Deadline: May 13, 2025 @ 23:59

Team Process and Organization

  • Collaboration: Four mobile developers used GitHub issues and pull requests in the bounswe2025group8 repository, working in short micro-sprints with daily stand-ups via Slack.
  • Workflow: All code reviews happened through PRs on mobile/development until the deliverable was ready and merged into main

Design Decisions & Standards

Code Highlights

Major Challenge: Backend Connectivity

Our primary hurdle was connecting the Expo client to the Docker-hosted Django backend in the development stage:

  • Symptoms: “Network Error” in Expo Go; unresolved hostnames on Android emulators, unresolved localhost in IOS.
  • Solution: Pointing mobile app directly to the host devices IP address.
  • Docker Compose: Ensured backend services resolve by service name so containers can communicate directly.
  • Outcome: Stable, consistent API connectivity across all development environments.

Additional Challenges

  • Android HTTP Restriction in APK: Since Android disallows plain HTTP connections in production builds by default, we encountered a “Network Error” when accessing the backend from the APK. We resolved this by generating a prebuild and modifying the AndroidManifest to allow cleartext traffic specifically for our backend URL.
  • Dependency Installation: Resolved peer-dependency conflicts by locking package versions and using --legacy-peer-deps.
  • TypeScript Setup: Aligned VS Code to workspace TS version and restarted language services.
  • Navigation Consistency: Standardized default exports and header components to avoid crashes.

Deployment