Published on 20 Oct 2020
If you ever tried to use QuickTime Movie Recording to get video output from an AppleTv that does not have a connected TV, you might have discovered that it does not work.
This is a pain in the situations when you can’t have a TV with you, for example when traveling, or when you are in home office and your family wants to watch TV.
Published on 19 Oct 2020
The AirPods are equipped with sensors that allow users to trigger some gestures like double-tap or automatic ear detection, to control media playback.
The behavior of each of these gestures can be configured in the Settings of the operating system among the options: Siri, Play/Pause, Next Track, Previous Track, or Off.
Published on 20 Aug 2020
Even though I am one of the few persons who actually like watching series intros and never uses this button, the truth is that the ‘Skip Intro’ button introduced by Netflix a few years ago is most probably one of the most beloved features in their Apps.
Published on 20 Jun 2020
My personal cheat sheet for working with Conda.
Published on 15 Jun 2020
If you ever tried to display HTML content in tvOS, you might have discovered that it is not as easy as initially expected.
That is because there is no web browser, UIWebView, or even WKWebView available in tvOS.
Nevertheless, there is an alternative solution that can be useful to present simple HTML content as Term and Conditions, Privacy Policies, etc…
Published on 01 Oct 2019
As a result of working in iOS Development, it is quite common to see how your machine eventually run out of space.
The reason is that, as things go, some files like archives, simulators, or caches from building are created, but never deleted.
Published on 27 Jul 2019
Some weeks ago the Raspberry Pi Foundation released the Raspberry Pi 4, a new version of their amazing board that will allow us to go even further in our projects.
This new model means a huge bump in terms of performance, being nowadays closer to be a mini-computer than the educational board that it was originally aiming to be.
Published on 12 Jun 2019
It was just a few days ago that Apple presented SwiftUI, a brand new framework to create the user interface of our Apps that might eventually replace UIKit in our Apps.
Despite the hype, SwiftUI is still just a baby framework, and it will need patience, love and tender to become a strong and useful adult framework. As we already saw on the first version of Swift, new tools need some iterations and some patterns created by the community until they get really useful in our daily basis.
Published on 28 Mar 2019
The Development, Build and Run cycle is by far one of the most annoying parts when working in native iOS development. Your thinking and creativity flows are suddenly stopped by unnecessary waiting times, just because for some reason Xcode decided that it was a good moment to build again certain files that were not modified at all.
Apart from that, one always ends up having to navigate over and over again to the screen in which you are working on.
Published on 30 Dec 2018
The world of operating systems for mobile devices has been dominated by Apple and Google for the last ten years.
Both android and iOS have been around for quite a while already, and in their current versions, 9 and 12 respectively, they have reached a huge level of stability and customer satisfaction.
They also offer a huge number of Apps available in their App stores which make of them great platforms to smoothly achieve every kind of daily tasks.
Published on 23 Nov 2018
Together with Apple Tv 4th Generation, Apple introduced its new remote control, Siri Remote, a completely new concept to navigate on big screen interfaces.
In a world of remote controls with tons of buttons, Apple had the courage 😜 to release a box controlled by only six buttons and a little digitizer, having only two of the buttons and the digitizer available for developers….
Published on 07 Jun 2018
TVML templates are the base of every App based on TVMLKit. They ease the creation of Apps following the UI patterns of tvOS.
Published on 07 Mar 2018
It was a few weeks ago that I went to Google.
Google has great offices here in Zurich, and I thought that having them organizing a technical meetup was a really good opportunity to see them from the inside.
It was a great and interesting day, and I am happy to have met nice people in a very friendly environment.
Published on 25 Nov 2017
The low performance of TVMLKit has been one of its biggest bottle necks since tvOS was launched. Not only when performing heavy computing task, which could be after all derived to Swift, but also when dealing with a lot of UI elements.
You only have to load a screen with several items and layers and you will start noticing delays and glitches when loading your views.
Published on 20 Aug 2017
As I mentioned in Being a tvOS Developer, the lack of buttons on its remote control is one of the biggest challenges when creating Apps for Apple Tv.
It is sometimes quite hard to find intuitive gestures for very common actions. One of those actions is definitely the one to zap among channels.
Published on 10 Jul 2017
If you have tried to detect directional clicks on tvOS you might have notice that it is not that easy.
Published on 10 Jul 2017
It is already more than one year ago that I came to Zürich and I joined Zattoo.
Zattoo is a small company based in Switzerland, dedicated to the distribution of television through the internet, regardless of the device the users have.
Among these devices are iPhone, iPad, and now that it has an App Store, the 4th generation of Apple Tv “recently” released by Apple.
Published on 06 Jul 2017
There is a classical beginning for every tvOS tutorial and it is a question: Are you creating a TVKit application or a native UIKit application?
Depending on the answer to that question, you will end up with one of two completely different ways of working to create your application.
Published on 22 May 2017
NSTimer is one of the simplest mechanism provided by Apple to create timers.
You probably saw it applied to several purposes: Views being shown or hidden after a certain delay, periodically updated views, or any other task being executed periodically or with a delay. They are without any question a very generic and powerful tool.
Published on 02 Mar 2017
A lot of great improvements have been released as part of the last major update of Swift. Swift is growing and growing and, in my opinion, the direction that it is taking is really promising.
On the other hand, it is also true that certain Apple APIs do not have yet the most desirable interface one could wish taking advantage of all those new capabilites of Swift.
Published on 08 Oct 2016
One of the most important things to keep in mind when building mobile Apps, is thinking about the user. It is not that easy trying to understand the problems or needs of our users, and the reason that led them to use our App to solve those problems or needs.
No matter how great is your app, and how well it was developed and designed. Apps are always a handicap, the handicap that users have to suffer to get the valuable part of your product, the part that is actually giving a solution for their problem or need.
Published on 15 Aug 2016
Despite of that title I am not going to speak here about any new paradigm, or about any new programming pattern, but about an attitude, and about how we applied that attitude to improve our iOS App in Zattoo.
If you don’t know the concept of Danshari, it is a Japanese made up word consisting of three kanji, meaning in sequence: refusal, disposal and separation.
Published on 13 Jun 2016
There are really good frameworks to deal with the persistency of our data in the world of iOS.
Core Data for instance is a great solution offered by Apple that provides an incredible good performance even when dealing with a really huge amount of data. But there are also, some other alternatives poping around. One of these alternatives is Realm which is said to offer even better performance than Core Data, with a simpler syntax.
Published on 31 May 2016
Dealing with localized strings has never been an easy task in iOS development. Apple has never provided a good way to deal with this issue in a clean and organized way, and our strings at the end tends to be scattered all around the project.
In addition Localizable.strings files, without any syntax validation at all, are a very error prone way to deal with strings, making very easy to have problems in runtime or even in Production.
Published on 31 Jan 2016
Yes you don’t have to say that, you are fully right, I am indeed late to the party and I know it. But as the saying goes… better late than never, isn’t it?
On the other hand, since I have worked in iOS (using Objective C) for the last years, I have to say that I am not a one hundred percent rookie in this world of iOS, but I’ve never done any Swift coding apart from really minor things… So, now that I am for a while apart from the iOS development in my current position. I have decided to take advantage of this period to improve my knowledge about Swift.
Published on 06 Dec 2014
In Swift, you have several options for writing closures more concisely.
When a closure’s type is already known, such as the callback for a delegate, you can omit the type of its parameters, its return type, or both. Single statement closures implicitly return the value of their only statement.
Published on 03 Dec 2014
If you are used to work with Objective-C you are most probably familiar with the following documentation from UIViewController.nibName property:
Published on 29 Sep 2014
Rubustrings is a format validator for Localizable.string files.
Published on 29 Jun 2014
SwiftyVersion provides a simpler way to manage Versions in Swift.
Published on 28 Jun 2014
TimeBlock is a simple set of macros to measure the time spent for executing a block in Objective-C, you can find it published on my GitHub.
Published on 28 Jun 2014
Mantle is most probably the best library nowadays for parsing JSON responses with Objective-C, but I am not going to say so much here about what is Mantle since that is not the proposal of this post.
There is already a quite good explanation about what Mantle is and what problems it solves on the oficial github page of the project. So I am not going to repeat the same things here.
The problems I had with Mantle were mainly related with the lack of example code in this project. Mainly about how to do specific things, so that is what I am going to explain here using some examples.