title | description |
---|---|
Artsy Mobile Learning Resources |
Collections of further reading about iOS and, more specifically, iOS at Artsy. |
- Getting Started
- An Introduction for React Native Developers
- How to use Xcode
- Fundamentals of Objective-C
- How is Artsy's iOS App Architected?
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.
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 asArtsy
. - 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.
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.
The documentation on how to use Xcode is in the xcode.md doc.
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.
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:
- Our initial blog post on using React Native
- Our 3 year retrospective on using React Native
- A blog post on how routing works in Eigen (predates our use of React Native but the concepts are unchanged)
- The Map to Emission is a list of the different technologies Emission uses, with links to helpful PRs, blog posts, and representative code.