As far I can remember I’m always been crazy with programming and algorithms.
When I’ve started working on Mac it was fall 2001, when the first public beta was released. Since then, I moved to iOS in 2007. I also like having some fun with backend development with (especially NodeJS).
While the majority of my works has been done for all the companies I’ve worked for, a great selection of my open source code is also available on my GitHub profile.
If you are interested or you have some career opportunities, this probability the best way to see the quality of my work.
Lots of this code is actually distributed as libraries and used in thousand of apps currently available both for macOS and iOS.
Creo / CreoKit
In 2012 I co-founded CreoLabs where I’ve worked until late 2015. The goal of the company is to make an easy to use and fast environment for cross platform app development.
My principal role is Software Architect responsible of:
- Creo IDE: The main application of the company. It’s an IDE for Rapid Application Development. I’ve designed the main architecture of the macOS application and the integration to support live application editing.
- CreoKit: This is probability the most challenging job I’ve made recently. It is a near true porting of the UIKit framework to macOS. We have used it to simulate as much as possible similar iOS experience at design level inside the IDE. If you are interested I’ve made a talk at Pragma Conf 2014 about that.
In 2015 I left Creo searching for new challenges to face.
➤ CreoLabs Official Page: it worths!
As Software Architect and Developer I love challenges; when I work on a new library I often ask to myself: how can I simplify my everyday work and make something better for other devs?
My collection of open-source libraries is my tribute to the open source community. Most of the time you can find a rich explanation of the idea behind a new tool as article in this blog.
It’s also a good way to see how I code.
SwiftDate (+3.2k ★)
SwiftDate is my most famous library; it allows you to manage date and timezones easily on all Apple platforms and Swift Server. It supports mathematical operations between dates, timezone conversions, manipulation of date/time components and more.
According to CocoaPods stats, more than 17k apps uses it at Oct 31 2017.
➤ SwiftDate on GitHub
Hydra (+1.1k ★)
await (as seen in Async/Await specification in ES8 (ECMAScript 2017) or C#) which allows you to write async code in sync manner. Hydra supports all sexiest operators like
Hydra architecture is fully described in “Promise Internals: how to build an A+ compliant Promises library”.
➤ Hydra on GitHub
SwiftRichString (+1.2k ★)
SwiftRichString allows you to simplify your work with attributed strings in UIKit. It provides convenient way to create and manage string with complex attributes, render tag-based string and manipulate styles at specified indexes.
➤ SwiftRichString on GitHub
This is my last creation. The goal of this project is to simplify how tableview are populated and managed. Tired of the unnecessary complexity of data source and delegates I’ve applied declarative approach to table management. The result is a really cool project I proud of; take a look at my article about the architecture and discover how it can simplify your everyday work!
➤ Flow on GitHub
SwiftLocation (+1.4k ★)
SwiftLocation is the right choice to work easily and efficiently with Location Manager. Main features includes: efficient hardware management (it turns off hardware when not used. Don’t worry, we take care of your user’s battery usage), easily monitor for your with desired accuracy and frequency (continous monitoring, background monitoring, monitor by distance intervals, interesting places or significant locations), device heading: get current device’s heading easily, reverse geocoding and more!
According to CocoaPods stats, more than 4k apps uses it at Oct 31 2017.
➤ SwiftLocation on GitHub
- SwiftMsgPack: Swift implementation of MessagePack, an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it’s faster and smaller.
- SwiftScanner: A pure native Swift implementation of a string scanner; with no dependecies, full unicode support.
- ScrollingStackContainer: Efficient scrolling
UIStackViewreplacement, more suitable in situations when you are building a scrolling container with an heterogeneous number of items.
- SwiftUnistroke: $1 Unistroke Gesture Recognizer in Swift
- UAParserSwift: Lightweight User-Agent String Parser (port of ua-parser.js) made for Swift Server Side (Vapor, Kitura etc.)
- … you can browse a complete list including ObjC code (lots of them are not mantained anymore)