My First iOS App Is ‘Waiting for Review’!

I’m finally satisfied with a 1.0 version of my first iOS app, BB Links! I submitted it to the App Store for Apple’s approval a couple of weeks ago, but Apple had some questions that I had to answer after they had an initial look.  They’ve been sitting on it for 4 days now with my answers, so hopefully it goes into Review soon!

It was tough figuring out what I should and shouldn’t include in version 1.0. Try to do too much and it’ll never come out; do too little and its value isn’t immediately apparent. I’ve just got so many ideas floating around in my head for this app to help other Beachbody coaches find the information they need quickly and to take some stress off of them so they can focus on helping people get healthier! Win/Win!

I’ve been beta testing the app with a group of about 40 people (mostly Beachbody Coaches) and the response and enthusiasm about my app has been AMAZING. People love it and can’t wait for it to be released–that’s what this is all about: making software that helps people. I love it. I feel I’ve got the right launch features to make it immediately useful. 🙂

I’ve been toying with some new features and improvements for 1.1 as I wait for 1.0 to be approved. Problem solving is my forte so figuring out all of these little challenges in my app is fun and exciting!  I can’t wait to make this my career. 😀

Best Practices

radex.io has an excellent explanation of when you should AND shouldn’t use ‘guard’ in Swift. 🙌

‘Guard’ has quickly become one of my favourite way to help simplify my code by getting rid of lots of pyramids of doom! If if if 🙅.


guard !array.isEmpty else { return }

replaces the need to do an if statement around the entire code block that relies on the array not being empty and just returns from the function as soon as it finds an empty array without executing any further code in the function! 🎉

Make sure to check it out and try guard out in your code!


Best Practices

Mixins over Inheritance – Crunchy Development

When coming from an Object-Oriented Programming language like ObjC, inheritance is often used to share code between multiple classes. But that solution is not always the best, and have some issues.

In today’s article, we’ll see how Swift’s Protocol Extensions and their usage as “Mixins” can change the deal.

via Mixins over Inheritance – Crunchy Development.

Check this amazing post out! Some really epic examples to show the power of Mixins (protocol extensions). ❤ it.


Mixins and Traits in Swift 2 (Using Protocol Extensions)

This is a really great blog post by Matthijs Hollemans (author of the iOS Apprentice book I just finished reading) about the power of implementing protocol extensions/mixins/traits in your code to help reduce code-reuse, and make it more flexible.

It is a different way of thinking, but in my opinion, a much better way to code. I’m excited to implement protocol extensions into my app!


Tutorial Resources

I’ve Completed the RayWenderlich.com iOS Apprentice Tutorials Book!

I’ve been plugging along through the iOS Apprentice book from raywenderlich.com over the past few weeks. Let me say one thing: this thing is AMAZING.

RayWenderlich.com iOS Apprentice Book Synopsis

The iOS Apprentice is a series of epic-length tutorials for beginners where you’ll learn how to build 4 complete apps from scratch.

Each new app will be a little more advanced than the one before, and together they cover everything you need to know to make your own apps. By the end of the series you’ll be experienced enough to turn your ideas into real apps that you can sell on the App Store.

These tutorials have easy to follow step-by-step instructions, and consist of more than 900 pages and 500 illustrations! You also get full source code, image files, and other resources you can re-use for your own projects.

I started out by just signing up for the site’s newsletter. When you sign up for the newsletter, you get emailed the entire first full-length tutorial in the iOS Apprentice book for FREE. At first, I ignored the tutorial as I was focused on just grabbing what I needed from Googling, but I quickly became frustrated with the gaps in my knowledge.

I stumbled upon the RayWenderlich.com site tutorials quite often in my googling and saw that the site had some new Swift and iOS books coming out. I didn’t realize that the tutorial that I got for free with the newsletter sign up was actually the first of four chapters in the iOS Apprentice, and I was interested in buying the iOS Apprentice so I dug up the tutorial in my Gmail and decided to commit to going through it.

As soon as I made it through the first few pages, I knew this was going to be an amazing resource. I zoomed through the free tutorial and was hooked–I decided to bite and I actually bought the complete Mega Swift Bundle from RayWenderlich.com…that’s how sure I was that this was how I wanted to learn.

So as of today, I’ve completed the iOS Apprentice book–all 1,018 pages! I’ve learned so, so much, a lot of which is how to do iOS development in Swift the right way–not by hacking together a bunch of stuff I find online. My current unfinished app definitely has some ‘no-no’s’ in it that the book’s author, Matthijs, pointed out along the way that I’m going to have to go through and fix now that I know.

My next adventure: the RayWenderlich.com Core Data by Tutorials Book! To make my unfinished app work better, I need to get better at Core Data, so this will definitely help!

P.S.: I’m also making my way through the Swift Apprentice book bit by bit as I go along. Another great resource.

Best Practices

Using UIColor Better in Your App

An excellent post from Thoughtbot about how to make better use of Color in terms of design use (limiting your app to using 3 colours max), naming conventions (i.e. to base names on usage scenario instead of the actual colour, and use aliases), and programming techniques (how to use extensions and global functions with Colors). Some great ideas I’m going to use!


Tutorial Resources

Learning How To Use Carthage

I kept seeing references on github to CocoaPods and Carthage but had no clue how to use them or what they were for. 

Today I stumbled upon a tutorial on one of my favourite iOS/Swift tutorial sites RawWenderlich.com that went through explaining the W5s behind Carthage! 

Tutorial Link: Getting Started with Carthage

I did the whole tutorial and now all is clear and I can start using Carthage in my projects where it may be useful. 😀 Sometimes all it takes is a structured learning environment to make something crystal clear in my head!

I also now see how Carthage can be better than CocoaPods so I think I’ll stick to using Carthage in the future.