As my second building exercise at Lambda School, I worked in a cross-functional team of web developers, data scientists, and iOS developers. I assumed the senior iOS developer role and led my team to create a how-to tutorial app. The app featured login and registration for both an instructor and a user. Users were able to view and bookmark their favorite tutorials while instructors could create and share new tutorials within the app. Each user would be presented with their corresponding onboarding processes upon registration. Once logged in, they were presented with a feed of tutorials sorted by the number of likes. They could view, search, and bookmark these tutorials. Once bookmarked, a tutorial was added to CoreData for offline viewing.
Creating and viewing tutorials proved challenging early on in the development process. Because there was no limit to how many steps could be associated with a tutorial, much of the view controllers for creating and viewing a tutorial had to be created programmatically. This included creating UITextFields and UIViews on the fly.
Another challenge that arose early on in the development process was the complexity involved with creating new how-to tutorials. In order to create a tutorial, an instructor had to send a POST request with a title and summary using their given instructor ID. Once they received a response from the server with the newly created tutorial ID, they had to then POST each tutorial step individually using the returned tutorial ID. This meant that to create a tutorial with three steps, the app would need to make four POST requests. To solve this problem, I used block operations.