Skip to content

Latest commit

 

History

History
80 lines (56 loc) · 4.2 KB

README.md

File metadata and controls

80 lines (56 loc) · 4.2 KB
title description
Artsy Mobile Learning Resources
Collections of further reading about iOS and, more specifically, iOS at Artsy.

Don't forget to check out the Mobile Practice for less technical, more organizational resources.

Materials for the iOS Learning Group (conducted mid-2019 at Artsy) can be found here.

Getting Started

There are three distinct ways of developing iOS software at Artsy:

  • Writing React Native components in Emission (setup instructions in Readme)
  • Writing Objective-C and Swift in Eigen (setup instructions in Readme), sometimes importing React Native components from Emission (as Objective-C ARComponentController subclasses).
  • Developing React Native and Objective-C and Swift using Emission and Eigen linked together, at the same time. Instructions are in the Eigen docs folder

A few important things to know:

  • Development and beta builds of the app appear on your homescreen as Δrtsy. App Store builds appear as Artsy.
  • The specific version of the app you have installed is on the debug menu of the app (shake your device).
  • The bottom tab bar uses a purple top border while on staging, and a black top border on production.

An Introduction for React Native Developers

React Native developers are really common at Artsy; any engineer who writes React can write React Native, and therefore, can contribute to our iOS software. But for some tasks, React Native alone is not enough – you need some native development skills. This section highlights some of the ways that our React Native and native (Objective-C) code interoperate.

The best resource to learn about the fundamentals of Artsy's app's interop is this blog post. The Map to Emission also contains an interop section that links to further reading.

How to use Xcode

The documentation on how to use Xcode is in the xcode.md doc.

How to Find the Code

Say you have some piece of the app and you're looking for the code that backs that UI. How do you do it? It can be a little disorienting, but instructions are here.

Fundamentals of Objective-C

How is Artsy's iOS App Architected?

Artsy's app is split across Emission (React Native components, some backed by Objective-C) and Eigen (Swift and Objective-C). Eigen depends on Emission. You can think of Emission as a component library, and Eigen routes between the components.

Here are some further readings you can do to learn more about why we made these decisions: