AnyView's impact on SwiftUI performance

Introduction AnyView is a type-erased view, that can be handy in SwiftUI containers consisting of heterogeneous views. In these cases, you don't need to specify the concrete type o

SwiftUI performance tips

Optimizing performance is definitely one of the most interesting topics, not only on iOS, but software development in general. There are many thought provoking challenges, accompan

ML recommendation app with Create ML on iOS 15

Introduction WWDC21 brought us a lot of new cool things, such as the new Swift concurrency features, Xcode Cloud, new frameworks, as well as updates to the existing ones. One of th

iOS vs Android development in 2020

Introduction Android and iOS are the leading mobile operating systems in the world. They have some similarities, but also some differences, that trigger strong opinions in the user

SwiftUI in production

Introduction It's been a month (at the time of writing) since my app Soccer Puzzles has been live on the App Store, and a day since its basketball sibling Basketball Puzzles has ma

Collapsing top bar animation with SwiftUI

Introduction Many modern apps have a top bar, with customized designs and smooth collapsing animations. Since the default NavigationView doesn't provide much customizations in term

Sound classification with Create ML on iOS 13

Introduction Apple is making machine learning available to everyone. With the latest advancements in CoreML 3 and the new CreateML app , it's very easy to make your apps smarter. I

iOS design by prototyping and iterating

Introduction Usually, as developers we don't care much about UI design - we leave that up to the UX experts. User interface, design and experience are crucial to the success of an

Getting started with PencilKit on iOS 13

Introduction Recently, I've released my new drawing app, called Drawland . It's using Apple's new drawing framework PencilKit , so in this post I will share some insights and inter

Developing drawing app with SwiftUI

Introduction In this post, we will build a drawing app with SwiftUI . Apart from being super fun and addictive, SwiftUI with its declarative approach, makes it a lot easier and cle

Swift Class Diagrams Remastered

A picture is worth a thousand words. An architecture drawing - countless explanations. Sometimes, visualising concepts and implementations can bring much better understanding of th

Hand tracking with Turi Create and Core ML

Introduction The task of realtime hand tracking on a mobile device is both very interesting and challenging. The hand is one of the more difficult parts of the body to detect and t

Building voice responsive AR apps

Introduction Augmented Reality and Conversational Interfaces are two of the hottest technologies at the moment. They both bring a broad range of opportunities to make cool and inno

Creating 3D models for AR with photogrammetry

Introduction One of the challenges with AR is definitely the creation of 3D model representations of the real objects. This is needed in order for us to be able to present these ob

iOS app requirements checklist

Introduction When we are starting with the development of a new app, we are usually going through the requirements defined by our client and start thinking of concepts, architectur

Driving cars with ARKit

Introduction With augmented reality, you can drive any car you want. In this post, we will drive Audi Q7 , using horizontal plane detection. This will give more natural effect of d

Flying sharks with ARKit

Introduction You've probably heard of Sharknado , a movie with a very sound theme - flying sharks everywhere. In this post, we will try to accomplish something similar with ARKit,

ARKit image tracking with whisky bottles

Introduction One of the coolest features in ARKit 2 is image tracking. This lets you specify some references images to ARKit. When those images are recognized, you get the chance t

Introducing Girders for Swift

We, at Netcetera , are very excited to announce that we are open sourcing our framework for building iOS apps, GirdersSwift . What is Girders? If you ask Google, girder is a large

Catching smiles with Google's ML Kit on iOS

Introduction At the Google I/O conference, Google has announced an exciting new framework for machine learning, called ML Kit . This is another sign that machine learning and artif

Speaking at conferences

Lately, I've been doing a lot of talks at conferences, meetups and other events, such as job fairs and university classes. In this post, I will try to share some tips on how to get

Swift code types navigator

Software visualization gives an overview of the current state of your codebase. With it, you can onboard new team members faster, but also refresh your knowledge on an older code.

Pragmatic iOS app architecture

Lately, I've been reading a lot of articles on app architectures. There are many such articles , with many different opinions and solutions. It's great that developers are sharing

Flexible table views with descriptor arrays

Introduction Frequently, in our work as iOS developers, we have to present some kind of data in a table view or in a collection view. There are many ways to customise the standard

Forward pipe operator in Swift

One of the most debatable Swift features is the possibility to create your own (or overload the existing) operators. This feature has both pros and cons - on one hand you can make

iOSCon 2018

Conferences are a great opportunity to exchange knowledge and experiences with the fellow developers. The iOS community is pretty cool - there are a lot of fantastic people who are

Common iOS development mistakes

Introduction Developing iOS apps is fun and challenging. During this process, we sometimes make bad decisions and mistakes, that can have impact on the quality of the app (both tec

My book is published!

I'm very excited to announce that my book Developing Conversational Interfaces for iOS is officially published by Apress, one of the world's leading IT books publishers. You can or

Xcode build settings tour

Introduction Build settings in Xcode define how your app is going to be built. Usually, when your app shows build errors or it fails to validate on iTunesConnect, build settings is

Writing a technical book

Recently, I've finished writing a technical book, called Developing Conversational Interfaces for iOS , which will be published by Apress early next year. Writing a book is a very

Trendy topics for 2018 and beyond

The previous year was very exciting in terms of technology. A lot of new concepts, tools and frameworks were introduced, laying the ground for software developers and entrepreneurs

Drawing charts on iOS

Introduction Data visualisation helps us better understand the information and statistics our systems have collected. Having different views of the data, in different types of char

Augmented Reality on iOS with ARKit

Introduction One of the most exciting frameworks released with iOS 11 is ARKit . With ARKit you can incorporate 3D data and objects into the physical environment of the user. Moreo

iOS Conferences in 2018

2018 has arrived and there are already a lot of great iOS conferences scheduled. Usually, when looking for conferences, I was checking lanyrd.com . However, lately it seems it's no

Mobile databases on iOS

Introduction Apps are becoming more and more complex. Users expect great user experience, even without internet connection. An app that is not usable and treats offline as an error

Protocol-oriented maps on iOS

Introduction Maps are used in many mobile apps. That's mainly because of the nature of the mobile user experience - users expect to easily find what's happening around them. For us

Understanding Language on iOS

Introduction Graphical User Interfaces exist to enable the communication between humans and computers. The first graphical user interface was the command line (or the terminal), wh

Text recognition using Vision and Core ML

Introduction Machine Learning allows computers to learn and make decisions without being explicitly programmed how to do that. This is accomplished by algorithms that iteratively l

Conversational Interfaces Usage

Will people use conversational interfaces? That's the biggest question. Most people feel strange walking around the streets and talking with their voice assistants. A recent survey

A year of tech blogging

On this day, last year, I've published my first blog post . In one year, I've published (including this one) 23 posts, which is around one post in more than two weeks. The content

Natural Language Processing in iOS

Natural Language Processing (NLP) is a field in Computer Science which tries to analyze and understand the meaning of the human language. It's quite a challenging topic, since comp

Creating lists with SiriKit on iOS11

Last year, Apple announced SiriKit , which provides a lot of opportunities for the developers to provide functionality to the users via Siri. However, there are restrictions in the

Everything Apple announced on WWDC 2017

It's that time of the year - Apple's annual worldwide developer conference ( WWDC ), where new technologies and updates to the existing ones in Apple's platforms are announced to t

Attending CodeMobile UK

From 18th to 20th April, I had the chance to attend the CodeMobile conference in Chester, UK. This was the first edition of the conference and in this post I will share my impressi

Exploring Conversational Interfaces

People and computers speak different languages - the former are using words and sentences, while the latter are more into ones and zeros. As we know, this gap in the communication

Setting up Apple Pay

Apple Pay is a mobile payment and digital wallet service created by Apple in 2014. It enables users to make payments with all the devices from their ecosystem. That's all great, bu

Algorithms in Swift

Let's get back to college and the great Algorithms and Data Structures course. That's one of the most fundamental Computer Science courses, which develops the analytical and proble

Swift Class Diagrams and more

Introduction Documentation is one of the things that developers don't like to do much - but it's something very important not only for newcomers to the project, but also to the peo

Developing for Samsung Gear VR

Introduction Virtual Reality might be the next big thing. All of the big tech companies are starting to invest in this industry, so things will surely get even more interesting in

Swift considerations and decisions

Introduction Swift is already 3 years old, but still changing and improving a lot. Its unique features are starting to change the developers' mindset, moving away from the old Obje

JSON Parsing in Swift with Generics

Introduction Most of the time, the mobile apps are calling REST services to get and display the latest data to their users. We've already covered the networking part - making reque

Injecting code in iOS framework startup

Introduction Apple's new programming language has been around for 3 years now and it's adopted really quickly by iOS developers. However, Objective-C is still around and used a lot

Networking in Swift

Introduction Connecting the mobile apps with a REST service is almost inevitable in every project - apps would be useless and boring if they don't get the latest data from the serv