Fruity Crush Saga App Diary: Day 0

Basket full of fresh fruit

There are three things I see almost every woman on the subway every morning in New York doing:

  1. Holding a White iPhone 6 or 6S,
  2. Wearing a Canada Goose Parka,
  3. Playing some sort of candy-based match-three game.

I can’t make either an iPhone or a coat but I can make a game. My last game, Slappy Lock, was my first open source game. To complement my githubbing I thought I would keep an app diary for both my own organization and in the hopes that it helps anyone trying to reconstruct the code.  Continue reading

Open Source Swift on Ubuntu

Two years ago I wrote an entry on Cocoa Programming on Ubuntu that relied on the stable and mature but outdated Objective-C based GNUstep. It was hackey but it was the only way to do it then.

Last week Apple just made its self imposed date of delivering its new, modern, platform language, Swift, to the open source community and making it easy to use on Ubuntu. I have been itching to upgrade to 15.10 and what better excuse than to work on Swift.

Craig Federighi Introduces Open Source Swift on Linux at WWDC 2015

Craig Federighi Introduces Open Source Swift on Linux at WWDC 2015

This entry is my walkthrough on the steps I took to get a working Swift IDE on Ubuntu. Tl;dr: its like super easy and fun. Continue reading

Cool New Stuff in Swift 2

At WWDC 2015 we found out that Apple wasn’t kidding about Swift. Introduced just a year before at WWDC 2014 a year later it was difficult to find any Objective-C slides in any of the sessions and it was clear Apple doubled-down on Swift and it is the future of Apple software development. The cherry on top was Open Sourcing it.

If you have been following along then you know Swift and Xcode have been somewhat of a moving incremental target evolving from 1.0 to 1.1 to 1.2 and now 2.0 in just under a year. Because of these incremental bumps I thought I would highlight a checklist of seven magnificent things composed of what I think are some of the cool new things you’ll find in your Swift 2 journeys as Swift enters year two. Continue reading

Implementing Multiple View Controllers in Swift

A natural place to start out with Swift and Xcode is to build Single View Applications. This is a great template that Xcode provides and is a great starting point for almost every project. But as you grow your applications you begin to need more than one screen or view and hence more than one view controller. Most applications, except the most basic, consist of more than one view controller and it is your job as an iOS developer to manage the communication between your multiple view controllers to create your app’s UX workflow.  In this post I will cover how to add multiple view controllers to a Swift iOS app, how to transition from one view controller to another using navigation controllers and segues, and how to pass data from one view controller to another. Continue reading

My 2015 MIT Computer Science Degree For Free

Recently, someone at work made a comment that has stuck with me for awhile. We were discussing some iOS apprenticeship I was planning on doing and he indicated that I don’t just like to learn but have an addiction to studying. I never thought about it quite like that but I had to agree that he was right. It is an addiction. In many ways though, with the changes in Computer Science, it is a great trait to possess in order to pursue perpetual learning. I think you absolutely need to love to learn in order to stay current in the industry.

It is with that in mind that I thought for 2015 I wanted to refresh my Computer Science knowledge, from the core, by taking the entire Junior and Senior year of courses from the MIT Undergraduate Bachelor of Science in Computer Science degree program which is all online on iTunes University and the MIT website thanks to the MIT Open Courseware. This includes video lectures, all the readings, and the same programming problem sets done by undergraduate MIT Computer Science majors. I could not think of a better way to become a better programmer.

MIT Open Courseware

MIT Open Courseware

Continue reading

Implementing Custom View Controller Transitions

Custom View Controller Transition animations were introduced in iOS7 and they provide you with the ability to customize every aspect of how view controllers animate between each other. This means you are no longer stuck with just the stock animations that are provided in Xcode and you can give your App its own unique feel.

How does it work?
Continue reading

Adapting AFNetworking to Swift

NSHipster, A.K.A. Mattt Thompson, returned to NY to announce Alamofire, adapting AFNetworking to Swift, and what Swift means to software design and open source. He had a long Q&A where he expressed the benefits of the Cathedral versus the Bazaar and where he admits its hard being the man.

I recorded the audio and used all the photos posted to Meetup and shot by Albert Tong to cut together the following presentation video (WWDC style).

The event was coordinated by Larry Legend as part of the New York iOS Developer Meetup.

WWDC14: The Ultimate Love Letter To Developers

This year’s weeklong Apple annual World-Wide Developer Conference (WWDC 2014 or WWDC14 or just dub-dub) has concluded. There are well over 100 videos, each an hour long, covering all the new updates to iOS and OS X now available at the developer portal. The first day, for the first time in its 25 year history, was live streamed in its entirety. The first day consists of the Keynote (open to all not just developers) and the remaining four days consists of developer-only content (the State of the Union and Apple Developer Awards or ADA round out the day one events). The remaining four days of content is composed of two types of events: Continue reading

Implementing Remote Notifications

In the previous article we walked through implementing a new iOS 7 multitasking feature called background app fetch which is great way for your app to get periodically launched in the background and update its content in order to keep the app fresh for a user – and the best part is its adaptive – meaning its based on when your user uses your application. If you haven’t had a chance to read that article I suggest you give it a look to see how you can build this feature into your app. In this article we will continue our exploration of new iOS 7 multitasking features with Remote Notifications which allows your app to launch immediately whenever you send it a special push notification – it can even launch your app in the background with a silent remote notification which will not bother the user.

How does it work? Continue reading

Implementing Background Fetch

Some of the apps I work on have periodic updates of information like news that I thought would benefit from new iOS 7 multitasking functionality.  If I could update the app, I thought, while the user is not using the app then when the user opens the app the news will be fresh, new content will be available, and the user will feel no need to do a pull to refresh. Better yet if somehow I could predict when the user uses the app I could schedule the update just before they use it.  Well, turns out iOS 7 introduced new background task handling that helps developers achieve this exact user experience.  The functionality is called Background App Fetch.

How does it work you may be thinking.  Continue reading