-
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
… read more »Arduino StarterKit
creating very simple and basics schemes and refreshing my memory about schematic and different components used in various PCBs. -
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 theCombine
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
… read more »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. -
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.
-
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 useSwiftUI
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 usSwiftUI
, 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
withSwiftUI
can be a bit tricky. Usually, we may pass data below theViewTree
, on the same level of theView
and above theViewTree
.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 responsibleUI
.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 »