This year Apple's World Wide Developer Conference was held in San Francisco from June 13th to the June 17th and there was no shortage of big announcements. These announcements were mixed with platform changes, to new developer API's, to complete updates with Swift in Swift 3.0. However, in an technical blog such as this, it would be hard to cover all of the big announcements and every new API so I thought I would at least cover what I consider 5 interesting points that I took away from the announcements and videos this year at WWDC.
At the time of writing this Swift is the number one language project on Github. Apple is very proud that Swift is open source and I would have to agree that this is an excellent step forward for the language and for Apple. Another great step forward from a language and platform perspective is the ability to run Swift on macOS, iOS, watchOS, tvOS, and Ubuntu Linux. This is very interesting because it displays the the commitment on Apple's part to drive the language forward and gain support from the C community on Linux as well.
Profiling memory allocations in a iOS project is probably one of my favorite things to do when building a project besides coding. Profiling gives you a sense of validation about how you have technically designed certain aspects of a project and it also gives you a sense of where you may have gone wrong and inadvertently created retain cycles, memory leaks, or zombies.
In my most recent adventures in iOS I had a string hashing problem that led me down the road of creating a machine learning algorithm in order to find the correct random hash string I was looking for. Looking back at the solution now, I was able to solve my problem successfully, but the solution I came up with to solve this problem is quite unsettling due to the variable results in time complexity derived from my solution.
I have always been on the lookout for a tool that I can use to synchronize files between two Rackspace Cloud Containers. I have looked high and low for a suitable tool that syncs files from an origin container to a destination container whether that destination container exists or not. Finally, I decided that if I want something like this then I was just going to have to roll up my sleeves and create the tool myself.