The beginning of the year is a good time to look back, so I put together a list of the ten most popular posts of 2017. The ranking is based on the number of page views.
UITableView is one of the most important user interface components on iOS. In this tutorial you will learn all the basics you need to know.
Very often the content of an UITableView is dynamic – and so is the length of the content. In this case you need table view cells, that have different sizes. You could calculate these sizes manually, but that’s a little bit cumbersome. Instead, you can use automatic row height.
Passing data between view controllers is a very common task. Depending on the circumstances, there are several ways to accomplish this.
By using frameworks you can share code between multiple projects – a huge productivity boost! In this post you will learn how you can create a framework and how you can use it in your projects.
iOS has become an operating system that is not only great for consuming content, but for productivity as well. Of course you need the right apps though. Here’s a list of my favorite productivity apps
iOS has always been a very secure operating system. In order to achieve that, apps are running in its own container. In the beginning of the iPhone it wasn’t possible for an app to communicate with other apps at all. Luckily, this has changed over the years. In iOS 8 Apple has introduced so-called extensions which allow an app to provide functionality in another context.
Quick actions have been introduced with the iPhone 6S. When you force touch an app icon, a menu will be presented. You can use it, to quickly access a certain part of the app or to trigger an action.
Besides quick actions, peek and pop is another very interesting 3D Touch feature. By using it you can quickly preview content, for example emails or websites.
There are a lot of sorting algorithms. In this post we will take a look at implementing merge sort in Swift.
#10: Swift: Extensions
Like categories in Objective-C, extensions in Swift give you the opportunity to add functionality to a type. This is not only possible for your own types, but also for types for which you don’t have access to the source code.
@ gguy / shutterstock.com