Enjoyed the post! But I'm also a developer and have some familiarity with XCode. Can you chat a bit about where XCode fits into your current workflow? How do you know when to go from sketches/Photoshop/Sketch to XCode?
Hi Kelly, thanks for asking.
I like to approach Xcode the same way I would approach HTML/CSS/Angular. Where does it fit? Personally, everywhere.
Nowadays, visual design/visual prototyping only represents about 10-25% of a project. I don't do sketching, I like to feel the final product as soon as I can. The rest of the time has to be spent implementing the styling, animations, functions on the actual product.
A new project always starts on Sketch with a bunch of key screens, which usually lasts a few hours. Next is 15 mins in Flinto until the flow feels natural. Then implementation time: assets and basic Storyboard flow, UI implementation per screen. James, the developer would start researching on the more technical aspects (should we Parse or Firebase, use basic animations or UIKit dynamics, etc), pushing the limits of what's feasible while I adjust the design based on those constraints. We then spread the workload based on what's more design-oriented and what's more advanced. But we treat each other like builders rather than being limited to our key roles. We want to complete features by ourselves and support our code rather than just build half-way and expect the other to do the rest. Sometimes, James want to help with design/animations as part of his learning experience so I let him. We mostly share the same taste for design.
In the past, I used to design something and wait 3-6 months before seeing that design come alive. I hated it. By that time, my mind is already thinking about something else, so it's much harder to come back and iterate as I should have. You can't iterate on something static and that hasn't been used. No feedback, no insight. So I want to solve that by participating as much as I can in the development process, helping on the things that most developers hate and that I love such as styling, animating, testing, debugging and distributing. The holistic approach.
In 2014, I would like to dedicate most of my time building iOS Apps rather than Web apps since that's where all the people are and where they're active at any time during the day. It's also an order of magnitude more powerful than the Web, with all the sensors, gestures and built-in technologies. I can't be more excited.
Thanks! This is great!
+1; another excellent post by Meng.
Thanks Nikhil, I'm eager to see how designers use Xcode. :)
As a full time iOS developer, I can't stress how useful in general it is for designers to have an understanding of the tools necessary to build apps.
I've yet to work with one, as usually the iOS team is too small to even have its own full-time designer where I work, so a lot of the time I work with Reveal (I'm even quoted on their front page saying I do this) to rapidly change things. But having a designer use the excellent visual tools for us would be a large productivity gain by skipping the Photoshop -> Export for Dev -> Edit & Deploy -> Show & Repeat loop.
Keep up the informative posts Meng. You're doing a great job.
May I just say that your project CocoaPods (http://cocoapods.org) has been invaluable to all our projects! Canvas wouldn't exist without it. It strips away all the dependency issues and lets us focus on the few lines of codes that are typically needed to implement a 3rd party library. Sometimes, it's just magical.
I haven't tried Reveal yet, but I'll definitely give it a go. Thanks again for everything and for supporting the community! :)
Another great article! As a developers, I’ve really been enjoying seeing Xcode through a designers perspective. It’s interesting that designers love storyboards while developers are less than enthusiastic about them. I’ve found them fragile due to using an identifier string and
performSegueWithIdentifier:sender:often ends up rather large.
That said, I do think visual tools are becoming more important because it allows designers to participate in the actual building of the app. Freedom to experiment with the actual app (as opposed to mockups) can inspire new ideas and help fix usability issues early in the process.
We learned to work around those issues pretty easily. Once we got past the Storyboard git conflicts and how to work with segues, things went pretty smoothly. Sure, one must learn how to use git, but I think most designers with some frontend experience have. Xcode 5 really made it much easier to work with Storyboard, adding many more options to styling and auto layouts. iOS 7 also allows a much simpler visual language, so you don't really need to depend too much on code to pull complex UI. The objects that come out of the box are already highly customizable in term of tint, size, images, etc.
I definitely agree that having more designers working with the actual product will lead to better understanding of the technologies and work in a more iterative fashion, rather than waiting for huge blocks of releases. In fact, when we worked together, it made so much sense that James didn't have to do the assets, typography tweaks, pixel perfection or animations. He likes to spend some time on them, but not the same amount of time I would have the patience for. We came up with many ideas during implementation and after feedback. And we didn't have to wait weeks to see any of those features come to life. :)
Great article. Thanks.