Skip to content

Architecture

Egor Badmaev edited this page Jan 10, 2023 · 3 revisions

The architecture of the application mainly consists of two aspects:

  • VIPER
  • Modularity

VIPER

Classic architectural pattern

As a file generator I used my scripts. Check this out, if you want

image

Modularity

The project has a modular architecture. CocoaPods is responsible for managing the modules

CocoaPods

CocoaPods was chosen for several reasons:

  • For reuse in other projects. CocoaPods will allow you to make a separate framework and put it in a private repository. Next, using CocoaPods is quite simple, you just need to correctly set the pod name and the correct specification repository or a link to a private git.
  • CocoaPods does everything by itself. For example, logins and imports. And at the same time, it correctly integrates the framework into the workspace. But this does not eliminate the need to disable the signature of the subproject with the developer's certificate.
  • Reducing build time. We created several targets for each module and when working with this module, we used only the target that was needed
  • It is used in Gazprombank
image

All modules were created via the pod lib create <Name> command.

Git Submodules

For containing modules inside one giant git repo, we used git submodules.

Check out documentation of it here