-
User-Agent for iOS
When we meet some person, we always want to introduce ourselves from the best side. We can describe ourselves by telling the name and a few interesting facts.
In the computer world, if we behave as a user - we also should introduce ourselves. One of the options is to … read more »
-
My attemp to networking
Networking - is an essential part of modern application. The good question here - what solution can we use to meet our needs.
Often, I heard from my colleagues, that they use some library that has a lot of functions and so abilities. But in real life, they use only … read more »
-
The LLDB Debugger - Part 3: Watchpoint
Debugging - is not just a process for finding and fixing bugs - for me, this is a great way to find out how actually the program works. To do so, we should be able to detect any change at any memory address.
Often,
breakpoints
can help a … read more » -
The LLDB Debugger - Part 2: Breakpoints
To correctly prepare the application logic we should define some instructions and execute them at a certain moment, in other words - execute instructions. But, sometimes it’s hard to tell if it works in a way, we expect or not.
A great helper here - a
breakpoint
- … read more » -
The LLDB Debugger - Part 1: Basics
Debugging is an essential part of app development for any platform. Luckily for us, Apple-developers, we now use
lldb
- “a next-generation, high-performance debugger” (source).In this series of article, I will try to cover some aspects related to debugging process, that I use during debugging (some … read more »
-
Observe serial ports on macOS
Recently I played a bit within Arduino using Visual Code. After switching to M1 mac, I faced with issue, that visual-code extension for Arduino does not allow to select of a serial port and to open communication channel with the board.
As result, every time I must check all … read more »
-
Minimal macOS menu bar extra's app with SwiftUI
Creating a minimal utility app for macOS is quite often needs. Such an app is always available in the menu bar and can perform some operation with just a few clicks or some shortcut can show information instantly.
… read more » -
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 »