Skip to content

Infomaniak/ios-kMail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9,112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📧 Infomaniak Mail for iOS

Welcome to the official repository for Infomaniak Mail, a modern and secure email client for iOS, iPadOS, and macOS (via Catalyst). 👋

Download on the App Store

📖 About Infomaniak Mail

Infomaniak Mail is part of the Infomaniak ecosystem, providing a privacy-focused 🔒, Swiss-based 🇨🇭 email solution with a beautiful native iOS experience. Built with Swift and SwiftUI, this app offers a fast, secure, and user-friendly way to manage your emails.

🏗️ Architecture

The project follows a modular architecture with clear separation of concerns:

  • Mail: Main app target containing SwiftUI views, scenes, and app lifecycle
  • MailCore: Business logic framework with API layer, state managers, and data models
  • MailCoreUI: Shared UI components and view modifiers
  • MailResources: Assets, localized strings, and resources
  • Extensions: Share extension, notification extensions, and App Intents

🛠️ Technology Stack

  • Language: Swift 5.10
  • UI Framework: SwiftUI (primary) with UIKit integration
  • Database: RealmSwift for local data persistence
  • Build System: Tuist for project generation and SPM dependency management
  • Tool Management: Mise for managing tool versions
  • Networking: Alamofire
  • Minimum iOS: 15.0+

🚀 Getting Started

Prerequisites

  1. Install Mise for tool version management:

    curl https://mise.run | sh
  2. Bootstrap the development environment:

    mise install
    eval "$(mise activate bash --shims)"
  3. Install dependencies and generate the Xcode project:

    tuist install
    tuist generate

Building and Running

Open the generated Mail.xcworkspace in Xcode and build the project, or use:

xcodebuild -scheme "Infomaniak Mail"

🧪 Testing

Before running the Unit and UI tests, you must create an Env struct/enum. Duplicate the sample file (MailTests/Env.sample.swift), rename it to Env, and complete it. You can then run the tests using Xcode or Tuist.

About

Infomaniak Mail application for iOS

Resources

License

Stars

60 stars

Watchers

5 watching

Forks

Packages

 
 
 

Contributors

Languages