• First look at WindowGroup

    Within SwiftUI 2.0 we got an option to create a pure SwiftUI app (at least a minimal one). To make this possible, Apple introduces WindowGroup - “a scene that presents a group of identically structured windows.”

    This view has power only for platforms, that support multi-windows - … read more »

  • Arduino crash course

    During the past few weeks, I spend some time playing within Arduino StarterKit creating very simple and basics schemes and refreshing my memory about schematic and different components used in various PCBs.

    … read more »
  • s.o.l.i.d.

    Often we are talking about some principles that can improve our code. These principles are also known as SOLID. During the past few discussions, I heard a lot of different explanations (correct and not) for the same things.

    … read more »
  • .strings

    Localization for Apple products always was a pain in the ass. Yep, every year Apple adds new and new options and features for localizations, but we always should handle a lot of issues on our own. Sometimes, when some issue is resolved, a few new ones appear.

    … read more »
  • Dynamic swift - Part 3: Opposite to @dynamicCallable - static Callable

    Use an object as a function is one more addition, that we have in Swift. This proposal was described on SE-253. And was added in Swift 5.2.

    … read more »
  • Dynamic swift - Part 2: @dynamicMemberLookup/@dynamicCallable

    In this article, I would like to explore one more dynamic feature available in the Swift language - @dynamicMemmberLookup.

    This new attribute introduce new behavior in Swift - something more related to scripting languages, but with swift type-safety. This attribute makes it possible to execute a subscript of … read more »

  • Dynamic swift - Part 1: KeyPath

    Dynamic features bring some flexibility and additional functionality into the programming language, but at the same moment, this can reduce compile-time safety.

    … read more »
  • a File

    Managing data always was and will be the main concept behind any application for any platform and at any time. But how we can do this? How to manage data between different sessions of app usage?

    One of the simplest and still perfect ways to do this is by using … read more »

  • God helps those who help themselves

    Combine improves our code and makes development much faster and easier. But, even with such an idea in mind, we can often face some issues (like “unresolved type of result”). A swift compiler is very strong-typed, so when we use it within the Combine framework we … read more »

  • Save resources

    Resource sharing is a process when we use something wisely. And nowadays, this point is very hot - a lot of contributors would like to have something.

    If we think about resources from a developer’s point of view, we can highlight few hot points also - server resource, or BLE … read more »

  • await for a new async in Swift

    Async tasks allow us to improve UX and use (or at least try to use) all possible power that the device could provide for us. Almost every app nowadays uses async code - from executing small, not important to heavy, possibly remote, tasks. Such behavior can greatly improve any flow … read more »

  • Powerful trio

    Combine brings in developer’s life a lot of nice additions and make it’s better. Using publishers improve data flow and allow us produce and transform input into required data representations. This save for us a lot of time and effort.

    … read more »
  • Make xCode great again

    We often use 3rd party solutions for different tasks when developing apps for iOS/macOS or other Apple platforms. Different functionality that these 3rd party tools provide for us is easy-to-use and saves our time (for example, debug DB, record video from a simulator, check localization, etc).

    The big problem, in … read more »

  • Document or die hard

    The requirement, feature description, goal of the project… How many times did u ask yourself about this during work on some project? As for me, these questions appear in my head very often.

    The problem of feature/requirements/idea documentation is not new at all, but people on the different project continue … read more »

  • iOS entry point

    Did u ever wonder, how the program starts? Where is the entry point and how compiler know that he should start from this point? The answer is simple - the entry point is where the first instruction of the program and where the program has access to command-line arguments.

    In … read more »

  • Network reachability

    Now, networking is one of the core components of almost any mobile app. Most applications store, retrieve, analyze, and provide data to u using a network connection. Without networking, most apps can’t exist at all.

    Different situations may occur and apps may be used in a different location with or … read more »

  • Do that instead of this

    Sometimes we need to replace some functionality in existing code, but the source is unavailable to us due to some reason. As option developers could use method swizzling - overriding or in other words replacing the original method implementation with a custom one.

    Such technic a bit dangerous and in … read more »

  • DynamicProperty

    With SwiftUI we are already faced with a bunch of specially designed @propertyWrappers. But, the number of developers who use SwiftUI constantly increasing, the problems that they are trying to solve also increasing quite fast. As result, we would like to combine different functions … read more »

  • Hello Arduino

    We all use software that can use hardware capabilities and convert our actions into the desired result. But do we understand how everything works on the hardware level? How software code translated into 0 and 1 and how electric current produce magic for us?

    … read more »
  • Gestures in SwiftUI at scale

    Touch interface provides users essential way to communicate with a device with phenomenal simplicity. U even can’t notice how many gestures u did in the last few hours while u use your phone. But if u think about it - the number of gestures interactions may surprise you.

    … read more »
  • Fake, Stub, Mock...

    Testing is an essential component of quality during any process. App development is not an exception.

    Often, during testing, we are faced with a situation, when real data is not available, or some part of real implementation logic is complex and currently not tested but required to be used, so … read more »

  • Introduction into SwiftUI animations

    iOS provides for us a lot (really, a lot) different variants of animation mechanisms. CoreAnimation, UIKit animations, SpriteKit, SceneKit, OpenGL ES etc. When Apple introduces for us SwiftUI, animation can’t be just skipped. Instead, the new mechanism for … read more »

  • Ahoy, captain! Give me the Anchor!

    Building a complex UI may require data exchange between different parts of the view hierarchy. Often we may require an exact position or some coordinate point during various animation processes or even just a point.

    … read more »
  • Passing data up the view tree in SwiftUI

    DataFlow with SwiftUI can be a bit tricky. Usually, we may pass data below the ViewTree, on the same level of the View and above the ViewTree.

    In this article, we review the possibility of transferring data up in the … read more »

  • Understanding SwiftUI View lifecycle

    SwiftUI brings for us, developers, the whole new ecosystem for creating complex and responsible UI.

    Thus the entry point for this approach is quite low and u can start producing acceptable UI after the first 5 min, it’s always better to dive a bit … read more »