Blog post image

Workbench; testing, collecting and hone your skills

Article by

Edward Patel

Published in

iOS, CocoaHeads

Lately I have been collecting both sample code and ideas in a separate Xcode project. It started out as a small iOS project just to test one feature but has grown to demo a number of features, tricks and sample code. These things has been kind of small and not really worth putting in a separate framework. I have tried organize them so they should be easy to just copy into a new project, but they can be kind of incomplete. However, adding them as source code they could easily be improved and extended. At the moment it is basically split in 5 parts demoing different things.

Download – plain OperationQueue base network call

Context – An idea to add a context property on UIViews, a binding like thing

Associated – Easy use of associated objects

State Machine – Work in progress

QR Test – Supply test or debug setting though QR codes

There is also a number of things that is used through out the demos. Like a Design field that can be used to set colors etc on UI elements, making it fast and easy to modify the look of an app. Last year I talked a little about these at CocoaHeads Sthlm, see Youtube – Custom Runtime Properties in IB. Last meetup in January 2018 I also showed the Context idea.

Code-wise I have tried to keep things short and tidy, only focusing on a few things at a time. I hope running the resulting app can create some curiosity to look deeper and find the solutions used.

One of my personal MOs nowadays is to keep data models in a plain dictionary just after ie. decoding from a JSON. My opinion in doing this is that I keep full flexibility while not having to write so much code. Even being more robust and easy to debug. Sometimes I provide a convenient class that’s backed by the dictionary. I know many do not share this view. I hope some of the demos can show the strength in going naked.

The project repo is available here.

Going forward I will try to present and explain some of the ideas and usages.

Have fun!

Edward is a Senior Software Engineers at Dynamo with long experience from software projects ranging from telecom, simulation, VR, and mobile. He has a passion for new technologies like IoT and 3D printing.