Skip to content

Infomaniak/ios-kMail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8,571 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

Watchers

Forks

Packages

No packages published

Contributors 14

Languages