Moustachir
IT ProtocolsEngineering Protocols

Mobile Engineering Protocol

Standard operating procedures for Mobile Development at Moustachir Com

1. INTRODUCTION

This document defines the standard operating procedures for Mobile Development at Moustachir Com. It applies to all Mobile Developers (React Native, Flutter, iOS, Android), whether internal team members or external partners.

For general engineering standards (Git Flow, Testing Strategy, Code Quality), refer to the General Engineering Protocol.


2. ONBOARDING CHECKLIST

Goal: First screen running on simulator/emulator in 48 hours.

2.1 Access Provisioning

  • GitHub: Accept invite to the Organization.
  • App Store / Play Console: (If applicable) Access for app deployment.
  • Notion: Access to the Development Board.
  • Figma: Viewer access to mobile design files.

2.2 Environment Setup

For React Native

  • Node.js: Use the LTS version specified in .nvmrc.
  • Package Manager: We use pnpm.
  • React Native CLI: Install globally: npm install -g react-native-cli
  • Expo: (If using Expo) Install Expo CLI: npm install -g expo-cli
  • iOS (macOS only):
    • Install Xcode from the App Store.
    • Install CocoaPods: sudo gem install cocoapods
  • Android:
    • Install Android Studio.
    • Configure Android SDK and emulator.

For Flutter

  • Flutter SDK: Install from flutter.dev.
  • IDE: VS Code or Android Studio with Flutter/Dart plugins.
  • iOS (macOS only): Install Xcode.
  • Android: Install Android Studio and configure SDK.

2.3 Repository Setup

  1. Clone the repository: git clone <repo-url>
  2. Install dependencies:
    • React Native: pnpm install && cd ios && pod install && cd ..
    • Flutter: flutter pub get
  3. Copy .env.example to .env and populate keys.
  4. Run on simulator/emulator:
    • React Native: pnpm ios or pnpm android
    • Flutter: flutter run

3. DAILY WORKFLOW

3.1 Mobile-Specific Considerations

  • Platform Guidelines: Follow iOS Human Interface Guidelines and Android Material Design.
  • Responsive Design: Test on multiple screen sizes (phones, tablets).
  • Offline Support: Implement offline-first patterns where applicable.
  • Push Notifications: Follow the project's notification setup.

3.2 Performance

  • Image Optimization: Use optimized images and lazy loading.
  • Memory Management: Avoid memory leaks (especially in React Native).
  • Bundle Size: Monitor and minimize app bundle size.

3.3 Testing

  • Device Testing: Test on real devices, not just simulators/emulators.
  • Platform-Specific: Test platform-specific features (Face ID, Android back button, etc.).

4. DEPLOYMENT

  • iOS: Follow Apple's App Store submission guidelines.
  • Android: Follow Google Play Store submission guidelines.
  • Beta Testing: Use TestFlight (iOS) and Google Play Internal Testing (Android).

Table of contents