Recently, I launched my first iOS app — DIRECT SHOT — under my personal company, Conn Creative Media.
DIRECT SHOT is a camera-based productivity tool that lets you quickly capture and upload photos and videos straight to the Dropbox locations you choose. Connect to your Dropbox account and choose or create as many folder locations as you want. Photos and videos taken with DIRECT SHOT are not added to your Camera Roll, so they don’t get mixed into your personal pictures.
This app idea came from a frustration that I had (getting my images and videos into specific Dropbox locations) that did not seem to be addressed in the specific way that I wanted it to be. Looking for a new challenge, I decided it was a great opportunity for me to design and create my first iOS app.
I have friends and colleagues who have ideas for apps or products all the time, and that is a great source of pride for them. Do you want to know what I’ve learned, though? Ideas are not the hard part. Ideas are important, as you want to be able to have a product that is meaningful, useful, and hopefully delightful. But, what I have found is that delivering on that idea is the real challenge, not having the idea.
So, I thought I would share a little of the insights I learned in getting here…
Check Out DIRECT SHOT on the App Store
As a designer, I am constantly taking quick photos of sketches, post-it notes, whiteboards, napkins and other odds-and-ends that are all part of the process of crafting (what I hope will be) great designs. I want these photos to be placed into the Dropbox folder where I keep the rest of the PSDs, wireframes, research, and other work-in-progress on my designs — allowing me or my co-workers access to those ideas from any of our connected devices.
But to accomplish this, I have to:
1.) Take the picture or video with my iPhone
2.) Open the Dropbox app
3.) Navigate to my desired destination folder
4.) Press the drop-down (…) menu
5.) Select ‘Add Files’
6.) Choose ‘Photos’
7.) Select the Camera Roll
8.) Find the photo
9.) …and then upload it.
Even after that, I am still left with all these random photos littering
my personal iPhone / iCloud picture gallery — receipts, whiteboards, ads, parking spaces, plumbing supplies, construction materials — getting synced to my other iOS devices, displayed on my Apple TV, and generally being misplaced into my personal photos.
Talking with other designers as well as people from all different vocations — teachers, students, contractors, business travelers — I found that this was a problem for them, too. So, I decided to create an app that would address this need and make me (and my OCD) happy.
A NEW OPPORTUNITY
In the spirit of full disclosure, I am not exactly a novice when it comes to designing and creating applications. I owned my own company designing and developing websites for years (C0nn Creative Media), I designed web-based applications for both McAfee and Nike, and have designed, developed, and shipped mobile device-based applications for Intel, GE, and Care Innovations.
Here’s the problem, though: they were usually based on someone else’s idea. Some executive believed that an application needed to get made, and I would help them bring it to life. As I’ve grown more experienced in my career I have had increased opportunity to influence the direction of the products I am helping to create, but ultimately the final decisions always ended up lying with someone else — and often those decisions were not those that I would make if I were in charge.
So this time, the buck would stop with me.
DESIGNING THE APPLICATION
DIRECT SHOT does not cure cancer or feed starving children. Not only that, but I doesn’t even do something that cannot be achieved through other (if inefficient) means. So, I realized at the beginning of the design process that I needed to make sure the app was simple to use, and powerful in how it saved you time and helped you stayed more organized.
The frustrating truth about simple experiences is that simple is really hard to build.
“For the simplicity that lies this side of complexity, I would not give a fig — but for the simplicity that lies on the other side of complexity, I would give my life.” - Oliver Wendell Holmes
Designing and building intuitive and useful experiences takes time, and it often means more iterations when you would rather be all done. As Oliver Wendell Holmes alludes to in the quote above, simplicity lies on the “other side” of complexity — meaning, it takes the designer/developer absorbing the complexity in order to deliver a simple, focused experience for the final end-user.
What that meant for DIRECT SHOT is embodied in these keys:
1.) The most important thing should be the most important thing.
On the DIRECT SHOT main page, there is no question about what is grabbing your attention… the massive “Take a Shot” button.
On any screen, there is a hierarchy to what the user is wanting to do — make sure you are delivering what is most needed in the most clear way possible.
2.) Your app should deliver value as quickly as possible.
DIRECT SHOT is designed around productivity and efficiency. If you have added a single ‘Drop’ folder, it will be auto-selected in the camera. In addition, the previously selected ‘Drop’ location will be auto-selected next time you open the camera. If you don’t choose or create any Dropbox folders, you can still take a photo or video and upload it (it will just send it to the Dropbox root).
Work as effectively as possible out of the box, and add more value as the user adds more information.
3.) Design for the worst and hope for the best.
While running early versions of the app, my wife and I would discuss what was working and what wasn’t while using it in the real world. (Note: That could be another key… test your app in realistic situations.) One night, my wife was out to dinner with a friend and was showing her how the app allowed her take a photo of the meal receipt and upload it to our shared ‘Credit Card Charges’ folder. She started the upload, but quickly realized that she wasn’t getting a very strong data connection in the restaurant. The upload failed, and she lost her copy of the receipt.
This led to the creation of a page where you were given some options if your media failed to upload. “Retry Upload” best exemplifies the value proposition of the app, but the reality of living in 2015 is that sometimes you can’t get a great data connection.
In order to make sure someone would never feel uneasy about using DIRECT SHOT to capture an important image or video, I added the ability to “Save to Camera Roll” if there just wasn't a great connection at that time. I wasn’t sure at first since one of the reasons for the app is to avoid littering your Camera Roll with these artifacts, but after thinking about building a trusting relationship with my customer there really wasn't any question.
CODING THE APPLICATION
XCODE AND STORYBOARDS
I’ve coded my fair share of websites and web-based applications, but have never considered myself a hard-core developer — more a designer who codes so that he can help bring ideas to life that are closer to my intended vision.
The web is ripe with frameworks and tools that allow a designer / front-end developer to create rich experiences while focusing on interaction rather than code alone. From Drumbeat and Dreamweaver, to libraries like jQuery, to frameworks like Bootstrap, all the way to flexible dynamic systems like Wordpress — web designers have been able to partner with developers to deliver great experiences, and allow each expertise to operate at their full influence.
It’s been exciting to see how far mobile development is moving towards that same reality with improvements to Xcode, Android Studio and hybrid solutions such as PhoneGap. The latest versions of Xcode have increased the power of storyboards and UI-focused creation tools that allow designers like myself to code much of the user-interface before ever needing to dive into Objective-C or Swift code.
It is still really hard to deliver great UI in the multiple-screen sizes / multiple devices world of iOS, but it has improved drastically. Auto-layout is a huge opportunity to build UI that gracefully responds to whatever context it is displayed in, but is still a few years away from being truly dynamic. (Apple: PLEASE give us the ability to better respond to specific devices, OR at least give us more layout options so that the 3.5" iPhone 5, the 5" iPhone 6, and the 5.5" iPhone 6+ aren’t all treated as exactly the same. Thanks.)
Along the way, I have been amazed at the wealth of information available on the web to help you deliver a great iOS application. My personal learning style leans towards either first-hand experience (getting working code and dissecting it to understand how it works) or watching videos (to be able to see particular techniques and workflows in action). I thought I would share a few of the sites and sources that helped me along the way:
This website by Meng To is a set of tutorials created to teach you how to design products holistically, from strong design principles to designing UIs in Sketch, to using Storyboard for creation of UIs in Xcode. This site also led me to the Spring Swift Animation Library that I used for certain animations inside my app.
Complete iOS8 and Swift Course: Learn by Building 15 Real World Apps
Through lectures and video, Rob Percival starts with the basics, including how to setup your Mac, Xcode and all your certificates. He progresses through to tips and tricks to working with Xcode and Swift, all the way to submitting your final app.
As a designer-who-can-code, I got stuck late in the game when it came to implementing the Dropbox SDK in order to make sure that it was rock-solid enough to be a quality application. Freelancer.com is a great website to be able to find developers with particular skillsets to assist you with almost any aspect of your application. As a word of warning, I got ripped off by the first guy I hired to help me, and he ended up leaving me with non-working code after he took my money and closed his freelancer account. I learned that I needed to be a little less trusting and to set better expectations and protections for myself.
Through Freelancer’s recruiter service I was then able to find a fantastic developer who was amazing, trustworthy, and a rock-star with iOS. (If you are interested in more information about my experience with Freelancer.com, please email me.)
I continue to be completely shocked (and delighted) at how many useful tutorials on Xcode, Swift, Objective-C and particular techniques are available for free on YouTube. Here are a few of my most-used channels:
Swift Programming Language
Tutorial Websites / GitHub Repositories
With a Google or Stack Overflow search, I managed to answer many of the Xcode questions that I would be struggling with. As a result of those searches, I also managed to find some fantastic sites to view real code and tutorials that let me dig in and understand how to deliver more complex features and interactions. Here are a few of my favorites:
Swift iOS Tutorials
Website Hosting / Creation & Other Goodies
Launchkit has been a fantastic resource to help me focus on the app itself and not have to stress about some of the other facets of delivering an app. They offer a suite of tools that makes it easier to build, launch, and manage mobile apps, with some great tools like their Screenshot Builder, Review Monitor, Sales Reporter, and (most valuable to me) their App Websites.
Designing, coding, and launching DIRECT SHOT has been much harder than I ever thought that it would be. From the painstaking UX, to the constant challenges of Xcode and mobile app development, all the way to the reviews and promotional work that is only just beginning once the actual code is complete.
My expectations for DIRECT SHOT are realistic, in that I understand that making mobile apps is not the gold mine that it was just after the first iPhone SDK was released in 2008.
So with that in mind, here are my takeaway’s from this journey:
1.) I’ve made myself a better Creative Director
We’ve all worked with bosses who have no clue as to what it actually takes to do your job, let alone how to deliver a full-faceted product into the market. As a Creative Director with Intel for the last 4 years, I’ve always been pretty good at understanding the realities of business, design, and development — but I will now have an increased awareness of the challenges of delivering a product from start-to-finish in the mobile market — especially for a developer. My belief is that I will be able to better lead my teams with the insights gained in this project.
2.) I’ve made myself a better Designer and Developer
For DIRECT SHOT I held the full responsibility of the tension between Desired and Delivered experience. I believe its better to have a kick-assed half than a half-assed whole, and in focusing on the core elements of the experience and making sure they were rock solid (and being willing to say ‘no’ to all the additions I would have loved to make) I honestly feel that my app has stayed true to that tension.
Thanks for reading, and I’d love to hear your feedback.
Check Out DIRECT SHOT on the App Store
(Note: If you are interested in reviewing DIRECT SHOT, please feel free to contact me at firstname.lastname@example.org)