• The Swift 3 Grand Migration

    Some days ago I finally merged one of the biggest Pull Request our team has seen, the migration of our codebase to Swift 3. I decided to write some words here as a way of remembering the beginings of the...

    Continue reading →


  • Lox, expressions

    The chapter 5 of Crafting Interpreters has been published and after a first read I started writing some Swift code to continue my implementation of the interpreter. Here there are some thoughts that I’ve captured while implementing the Expression classes....

    Continue reading →


  • Lox interpreter in Swift

    A couple of days ago I was reading Crafting Interpreters written by Bob Nystrom and it awoke my passion for programming languages so I decided to implement an interpreter for Lox in Swift! Programming languages and compilers are one of...

    Continue reading →


  • JIRA reports with Swift

    One of the things I think is really important in any team is to keep track of the performance. Not to use it as ammo to blame individuals but to learn and have data to keep improving. Our team uses...

    Continue reading →


  • Dead is here

    I’m 26 years old. And at the time of writing this I still have my 4 grandparents alive. I’ve been lucky. One could say I’ve never lost anyone and that is fair. I just remember the lost of my grangranparents...

    Continue reading →


  • Let If Flow, a talk about FRP

    Yesterday I gave a talk about Functional Reactive Programming to my coworkers at LifeWorks. At first, I wanted to give some insight about it to the Android team, as they were using Rx for the API layer. But at the...

    Continue reading →


  • Swift 3, linked lists and sentinels

    I’ve always been a big fan of Linked Lists. Maybe is because it was one of the first data structures that I learn how to implement and they were my introduction to the fascinating world of pointers. Nowadays I hardly...

    Continue reading →


  • Abusing mocks

    The post Mock yourself, not your tests immediately captured my attention just by saying “I feel like we abuse of them”. As I’ve been having more and more the same feelings about mocks in my tests. probably the primary reason...

    Continue reading →


  • Let patterns emerge

    Without entering in the dicussion about MVVM I just wanted to quote here an interesting paragraph of the linked post. It’s mainly for my own memories, as it’s something related to a topic that I’ve had in my mind for...

    Continue reading →


  • The trip to modern declarative software

    It’s a known fact that in our community there are always a constant discussions about the best patterns to use when building an App. But I find the discussions about MVC, MVVM, Viper, MVP or whatever new fancy word somebody...

    Continue reading →


  • A quick API layer with GraphQL

    Facebook has brought to the open source world a bunch of amazing technologies, React being one of the more widespread ones. It is really interesting how old ways of doing UIs like the immediate GUI mode has come back with...

    Continue reading →


  • XcodeTopComment, modify or remove the top comment of a file

    One of the things that Apple released on WWDC was the official support for Xcode plugins. Although in a very limited way, is really nice to see Apple opening Xcode with an official framework. I wrote a small extension that...

    Continue reading →


  • Xi Editor, the piece of software that hypes me the most

    One of the most interesting parts of software is decoupling. Although not the kind of decoupling that we are all used to in our code, but the kind that decouples parts of a system from itself at execution level, a...

    Continue reading →


  • UIViewController extension for keyboard avoidance, and the missing features of Swift

    Being able to conform to a protocol and automatically have the implementation that you need is really a game changer. Having trait like functionality is one of the most interesting aspects that Swift has given us. I was playing around...

    Continue reading →


  • Interesting talks in ReactEurope 2016

    I’m always interested in knowing what is going on in other communities, it helps me a lot to understand how others work and what tools they use. Anyone that knows me knows that I’m not a big fan of Javascript,...

    Continue reading →


  • Using closures to simplify

    This is an update to an previous post about using blocks to simplify in Objective-C. Swift makes working with functions much enjoyable simplifying its syntax and, specially, closing the gap between functions, methods and closures. Blocks spread over Objective-C frameworks...

    Continue reading →


  • Poor man's hot reloading for Swift scripts

    The other day, while I was writing a Swift script, I added an option to make it run continuosly so it could be on a server doing its job without stoping. for eva. To implement that I just used a...

    Continue reading →


  • It’s a trap! Catch OS signals in Swift.

    In the script that I was recently writing, from where the post “The state of Swift scripting” emerged, I found that when the scrip is interrupted (Ctrl + C in the terminal) the process that the script started was not...

    Continue reading →


  • The state of Swift scripting, writing the script

    This is the second part of my posts about the sate of scripting with Swift. In the previous post I wrote about what I expect from a language toolset when writing scripts and where Swift still needs some improvements. In...

    Continue reading →


  • The state of Swift scripting

    In the past few days I’ve spend some time writing a little script in Swift and I thought it was a good time to revisit the state of the Swift ecosystem as a scripting language. You know, for me, one...

    Continue reading →


  • Matt Gallagher on C-level performance in Swift

    Getting C-level performance in Swift for numerical algorithms is quirky but not particularly difficult. If you limit yourself to value types (no classes or existentials), use unsafe pointers and tuples instead of arrays, use overflow discarding operators &+/&-/&* instead of...

    Continue reading →


  • Save web development

    Swift, Rust, Go, and the rest of tomorrow’s languages, can you marry modern thinking, build a community with simple as a core design goal, and save web development from itself? Worth a read to see a view of web development...

    Continue reading →


  • Excuses and UX patterns

    I really liked this post about Misused mobile UX patterns. I’m not a UX or UI designer, but after all this time being a user and a developer I feel I sometimes have a reason to defend some behaviors. But...

    Continue reading →


  • Not Swift by default

    I really recommend reading how Maxim made his FlatBuffer library 10 thousand times faster Swift. The interesting part is when he realized how much faster the C implementation was compared with Swift. And how the profiler showed that a big...

    Continue reading →


  • On teaching C

    “Teaching C” is really nice write up on what to teach in a C class. It has been a while since I was a student in University but there are some important points that I would have loved to know...

    Continue reading →


  • Quick and dirty debug timer

    For those occasions when you need to check ~~something~~ some state at regular intervals. Just drop this snippet at the top of your file: static dispatch_source_t timer; void DebugTimer(dispatch_block_t block) { dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); double interval = 1;...

    Continue reading →


  • MIR, the new Rust mid-level IR

    Really interesting post about MIR. I really like this kind of posts that the Rust team publishes giving insight into the compiler internals and decisions. If you’re not a compiler enthusiast, this all might seem arcane and unlikely to affect...

    Continue reading →


  • Tales of my first contribution with Swift on the server

    The other day I had to work with some date formatting on iOS and Android and I end up using the great http://nsdateformatter.com website. I immediately missed the option to change the locale and seeing that it was open source...

    Continue reading →


  • Mike Acton on "Data-Oriented Design and C++"

    That’s the reason why I have to wait 30 seconds for Word to boot. Such an interesting talk. The best part is seeing how a bunch of smart people becomes defensive when presented with this notion that data is what...

    Continue reading →


  • Subjective objectivity

    Good analysis of the rejected Swift proposals by Chris. I can see why, yet still feel the opposite. This is one of those cases where we can hardly say anything objective about it being more readable, instead, we should probably...

    Continue reading →


  • It’s all about meaning

    About elegance in code: ​The trick here is, again, all about meaning. We like to pretend that programming is a purely abstract thing, and perhaps some of the ideas are, but the languages and tools are all ultimately designed for...

    Continue reading →


  • WindowCapture, screenshot windows with RxSwift

    A while ago I wondered how easy would be to make a screenshot of a window in OS X from another application using some system API. With that idea in mind last Christmas I started a project that ended up...

    Continue reading →


  • Replace tabs in Safari

    Oh, that feeling when you find small features that you didn’t know. I found that you can have, in Safari, a folder in the Bookmarks bar that automatically opens all its pages in different tabs, without having to open them...

    Continue reading →


  • Release of Survive! The Game of Life

    A couple of months ago I wrote a small prototype of the well known Conway’s Game of Life. This kind of simulation has always fascinated me. Giving a set of rules and an initial state to the computer and let...

    Continue reading →


  • Rust Traits restriction

    From Rust Traits page: There’s one more restriction on implementing traits: either the trait, or the type you’re writing the impl for, must be defined by you. So, we could implement the HasArea type for i32, because HasArea is in...

    Continue reading →


  • Swift Typed Throws compared with Rust

    I was reading about Error Handling in Rust to have a better understanding of the implications of typed throws in Swift (thanks to David for the proposal). At the end of that guide there is an example using a simple...

    Continue reading →


  • Functions are Functors

    We are used to treat closures as first class citizens in our code. Same goes to functions as they are interchangeable. But we often don’t think of them as actual types. So they also can play with the rules and...

    Continue reading →


  • Some interesting proposals for Swift

    Since Swift was open sourced I’ve ben scanning trough the mailing lists and there has been some interesting proposals for the future of the language. There are other places were people summarizes the conversation, but I just wanted to write...

    Continue reading →


  • Solving the Strings Problem in Swift

    In this post I try to port the type based solution to the strings problem ideas by Tom Moertel to Swift. I started this some days ago as an exercise to continue exploring type safety in Swift and expand my...

    Continue reading →


  • Sometimes Swift library

    Sometimes is a small Swift library that makes it easy to run code… sometimes. Well, actually, just once. Sometimes.execute(key) { // This will run just once } It was highly inspired by RateLimit and with the additions that SwiftyUserDefaults provides...

    Continue reading →


  • Brad Larson on using Swift for robotics

    I’ve been following the linked blog because I’m really interested in the usage of Swift in environments different from the typical Apps. And because using it for robotics seems pretty cool. The post gives some conclusions about the rewrite of...

    Continue reading →


  • Swift JSON mapping libraries

    Today I had to do a little research on the state of JSON mappers in Swift for a new project. I’ve been using a simple JSON library to help me deal with the JSON structure in a safe way, but...

    Continue reading →


  • Open-Sourcing as a company culture

    The last post of this blog was inspired by Artsy, and so is this one. I swear I don’t do it in purpose ^^ This time I want to link to their post about Sharing. I also write about being...

    Continue reading →


  • Know what you do, then be pragmatic

    I absolutely recommend you to go and read the linked article. This posts by the Artsy devs are so great for me since I’ve been following closely the development of their Apps since they are open source. And by closely...

    Continue reading →


  • Developers, be considered

    developers have become complacent in being wasteful for the benefit of their own development ease instead of considerate of the time and resources they are taking from customers. Is something that we all should thing about. Seriously.

    Continue reading →


  • Swift Stack for fun

    The other day I had some spare time and I started exploring the idea of a Stack in Swift using protocols. For what? For fun. A Stack is a data structure that stores a collection of elements. It defines two...

    Continue reading →


  • Swift as a good language to learn Software Development

    The author of the linked post gives some reasons on why Swift is a good language for an introduction to computer science class. I’m really interested in Swift being a good language to teach and I found the post really...

    Continue reading →


  • Useless Sprint Reviews

    Emphasis mine: I often see that a sprint review (or sometimes called a demo) consists of the Product owner showing the stories to the team (who already knows them) and to managers who are more interested in the status of...

    Continue reading →


  • Dependency injection without frameworks

    This post is one of those ones that I’ve been wanting to write for a while. It was some days ago when, by coincidence, I was reading a post about dependency injection at the same time that a coworker came...

    Continue reading →


  • Photos framework with ReactiveCocoa

    In the last version of BWallpapers I added the ability to save the wallpaper to a specific Wallpaper album in the Photos app. You can use the Photos.framework to do that. I found that the framework is a little different...

    Continue reading →


  • Protocols in Swift, the ongoing discussion

    Protocols in Swift are really powerful thanks to be able to be generic and to protocol extensions. But there is some things that drive us nuts. Mainly the usage of generic protocols in collections. Brent Simons has been talking a...

    Continue reading →


  • Why I prefer Swift over Javascript

    The other day while I was adding the ability to generate the protocol file to my Sketch plugin I took the opportunity to make a couple of changes to the code. In this post I want to talk about what...

    Continue reading →


  • Generating an Objective-C color palette from Sketch

    Last week I had to made some changes on the colors of the WorkAngel app. The colors of that app are retrieved through an object called ThemeColor (we have another for the fonts). That object is the concrete implementation of...

    Continue reading →


  • The concepts behind iterating

    I’ve been reading and talking with people that when explaining functions like map, filter or reduce they start with “it loops over the collection and…”. When I ear that my mind starts thinking in why people doesn’t care about the...

    Continue reading →


  • Designers should be dynamic

    I’ve been lucky to have the opportunity to work in a bunch of different projects in my years as a developer. In all those projects I also had the opportunity to work with a bunch of different designers. I may...

    Continue reading →


  • A better future without web apps

    On the episode 125 of ATP (A Better Future for Everybody) there was an intense talk abut the future of the software and its openness. The talk started as the usual fight between web and native software. Usually I don’t...

    Continue reading →


  • Scotland trip, The West Highlands

    Last 3rd of July I left the office a little earlier than usual. I had a flight to take, a flight that took me and my girlfriend from London to Glasgow. We had been waiting for this trip for a...

    Continue reading →


  • Don’t be afraid of sharing

    I realized that we all should write and share more. Bear with me for a couple of technical paragraphs to explain you the motivation for this post. In my technical community there has been a lot of people writing about...

    Continue reading →


  • How I watch the WWDC videos

    Yesterday I saw this tweet from Diego talking about how he watches WWDC videos: Por culpa de algunos de vosotros, he vuelto a perpetrar un post en mi blog: "Cómo ver los vídeos de la WWDC 2015" http://t.co/UZmhZA3HL7— Diego Freniche (@dfreniche) junio...

    Continue reading →


  • This is not a Singleton

    From Wikipedia, Singleton in Software Engineering: In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the...

    Continue reading →


  • GroupBy in Swift 2.0

    A while ago when Swift came out I had the idea to play with a function that given an array of objects would return an array of arrays of objects. Basically the idea was transforming the return of an API...

    Continue reading →


  • Sam Soffes on Building Functional Apps

    I would like to talk about a video of a great talk that I really recommend. I’m really interested on the topic of sharing code between iOS and Mac because basically is what I do with BingWallpapers. The talk is...

    Continue reading →


  • The beginnings of Apple using ARM

    Interesting to watch Professor Steve Furber talk about how Apple played an important role as a client of Acorn. If not for that maybe ARM would’t exist anymore. Thanks to Computerphile for this amazing videos.

    Continue reading →


  • The unexpected but convenience case of flatMap in Swift

    Yesterday night I found myself reading this code in GitHub ... for dictionary in array { - if let interaction = Interaction(dictionary: dictionary) { - interactions.append(interaction) - } - } + interactions = array.flatMap { Interaction(dictionary: $0) } ... I...

    Continue reading →


  • Understanding Swift Protocol Extensions dispatching

    As I said on my Fist impressions on WWDC 2015 I was really excited for finally having traits in Swift, in form of Protocol extensions. After playing with them this days I most than happy :) But I’ve seen some...

    Continue reading →


  • What I don’t like about the new Swift error handling model

    I mentioned the new Swift error handling in my WWDC first impressions post. And although it’s true that I still have not had the opportunity to use it in a real project I’ve been playing with it in playgrounds :P...

    Continue reading →


  • First impressions on WWDC 2015

    Every year, after the WWDC I usually record a podcast episode talking about my feelings of the keynote. This year I’ve been keeping a list of the things that I like the most, so I will leave it here as...

    Continue reading →


  • Casey Muratori, about Object Oriented Programming

    Kind of following the thoughts on the exploration phase post. Casey Muratori says: Don’t ever bother learning or using object-oriented programming. It’s a deeply flawed programming methodology, and I wasted a good five years of my programming life thinking that...

    Continue reading →


  • Minecraft and My perfect game

    This post was originally posted in Medium. I reposted it here after the announce of Lego Worlds. It made me think about this post. Minecraft is the game that has revolutionized the games industry. But it’s not just a game,...

    Continue reading →


  • Exploring Swift generic functions with WallpapersKit

    Today I’ve been updating BingWallpapers to use the last version of Swift and also include the latest changes of WallpapersKit, the framework that is shared across the Mac and iOS versions. I’ve been developing WallpapersKit letting the code guide it’s...

    Continue reading →


  • The exploration phase

    Today I found this great post by Zach Holman. He presents some points that can contribute to make you a better developer. I was reading it with attention cause I always liked how Zach explains things and then I read...

    Continue reading →


  • Swift script to download Youtube videos from Safari Reading List

    When I wrote my srly script I thought on doing it in Swift, but at the end I decided to go with a well known scripting language, Ruby. After Ayaka’s talk in the Swift Summit I was really excited about...

    Continue reading →


  • ScrumVotes

    On March 1st of 2015 I released ScrumVotes in the App Store. It’s an application that helps in the Sprint Planning Meeting when the development team has to give estimates to each user story. There are many ways of giving...

    Continue reading →


  • Enjoying the disconnection

    In the era of the Internet of Things we are the first Thing that is always connected. Luckily for me I spent the past week enjoying my holidays with my girlfriend. We went to Switzerland and we didn’t have cellular...

    Continue reading →


  • Type Systems and Domain Driven Development

    Some days ago I read this tweet from @sendoaportuondo saying that creating a class for the mail field, the phone field, etc was crazy. I quickly asked who said that and he pointed me to Domain Driven Development. Lo de...

    Continue reading →


  • Objective-C keeps improving

    Yes, the title is not wrong. Apple just released Xcode 6.3 beta that includes multiple huge improvements to Swift 1.2 solving a lot of concerns that we all had. But the cool part is that indirectly Objective-C also has improved....

    Continue reading →


  • Should be easier to create Xcode templates

    +10 to this post from Jon Reid. Xcode File and Project templates are full of code and comments that maybe are useful at the beginning but after some experience with the platform they are just noise. I think that Apple...

    Continue reading →


  • Octopress 3.0

    Lately I’ve been working on move my site, again, to Jekyll. Using directly the original Jekyll and keeping my customizations apart from the source I think that I accomplished what I wanted and at the same time I don’t will...

    Continue reading →


  • Download Youtube videos from the Safari Reading List

    This weekend I wrote a little script that helped me to connect two of the main things that I do everyday: save things into the Safari Reading List and watch Youtube videos offline. It has been a while since I...

    Continue reading →


  • Post-Publicity Personalities

    A great post by Zackh Holman. This isn’t a matter of right or wrong, in my mind. People can legitimately fuck up, or be wrong, or do something wrong. That’s always going to happen throughout the timeline of human civilization....

    Continue reading →


  • How to write the perfect pull request... in GitHub

    Great suggestions from GitHub. But the important part is at the end: Our guidelines suit the way we work, and the culture we want to nurture. We hope you find them useful too. This suggestions may work fine in GitHub...

    Continue reading →


  • Real world weather into Minecraft

    In the previous post I talked how to connect Minecraft and the Real World. In that case I made my real lamps follow open at the same time as my in-game lamps. Now I’ve done something in the other way...

    Continue reading →


  • Connecting Minecraft and the Real World™

    For those who don’t know me I have to say that I’m a big fan of Minecraft (1 and 2). And I’ve always wanted to connect the things that happen in that virtual world with the things in our real...

    Continue reading →


  • Documentation in game development

    The other day I was talking about games with my friend Marc and we ended up talking about Don’t Starve, an amazing game. He confess me a little frustration about the fire camps, he never knows how much fuel they...

    Continue reading →


  • Dotfiles

    I’ve always been fascinated about all the culture behind the dotfiles, those files that people have automated to be installed on a new computer to have everything like they want. Configuration for development programs, terminal, aliases, colors... But the the...

    Continue reading →


  • Programming Sucks

    Think it two times before starting a career in programming Every friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this...

    Continue reading →


  • A programming language for Games by Jonathan Blow

    I've just seen this presentation about a prototype of a programing language for games, made by Jonathan Blow (known for Brad and The Witness). I'm really curious about this kind of experiments about programming languages to see what things I'm...

    Continue reading →


  • The act of programming - The Case for Slow Programming

    The fact that we programmers spend our time jabbing our fingers at keyboards makes it appear that this physical activity is synonymous with programming. But programming is actually the act of bringing thought, design, language, logic, and mental construction into...

    Continue reading →


  • The QA goals

    QA is a big part of software development. Whether there is a specific role on the company or it's just some testers trying the builds. In my opinion QA has two main goals: Help the product Help the developers The...

    Continue reading →


  • Bing Wallpapers for iOS

    I'm happy to present my last little app: BWallpapers for iOS. The App is a mobile version of my Mac App BingWallpapers. I've been using the Mac version for a while now and I really liked. Having a new and...

    Continue reading →


  • Mike Stern on Hamburger Menus

    Mike is an Apple User Experience Evangelist that talked (here is the transcript of the talk) about the hamburger menu design pattern. I share the same opinion about that and I've try to discourage designers to use it. I will...

    Continue reading →


  • Open Postman from Alfred

    I use Postman some times and I really hate the need to open Chrome just for that. Even worse, I can't use Alfred to open directly the Postman app and of course I will not use that Chrome App Launcher...

    Continue reading →


  • Brent Simmons at Omni

    My job is awesome. I am happy. I’ve earned it. Super amazing sentence. I love that blog post, what it says and the feelings that it transmits. It must be great to feel this way. My favourite part: I've earned...

    Continue reading →


  • About Work/Work Balance on Analog(ue) #6

    Super interesting episode. I'm totally with Myke. I don't get why people stay at job more hours than necessary.

    Continue reading →


  • We can be genius, kind of

    It's easy and frankly unfair for me to call these people geniuses and wizards. When compared to my baseline laziness, a lot of people qualify for the genius status. I agree with this part. I really hate when some people...

    Continue reading →


  • Programming Sucks

    I could quote here some sentences but the all article is fantastic so go and read it. Now.

    Continue reading →


  • Cocoapods haters

    Good words of Orta on Cocoapods haters. Don't like sharing code? Great Telling other people they're idiots for doing so? Not great. Telling people they're idiots for using other people's code? You need an attitude re-adjustment, and people should stand...

    Continue reading →


  • Javacript is not so cool after all

    Has been surporising to me the low usage of UnityScript (a cool name for the Javascript used in Unity) as shows this oficial post. Seems like game developers prefer C# langauge over Javascript. It will be interesting to know the...

    Continue reading →


  • Wait for async code in a Swift playground

    By default a Swift playground stops it's execution when the top level function finishes. If you want to run async code you will never see the results. The system doesn't provides a waiting architecture like node.js, which is a bad...

    Continue reading →


  • Scripting helpers for Swift

    One of the most exciting things in Swift is the possibility to write and run scripts. It turns out that writing scripts is one of the best ways to learn a new language, that's how most people learn Ruby or...

    Continue reading →


  • I want Headers in Swift

    People say that languages with headers are things from the past, but I still think that they are really useful. As I said before, we don't have to make a distinction between code in our projects and external people using...

    Continue reading →


  • Let's avoid inheritance!

    Cool article about inheritance and the no so cool things about it. Yes, it is a very cool language feature, and it lets you use the word "polymorphic" when talking to your colleagues or boss about it; but from what...

    Continue reading →


  • Graphical prototyping, a step to the future

    Today I see another prototyping tool. I really don't care about the specific tool o how cool is the application (in fact is pretty similar as Quartz Composer), but the good part is seeing new things like this in the...

    Continue reading →


  • Funnier App Store Review Guidelines

    The App Store Review Guidelines are a little more funnier than ever :D Now a they say some things that I like: We have lots of serious developers who don't want their quality Apps to be surrounded by amateur hour....

    Continue reading →


  • Autolayout explained to non developers

    Good article in iMoore about the future of the iOS UIs, but the best part is how it explains autolayout to non developers. Easy. If you imagine the "guides" in iWork, the ones that let you snap one item into...

    Continue reading →


  • This is why you never end up hiring good developers - Quartz

    Interesting article about job interviews. It says so many true things... Sometimes it's easy to answer some question in an interview, other times it's really hard to come up with a great solution to a stupid mathematical problem that doesn't...

    Continue reading →


  • I'm not the only one that wants traits in Swift

    Matt talks on NSHipster about default protocol implementations. I already said that it's a feature that I miss in Siwft (and in Objective-C). I'd never saw any big talk about this in our community so now that Matt has written...

    Continue reading →


  • Understanding Value and Reference Types in Swift

    One of the coolest parts about Swift is how powerful all the types are. Structs are not like basic C structs, they have a lot of similarities with classes, and the same goes for the Enums. This is really good...

    Continue reading →


  • Swift as the next web programming language

    Crhis give us some cool ideas for open source projects in Siwft. A web framework (like Rails or like Sinatra). Some people have already been experimenting in this direction. Since I saw the syntax and the features of Swift I...

    Continue reading →


  • Citymapper vs. Google Maps

    I've been using Citymapper since my first day here at London. It's an essential App for me. I can say YES! to every point in this comparation.

    Continue reading →


  • Jong-Moon Kim's answer to If Steve Jobs was handed a pen and asked "Sell me this pen", how would he go about it?

    Amazing Quora answer

    Continue reading →


  • Swift protocols are not Objective-C protocols

    For now, the Siwft and Objective-C protocols are two diferent things. The biggest differences is that Swift protocols can have structs and enums and can be adopted by value types. This makes a huge diffrence when you try to do...

    Continue reading →


  • Swift extensions and inheritance

    This is another thing about extensions that I was not expecting. The other day while implementing Jlaner I had some problems with extensions. The problem is that you can't overwrite methods from a protocol that is conformed in an extension....

    Continue reading →


  • Refactoring — Not on the backlog! | xProgramming.com

    Simples! We take the next feature that we are asked to build, and instead of detouring around all the weeds and bushes, we take the time to clear a path through some of them. Maybe we detour around others. We...

    Continue reading →


  • The Steve Jobs Roll Your Own Calculator Construction Set

    Good old history, So, for a couple of days, Chris would incorporate Steve's suggestions from the previous day, but Steve would continue to find new faults each time he was shown it. Finally, Chris got a flash of inspiration. The...

    Continue reading →


  • AMPActivityIndicator, Cocoapods and Travis CI

    Today I released AMPActivityIndicator. I wrote this little class a year ago and today I made a little clean up and made it available through Cocoapods. It's been very pleasant to see how easy is to release a Pod on...

    Continue reading →


  • Practical Meta Programming in Ruby

    I really recommend watching this talk. It's about metaprogramming in Ruby but the majority of things are applicable to our loved Objective-C, since both languages take advantage of the Smalltalk message passing system. I really like Swift safeiness but I...

    Continue reading →


  • A Set Type in Swift

    Nate Cook writed afull featured Set Type in Swift. This are the things that I really like about some languages. The ability to extend the language itself with its own tools. Look how easy is to implement a full featured...

    Continue reading →


  • Oficial answer to Protected acces control in Swift

    The oficial Swift blog is giving us clarifications about Access Control and protected It seems like it's their conscious decision to make an horizontal access control system instead of a vertical or hierarchy based. Swift provides access control along a...

    Continue reading →


  • AutoLayout and Table View Performance

    Jared has writed another amazing post about Autolayout. AutoLayout Myths, Table View Performance, and Side-by-Side iPad App Multi-tasking. After reading it I think that it's not autolayout job to solve all of our problems but to be a way of...

    Continue reading →


  • Dan Ingalls: Object-Oriented Programming

    Really interesting talk about Object-Oriented Programming in a time when I wasn't even born! It´s really amazing how the tools that I use every day were created so many years ago. It's a good talk to understand the philosophy behind...

    Continue reading →


  • Andrew Sorensen "The Concert Programmer"

    From OSCON 2014: Is it possible to imagine a future where "concert programmers" are as common a fixture in the worlds auditoriums as concert pianists? In this presentation Andrew will be live-coding the generative algorithms that will be producing the...

    Continue reading →


  • Ship your app weekly

    Shipping frequently helps prevent something I call the “ivory tower syndrome.” I'm a perfectionist. I can spend a lot of time perfecting things that are good enough. A tight schedule forces me to make choices. It helps me figure out...

    Continue reading →


  • I love named parameters!

    This is a case of direct translation from Objective-C methods that don’t really look right in swift. The reason this works is swift’s external parameter names, which I think of as one of those features that might only be handy...

    Continue reading →


  • Thinking In Terms Of iOS 8 Size Classes by Justin Williams

    Since I use and recommend Interface Builder, my work load is significantly less than those that are still living by the “write everything in code” mantra. If you find yourself still in that camp, I’d highly recommend using iOS 8,...

    Continue reading →


  • Swift alternatives to protected

    Yesterday I made a question about the acces controls that we have in Swift: Why internal and no protected? There was not a really good answer in the social networks and I asked the same question in a Meetup without...

    Continue reading →


  • Why internal and no protected?

    This is a question that I have in my mind since Apple introduced the access modifiers. Why we want internal and not protected? The thing is that when I'm creating or designing software sometimes I found myself with the need...

    Continue reading →


  • Thoughts after knowing Swift

    In these weeks, since Apple has announced his new programming language, I've been trying to learn something about it. As I said before, my approach hasn't been a full change on mind, I think that is to early for that....

    Continue reading →


  • inessential: How to Be Wrong on the Internet

    Blogging is, for me, part of the process of getting to the truth.

    Continue reading →


  • Inide vs. "I've done this" developers

    A very good episode (you should suscribe to Developing Prespective) and a very good post. But for me the most interesting and surprising part is this one: I know many developers for whom the ultimate goal was simply to ship,...

    Continue reading →


  • Instance Methods are Curried Functions in Swift – Ole Begemann

    So at the end Swift is more functional than we firstly thought :)

    Continue reading →


  • Must read: The secret of Minecraft

    You must read this article about Minecraft, go! Now! See the Minecraft books in this article has made me smile. I was so exited the first day that I was in London and I saw the books in a store...

    Continue reading →


  • Don't forget Block syntax

    Yes, now we have a cool and simplified clousure syntax with Swift. But it's good not forget the Objective-C block syntax. Here is a little .m that I used a while ago to practice and learn the block syntax.

    Continue reading →


  • Swift enums and UISegmentedControl

    2016/09/29: Updated for Swift 3. One of the most cool features in Swift are the super powered enums. I really like how the enums and the structs have more features that their C counterparts. I’ve tried to use enums to...

    Continue reading →


  • inessential: Prefixes Considered Passé

    The good thing is that I've never used prefixes in App code. And I hate category methods with prefixes. Just remember, we are talking about app code, if you are shipping a framework or a open source library you still...

    Continue reading →


  • The power of clousures in Swift

    I really like when a language gives the power to extend it easily. In Swift the clousures are really powerful. You can use clousures to do lazyness and implement the while loop: func myWhile (cond : @auto_closure () -> Bool,...

    Continue reading →


  • Swift continues changing

    Yesterday Apple released the new beta4 with new changes in the Swift language. The big thing is the new acces control with three acces levels (private, internal and public). This will allow us to make better APIs for our code....

    Continue reading →


  • On Core Data, JSON, libraries...

    After watching a hangout talking about Core Data, JSON an some open source librearies I thought that it will be good to publish a blog post with some personal notes and opinions. Here I talk about things that were talked...

    Continue reading →


  • There is no later for your customers

    There is no later for your customers. The only thing that matters is what they’re using right now. They don’t give a shit about your roadmap, your brilliant feature pipeline, or your vision of a better future. They’re trying to...

    Continue reading →


  • Visualizing Algorithms

    Continue reading →


  • Thinking slowly - Matt Gemmell

    We start too quickly. Indeed, we mistakenly believe that starting work means starting to produce. Our machines are too capable, and too eager for us to rush headlong into the blank page, knowing we can always double back.

    Continue reading →


  • Imagining developing for a split-screen iPad – roopc.net

    I don't think that Apple will introduce an split mode in iOS 8, but this article talks about some changes in the Apps development that we should take into account if happen. An interesting read.

    Continue reading →


  • Don't move the problem away from the server

    LinkedIn has open sourced Isaac, it's library to convert JSON into Objective-C model objects. I think it's a a cool library, although I normally use KZPropertyMapper. But I see a problem, a big problem, in the blog post: At LinkedIn,...

    Continue reading →


  • thatgamecompany to its new game

    I can't wait to see its new game.

    Continue reading →


  • Don't touch the spinner on your libraries

    A very good advice and it's not very expanded in the community. Don’t interfere with the spinner in the status bar. Because the way you turn it on and off is simply a boolean, most developers have their own increment...

    Continue reading →


  • Aaron Hillegass on 20s crisis

    In their 20s, most people expend a lot of energy on worry. The decisions you are making seem irrevocable and scary. Maybe you think that making the wrong decision will be catastrophic. Hell, yes!

    Continue reading →


  • A web without passwords

    A while ago I read an interesting article about passworld-less logins (Is it time for password-less login?). I thought that it was very interesting to see how some people try to change a thing that is so habitual for us...

    Continue reading →


  • How to make a good bug report

    A good bug report is one that describes the problem well enough that someone familiar with the project can understand and act on that bug report without talking to the person who wrote it. You should read Mike Hay's post...

    Continue reading →


  • Unity announces UNET

    Interesting the new direction that Unity is taking. The internal project name for this is UNET which simply stands for Unity Networking. But our vision goes well beyond simple networking. As you all know, the Unity vision is to Democratize...

    Continue reading →


  • Jeff Atwood on Remote Work

    Great post about Why You’re Not Hiring the Best and the Brightest We pay lip service to the idea of hiring the best people in the world — but in reality, we’re only hiring the best people who happen to...

    Continue reading →


  • Using blocks to simplify

    The use of blocks has spread over all Objective-C code. Normally we see them as callbacks (completion blocks) for animations or for async tasks (GCD, another cool kid) but they can be used to a lot more. For example we...

    Continue reading →


  • Justin Williams on App.net entering in maintenance mode

    For ADN, I believe that stigma is the “Twitter service that isn’t Twitter”. Nevermind that ADN tried to build more than a Twitter platform with their backer program, messaging platform, and authentication layer. Most people saw ADN for Alpha, the...

    Continue reading →


  • Learning astrophysics and rocket science with KSP

    Squad, the developers of Kerbal Space Program, released the results of a interesting survey. I really like how games like KSP are more than just an enterteinment. I recommend you to see the rest of the results ;)

    Continue reading →


  • On Facebook Anonymous Login

    People tell us they’re sometimes worried about sharing information Well, yes! That's the main reason why many people doesn't like Facebook. There are so many users that don't even try an app just for the fact the they can only...

    Continue reading →


  • Retiring Shopless from the AppStore

    A sad notice today. I’ve retired Shopless from the AppStore. The reason is simple: I can’t afford the costs of the server that stores and syncs the data. I’m happy with the acceptation of the App. It was developed with...

    Continue reading →


  • Cakebrew

    Too afraid to use the terminal but need that small program or tool? Cakebrew is for you too!

    Continue reading →


  • Federico Viticci iOS 8 Wishes

    Continue reading →


  • Actualizaciones automáticas en BingWallpapers

    Después de unas cuantas versiones por fin he podido incluir actualizaciones automáticas en BingWallpapers, como se echan de menos esos detallitos que nos da la App Store. La integración ha resultado ser bastante sencilla usando Sparkle. Es el framework que...

    Continue reading →


  • BingWallpapers 1.2

    En esta nueva versión los wallpapers se actualizan en todas las pantallas que estén conectadas al Mac. Recordad que en la versión 1.1 añadí la opción de compartir el wallpaper actual (hay algunos tan guapos que dan ganas de enseñarselos...

    Continue reading →


  • The Ultimate Guide to Solving iOS Battery Drain — Overthought

    Users will report poor battery life after every iOS update. Always. For eternity. This is not newsworthy.

    Continue reading →


  • How long does it take to make apps nowadays | Kent Nguyen

    In case you are expecting one developer for everything then please stop reading this and go back to your day job instead. Unicorns do exist in some forms but you are no where near their league.  

    Continue reading →

subscribe via RSS