As an iOS mobile developer, you may think you don't need to manage Ruby versions in your project. Many iOS projects use CocoaPods which is a Ruby gem. Some projects may even use other Ruby gems such as fastlane for automating your deployment pipeline, or slather for reporting code coverage results. Here at Metova, we use bundler to manage our gem versions, but it's also important to manage your Ruby version as well. Sometimes some of the gems used for your project may have known bugs with specific Ruby versions that haven't been fixed yet or they only support specific Ruby versions. When you manage your Ruby version, you can take more control over your environment. By doing this, you'll know that if everything works on your machine, it will work on other machines too. Specifically:Read More
Prelude to Swift 3 MigrationIf you didn’t migrate to Swift 3 in September like the rest of us, do it now and start next year off right. If you’ve been holding off on making the update, here is some advice and guidance to ensure a safe and swift transition to the next version. Migrating to Swift 3 can seem a bit daunting depending on the size of the project, but with the proper steps and procedures you should be able to get through it much sooner than later. Xcode 8.2 will be the last version to support Swift 2.3, and that in itself is an incentive to start the migration as soon as possible. Read More
What is Reverse Engineering?It is human nature to be curious about the world and how things work and then how to manipulate them. Imagine a growing baby. “What’s this thing attached to my body? Oh, an arm! I can move it! Hey, that shiny object sure looks interesting. Maybe I can use this arm thing to get it closer. There we go, now to just pick it up and taste it...” Read More
WWDC 2016 was a software centric show that introduced lots of new user facing features as well as provided developers with many new APIs to plug directly into system apps. All four of Apple’s major platforms received updates, which will be publicly available this fall. Check out what’s new!
Normally, if you need to programmatically create a `UIImage` for an image in your asset catalog, you're stuck with the stringly typed method which returns an optional:Read More
Docker is a containerization solution that allows apps to run in a sandboxed environment that includes all the dependencies they will need without the additional overhead of a virtual machine. This sounds great--we can containerize our applications and deploy them, no more server provisioning and maintenance! Unfortunately, this is way more difficult than it sounds if a zero-downtime solution is needed. If you are just deploying a small-scale app without a cluster of servers, you will have downtime while Docker stops the existing app container and starts the container with your new code.Read More
Concurrency is a condition in a program where two or more tasks are defined independently, and each can execute independent of the other, even if the other is also executing at the same time. In programming concurrency can mean several computations, data loads, or instructions are being handled relatively at the same time, through a single-core or multiple-core processor.Read More