The past year has been challenging in so many ways.

COVID-19 forced us all to thrive working remotely, for both our customers and our own employees. During this past year, most of modern society inevitably adapted to the situation.

Work/life balance

At Gett, we also adapted and introduced Gett Flexi so our employees get the ultimate freedom of choice — between a 4-day week vs. 5-day week, as well as working from office or the comfort of their home.

No matter how well you adjust to working remotely though, trying to figure out how to plan a Company Hackathon, an event which…


Get started with Apple’s Combine with your existing RxSwift knowledge

Update: This cheatsheet is available as a Markdown table, as well as searchable CSV tables in the following repo: https://github.com/freak4pc/rxswift-to-combine-cheatsheet. Thanks Joe Blau for the help and inspiration!

Update 2: I’ve released a library called RxCombine which provides a proof-of-concept for Bi-directional type bridging between RxSwift and Apple’s combine, letting you mix and match the two in your code as needed. I hope you’ll enjoy it! 😇 https://github.com/freak4pc/RxCombine

What a crazy WWDC week we’ve had! So many new things to learn and dig into :)

One of these new things was Combine, Apple’s asynchronous event-handling framework, now built into the…


Learn about the newest additions to RxSwift

RxSwift 5 was finally released just a few days ago, and I thought this would be a great opportunity to share a quick list of the most note-worthy changes pushed into this release.

No worries though, as this release is mostly source-compatible with only a few deprecations and renames. But it also packs a bunch of underlying improvements I’ll detail below.

Relays are now a separate framework — RxRelay

Relays are a great abstraction layer on top of Subjects that lets you relay elements without worrying about errors or completion events. Since they were added to RxSwift, they lived as part of the RxCocoa project.

Some developers were…


RxSwift & MVVM, Custom Animations, and Gett Delivery with Firebase

On January 30th we had our annual iOS meetup at Gett HQ, and it was a blast! Thank all of you for showing up. 💗📱

If you didn’t know about this meetup, be sure to sign up to our Meetup Page so you can enjoy any future meetups we organize 🤓

As promised, the recorded talks were uploaded to our YouTube channel, and are also listed here, for your convenience. Enjoy!

RxSwift & MVVM: Your First Steps

by Shai Mishali
(Hebrew, with English subtitles)

Come and learn how to get started with RxSwift and MVVM. What is really an architecture, and what MVVM aims to solve…


Welcome to Gett’s new Engineering blog! This is where individuals from our R&D will share stories, code samples, tips, thoughts, and experiments from their day-to-day work. We hope you’ll join us periodically and enjoy a quick break in your daily routine to learn some new techniques and enrich yourselves.

When you work with RxSwift, and Rx in general, every now and then you’ll discover some new piece of information that wasn’t entirely obvious to you until you’ve “hit a wall” and had to dig deeper. One of these common pitfalls is the concept of Resource Sharing. …


Not a long post this time, Just a tiny snippet of code I found useful in some scenarios :)

I noticed I’ve been seeing a lot of code similar to the following:

guard let myObject = MyObject(dependency: xyz) else { 
print("This thing is nil")
return
}
doSomethingWithObject(myObject)

So i’ve decided to write a tiny extension to make this a bit nicer.
With the code provided at the end of this post, this would look something like this:

MyObject(dependency: xyz)
.then { doSomethingWithObject($0) }
.otherwise { print("This thing is nil") }

This is much more concicse in many cases (especially, for…


Here’s a quick recap of most of the “What’s new in Cocoa Touch” session of WWDC 2017 (Session 201). This is all typed live so if something isn’t accurate feel free to correct me :-)

Productivity

Drag and Drop

Enabling Drag is done by creating a UIDragInteraction (subclass of UIInteraction) and attach it to the view you want to have Draggable (and assign its delegate).

The delegate provides data for dragged item, allows customizing the “lift” animation and customize the draggin preview.

Enabling Drop is done by creating a UIDropInteraction and setting its delegate in a similar way. …


Here is a quick recap of everything we’ve learrned from Apple during the “State of the Union” talk in WWDC 2017. Have fun!

Source Editor

  • Rewritten in Swift from scratch
  • Built-in markdown editor
  • Better fix-its (inline and don’t break formatting)
  • 300+ new diagnostics, analyzers and fix-its
  • 3x quicker file opening, 60 fps scrolling, 50x line jump
  • Tokenizing in code editor from Playgrounds (Hold Cmd while hovering)
  • Contextual menu for actions (Tap while tokenizing structure)
  • Brand new refactoring system
  • Cmd +/- to resize code text
  • SDK version availability Fix-it
  • Protocol implementation stub fix-its
  • “Extract” moves implementation to its own method/let
  • Rename/edit in scope


The Big Bang Theory S06E05 — The Holographic Excitation

Backstory

On September 2016, my then-fiancé-today-wife Elia and myself were supposed to celebrate our 2 year anniversary together. Unfortunately, due to my relatively new role at the digital innovation labs of Tim Hortons & Burger King (RBI Digital), I had prior commitments and a planned business trip to Manhattan right on the date of our anniversary.

My guilt of not being around for this special occasion made me wonder— how can I celebrate my 2 year anniversary with my love, while not being there with her physically? …

Shai Mishali

iOS Tech Lead @ Gett 🚕 RxSwift & RxSwiftCommunity core contributor. International speaker and worldwide hackathon winner. Fiddling with tech for a living. 🤓

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store