How to be a good `Bad-iOS-Dev` 😈

Ritesh Gupta
Swift Sundae 🍨
Published in
6 min readMar 8, 2017

Hello iOS developers!

If you are looking for an informative article then you have come to the wrong place! I am writing it to share a few “things” about iOS that I have experienced, so that we all can have some 😆 time while your xcode is running or sipping a cup of tea or maybe in the middle of a boring meeting 😴

⚠️ — Kindly read at your own risk. Don’t miss the Damage-control links!

Let’s begin! Shall we?

A

AppDelegate ~

Its a singleton class which acts like a delegate of your application. It implements UIApplicationDelegate methods. It ensures your app interacts properly with the system and with other apps.

“Its very important that you put all your app/business logic like initial viewcontroller, analytics, app distribution, logging, push notification, debug flow, location tracking, coredata setup.. etc etc in your app-delegate otherwise you are not doing justice with this singleton class. Make it atleast 1000 lines of code to make yourself proud.”

B

Bang ! operator ~

Its an operator used for force unwrapping an optional variable to extract out its actual value. It can also be used to declare a variable as implicitly unwrapped which simply means that you are assuming your variable will always have a value while accessing it.

“Who has the time to write so many nil checks like if-let or guard-let or use try-catch blocks to catch errors when you have a Thor’s hammer which allows you to simply force unwrap anything. Give your users a crashing experience, they love it.”

C

Cocoapods/Carthage ~

They both are dependency management tools for iOS projects. They allow you to use 3rd party libraries or frameworks in your apps.

“Nobody cares about the launch-time of your app so feel free to add tons of libraries. Users like to stare at the screen to see your app load since they don’t have anything better to do. Let the magic happen.”

D

Developer Portal ~

It’s a portal where you can manage your developer’s account configuration. It allows you to create the necessary provisioning profiles, certificates, app id etc. iTunes connect is also part of it which helps you submit or test your app.

“It’s so easy to setup or configure it that you don’t even have to google it, yeah its thaaaat easy. Within just few seconds (*cough* weeks *cough*) your testers will start testing your app.”

E

Extension ~

It adds new functionality to an existing class, structure, enumeration, or protocol type. This includes the ability to extend types for which you do not have access to the original source code. They are similar to categories in Objective-C.

“Have you ever tried writing extensions for Any/Anyobject? I dare you, I double dare you.”

F

Foundation ~

Foundation framework includes the root object class, classes representing basic data types such as strings and arrays, collection classes for storing other objects, classes representing system information such as dates, and classes representing communication ports.

“You don’t import Foundation, foundation imports you.”

G

Git ~

It’s a version control system for tracking changes in computer files and coordinating work on those files among multiple people.

“git push -f origin master” 🔥

H

HealthKit ~

It’s a kit (bunch of apis) from Apple which shares health and fitness data with other apps, while maintaining the user’s privacy and control over their data.

“Let’s not joke about HealthKit.”

I

iOS ~

“iOS is the most open system out there. You can save anything or transfer, without much hassle, to anyone *cough* only apple devices *cough*”

J

Jobs, Steve ~

Well he is the reason why I’m able to write this post today!

“He made random stuff and people happen to like it.”

K

Keychain ~

Keychain provides secure storage of passwords, keys, certificates, and notes. Using the Keychain Services API, you can search for keychain items and read their attributes.

“Keychain, what’s that ??? Is it like Userdefaults? When you have userdefaults then who uses keychain. Lets save things like passwords, access-tokens etc in userdefaults. Nobody’s gonna hack your app.”

L

lldb ~

LLDB is Apple’s “from the ground up” replacement for GDB, developed in close coordination with the LLVM compilers to bring you state-of-the-art debugging with extensive capabilities in flow control and data inspection.

“Xcode has the best debugger ever. It will never crash and will print exactly what you needed to know without the nonsense of `some` values or unwanted`data-types`”

M

MapKit ~

It provides an interface for embedding maps directly into your own views. This framework also provides support for annotating the map, adding overlays, and performing reverse-geocoding lookups to determine placemark information for a given map coordinate.

If you want to build the best map experience in your app then MapKit is the way to go. It’s so updated with new data that even you wont be aware of new places in your own locality.

N

NeXT ~

It (later NeXT Computer and NeXT Software) was an American computer and software company founded in 1985 by Apple Computer co-founder Steve Jobs, based in Redwood City, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets.

“NeXT is the famous (ya right) father of macOS

O

Objective C ~

“Hi my name Objective C, I’m very straight forward *cough* wanted to be a poet *cough*”

P

Protocol ~

It defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality. The protocol can then be adopted by a class, structure, or enumeration to provide an actual implementation of those requirements.

Who needs classes, structures, enums, inheritance, polymorphism, objects or even xcode.. when in swift you can make everything a protocol.

Q

Quartz ~

It provides api for Quartz Composer, Image Kit, and PDF Kit.

Quartz…..??? come again.. I have heard you can make animations with it though.

R

Reactive Swift / RxSwift ~

It provides a framework for iOS app to apply the fundamentals of reactive programming.

“Reactive Swift or RxSwift are soooo reactive that you don’t even need to write any code to make your app.”

S

Swift ~

“Hi my name is Swift, I’m like flash *cough* takes ages to compile *cough*”

T

Testflight ~

With TestFlight beta testing, you can distribute prerelease builds of your app to testers to collect feedback and prepare your app for release in the App Store.

“The trick for a smooth testing process is to make everyone an internal tester.”

U

UIKit ~

It provides the window and view architecture needed to manage an app’s user interface, the event handling infrastructure needed to respond to user input, and the app model needed to drive the main run loop and interact with the system.

“UI elements like UIButton and UIBarButtonItem have such similar looking super class hierarchies that anyone can infer intuitively without looking into the apple docs.

V

ViewController ~

A view controller manages a set of views that make up a portion of your app’s user interface. It is responsible for loading and disposing of those views, for managing interactions with those views, and for coordinating responses with any appropriate data objects.

“ViewController is so innocent that it believes easily when everyone says it’s your responsibility dude, not mine.”

W

WWDC ~

Its a conference held annually in California by Apple Inc. The conference is used by Apple to showcase its new software and technologies for software developers. Attendees can participate in hands-on labs with Apple engineers, and in-depth sessions covering a wide variety of topics.

“If you are looking for a conference having unbiased views or opinions on iOS development then WWDC is the one.”

X

Xcode ~

Its an IDE for macOS containing a suite of software development tools developed by Apple for developing software for macOS, iOS, watchOS and tvOS.

“Who needs another IDE when Xcode has every single feature one desires for like lightweight app size, super fast compiler, never crashing app, awesome debugger etc.”

Y

Y = Why = ? = Optionals ~

A type that represents either a wrapped value or nil, the absence of a value.

Optional is like dark knight, its a concept swift deserves, but not the one it needs right now.”

Z

Zombie ~

Its an object that is called after they’ve been released and no longer exist.

“Unlike optionals, you should only use zombies when you really have to.”

If you found this post lame or even interesting and want to do more faceplam then checkout its Android version by Garima JainHow to Train your `droid`?.

We all learn everyday so if you think I made any mistake or you seek an explanation to the silly stuff in this post or even if it’s not lame enough, heart it & leave a response 🚀

--

--