All Projects → ssamadgh → Modelassistant

ssamadgh / Modelassistant

Licence: mit
Elegant library to manage the interactions between view and model in Swift

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Modelassistant

MVVM-Design-Pattern-Demo
An Xcode 9 project written in Swift 4 code designed using the MVVM design pattern, truly extolling the virtues of MVVM over MVC.
Stars: ✭ 31 (+19.23%)
Mutual labels:  mvc, view, controller, model
Diamond
Diamond is a full-stack web-framework written in The D Programming Language using vibe.d
Stars: ✭ 173 (+565.38%)
Mutual labels:  controller, model, mvc, view
Ios Design Patterns
Learning ground for iOS Design Pattern included with sample projects for MVC, MVP, MVVM, and VIPER
Stars: ✭ 120 (+361.54%)
Mutual labels:  viper, mvvm, mvp, mvc
Westore
更好的小程序项目架构
Stars: ✭ 3,897 (+14888.46%)
Mutual labels:  mvc, model, mvp, mvvm
Ios Architectures
Sample app for iOS architectures
Stars: ✭ 90 (+246.15%)
Mutual labels:  viper, mvvm, mvp, mvc
Ribs
Uber's cross-platform mobile architecture framework.
Stars: ✭ 6,641 (+25442.31%)
Mutual labels:  viper, mvvm, mvp, mvc
Androidquick
做外包用的快速开发库--微信、支付宝支付(含签名,下单)、自定义View(验证码/密码,九宫格图片上传等)、换肤、图片预览、RxJava、EventBus、JetPack、CameraX、base层封装等
Stars: ✭ 565 (+2073.08%)
Mutual labels:  mvvm, mvp, mvc
Rxdatasources
UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...)
Stars: ✭ 2,784 (+10607.69%)
Mutual labels:  datasource, tableview, collectionview
Iosdesignpatternsamples
This is Github user search demo app which made by many variety of design patterns. You can compare differences in MVC, MVP, MVVM and Flux.
Stars: ✭ 622 (+2292.31%)
Mutual labels:  mvvm, mvp, mvc
Codegen
A model-view based code generator written in Java
Stars: ✭ 36 (+38.46%)
Mutual labels:  model, mvc, view
Core-iOS-Application-Architecture
Core iOS Application Architecture - The development paradigm of clean, testable code and modular iOS applications. + Xcode templates
Stars: ✭ 123 (+373.08%)
Mutual labels:  mvc, mvp, viper
php-mvc
Mini framework para aplicaciones PHP con el patrón MVC
Stars: ✭ 35 (+34.62%)
Mutual labels:  view, controller, model
mvc-tree
🌳 A chronological visualization of the family of MVC patterns.
Stars: ✭ 40 (+53.85%)
Mutual labels:  mvc, mvp, mvvm
Diffabledatasources
💾 A library for backporting UITableView/UICollectionViewDiffableDataSource.
Stars: ✭ 601 (+2211.54%)
Mutual labels:  datasource, tableview, collectionview
Swift Design Patterns
🚀 The ultimate collection of various Software Design Patterns implemented in Swift [Swift 5.0, 28 Patterns].
Stars: ✭ 85 (+226.92%)
Mutual labels:  viper, mvvm, mvc
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (+376.92%)
Mutual labels:  view, model, mvvm
Wpemerge
A modern, MVC-powered WordPress as a CMS workflow. 🚀
Stars: ✭ 348 (+1238.46%)
Mutual labels:  controller, mvc, view
Android Firebase Kotlin Java Mvp Mvc Mvvm Chat
Simple chat Application with one to one connectivity using Firebase Real time Database written in MVC,MVP and MVVM architecture to better understand the android coding patterns. Purpose of writing same application functionality with 3 different pattern is to show how single application can be developed using 3 different patterns(Mvc, Mvp, Mvvm).
Stars: ✭ 180 (+592.31%)
Mutual labels:  mvvm, mvp, mvc
Circleoffriendsdisplay
朋友圈的做法
Stars: ✭ 205 (+688.46%)
Mutual labels:  mvvm, mvc, tableview
ios-architecture-example
Architecture pattern simple examples in iOS. You can compare differences in MVC, MVP, MVVM-Delegate and MVVM-Rx for same feature
Stars: ✭ 16 (-38.46%)
Mutual labels:  mvc, mvp, mvvm

An assistant to manage the interactions between view and model

Swift 5 license MIT CocoaPods Compatible Platform codebeat badge Carthage compatible Twitter

ModelAssistant is a mediator between the view and model. This framework is tailored to work in conjunction with views that present collections of objects. These views typically expect their data source to present results as a list of sections made up of rows. ModelAssistant can efficiently analyze model objects and categorize them in sections. In addition it updates adopted view to its delegate, based on model objects changes.

Features

  • [x] Inserting / Removing / Ordering / Updating model objects
  • [x] Notifies changes to view
  • [x] Full compatible with UITableView and UICollectionView
  • [x] Supports Sections
  • [x] Supports index titles
  • [x] Compatible with Server data source
  • [x] Compatible with all kind of persistent stores
  • [x] Compatible with all design patterns
  • [x] Easy to use
  • [x] Thread safe
  • [x] Fault Ability
  • [x] Complete Documentation

What's New:

Version 1.1.3:

Now using modelAssitant is really easy with just two lines of codes, and delegates will be implement automatically to your collection view.

See Usage for new way of implementing modelAssistant.

Version 1.0.8.3:

Upgraded to Swift 5

Version 1.0.8:

  • Fault Ability: Now you can make entities in an specific range fault or fire them. For more information see Advanced Usage

Requirements

  • iOS 8.0+
  • Xcode 8.3+
  • Swift 3.1+

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate ModelAssistant into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do

    pod 'ModelAssistant'
    
end

If you are not upgraded to Swift 4.2, use the last non-swift 4.2 compatible release:

If you are using swift 4, replace pod 'ModelAssistant' with this:

pod 'ModelAssistant', '1.0.1' #Swift 4

If you are using swift 3, replace pod 'ModelAssistant' with this:

pod 'ModelAssistant', '1.0.0' #Swift 3

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate ModelAssistant into your Xcode project using Carthage, specify it in your Cartfile:

github "ssamadgh/ModelAssistant"

Run carthage update --platform iOS to build the framework and drag the built ModelAssistant.framework into your Xcode project.

Manually

If you prefer not to use any of the aforementioned dependency managers, you can integrate ModelAssistant into your project manually.

Embedded Framework

  • Open up Terminal, cd into your top-level project directory, and run the following command "if" your project is not initialized as a git repository:

    $ git init
    
  • Add ModelAssistant as a git submodule by running the following command:

    $ git submodule add https://github.com/ssamadgh/ModelAssistant.git
    
  • Open the new ModelAssistant folder, and drag the ModelAssistant.xcodeproj into the Project Navigator of your application's Xcode project.

    It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter.

  • Select the ModelAssistant.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.

  • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar.

  • In the tab bar at the top of that window, open the "General" panel.

  • Click on the + button under the "Embedded Binaries" section.

  • You will see two different ModelAssistant.xcodeproj folders each with a ModelAssistant.framework nested inside a Products folder.

    It does not matter which Products folder you choose from.

  • Select the ModelAssistant.framework.

  • And that's it!

    The ModelAssistant.framework is automagically added as a target dependency, linked framework and embedded framework in a copy files build phase which is all you need to build on the simulator and a device.

FAQ

What is the position of ModelAssistant in design patterns?

ModelAssistant is fully compatible with all kind of design patterns. It doesn't violate them, instead it finds its place and sit there! As a guide the position of ModelAssistant in some of famous design patterns is as follows:

Design Pattern ModelAssistant Position
MVC Controller
MVP Presenter
MVVM ViewModel
VIPER Presenter

Credits

ModelAssistant is owned and maintained by the Seyed Samad Gholamzadeh. You can follow me on Twitter at @ssamadgh for project updates and releases.

License

ModelAssistant is released under the MIT license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].