Basic toolbox to create an app swiftly

Well, not really — Objective-C-vely.

Michał Pyrka
Evening coding in iOS

--

I’ve been wondering for ages if there is any possibility to ship an app to AppStore as an one-man-army person: programmer, UI/UX designer and product owner. Sounds crazy, but I read many successful stories about single developers who created simple, but very successfull apps.

The problem is, currently I work full-time job and soon another year of university will begin. Oh, such a shame, if only I had more time…

Well, there is still free time after 4 P.M., isn’t it?

If I want to achieve my goal — ship an app that doesn’t suck — I will have to work, code and design cleverly. And here is my personal guide how to do this. And also, track progress and share impressions what went terribly wrong.

The idea about app that will conquer Top 10 List stucked in my head in January and this is the date when I began researching about app creation. Sure, I had some (poor) knowledge about Objective-C(oh boy, I didn’t even know that ARC was introduced and I had been learning manual reference counting. In other words — learning from iOS4 book when iOS was rocking sucks), but nothing impressive. Yeah, I do know how to use blocks… But very simple ones and with some help. Hell, I even know how to create a simple table view app with JSON parsing… Whilst I forget about adding charstar to pointer.

For 8 months I’ve been collecting some good resources to kick off — for my app, and for general developing. I read many articles and some books. As Abraham Lincoln said:

“Don’t believe everything you read on the internet” is another great one by Abe.

The best time to plant a tree is twenty years ago. The second best time is now.

Well, this is not his quote, but sounds inspiring.

Writing down ideas

Pagessay what you want, but for me this is the best text editor. Not distracting, with essential tools, I can quickly add some new ideas and create very simple mockups. I even wrote down model plan for Core Data Model. I was impressed that inconspicuous tool for developing might be so helpful.

Evernote — one of the greatest tools. I just love the idea of icon sitting in the bar near the clock and battery, waiting for click. After that, I can write something what is on my mind quickly, or just take a instant screenshot what I found great, inspiring or just cool(I often use it for design ispiration). After few months, I’ve got about 200 notes with shots, links, resources which I can access via iPhone, even offline.

Neat

Clear — most of us use some kind of to-do/simple task manager. Some people love Any.Do(which is also great app BTW), other ones like just simple Reminder in iOS/OSX. Personally I like Clear, due to interesing navigation — you add notes and move between menus by swipes up and down. Great for quick reminders which I can review on a mac.

Paper and pen — because great ideas tend to go out from my brain quicker than I pull my phone.

How-to

Apple docs — this is my starting page for almost everything, which might be nothing special, but some people forget about this enormous resource library. Really, this is better than good ol’ Stackoverflow — you familiarize yourself with whole Cocoa Touch, understand how some things work, and resolve yours problems alone. This is a very valuable skill for young programmer, I suppose. Moreover, example apps and code everywhere!

Cocoapods — for those who don’t know what it is — it’s a dependency manager for iOS apps(just like Homebrew for Ruby)— with adding single line in .pod file, you can get some great libraries, examples and features for your app, completely free.

WWDC Videos — especially this year was fantastic for Cocoa devs. New language, many new libraries, opening new possibilites like widgets… And everything explained by Apple engineers — essential resource from basics to advanced manipulation of Cocoa.

iOS Stanford Course — unbelievable thing for me — when I’m banned from taking photos of lectures in my university, probably the best uni in the world shares extraordinary course… for free. Must have, you can get it from iTunes U.

Books — because articles and tutorials aren’t everything. Recently I finished reading Big Nerd Ranch book — this is the most recommended book for beginners and I can completely agree with this. After that, we can explore iBooks/Amazon/Safari/whatever to look for something interesting.

Funny fact — I read Swift docs earlier than any iOS book from first to last page.

Blogs — the ones that I find most interesting are: objc.io, nshipster, Ash Furrow, Ciechanowski.me, merowing, petersteinberger.com, Mike Ash, lukew, thinkandbuild. And also gigantic amount of articles on blogs that I don’t remember right now.

Subscriptions — obviously iOS Dev Weekly, iOS Bytes, Sidebar.

Websites — most notably: Ray Wenderlich. Website version of Big Nerd Ranch — perfect for start, also great for advanced coders. Also: Designer News, Codeschool(I began my journey with coding on this site!), /r/iOSProgramming, Design+Code(more like a book, but great synthesis of design, coding and prototyping), Twitter — just go to #ios and subscribe everything, everyone and learn.

Design

Sketch — powerful vector editor, supports iOS design like a boss(templates for iOS, export to all supported resolutions, preview on iPhone, and much more). Many sites provide great examples, freebies and templates.

Someday I will apply this design into my another revolutionary app. Righttt….

Keynote — whoa, slideshow app for Mac in a toolbox? Yes! After watching this video you’ll undestand why. With Keynote and prepared templates and photos, you can make a living prototype in an hour.

Origami from Facebook — Facebook devs used barely known app called Quartz Composer to build terrific tool to create living prototypes. Really, you can mistake creations built with Origami with real apps.

Storyboard — one of the greatest features in Xcode. Storyboard are for managing look and feel of respective screens in our apps. Nonetheless, we can use it to rapidly create literally living app without single line of code.

Playground — precisely this is a Xcode window where we can type code in Swift(and in Obj-C with almost no hassle) and see results instantly. So what? Indeed, it’s a perfect tool for testing ideas, algorithms, but what about design? Well, Playground has a support for UIKit, so we can quickly design some cells for our table view, for example. Mindblown!

Paper and pen — again and again…

That’s it for now, it’s time to get my hands dirty and struggle with time, lack of energy, procrastination. I know nothing, let’s try to change that — how ‘bout you?

--

--