Unlocking Mixins with Swift 5.9 Macros June 12, 2023
It's been a while since the last time I thought about traits and mixins in Swift, but the WWDC23 presentations about macros brought a lot of memories from those times...
A world of coding đź’», by Alejandro Martinez
It's been a while since the last time I thought about traits and mixins in Swift, but the WWDC23 presentations about macros brought a lot of memories from those times...
WWDC23 is over and as previous year I'm sharing my unedited notes from all the sessions I've watched.This year has been quite entertaining as the main focus has been on...
One of the many things I love about working with The Composable Architecture is how it encourages the developer to focus on domain modeling. I think that properly designing the...
Buckle up. This is an adventurer journal while exploring what's the best way of exposing the new style of formatting APIs in Foundation. We will walk through the paths of...
The folks at Point-Free have given us yet again a new tool to improve our Swift development: swift-dependencies, see their announcement. Let me show the journey I've been for the...
I've been very excited about memory ownership improvements to come to Swift, and now that they seem to materialize, I needed to share it with you. Specially because I feel...
One of the nice things about Swift Concurrency is its cooperative thread pool. When writting concurrent code you should not think about threads but is still good to know how...
Now that I have this site building on Netlify I wanted to start writing more far away from my computer. Of course I immediatly found a bit more friction that...
With the whole move to Mastodon, I’ve been thinking a lot about owning my content again and what will happen with all the interesting things I’ve written on Twitter. That’s...
Today I spent a couple of hours understanding how SwiftUI aspectRatio modifiers works and how it interacts with Image. It's a surprisingly simple system, but also one that made me...
The safe area is one of the most relevant changes in the UI paradigm of iOS in the recent years. Let's learn how to implement a footer with CTA that respects the safe areas but with a background that extends to the edge.
In the early days of Swift, one thing I really enjoyed was the focus on properties (bye-bye ivars!) and the unification of stored and computed property syntax. It became very...
Swift's Optional type is one of the biggest hits of the language. Mainly because it's opt-in. Everything is non-optional by default, which solves the old problem of having to deal...
Sometimes some topic gets in my head and doesn't leave until I've gone far enough to satisfy my curiosity. Usually this ends up with me spending days writing some code...
Following Structured Concurrency was one of the best decisions Swift could have made when introducing concurrency into the language. The impact of that decision on all the code written with...
Since we're about to start a new year, I thought it would be good to write about what I think it's the best approach for building iOS apps nowadays.For the...
One of the beautiful things about Pointfree's Composable Architecture is how you can start using it on a smaller part of your app. It makes it very easy to improve...
Today I want to show you a rather obscure feature of Swift. You will learn a bit about Swift's type system, type inference and other nice powers that the language...
Today I want to share a weekend experiment where I built the classic Matrix effect in SwiftUI. It all started after seeing this tweet of the effect implemented in Compose....
One of the most important aspects to understand about Swift Concurrency is how cancellation of async tasks works. You may expect that when a task is cancelled, it immediately stops,...
WWDC21 has brought many cool things and there is one that will facilitate a lot the creation of new projects with dependencies. Until now it was a bit of a...
We're just in the week of WWDC and it's clear that Swift's Concurrency it's the biggest topic that will change how we develop. I've been following its evolution for months...
And here we are again! A new year, a new WWDC! I'm writting this after the first day of video sessions so there is still a bunch of cool things...
As last year I decided to share my unedited notes from the sessions I'm watching. The difference is that this time I've focued more on the topics and not on...
Swift is about to get its Concurrency features. Their development is going very well, with many proposals actively reviewed and a lot of the work already available in recent snapshots....
SwiftUI's layout system is very nice to get started with. Combining stacks and modifiers you can get very far very quickly, but at some point you will need to pass...
Swift is well known for its lean syntax that helps newcomers understand the code relatively quickly. But it's also a language with advanced and powerful features. Sometimes this makes part...
When Apple released its own SwiftUI tutorial I decided to give it a try. This was not a simple tutorial introducing the basics of SwiftUI, but a more overarching training...
I've been a big fan of what Apollo is doing for a while, and recently they have been doing various interesting talks and interviews. In this post I want to...
In this post I want to show you a little behind the curtain. As you may have noticed if you follow me on Twitter, recently the tweets with links to...
One of the major benefits of SwiftUI is its amazing DSL. A feature that not only makes it nice to read but also makes it possible to use the type...
SwiftUI is an amazing tool to create all sorts of views in our applications. But many times we want that ease of use to generate graphics that can be used...
Having a good process to update your tools is very important, specially for those that affect directly your code. I've talked about how I update swiftformat and this post will...
Talking about how one updates a tool may seem a bit nonsensical, after all, what dificutlies can you have when updating a tool? Well, you would be surprised! But no,...
Legends of Runeterra has become one of my favourite games. I started playing it since the beta was available and haven't stopped since. It caught me by surprise, but it's...
Optional equitability is one of those aspects of Swift that seems simple at a first glance but that makes you stop and think twice when you encounter it in actual...
Sometimes when writing Swift code you want to reference an instance before its creation. It's not a very common, which is why I'm writing this post so I can easily...
This post is a personal opinionated piece around unit testing and the dogmas of our industry. Be sure to come here with an open mind and respectul toughts. I will...
My birthday is the middle of July, seven days from now, which has always made me consider summer as the division between years. That mentality was reaffirmed when as a...
iOS offers the ability for applications to add quick actions to the home screen icons. Implementing this feature often requires things that are not easy to access in most common...
WWDC week is here and with it the usual post with all my notes about the sessions.This year I've changed the format and I will keep the notes grouped by...
After having absorbed the keynote and SotU the wait for the sessions started. But with patience, and thanks to the constant flow of time, California o'clock arrived and, after a...
WWDC Monday finished! And what an evening! For the first time I was able to stay awake to watch the SotU live and it was great ^^ The problem is...
The introduction of SwiftUI and previews changed completely my process of developing applications. Having such an easy way of quickly prototyping UI ideas affected the rest of my process. But...
It's that time of the year again! WWDC 2020 is around the corner. As every year around this time I start thinking about my wishes for this version of WWDC...
Swift type system is quite powerful and the where clause is a very important part of how developers interface with it. This keyword allows developers to constraint code to a...
Swift 5.3 comes with a nice addition for enums: it will synthesize the required implementation to conform to the Comparable protocol. This reduces a lot the boilerplate needed to make...
A couple of weekends ago I was reading my Twitter timeline and I, don't know how, ended up in this old tweet."This isn't a Louie Mantia color."(That means it isn't...
PointFree has released a library with their Composable Architecture and I've been showing it a little bit on livestreams and videos. This page wants to serve as an index and...
Protocol extensions are one of the most powerful features in Swift, but they also come with a bit of danger. In this post I will explore how this feature interacts...
Welcome to alejandromp3. As you may have noticed this website has a totally new design! Not only that, but is now using a different static site generator purely in Swift!This...
I’ve been using FLEX for years and I just realised the little I’ve done to promote this great tool among the iOS community. So here is my attempt at giving...
Publish's Foundation theme is a very nice starter, but at some point you will want to accommodate it to your needs. When you start touching the CSS you will quickly...
While developing the new version of my website with Publish I had the necessity of have live reloading of the page while developing. I'm happy with the solution I've found...
In the past I've written about the setup I typically use with Danger. It worked quite well given the limitations but there was always the annoying restriction that to update...
I shared a very special video on my Following Swift Evolution video series the other day, Road to Swift 6! I think it's an important moment to look at what...
With the release Xcode 11 is now easier than ever before to work with the Swift Package manager. If I enjoyed making CLI tools with Swift before, now it's a...
One of the common things we want to display with SwiftUI are lists of our models. The basics of it are pretty easy, you just need to use a ForEach...
This week I removed a big chunk of code from our app, an entire section/feature. I've been working on this codebase for years and I had the opportunity to do...
SwiftUI has some presentation modifiers to display alerts, sheets and full screen views. On one hand, presenting an alert is nice and easy, it feels really well designed. But on...
In my previous post about SwiftUI buttons I described a technique to reuse button configuration with a ViewModifier. Now that beta 2 is out, we finally have the proper tools...
Yesterday I shared with you a post where I was trying to understand SwiftUI's layout system in order to implement equally spaced distribution for views inside stacks.I was able to...
One of the things that I still don't fully understand about SwiftUI is how to customise the layout of views.HStack and VStack are fine for the majority of cases, but...
The abstractions on SwiftUI are so composable that customising the UI it's basically an intrinsic property of the framework. Let's take a quick look at some things you can do...
WWDC'19 has been great and I'm obviously hyper excited about SwiftUI but if there is one thing that I like more than watching a great announcement is watching great video...
After all the game changing announcements on the WWDC one of the words that is used a lot is "finally!". We're excited and happy that Apple as finally given us...
WWDC '19 is over, and what a week! Let me start by saying that this is probably the best WWDC ever. We have seen the announcement of game changing technologies...
Is that time of the year again 🎉 WWDC '19 is happening next week and as usual we all have our expectations, wishes and predictions.I have to admit that this...
After writing about my perfect notes app and comparing the available options I decided to move to Bear. My tasks from Todoist were one of the first things that I...
I'm so thankful to have people like Jonathan Blow that is able to challenge the status quo of our industry. Software quality is decaying and we're part of the problem....
I've already mentioned how I moved tasks from Todoist to Bear but one of the missing pieces of the migration was some lists that I had on Reminders.These lists were...
The Property Delegates proposal has been in review for some days by now and is a good example of the strength of the Swift community.This is a feature that many...
Last year I wrote about Improving struct composition in Swift by levering the using keyword and feature taken from Jai. Recently I've been inspired by pointfree to implement this feature...
There is this commonly followed programming rule that says that parameter lists must be short.Nobody wants to see a constructor with more than 2 arguments right?Right?Well, let me tell you...
Today I've used Protocols to make a generic function only accept a certain number of types. The interesting part is that the only thing the protocol has is an associatedtype,...
After finalising the InterpolableLanguage protocol in the third part of this series we will finally put it to good use and show an example of this can be used on...
In the first article of this series we made a safe string type that was safe to use but with a cumbersome API, and on the second article we made...
In the previous article we made a safe string type that was safe to use but with a cumbersome API. In this part we will use new Swift 5 interpolation...
The String problem is something that I've explored before, in my 2015 post Solving the Strings Problem in Swift. The solution back then was far from ideal as Swift was...
This is a small trick that I use when I'm writing a script in Swift that performs some operation in a large number of objects, usually files. More often than...
After having clear the requirements for a notes system and comparing different options I decided to give an honest try to Bear. Now, one of the first things I need...
After a long day of hard work I endup having many apps open. Xcode, Visual Studio Code, Simulators, the terminal... when it's six o'clock I want to close everything work...
At the iOS team at Lifeworks we've been using Danger since its inception. We care about the etiquette of our PRs and the more that can be automated the better.I...
In the past few days the Swift community has been awoken again with the promise of a better way of using Swift for scripting, all thanks to swift-sh.I made a...
Last week I participated in the first Blackthornprod GAME JAM. I had so much fun creating a small game involving some mechanics that I wanted to explore for a while.The...
Everyone knows that NSSpain is one of my favourite conferences but sadly this year I haven't been able to assist. Luckily for me the recordings are already up so I...
I haven't been doing much maintenance to this website since I migrated to GatsbyJS, but recently Gatsby has announced its 2nd major release. This is a big step forward for...
One of the best things of modern Swift is the introduction of KeyPath. It allows us to reference getters and setters as first class values in our code. With them...
On 2014 I wrote a post about how to drive a UISegmentedControl with the new powerful Swift enums. Back then the major complain was that to get all the cases...
One small inconvenience of a static blog generator running without a CMS is that to create a new post in markdown you need to add manually the front matter in...
Server side development and the managing of the infrastructure has gone a long way in the recent years. From scalable virtual machines easy to manage to containerisation with Docker and...
In previous posts I described my setup with Netlify for automatic deployment and even how to receive push notifications when a deployment succeeds. Today I bring you an alternative to...
After the setup of this new website with Netlify I lost a little the perception of when the website was up to date. Before I had to run the build...
I was reading the Rust forums when I saw this post talking about an oficial Rust error crate. It reminded me about the discussions in the Swift forums about making...
On every new iteration of my website I'm always happy to have taken the decision of using a static site generator instead of a big and fat CMS. This gives...
As I mentioned in my previous post, I'm Rebuilding my website with GatsbyJS. At the moment of writing this the migration is pretty much done. I spend the morning setting...
This days, between watching WWDC sessions, I'm undergoing the renewal of this my personal website and blog.For the past 3 years this website has been running in a Digital Ocean...
As every year after WWDC is time to sit down and watch the videos of the sessions! I wrote last year about How I watch the WWDC videos and this...
One thing that I always want to do is talk about WWDC before and after it happens. I used to do it when my podcast was active but without it...
Today I woke up to receive great news for the Swift community. The Swift Forums now have a new section to talk about some community projects!On the post that I...
This past week Google did their annual developers conference. I rarely watch the main keynote because I'm not that interested in their products but nonetheless I always keep an eye...
Make is one of those tools that I've always been curious about but never had a good change to try it until a couple of years ago. It is a...
RxTesting makes testing a custom Rx operator an enjoyable experience. Being able to fake time simplifies a lot the develpemnt of reactive code and helps on building confidence in the...
How flatMapLatest cancels an API request? This is a common question that people has when they start learning about Rx. Specially since RxSwift has an example of this in the...
p5.js and the rest of Processing projects are an amazing way of making coding more accessible to everyone, allowing creative people to make interactive applications with ease and teachers to...
One year ago I decided to start working on a Lox interpreter in Swift following Bob Nystrom's book Crafting Interpreters. Today I'm happy to say that the work has been...
Today I was reading Composing types in Swift which showcases the different ways of composing the different types in Swift: structs, classes and enums. Is a good read, specially if...
While programming with a static type system there are times when you write the definition of a function but you still don’t have any idea on how to implement it.func...
This post is just a dump of the things that came to mind while watching Jonathan Blow's libraries discussion. I'm not an expert on any of this but I find...
Swift forums are live! This is a great change that many of us have been waiting for a long time and that marks a new era for the Swift community....
I recently discovered the podcast LambdaCast, a really interesting podcast about functional programming with hosts that are at different points on the path to functional programming. This gives an interesting...
Watch how I create and publish a library with Swift Package Manager for the first time!With the help of the command line tool is pretty easy. After creating a folder...
Today I had to create a new radar for Apple in relation to HealthKit privacy descriptions.When you integrate HealthKit into your App you need to add some privacy descriptions in...
I discovered the Advent of Code from some retweet on the first days of December. I found them really interesting and original so I decided to give them a try....
In this post I'm gonna explore the talk Idiomatic Kotlin by Dimitry Jemerov. I'm gonna do it by showing how each of the topics the author talks about could be...
One of the best things about developing for iOS is having the power of the amazing frameworks that the Apple platforms have. Foundation is easily one of the best platform...
I've been always a big fan of productivity, time is gold. But funny enough, as many other people, we fall into the traps of being productive by just spending more...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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 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...
“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...
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 dispatchsourcet timer; void DebugTimer(dispatchblockt block) { dispatchqueuet...
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,...
The other day I had to work with some date formatting on iOS and Android and I end up using the great website. I immediately missed the option to change...
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...
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 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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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...
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...
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...
2018/08/23: A new version of this post is available. Using KeyPath to simplify the call site and reduce possible mistakes.A while ago when Swift came out I had the idea...
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...
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...
Yesterday night I found myself reading this code in GitHub for dictionary in array { - if let interaction = Interaction(dictionary: dictionary) { - interactions.append(interaction) -...
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...
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...
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...
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...
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...
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...
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...
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...
If you like this post I recommend you to read a more recent article about the same topic: Solving the String problem with Swift 5.Some days ago I read this...
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...
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...
+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...
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...
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...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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...
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...
I could quote here some sentences but the all article is fantastic so go and read it. Now....
It has been surprising to me how low the usage of UnityScript (a cool name for the Javascript used in Unuity) is, as shown in the official postSeems like some...
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...
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...
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...
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...
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 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...
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...
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...
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...
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...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
So at the end Swift is more functional than we firstly thought :)...
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...
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...
2018/08/18: Swift 4.2 introduces automatic synthesis of enum values. Check out the new version of this post. 2016/09/29: Updated for Swift 3.One of the most cool features in Swift are...
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...
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...
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...
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...
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,...
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...
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...
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...
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....
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...
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...
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...
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...