Blog

Diffable Data Sources - First look

iOS Data Handling Evolution: An Introduction to Diffable Data Sources. Handling data source for table view or collection view in iOS 12 and earlier required conforming to UITableViewDataSource or UICollectionViewDataSource protocol and setting its delegate. However, this approach had its drawbacks, including computational power inefficiencies and the loss of animations. With the introduction of iOS 13 Diffable Data Sources, Apple addressed these issues and taught developers how to use insertions and removals while working with collection view. This eliminated the error-prone approach of allowing view and model data to be different and forced developers to handle all insertions and deletions. This blog post delves into the evolution of iOS data handling and how Diffable Data Sources have emerged as a game-changing solution for efficient data handling in iOS applications.

Written by Marcel Mierzejewski

Building a GitHub search app with Combine framework

The Combine framework, introduced at WWDC 2019, is a Functional Reactive Programming framework that simplifies asynchronous and synchronous state changes in iOS apps. In this tutorial, we will explore the key concepts of Publishers, Operators, and Bindings, and use them to create a simple GitHub repositories search app. We'll learn how to make network requests and manipulate data using Combine's declarative syntax. Publishers are the heart of the Combine framework, used to publish state changes such as a response or error of a network call. Operators, on the other hand, are used to mutate the output of Publishers. We'll look at a few operators like Map and Decode that make our lives easier when working with data. Finally, we'll use Bindings to update our UI in real-time. Overall, Combine is a powerful framework that provides ready-to-use Publishers for URLSession, NotificationCenter, and more. With Combine, we can make our code more readable, maintainable, and efficient.

Written by Majid Jabrayilov

Case Study - Web Accessibility - Magento 2 Alpaca Theme

Every website should be accessible, meaning available and functional for all users, no matter how they reach the web. At Snowdog, we do our best to make each project accessible by default, especially those that are open source. To ensure the quality of our a11y work, we invited a user who is blind to test some sites. Our open source project Alpaca provides the core code base to some of our clients’ Magento stores, so it was a priority for us to test this.

Written by Clara Shen

Web Accessibility - My Adventure

Over two years ago I visited the Invisible Exhibition in Warsaw. It’s very unique; visitors are guided through several exhibitions in total darkness, to really experience life as a blind person. Afterwards, our guide, a man with a visual impairment, talked about the practical aspects that help the visually impaired operate in different situations, like signing documents, playing tennis etc, and he showed us how he uses the web.

Written by Anna Karoń

Embarking on our journey with Pepper - the robot in the realm of conferences

Our first steps with Pepper were like investigating an opponent on the battlefield: in theory, we knew what we were dealing with but we were not sure what the capabilities were of such a creature. We dived straight into brainstorming how we could take advantage of Pepper’s features to help our clients. Once Pepper became a part of our team, like any other developer and PM in the office we had fun pursuing the opportunities for use cases and solutions in our areas of interest.

Written by Wiktoria Serek

How to recreate Snapchat's navigation on iOS? Part 3

In Part 3 of our tutorial on recreating Snapchat's navigation on iOS, we're going to explore the use of custom navigation buttons. Unlike the standard UITabBar buttons, these buttons have a unique design with custom height, animated transparency, and full-screen UX. By creating layout constants and adding a container for the buttons controller, we can achieve the desired look and feel of our app's navigation. With this final touch, our app will provide a fully immersive experience for users.

Written by Artur Chabera

How to recreate Snapchat's navigation on iOS? Part 2

In Part 1 of this tutorial, we explored how to replicate the horizontal axis (X) of Snapchat's navigation system. Now, in Part 2, we'll delve into the vertical axis (Y) and learn how to incorporate it into our iOS app. While the vertical axis may be a bit more challenging to develop, it's a crucial component of Snapchat's navigation system and allows for seamless navigation between different screens. To begin, we'll need to understand the basic structure of the vertical axis and how it interacts with the horizontal axis. This includes understanding the concept of "pages" and "tabs," as well as how to create a custom tab bar controller to support our navigation system. Throughout this tutorial, we'll also explore some common issues that can arise when implementing the vertical axis and how to address them. By the end of Part 2, you'll have a thorough understanding of how to develop both the horizontal and vertical axes of Snapchat's navigation system, and be well on your way to creating your own immersive and intuitive navigation system for your iOS app.

Written by Artur Chabera

How to recreate Snapchat's navigation on iOS? Part 1

Snapchat has revolutionized the way we communicate through social media. With its unique features such as filters, lenses, and Stories, it has become one of the most popular apps in the world. However, what sets it apart from its competitors is its intuitive and immersive navigation system. When I first started using Snapchat, I was instantly drawn to the way the app's navigation felt so natural and fluid. As a developer, I was curious to explore how this navigation system works and see if I could recreate it myself. While there are various libraries available that can reproduce Snapchat's navigation, I wanted to take a deeper dive into the development process and uncover what's happening behind the scenes. So, if you're like me and want to discover the magic behind Snapchat's navigation system, this blog series is for you. We'll explore the different components that make up Snapchat's navigation and learn how to recreate them step-by-step. Whether you're a seasoned developer or just starting out, this series will provide you with the knowledge and skills you need to develop a similar navigation system in your own app. So, let's get started and see what's under the hood of Snapchat's navigation!

Written by Artur Chabera

Welcome to Snowdog labs - now on Medium

Snowdog Labs 2 is a new blog and initiative from our team to share our technical knowledge and expertise on a wide range of cool topics, from web and app development to machine learning and robotics.

Written by Clara Shen
Older posts Newer posts