Workbench; testing, collecting and hone your skills
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.
By Edward Patel
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.