This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.

Overview

iOS Viper Architecture: Sample App

Mindorks Mindorks Community

This repository contains a detailed sample app that implements VIPER architecture using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.



VIPER Architecture Blueprint

Blueprint

Project Structure

Structure

Read the below listed article. It describe the VIPER concepts and the Project structure.

Building iOS App With VIPER Architecture

Just fork, clone, build, run and learn VIPER architecture for IOS.

git clone https://github.com/MindorksOpenSource/iOS-Viper-Architecture.git
cd iOS-Viper-Architecture
pod install
open iOS-Viper-Architecture.xcworkspace

License

   Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Contributing to iOS Viper Architecture

Just make pull request. You are in!

You might also like...
Example of Clean Architecture of iOS app using RxSwift
Example of Clean Architecture of iOS app using RxSwift

Clean architecture with RxSwift Contributions are welcome and highly appreciated!! You can do this by: opening an issue to discuss the current solutio

Sample applications of iOS Design patterns written using swift.

ios-design-patterns This repo contains all my Sample applications of iOS Design patterns written using swift. Link for my Design patterns Blog : https

This is an example of clean architecture and MVVM pattern written in swift

Swift Clean Architecture MVVM This is an example of clean architecture and MVVM pattern written in swift First of all thanks to all of those who made

Reactant is a reactive architecture for iOS

Reactant Reactant is a foundation for rapid and safe iOS development. It allows you to cut down your development costs by improving reusability, testa

YARCH iOS Architecture
YARCH iOS Architecture

YARCH is an architecture pattern developed primarly for iOS applications. You can ask any questions in our telegram channel. Russian version of the re

Clean Actor Model Architecture

CAMA Eonil, 2021. CAMA is short for "Clean Actor Model Architecture". As like it says, its CA(Clean Architecture) + AM(Actor model). AM here means AM

Stateful view controller containment for iOS and tvOS
Stateful view controller containment for iOS and tvOS

StateViewController When creating rich view controllers, a single view controller class is often tasked with managing the appearance of many other vie

A holistic approach to iOS development, inspired by Redux and MVVM
A holistic approach to iOS development, inspired by Redux and MVVM

Tempura is a holistic approach to iOS development, it borrows concepts from Redux (through Katana) and MVVM. 🎯 Installation Requirements CocoaPods Sw

Test task application based on Swift using CoreData, Alamofire, AlamofireImage and CocoaPods
Test task application based on Swift using CoreData, Alamofire, AlamofireImage and CocoaPods

iTunes Search Test task application based on Swift using CoreData, Alamofire, AlamofireImage and CocoaPods Features 🔍 Searching music albums by name

A sample app that implements MVVM architecture using Swift, ViewModel, Alamofire
A sample app that implements MVVM architecture using Swift, ViewModel, Alamofire

MVVM Architecture Android: Template This repository contains a sample app that implements MVVM architecture using Swift, ViewModel, Alamofire, and etc

AlamofireImage is an image component library for Alamofire

AlamofireImage AlamofireImage is an image component library for Alamofire. Features Image Response Serializers UIImage Extensions for Inflation / Scal

A framework that provides CurtainController. CurtainController is a container view controller that implements a content-curtain interface. You can find a similar implementation in applications like Apple Maps, Find My, Stocks, etc. Someone calls it MoneySafe - Application for tracking income and expenses and analyzing expenses. VIPER architecture, CoreData, Charts
MoneySafe - Application for tracking income and expenses and analyzing expenses. VIPER architecture, CoreData, Charts

💸 MoneySafe 💸 Application for tracking income and expenses and analyzing expen

Swift-VIPER-Module - Xcode template for VIPER Architecture written in Swift 4
Swift-VIPER-Module - Xcode template for VIPER Architecture written in Swift 4

⚠️ Deprecated ⚠️ This library is deprecated. When you decide to use VIPER architecture in your project, it is very tired create new modules, because y

Challenge-viper-finance - Project for VIPER Architecture Dev Sprints on Devpass
Challenge-viper-finance - Project for VIPER Architecture Dev Sprints on Devpass

VIPER Challenge - Finance App 💰 Neste desafio, aplicaremos conceitos da arquite

SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.

Articles related to this project Clean Architecture for SwiftUI Programmatic navigation in SwiftUI project Separation of Concerns in Software Design C

SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.

Articles related to this project Clean Architecture for SwiftUI Programmatic navigation in SwiftUI project Separation of Concerns in Software Design C

Sample project using VIPER architecture

VIPER-Persons Small project using a master and detail view Demonstrates the use of the following features: VIPER architecture (https://mutualmobile.co

This repo contains swift collection of gui, games, menu, animations, music, payment, etc... for iOS, macOS, watchOS and tvOS
This repo contains swift collection of gui, games, menu, animations, music, payment, etc... for iOS, macOS, watchOS and tvOS

Swift-Collections About: This repo contains a collection of projects built using swift and objective-c Contains projects for macOS iOS iPad watchOS tv

Comments
  • App crash when opening

    App crash when opening

    Hi, I found the crash when I build up the project. It seems a crash when PKHUD library.

    System: cocoapod: 1.3.1 Xcode 9.0, iOS 11.0

    2017-09-29 17:14:48.651575+0800 iOS-Viper-Architecture[12446:199585] *** Assertion failure in -[PKHUD.FrameView _addSubview:positioned:relativeTo:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3694.4.18/UIVisualEffectView.m:1464
    2017-09-29 17:14:48.659722+0800 iOS-Viper-Architecture[12446:199585] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<PKHUD.PKHUDProgressView: 0x7fc55a0103f0; frame = (0 0; 156 156); clipsToBounds = YES; alpha = 0.85; layer = <CALayer: 0x60c0000302a0>> has been added as a subview to <PKHUD.FrameView: 0x7fc55a00dea0; baseClass = UIVisualEffectView; frame = (0 0; 156 156); clipsToBounds = YES; autoresize = LM+RM+TM+BM; layer = <CALayer: 0x600000028b80>>. Do not add subviews directly to the visual effect view itself, instead add them to the -contentView.'
    *** First throw call stack:
    (
    	0   CoreFoundation                      0x000000011400a1cb __exceptionPreprocess + 171
    	1   libobjc.A.dylib                     0x00000001100c7f41 objc_exception_throw + 48
    	2   CoreFoundation                      0x000000011400f362 +[NSException raise:format:arguments:] + 98
    	3   Foundation                          0x000000010fb6c089 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193
    	4   UIKit                               0x00000001111cb43f -[UIVisualEffectView _addSubview:positioned:relativeTo:] + 379
    	5   PKHUD                               0x000000010fa495a6 _T05PKHUD9FrameViewC7contentSo6UIViewCfs + 518
    	6   PKHUD                               0x000000010fa5052c _T05PKHUDAAC11contentViewSo6UIViewCfs + 300
    	7   PKHUD                               0x000000010fa4b964 _T05PKHUD3HUDC4showyAA14HUDContentTypeO_So6UIViewCSg6onViewtFZ + 484
    	8   iOS-Viper-Architecture              0x000000010f401df0 _T022iOS_Viper_Architecture12PostListViewC11showLoadingyyF + 112
    	9   iOS-Viper-Architecture              0x000000010f401e24 _T022iOS_Viper_Architecture12PostListViewC11showLoadingyyFTo + 36
    	10  iOS-Viper-Architecture              0x000000010f402108 _T022iOS_Viper_Architecture12PostListViewC11showLoadingyyFTD + 40
    	11  iOS-Viper-Architecture              0x000000010f4020d9 _T022iOS_Viper_Architecture12PostListViewCAA0deF8ProtocolA2aDP11showLoadingyyFTW + 9
    	12  iOS-Viper-Architecture              0x000000010f405c89 _T022iOS_Viper_Architecture17PostListPresenterC11viewDidLoadyyF + 137
    	13  iOS-Viper-Architecture              0x000000010f4066e1 _T022iOS_Viper_Architecture17PostListPresenterCAA0deF8ProtocolA2aDP11viewDidLoadyyFTW + 49
    	14  iOS-Viper-Architecture              0x000000010f4010aa _T022iOS_Viper_Architecture12PostListViewC11viewDidLoadyyF + 218
    	15  iOS-Viper-Architecture              0x000000010f401284 _T022iOS_Viper_Architecture12PostListViewC11viewDidLoadyyFTo + 36
    	16  UIKit                               0x0000000110d7bd51 -[UIViewController loadViewIfRequired] + 1235
    	17  UIKit                               0x0000000110dc34dc -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 68
    	18  UIKit                               0x0000000110dc3818 -[UINavigationController _startTransition:fromViewController:toViewController:] + 153
    	19  UIKit                               0x0000000110dc492f -[UINavigationController _startDeferredTransitionIfNeeded:] + 841
    	20  UIKit                               0x0000000110dc5b90 -[UINavigationController __viewWillLayoutSubviews] + 115
    	21  UIKit                               0x000000011101c2ae -[UILayoutContainerView layoutSubviews] + 231
    	22  UIKit                               0x0000000110cac551 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1331
    	23  QuartzCore                          0x000000011a4314ba -[CALayer layoutSublayers] + 153
    	24  QuartzCore                          0x000000011a4355a9 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 401
    	25  QuartzCore                          0x000000011a3be1cd _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 365
    	26  QuartzCore                          0x000000011a3e9ae4 _ZN2CA11Transaction6commitEv + 500
    	27  UIKit                               0x0000000110bf9706 __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 141
    	28  CoreFoundation                      0x0000000113fad20c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
    	29  CoreFoundation                      0x0000000113f91a3b __CFRunLoopDoBlocks + 203
    	30  CoreFoundation                      0x0000000113f91214 __CFRunLoopRun + 1300
    	31  CoreFoundation                      0x0000000113f90a89 CFRunLoopRunSpecific + 409
    	32  GraphicsServices                    0x0000000118ebe9c6 GSEventRunModal + 62
    	33  UIKit                               0x0000000110bddd30 UIApplicationMain + 159
    	34  iOS-Viper-Architecture              0x000000010f40ce07 main + 55
    	35  libdyld.dylib                       0x0000000115110d81 start + 1
    	36  ???                                 0x0000000000000001 0x0 + 1
    )
    libc++abi.dylib: terminating with uncaught exception of type NSException
    (lldb) 
    
    opened by allenlinli 0
Owner
MindOrks
Learn Android App Development
MindOrks
Challenge-viper-finance - Project for VIPER Architecture Dev Sprints on Devpass

VIPER Challenge - Finance App ?? Neste desafio, aplicaremos conceitos da arquite

Devpass 15 Oct 11, 2022
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.

Articles related to this project Clean Architecture for SwiftUI Programmatic navigation in SwiftUI project Separation of Concerns in Software Design C

Alexey Naumov 4k Dec 31, 2022
Sample project using VIPER architecture

VIPER-Persons Small project using a master and detail view Demonstrates the use of the following features: VIPER architecture (https://mutualmobile.co

Sebastian Wramba 43 Feb 11, 2022
Swift Interaction with VIPER Architecture

SwiftyVIPER SwiftyVIPER allows easy use of VIPER architecture throughout your iOS application. VIPER Architecture What is VIPER? Great question! VIPER

Cody Winton 121 Jan 2, 2023
Viper Framework for iOS using Swift

Write an iOS app following VIPER architecture. But in an easy way. Viper the easy way We all know Viper is cool. But we also know that it's hard to se

Ferran Abelló 504 Dec 31, 2022
Sample Code of the App Architecture Book

App Architecture iOS Application Design Patterns in Swift Welcome to the repository of the App Architecture book! This repository hosts all sample cod

objc.io 2k Dec 29, 2022
Spin aims to provide a versatile Feedback Loop implementation working with the three main reactive frameworks available in the Swift community (RxSwift, ReactiveSwift and Combine)

With the introduction of Combine and SwiftUI, we will face some transition periods in our code base. Our applications will use both Combine and a thir

Spinners 119 Dec 29, 2022
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others

ios-architecture WIP ?? ?? ?? ??️ Demystifying MVC, MVVM, VIPER, RIBs and many others A collection of simple one screen apps to showcase and discuss d

Pawel Krawiec 1.3k Jan 3, 2023
A Swift 4.2 VIPER Module Boilerplate Generator with predefined functions and a BaseViewProtocol.

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Are you new to VIPER Design Pattern? Want

Mohamad Kaakati 68 Sep 29, 2022
Techcareer.net Bootcamp graduation project written with VIPER, highly inspired by Getir

götür Techcareer.net iOS Bootcamp'i bitirme projesi, Getir'den yüksek miktarda i

Kemal Sanlı 9 Dec 3, 2022