Blog

  • PocketCasts iOS App

    PocketCasts iOS App

    One of the senior developers working on iOS app, responsible for: – Improving StoreKit paywall code to support flexible promotions and offers – Transcripts support for podcast episodes – Release management

  • Tumblr iOS App

    Tumblr iOS App

    One of the senior developers working on iOS app, responsible for: – Improving StoreKit paywall code to support flexible promotions and offers – Transcripts support for podcast episodes – Release management

  • Building an Editor by Sharing Code Between Android, iOS, and Web with React Native

    Originally posted on Mobile.blog: When WordPress began rolling out the powerful new Gutenberg editor for building web pages (and, soon, entire websites), we were excited to bring that power to our users on mobile.? Why React Native We know firsthand how hard it is to make a great editor. We have built native editors…

  • Tumblr Post+

    My latest project: www.wsj.com/articles/tumblr-introduces-paid-subscription-tool-to-woo-younger-bloggers-11626872401

  • Saving a video of the iOS simulator

    If you want a quick way to save a video from the simulator, you can now write this on the command line: Then use the simulator as normal, and when you to finish the recording just press Crtl+C on the terminal. You will find your video in the Downloads folder. Note: This only works with…

  • Converting a project to SwiftUI

    I think the best way to get more knowledge about an API is to do a real project with it. So to improve in SwiftUI, I decided to convert one of my hobby projects, FontMetrics, to use it. FontMetrics is a straightforward application that lists all the fonts available on iOS and visualizes the typography metrics…

  • Video in SwiftUI: macOS

    One of the great features of SwiftUI is that the same code can run on iOS and macOS. After all, you are just declaring what kind of views you want; the system will translate those to the adequate component according to the system. So how can we make our Video view compatible with macOS?

  • Video in SwiftUI: Coordinator

    So you may think we finish the work on the isMuted property on part 2 of this series? Not quite. Start the demo app, notice the mute icon on the top right of the video controls, what happens if you tap on that control? Sure thing it will mute our video, but notice that our…

  • Video in SwiftUI: Properties

    On the previous article, we created our Video component for SwiftUI. It was working correctly, but there was not a lot of configuration you could do to it. For example, if you wanted to mute the sound of the video, there was no way to achieve that with our current component. Let’s see how we…

  • Improving Offline Posting

    Originally posted on Mobile.blog: The best technology is invisible and reliable. You almost forget it’s there, because things just work. Bad technology never disappears into the background — it’s always visible, and worse, it gets in your way. We rarely stop to think “My, what good Wifi!” But we sure notice when the Wifi…

  • Video in SwiftUI

    Recently I have been tinkering with SwiftUI, the new UI framework from Apple.  I’m enjoying the declarative approach, the ability to have real-time previews, and that all settings are save in code (bye, bye Interface Builder). While this new framework has a lot going for it, it still doesn’t have the same depth of functionality…

  • UIKonf 2019

    Last week I attended UIKonf 2019 at Berlin. This year conference had an all-female speaker line up, and I think this was an excellent idea to help increase gender diversity on our profession. A lot of female attendees commented they felt inspired to have the opportunity to see so many great presentations delivered by female…

  • Aztec: A native HTML editor

    Aztec: A native HTML editor

    One of the most important aspects of the WordPress app is the post editor, after all the content generated by our users is what make their site different from all the others. Since we started developing the WordPress apps, we wanted to provide the best writing experience to our users, writing is already hard by…

  • Font Metrics update

    Font Metrics update

    I developed FontMetrics some years ago when I was working for several publishing clients. Clients in publishing normally want to use their own brand fonts and have precise requirements regarding layout and text alignments. This was a bit tricky to do with the iOS text system at the time, so I developed this app to…

  • Quicker Unit Test in iOS

    Today while reviewing a PR on the WordPress iOS app just found about this very interesting technique to make iOS unit tests run quicker and more contained. Simple and very efficient.  

  • A New WordPress App Update, Designed for the iPad

    A New WordPress App Update, Designed for the iPad

    A great update on our WordPress app.

  • sergio.blog

    Last year Automattic, the company that I work for, bought the .blog domain  and being a generous company they decided to offer to all automatticians  the domain of their choice! So say hello to my new domain: sergio.blog !! So from now on I will start using this new home for my personal writing:  travel, review…

  • Automattic GM 2016 – Whistler

    Automattic GM 2016 – Whistler

    This year the Automattic Grand Meetup was in Whistler village. The Grand Meetup is an annual event where all workers of Automattic meet in a single place, do new friendships renew some old ones, have fun together and plan the year ahead. The week started with a big town hall where Matt Mullenweg (our CEO)…

  • Try Swift! NYC

    Try Swift! NYC

    This year I had the opportunity to attend Try Swift! NYC, a conference dedicated 100% to Swift development. This is a fairly new conference, the first edition was back in March in Tokyo, but the organization level was excellent. From the initial website, the registration process, pre-conference events, the conference itself all was great. It…

  • Crashes on iOS 10

    I spent the last week watching Apple WWDC videos, and after downloading Xcode 8 I was testing several of my libraries and applications. While testing the WPMediaPicker library I found that the sample app was crashing every time I opened the picker. After some investing on the code I found that the app was crashing the…

  • JSON Deserialization in Swift

    Some time ago when Swift was announced there was a big discussion in the iOS development community about JSON deserialisation and the right way to implement it. At the time, I didn’t give it much attention because I was still committed to Objective-C and didn’t have any immediate requirements to use Swift. Fast forward two…

  • Our software must get “a lot” better

    Great post from Seth Godin about the issues with “free” software. The examples he provides in the article are good ones but there is a plenty of good companies and individuals out there doing free software that is great, see WordPress, Linux, Slack and many others.

  • Logging in Swift

    Here is my poor man version of logging for SWIFT This method besides printing your message it shows the file name, the line and the function method where the log was made. The file, function and line numbers are extracted using literal expressions. This makes it easier to find where the log message come from…

  • Apple TV Tech Talks – London

    Apple TV Tech Talks – London

    I attended the Apple TV Tech Talks in London this week. They are part of a tour that developers and designers from Apple are doing around world to show the possibilities of the new Apple TV and share some insights on how to design and develop for it.  The presentations where all very good with a…

  • WordCamp Edinburgh 2015

    I had a great time on WordCamp Edinburgh 2015, met some great people from the local WordPress community and enjoyed some great talks from the other speakers. Here is the video of my presentation about the WP-REST API and the slides: The code for the app  show in the presentation can be found on this GitHub repo. I…

  • WordPress iOS App

    WordPress iOS App

    Role: Core Developer Client: Automattic Links: AppStore, GitHub repo Inspiration strikes — anytime, anywhere. Manage your WordPress blog or website on the go, from your iOS device: view your stats, moderate comments, create and edit posts and pages, and upload media. All you need is a WordPress.com blog or a self-hosted WordPress.org site running 3.6 or higher. With…

  • Brew Lab

    Brew Lab

    Great place to co-work in Edinburgh, excellent coffee (they even have cold brew!) great wifi connection, power plugs available all around, good music and excellent food! The only downside is that it gets very busy so get there soon in day to grab a seat.  

  • San Francisco Font

    Excellent articles from Martian Craft about the new San Francisco font on Apple devices: Why San Francisco Arriving At San Francisco A must read for all designers and developers working on the platform.  

  • GM 2015

    GM 2015

  • DVR

    I really like DVR approach to networking testing. So much better than mocking.  

  • tvOS – How to start

    If like me you got excited about the new tvOS platform that Apple launched last week, here are some mandatory documents to read before you start coding away: Apple TV Human Interface Guidelines Apple Programming Guide for tvOS While you read this you can download Xcode 7.1 beta that includes the tvOS SDK. After you…

  • Provision Profiles

    Jared Sinclair has very good advice about provision profiles.

  • Celebrating 10 Years of WordPress.com & Automattic

  • Crash Tools Metrics

    A nice site provided by HockeyApp to compare all the features of crash analytics tools. http://www.crashprobe.com/ios/

  • First weeks at Automattic

    First weeks at Automattic

    Everyone that is recruited for Automattic (and I mean everyone), spends is first three weeks doing Happiness Rotation an alternative name for Support. You could think this looks a waste of precious time for some of the people, but actually it’s a brilliant way to understand the business of the company, its clients and all the…

  • Create an IPA using xCodeBuild

    Xcode 5 brought a lot of improvements to the xCodeBuild command line tool. The most acclaimed by the developer community was that you finally can run your unit tests trough the command line using the Test build action. Beside the Test action there was another big improvement: the new -exportArchive option. This new option allows…

  • A better UIAppDelegate

    One of the most common ugly patterns I see while reviewing iOS code is the overcrowding of the UIAppDelegate with calls for all kinds of services. It all starts with the CoreData stack setup code, then someone adds code to setup an analytics service, short followed by a Push Notification service, InApp Purchase, Crash Reporter,…

  • OCLint

    While developing for iOS one of tools that I missed a lot from my C# projects  was FxCop. FxCop was a tool that analysed your assemblies and reports information about the assemblies, such as possible design, localization, performance, and security improvements.  On Xcode the only similar tools is the static analyser but it’s scope its…

  • Styling your app

    One of the great challenges in iOS development is how to do the styling if your app in a easy maintainable way. A lot of people start by doing it in their nib or storyboards directly, but they quickly find the limitations: no way to set custom fonts in your components, no way to refer…

  • Fast Android Emulators

    One of the big pains of Android development was the lack of a fast Android emulator to test apps. Until recently to do any kind of development you need to own a actual device and with the fragmentation on Android this could very expensive… Say hello to GenyMotion a company that provide super fast emulators. They…

  • Third Party Continuous Integration for iOS

    Until recently if we wanted to have continuous integration for your iOS project we needed to create your own solution, normally it involved the creation of a Jenkins instance in a MacMini. Now with  Xcode 5 and the OSX Server we also have an official Apple alternative in the form of Xcode bots, but you still…

  • CocoaDocs

    The fine guys from CocoaPods now provide us CocoaDocs a tool to search and view documentation for most  the libraries that are available in their pods repository. The best thing is that if you have a library and its configured to to be a cocoapod the documentation is automatically generated for you. The index page…

  • YouTube Videos

    Until recently to display YouTube videos in iOS or Android you need to use or an external player or some kind of Web view. The first approach made users leave your app and the second one normally was slow and buggy. Recently Google finally launched an YouTube Player API for Android. Unfortunately there isn’t a…

  • The missing Xcode plugin manager

    Alcatraz the missing Xcode plugin manager.

  • Generic sharedInstance iOS implementation

    One very common pattern when implementing Objective C singleton objects is the sharedInstance method. Because I was a bit tired of repeating this code in several of my classes I decided to implement a Xcode Code Snippet that can be reused everywhere. As you can see simple code that can be apply to any object.

  • Good Macros

    Here is a good write up, from Mike Ash, about the preprocessor and the proper way of writing macros. And here is a good example of a better Assert macro.

  • Application Icon Template

    With this fabulous photoshop templates you just need to create the icon, them let it create all the versions you ever need of it.

  • Link to your App

    Do you ever struggle to do a proper link to your application on the Application Stores? Where do I get that brand logo? Is it the right size? What’s the link to my app? Say hello to the link makers kindly provided by Apple and Google: Apple Link Maker Google Play Badges And after you…

  • MOGenerator integration in XCode

    MOGenerator is a command line utility that generates NSManagedObject class files based on you model files. It creates a NSManagedObject derived class for each entity of your model. The utility can be run manually every time you change your model files (.xcdatamodeld). This manual process can easily be forgotten, and ideally we want it to…

  • XCode Build and Version numbers based on GIT

    Since XCode 4.3 you can find in the Summary Tab of your targets the following fields: Version and Build. Version should be used to identify the “comercial” version of your app, something like 2.0, for more details on how to proper change version numbers have a look at semver.org. Build should be a internal number to unique…