As the Artsy iOS app grew larger, we started hitting pain
points:
- We want to support other future platforms such as Android without creating more teams.
- We want different business teams to work on the app without disrupting each other.
- We want our architecture to evolve in order to increase programmer efficiency.
It took us about a year to start resolving these issues.
Ideally, we wanted to find a solution to our architectural issues that would also improve the user
experience. Notably we wanted more efficient networking, due to mobile device constraints.
It would have been an easy leap to start using Swift and, as a matter of fact, we do use Swift in parts of
our flagship application and entirely in 2 other apps.
However, while Swift is a great language, it’s also just that: another language. It does not do much in terms of new
paradigms that solved our architectural needs, it does not help in terms of cross-platform - as most of our code is
building views and thus very framework specific, and it did not really offer anything in terms of more efficient network
data fetching.
We’ve seen that the web teams integrate React in their projects with really great results. We’ve been
paying attention to React Native since it came out; the solutions provided
by the React ecosystem ticked all of our boxes.
Six months ago we took the plunge, and last month we formalized that this is the direction we want to go.
Read on →