Forget New Years Resolutions – Just Be Swift @ Swift

Solutions > Resolutions

So it’s that exact time of the year when people share their goals with one another for the upcoming year, knowing full well that they will be metaphorically waving a white flag/hankerchief/tea-towell/tissue (wave as appropriate) soon enough in their pursuit of self-improvement for the year of 2016.

2015 was a year like that for me. 2015 was a year of sacrifice. 2015 involved moving cities, countries & climate to improve as a person. 2015 involved postponing a 7 year career. 2015 involved no office job no more. In 2015 I focused on learning a new language. In 2015 I dabbled with Xcode. In 2015 I bossed Photoshop. In 2015 I still came up short!

Despite the sacrifices, despite the empty days, despite living the life all of us have craved… I still achieved little more than I would have if 2015 had been 2014, without the sacrifices. The problem was that those resolutions were not very resolute at all. 2016 cannot be another year of chasing rainbows. 2016 is not one for resolutions…

Self-Discipline

I (vaguely) remember writing my final year dissertation at University on “Implementation Intentions” and how their implementation intend to implement habits. And yes I intended to make that sound that interesting… it was a thrilling read (where’s the sarcasm font?).

The problem I have since encountered is that with these “IIs” or “SMARTER Targets” (as the business world will have you regurgitating) is that they require self-discipline & assume that life in any given year is linear, simple & without distraction.

Of course we need our objectives…but if you’re anything like me; you will find distractions from the unlikeliest of sources. Even for an activity like skiing… glistening with enjoyment… there will be times when procrastination, doubt & distractions will surface to throw you off the productivity piste & push you deep into that all too comfortable & familiar yellow snow. Painfully & smellily.

Smellily: A word made-up (that does not exist in the english language) to convey a metaphor to Medium readers of being in the midst of a very stinky situation.

I’m sure there’ll be no shortage of posts in the coming 48 hours advising how to get back up from such a scenario, to fight through the pain barrier & climb that mountain once more. This is not one of those posts.

2016 for me is going to be a year focused on solutions. In the pursuit of knowledge in Swift & iOS Programming this year, I will be focusing on ticking-off & adding-to an extensive list of functionality, in order to progress swiftly in the world of iOS development. Without such a guideline, learning to code in Swift is simply going to be as unobtainable as it was the year prior.

Resolutions > Solutions

The below list of functionality for Swift & iOS Projects is what I have deemed to be important learning so far. It’s a wish list, having dabbled in Xcode towards the end of last year. This list will be updated & added-to throughout 2016 (depending on progress). I’ll also attempt to write-up supporting pieces on this platform & providing links to each solution, to share my findings & all my learnings along the way. I will be doing this whilst co-developing a new sports scoring app ready for the middle of the year. So here’s the hit-list (be sure to let me know if I have missed anything?):

NAVIGATION

  1. Linking Storyboard ViewControllers to other Storyboard VCs
  2. Custom Back button using code & without UINavigationBar
  3. Embedding Views & XIBs within different ViewControllers (container views, scroll-views, table-views) without Storyboard
  4. Collapsable Animated Bottom Tab-Bar Menu
  5. Create alternative, interactive Menu other than the greasy, over-used Hamburger menu.
  6. Implement intuitive app walkthroughs (without sliding through 3–5 pictures) upon first use of functionality

LOGIN

  1. Firebase login for users using Facebook, Twitter, Email
  2. Incorporating TouchID Authentication to remove need for text input
  3. User access to aspects of App without Signing-Up/In

ANIMATION

  1. Bounce & Elastic animations without external frameworks/pods
  2. Subtle shake animations for drawing attention to calls-to-action
  3. Implementing pull-down to refresh animation
  4. Implementing custom alert / modal views for info
  5. Working with UIPanGestureRecognizer — DONE!

MAPS

  1. View GoogleMaps or AppleMaps Data within a View
  2. Use GetLocation to populate address fields & mapView
  3. Display directions to a Map location & punch-out to native app

SOCIAL

  1. Importing/Inviting friends from Facebook & Twitter (perhaps more)
  2. Sharing data, maps & images to friends on Facebook & Twitter
  3. Automatic posting & sharing to Facebook & Twitter
  4. Implementing Facebook Events to target/advertise to specific users

DATA & LOADING

  1. Linking user & community data to Firebase back-end
  2. Storing data for user(s) until approval to make public
  3. Using CoreData & Caching Data
  4. Implementing MultiPeerConnectivity via Bluetooth
  5. Performing Background Fetch for Up-To-Date Information

VOICE RECOGNITION

  1. Voice recognition to prompt certain actions within app
  2. Voice recognition to prompt actions outside of App (possible?)
  3. Voice output from Siri based upon actions/scores

APPLE WATCH

  1. Create Apple Watch App from nothing but Glances
  2. Implement Haptic Alerts when using App
  3. Implement Voice Recognition (see above)

SETTINGS

  1. Implement tens of different colour schemes and allow user-choice
  2. Add premium IAP/subscription for extra un-lockable functionality
  3. Multiple Languages & automatic selection based on Location/iCloud

EXTRAS

  1. General Push notifications after certain usage (no. of time/actions)
  2. User specific Push notifications when activity concerns them
  3. Push notifications that allow custom actions (background/foreground)
  4. Implementing force-touch & 3D touch for more than navigation
  5. Sound effects within app, that do not disrupt/end music
  6. Implement beautiful graphs (with animation) using ios-charts

For those wishing to help me tick-off this list of items quickly, I encourage you to share your StackOverFlow, RayWendy & YouTube links to help me find the best learning resources out there & help us newbies all achieve more this year. I would also appreciate any recommendations for additions to the list, to help me become a more rounded developing dev.

I plan to do a 30 iOS apps in 30 days challenge at some point in the near future, probably around the second quarter so I will keep you informed of my progress on that nearer the time.

However 2016 is the year of just getting it done. No more false promises, no more delays, no more sacrifices, no more resolutions. Just swift.

2016 is about Solutions Not Resolutions.

So tell me, what are you not going to achieve again this year?