Skip to content

SimonGetTrick/iScanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IScanner - Project Overview

MVP to demonstrate MVVM pattern UI/UX solution for technical interview (the app helps to use iPhone as a mobile photo scanner)

Project Structure

├── Models
│   ├── HistoryListItem.swift
│
├── Services
│   ├── ImageRecognitionManager.swift
│   ├── ImageManager.swift
│   ├── StorageService.swift
│   ├── ImageManagerProtocol.swift
│   ├── StorageServiceProtocol.swift
│
├── Views
│   ├── DetailListItemView.swift
│   ├── ListItemViewCell.swift
│   ├── HistoryListView.swift
│
├── ViewModels
│   ├── DetailListItemViewModel.swift
│   ├── ListItemViewCellViewModel.swift
│   ├── HistoryListViewModel.swift
│
├── Supporting Files
│   ├── IScannerApp.swift
│   ├── Assets.xcassets
│
├── Core Data Model
│   ├── IScanner.xcdatamodeld
│
├── Other Files
│   ├── UserData.swift
│   ├── Preview Content

Architecture Overview

The IScanner project follows a Model-View-ViewModel (MVVM) architecture with clear separation of concerns. Here's an overview of the major components:

  • Models: Contains the data models used within the app. For example, HistoryListItem.swift represents individual items in the history list.
  • ViewModels: Contains the logic to bind the data models to the views. Each ViewModel is responsible for providing data to the associated View and handling any business logic.
  • Views: Contains the UI components of the app, such as HistoryListView.swift and DetailListItemView.swift, which display the data provided by the ViewModels.
  • Services: Contains the business logic and operations that interact with external data sources. For example, ImageRecognitionManager.swift handles image-related tasks, and StorageService.swift deals with data persistence.
  • Supporting Files: Contains project-level configurations and resources, such as IScannerApp.swift, which is the entry point of the application, and Assets.xcassets for storing assets like images.

The app utilizes Core Data for local data persistence, with the IScanner.xcdatamodeld file defining the Core Data model.

Third-Party Tools/Libraries Used

Only standart frameorks from aple have been used.

Future Considerations

  • Implementing additional unit tests for Services and ViewModels.
  • Integrating more advanced features such as API and syncing with server.
  • Optimize filtering using a database e.g. Realm is better than CoreData.
  • Store pdf generation and image recognition data with progres indication .
  • Improve UI/UX with Figma and designer collaboration

About

MVP to demonstrate MVVM pattern UI/UX solution for technical interview (the app helps to use iPhone as a mobile photo scanner)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages