Skip to content

A modern, scalable iOS healthcare application built with SwiftUI, designed for finding and connecting with medical providers.

Notifications You must be signed in to change notification settings

simonescob/medcall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MedCall iOS App

A modern, scalable iOS healthcare application built with SwiftUI, designed for finding and connecting with medical providers.

πŸ“‹ Overview

MedCall is a feature-rich iOS application that provides users with a seamless healthcare experience, offering a curated directory of medical specialists across various categories. Users can search, filter, and directly contact healthcare providers through the app.

πŸ—οΈ Architecture

This project follows a clean, modular architecture designed for scalability, maintainability, and performance.

Core Principles

  • Separation of Concerns: Clear boundaries between UI, business logic, and data layers
  • Protocol-Based Design: Dependency injection and testability through protocols
  • MVVM Pattern: Model-View-ViewModel architecture for state management
  • Component-Based UI: Reusable SwiftUI components for consistent design

πŸ“ Project Structure

medcall/
β”œβ”€β”€ README.md
β”œβ”€β”€ structure.md
β”œβ”€β”€ App/
β”‚   └── medcallApp.swift
β”œβ”€β”€ Assets.xcassets/
β”‚   β”œβ”€β”€ Contents.json
β”‚   β”œβ”€β”€ AccentColor.colorset/
β”‚   β”‚   └── Contents.json
β”‚   └── AppIcon.appiconset/
β”‚       └── Contents.json
β”œβ”€β”€ Models/
β”‚   └── Entities/
β”‚       β”œβ”€β”€ Provider.swift
β”‚       β”œβ”€β”€ Category.swift
β”‚       └── Product.swift
β”œβ”€β”€ Protocols/
β”œβ”€β”€ Resources/
β”œβ”€β”€ Services/
β”‚   └── Network/
β”‚       β”œβ”€β”€ ProviderService.swift
β”‚       └── CategoryService.swift
β”œβ”€β”€ Tests/
β”‚   β”œβ”€β”€ Unit/
β”‚   β”‚   └── medcallTests.swift
β”‚   └── Integration/
β”‚       β”œβ”€β”€ medcallUITests.swift
β”‚       └── medcallUITestsLaunchTests.swift
β”œβ”€β”€ Utils/
β”‚   └── Extensions/
β”œβ”€β”€ ViewModels/
β”œβ”€β”€ Views/
β”‚   β”œβ”€β”€ Screens/
β”‚   β”‚   β”œβ”€β”€ ContentView.swift
β”‚   β”‚   β”œβ”€β”€ HomeView.swift
β”‚   β”‚   β”œβ”€β”€ MedicalProvidersView.swift
β”‚   β”‚   └── ProviderListView.swift
β”‚   └── Components/
β”‚       └── ProviderCard.swift
└── [Xcode project files]

πŸš€ Features

Current Features

  • Provider Directory: Browse medical providers with search and filtering capabilities
  • Category Organization: Providers organized by medical specialties
  • Direct Contact: Call healthcare providers directly from the app
  • Real-time Search: Search providers by name or specialty
  • Responsive Design: Clean, modern SwiftUI interface with gradient themes

Technical Features

  • SwiftUI Framework: Modern declarative UI framework
  • MVVM Architecture: Clean separation of concerns
  • Component-Based Design: Reusable UI components
  • Responsive Layout: Adaptive grid layouts for provider display
  • Search & Filter: Real-time provider filtering and search
  • Network Integration: RESTful API integration for provider data
  • Pagination Support: Efficient loading of large provider datasets

πŸ› οΈ Technology Stack

  • Language: Swift 5.0+
  • UI Framework: SwiftUI
  • Architecture: MVVM (Model-View-ViewModel)
  • Development Environment: Xcode 12.0+
  • Target Platform: iOS 14.0+

πŸ“± Screens

Home Screen (HomeView.swift)

  • Welcome message and app introduction
  • Healthcare-focused design
  • Navigation to provider directory
  • Clean, centered layout

Medical Providers Screen (MedicalProvidersView.swift)

  • Provider grid display with 2-column layout
  • Real-time search functionality for provider names and specialties
  • Dynamic category filtering with pagination
  • Modern gradient design with loading states
  • Provider cards with contact functionality

Provider Card Component (ProviderCard.swift)

  • Reusable component for provider display
  • Provider icon with gradient styling
  • Provider name, specialty, and direct call button
  • Consistent modern styling with shadows and gradients

🎨 Design System

Colors

  • Primary Blue: Used for accents and interactive elements
  • System Gray: Used for backgrounds and secondary text
  • White/Black: Used for primary text and card backgrounds

Typography

  • Headlines: Bold, semibold weights for titles
  • Body Text: Regular weight for descriptions
  • Interactive Elements: Medium weight for buttons and navigation

Layout

  • Grid System: 2-column provider grid for optimal viewing
  • Spacing: Consistent padding and margins throughout
  • Corner Radius: Rounded corners for modern appearance
  • Gradient Themes: Blue-to-teal gradients for modern healthcare aesthetic

πŸ”§ Development Setup

Prerequisites

  • Xcode 12.0 or later
  • iOS 14.0+ target deployment
  • Swift 5.0+ language version

Installation

  1. Clone the repository
  2. Open medcall.xcodeproj in Xcode
  3. Select the appropriate target device/simulator
  4. Build and run the application

Project Configuration

  • Bundle Identifier: com.medcall.app
  • Deployment Target: iOS 14.0
  • Swift Language Version: Swift 5

πŸ§ͺ Testing

Unit Tests

  • Located in Tests/Unit/
  • Test individual components and business logic
  • Run with Command + U in Xcode

Integration Tests

  • Located in Tests/Integration/
  • Test component interactions and UI flows
  • Include launch performance tests

πŸš€ Future Enhancements

Phase 2: Service Layer

  • Network API integration for real provider data
  • User authentication and profile management
  • Provider favorites and contact history

Phase 3: Advanced Features

  • Provider image loading from remote sources
  • User reviews and ratings system for providers
  • Appointment scheduling functionality
  • Provider availability and location services

Phase 4: Performance & Quality

  • Comprehensive test coverage
  • Performance monitoring and optimization
  • Accessibility improvements
  • Localization support

πŸ“ˆ Performance Considerations

  • Lazy Loading: Provider grid uses LazyVGrid for performance
  • Pagination: Efficient loading of large provider datasets
  • Memory Management: Proper SwiftUI state management
  • Responsive Design: Adaptive layouts for different screen sizes
  • Network Caching: Optimized API calls with error handling

πŸ”’ Security

  • Input Validation: Proper validation for user inputs
  • Secure Storage: Foundation for secure data storage
  • Network Security: Prepared for secure API communication

🀝 Contributing

Code Organization

  • Follow the established folder structure
  • Maintain separation of concerns
  • Add appropriate documentation for new features
  • Include unit tests for new functionality

Naming Conventions

  • Files: PascalCase for types, camelCase for instances
  • Folders: PascalCase for directory names
  • Constants: UpperCamelCase for constants and enums

πŸ“„ License

This project is developed for educational and demonstration purposes.

πŸ“ž Support

For questions or issues related to this project, please refer to the project documentation or create an issue in the project repository.


Built with ❀️ using SwiftUI and modern iOS development practices.

About

A modern, scalable iOS healthcare application built with SwiftUI, designed for finding and connecting with medical providers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages