Understanding the technical decisions
In this section, we're going to answer the following questions regarding the project:
- What's our architecture of choice for Dogify?
- Which pieces will we be sharing between the Android and iOS apps?
- What libraries will we be using?
Architecture
Let's address the first question. As we discussed in Chapter 1, The Battle Between Native, Cross-Platform, and Multiplatform, the purpose of a multiplatform application is to share business, non-UI, or non-platform-specific logic between the different platforms. To make this happen, we need an architecture where the layers facilitate this; that is, where it's easy to divide non-UI layers from the UI layers, essentially.
Luckily, clean architecture suits this well, and we'll be implementing one version of it. You can read more about Uncle Bob's Clean Architecture here: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html.
...