Skip to content

alimadhoun/NoteManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NoteManager

An iOS notes app built with Swift and UIKit, following Clean Architecture principles.

✨ Features

  • Create, edit, and delete notes
  • Real-time search by title/content
  • Local storage via Core Data
  • MVVM + Combine for reactive UI
  • Clean, modern UIKit interface

🧱 Architecture

Follows Clean Architecture:

  • Presentation: UIKit views, view models (MVVM)
  • Domain: Use cases, entities, repositories
  • Data: Core Data + mockable sources

πŸ› οΈ Tech Stack

  • Swift 5, UIKit, Combine
  • Core Data (persistence)
  • Manual DI
  • XCTest (unit testing)

πŸš€ Getting Started

  1. Clone repo
    git clone https://github.com/alimadhoun/NoteManager.git
  2. Open project
    open NoteManager.xcodeproj
  3. Run the app
    Cmd + R

πŸ“‚ Project Structure

NoteManager/
β”œβ”€β”€ Presentation/
β”‚   β”œβ”€β”€ Views/
β”‚   β”‚   β”œβ”€β”€ NotesViewController.swift
β”‚   β”‚   └── NoteTableViewCell.swift
β”‚   └── ViewModels/
β”‚       └── NotesViewModel.swift
β”œβ”€β”€ Domain/
β”‚   β”œβ”€β”€ Entities/
β”‚   β”‚   β”œβ”€β”€ NoteModel.swift
β”‚   β”‚   β”œβ”€β”€ NoteEntity+CoreDataClass.swift
β”‚   β”‚   β”œβ”€β”€ NoteEntity+CoreDataProperties.swift
β”‚   β”‚   └── NoteEntity+Mapping.swift
β”‚   β”œβ”€β”€ Repositories/
β”‚   β”‚   └── NotesRepository.swift
β”‚   └── UseCases/
β”‚       └── NotesUseCase.swift
β”œβ”€β”€ Data/
β”‚   β”œβ”€β”€ DateSources/
β”‚   β”‚   β”œβ”€β”€ CoreDataNotesDataSource.swift
β”‚   β”‚   └── MockDataNotesDataSource.swift
β”‚   └── Repositories/
β”‚       └── NotesRepositoryImp.swift
β”œβ”€β”€ CoreData/
β”‚   β”œβ”€β”€ CoreDataStack.swift
β”‚   └── NotesModel.xcdatamodeld/
β”œβ”€β”€ Core/
β”‚   └── Extensions/
β”‚       └── Date+Extension.swift
└── Delegates/
    β”œβ”€β”€ AppDelegate.swift
    └── SceneDelegate.swift

πŸ§ͺ Tests

Run unit tests with Cmd + U or:

xcodebuild test -project NoteManager.xcodeproj -scheme NoteManager

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages