Skip to content

Commit 4e41fd1

Browse files
committed
Updated domain.
1 parent 83919c6 commit 4e41fd1

26 files changed

+92
-91
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
.Trashes
44
home-en.php
55
home-ru.php
6+
test.php

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Image and Video
4949

5050
```
5151
![Image Description](https://myoctocat.com/assets/images/base-octocat.svg)
52-
[Video Description](https://cdn.ivanvorobei.by/websites/sparrowcode.io/drag-and-drop-part-1/drag-delegate.mov)
52+
[Video Description](https://cdn.ivanvorobei.io/websites/sparrowcode.io/drag-and-drop-part-1/drag-delegate.mov)
5353
```
5454

5555
For highlight link to the grey area with title and subtitle, use this custom formatting:

en/meta/authors.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
"ivanvorobei" : {
33
"name" : "Ivan Vorobei",
44
"description" : "iOS Developer. Making opensource frameworks & writing tutorials.",
5-
"avatar" : "https://cdn.ivanvorobei.by/websites/sparrowcode.io/authors/ivanvorobei.jpg",
5+
"avatar" : "https://cdn.ivanvorobei.io/websites/sparrowcode.io/authors/ivanvorobei.jpg",
66
"buttons" : [
77
{
88
"name" : "GitHub",
99
"link" : "https://github.com/ivanvorobei"
1010
},
1111
{
1212
"name" : "App Store",
13-
"link" : "https://apps.ivanvorobei.by"
13+
"link" : "https://apps.ivanvorobei.io"
1414
}
1515
]
1616
},
1717
"svtnck": {
1818
"name": "Nikolay Pelevin",
1919
"description": "iOS Developer, candy lover.",
20-
"avatar": "https://cdn.ivanvorobei.by/websites/sparrowcode.io/authors/svtnck.jpg",
20+
"avatar": "https://cdn.ivanvorobei.io/websites/sparrowcode.io/authors/svtnck.jpg",
2121
"buttons": [
2222
{
2323
"name": "GitHub",
@@ -32,7 +32,7 @@
3232
"wmorgue": {
3333
"name": "Nikita Rossik",
3434
"description": "Reverse Engineering Enthusiast,  Developer.",
35-
"avatar": "https://cdn.ivanvorobei.by/websites/sparrowcode.io/authors/wmorgue.jpg",
35+
"avatar": "https://cdn.ivanvorobei.io/websites/sparrowcode.io/authors/wmorgue.jpg",
3636
"buttons": [
3737
{
3838
"name": "GitHub",

en/tutorials/async-await.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
`async/await` is a new approach for working with multithreading in Swift. It simplifies writing complex call chains and makes code readable. First the theory, and at the end of the tutorial we'll write a tool to search for apps in the App Store using `async/await`.
22

3-
![async/await Preview](https://cdn.ivanvorobei.by/websites/sparrowcode.io/async-await/preview.png)
3+
![async/await Preview](https://cdn.ivanvorobei.io/websites/sparrowcode.io/async-await/preview.png)
44

55
## Usage
66

@@ -117,7 +117,7 @@ extension UIImageView {
117117

118118
Let's look at the diagram for the `setImage(url: URL)` function:
119119

120-
![How to work setImage(url: URL)](https://cdn.ivanvorobei.by/websites/sparrowcode.io/async-await/set-image-scheme.png)
120+
![How to work setImage(url: URL)](https://cdn.ivanvorobei.io/websites/sparrowcode.io/async-await/set-image-scheme.png)
121121

122122
And `loadImage(for: url)`:
123123

en/tutorials/drag-and-drop-part-1.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ We'll learn how to reorder cells, drag and drop multiple cells, move cells betwe
22

33
In this part, we'll cover dragging and dropping for collections and tables. In the next part, we'll see how to drag any views anywhere and handle resetting them. Before we dive, let's break down how the drag and drop lifecycle is designed.
44

5-
![preview](https://cdn.ivanvorobei.by/websites/sparrowcode.io/drag-and-drop-part-1/preview.jpg)
5+
![preview](https://cdn.ivanvorobei.io/websites/sparrowcode.io/drag-and-drop-part-1/preview.jpg)
66

77
## Models
88

en/tutorials/edge-insets-uibutton.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
You control three indentations - `imageEdgeInsets`, `titleEdgeInsets` and `contentEdgeInsets`. More often than not, your task comes down to setting symmetrical-opposite values.
22

3-
Before we dive in, take a look at [example project](https://cdn.ivanvorobei.by/websites/sparrowcode.io/edge-insets-uibutton/example-project.zip). Each slider is responsible for a specific indent and you can combine them. In the video I set the background color to red, the icon color to yellow, and the title color to blue.
3+
Before we dive in, take a look at [example project](https://cdn.ivanvorobei.io/websites/sparrowcode.io/edge-insets-uibutton/example-project.zip). Each slider is responsible for a specific indent and you can combine them. In the video I set the background color to red, the icon color to yellow, and the title color to blue.
44

5-
[Edge Insets UIButton Example Project Preview](https://cdn.ivanvorobei.by/websites/sparrowcode.io/edge-insets-uibutton/edge-insets-uibutton-example-preview.mov)
5+
[Edge Insets UIButton Example Project Preview](https://cdn.ivanvorobei.io/websites/sparrowcode.io/edge-insets-uibutton/edge-insets-uibutton-example-preview.mov)
66

77
Indent between the header and the icon `10pt`. When you get it, make sure you control the result or it's random. At the end of the tutorial you'll know how it works.
88

@@ -18,7 +18,7 @@ previewButton.contentEdgeInsets.top = 5
1818
previewButton.contentEdgeInsets.bottom = 5
1919
```
2020

21-
![contentEdgeInsets](https://cdn.ivanvorobei.by/websites/sparrowcode.io/edge-insets-uibutton/content-edge-insets.png)
21+
![contentEdgeInsets](https://cdn.ivanvorobei.io/websites/sparrowcode.io/edge-insets-uibutton/content-edge-insets.png)
2222

2323
Indentations have been added around the content. They are added proportionally and affect only the size of the button. The practical sense is to expand the clickable area if the button is small.
2424

@@ -28,7 +28,7 @@ I put them in one section for a reason. More often than not, the task will boil
2828

2929
Let's add an indent between the picture and the header, let's say `10pt`. The first idea is to add an indent through the property `imageEdgeInsets`:
3030

31-
[imageEdgeInsets space between icon and title](https://cdn.ivanvorobei.by/websites/sparrowcode.io/edge-insets-uibutton/image-edge-insets-space-icon-title.mov)
31+
[imageEdgeInsets space between icon and title](https://cdn.ivanvorobei.io/websites/sparrowcode.io/edge-insets-uibutton/image-edge-insets-space-icon-title.mov)
3232

3333
The behavior is more complicated. The indentation is added, but it doesn't affect the size of the button. If it did, the problem would be solved.
3434

@@ -78,13 +78,13 @@ button.titleImageInset = 8
7878

7979
Works for RTL localization. If there is no picture, no indentation is added. The developer only needs to set the indent value.
8080

81-
![Deprecated imageEdgeInsets и titleEdgeInsets](https://cdn.ivanvorobei.by/websites/sparrowcode.io/edge-insets-uibutton/depricated.png)
81+
![Deprecated imageEdgeInsets и titleEdgeInsets](https://cdn.ivanvorobei.io/websites/sparrowcode.io/edge-insets-uibutton/depricated.png)
8282

8383
## Deprecated
8484

8585
I should point out, with iOS 15 our friends are labeled `derritated`.
8686

8787
A few years of property will work. Apple recommends using the configuration. Let's see what survives - the configuration, or good old `padding`.
8888

89-
That's all for now. For a visual dabble, download [example project](https://cdn.ivanvorobei.by/websites/sparrowcode.io/edge-insets-uibutton/example-project.zip).
89+
That's all for now. For a visual dabble, download [example project](https://cdn.ivanvorobei.io/websites/sparrowcode.io/edge-insets-uibutton/example-project.zip).
9090

en/tutorials/how-add-view-to-swiftui-library.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ SwiftUI is designed to make its view easy to be reuse.
55
Library provides access to available SwiftUI View, modifiers, images, etc. You can DnD or double-click the selected item to add the View into your code.
66

77

8-
![Xcode View Library](https://cdn.ivanvorobei.by/websites/sparrowcode.io/how-add-view-to-swiftui-library/xcode_library.png)
8+
![Xcode View Library](https://cdn.ivanvorobei.io/websites/sparrowcode.io/how-add-view-to-swiftui-library/xcode_library.png)
99

1010
## Custom View
1111

@@ -43,7 +43,7 @@ struct UserProfileView: View {
4343
}
4444
```
4545

46-
![UserProfile_Preview](https://cdn.ivanvorobei.by/websites/sparrowcode.io/how-add-view-to-swiftui-library/user_profile_preview.png)
46+
![UserProfile_Preview](https://cdn.ivanvorobei.io/websites/sparrowcode.io/how-add-view-to-swiftui-library/user_profile_preview.png)
4747

4848

4949
Here is how it looks like.
@@ -82,7 +82,7 @@ The way we add a view to View Library is quite similar to how we make our view s
8282
The `LibraryContentProvider` protocol provides an ability to add custom views to the Xcode library.
8383
After that, we go to the `ContentView.swift` file and add the user view.
8484

85-
[UserProfileLibrary](https://cdn.ivanvorobei.by/websites/sparrowcode.io/how-add-view-to-swiftui-library/user_profile_library.mov)
85+
[UserProfileLibrary](https://cdn.ivanvorobei.io/websites/sparrowcode.io/how-add-view-to-swiftui-library/user_profile_library.mov)
8686

8787
Caveat:
8888

@@ -101,4 +101,4 @@ UserProfileView(
101101
```
102102
103103
Just waiting for changes in future versions to be able to add a description and icon.
104-
This project is available for [download](https://cdn.ivanvorobei.by/websites/sparrowcode.io/how-add-view-to-swiftui-library/MyApp.zip).
104+
This project is available for [download](https://cdn.ivanvorobei.io/websites/sparrowcode.io/how-add-view-to-swiftui-library/MyApp.zip).

en/tutorials/mastering-progressview-swiftui.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ struct ContentView: View {
1818
}
1919
```
2020

21-
[Indeterminate Activity Indicator](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/indeterminate_activity_indicator.mov)
21+
[Indeterminate Activity Indicator](https://cdn.ivanvorobei.io/websites/sparrowcode.io/mastering-progressview-swiftui/indeterminate_activity_indicator.mov)
2222

2323
By default `SwiftUI` defines a rotating loading bar (spinner). The modifier `.tint()` changes the color of the bar.
2424

@@ -74,7 +74,7 @@ extension ContentView {
7474
}
7575
```
7676

77-
[Determinate Activity Indicator](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/determinate_activity_indicator.mov)
77+
[Determinate Activity Indicator](https://cdn.ivanvorobei.io/websites/sparrowcode.io/mastering-progressview-swiftui/determinate_activity_indicator.mov)
7878

7979
Pressing the `Load more` button starts the download. The text shows the current progress and the `Reset` button will become available to tap and reset. When the download is finished, the text on the screen will let you know. The `Load more` button will become inactive.
8080

@@ -107,7 +107,7 @@ struct TimerProgressView: View {
107107
}
108108
```
109109

110-
[Timer Progress](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/timer_progress.mov)
110+
[Timer Progress](https://cdn.ivanvorobei.io/websites/sparrowcode.io/mastering-progressview-swiftui/timer_progress.mov)
111111

112112
The event is called several times by a timer. Timer source code:
113113

@@ -125,7 +125,7 @@ This is how we show the user that the loading progress depends on the size of th
125125

126126
A description of the `publish` method is available in [Apple documentation](https://developer.apple.com/documentation/foundation/timer/3329589-publish). More initializers can be found in the Xcode documentation or on the [website](https://developer.apple.com/documentation/swiftui/progressview).
127127

128-
![Documentation SwiftUI ProgressView](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/progressview_init.png)
128+
![Documentation SwiftUI ProgressView](https://cdn.ivanvorobei.io/websites/sparrowcode.io/mastering-progressview-swiftui/progressview_init.png)
129129

130130
## Styling Progress Views
131131

@@ -177,4 +177,4 @@ struct TimerProgressView: View {
177177

178178
Progress begins not from left to right, but from the middle in opposite directions.
179179

180-
[RoundedProgressViewStyle](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/rounded_progress_view.mov)
180+
[RoundedProgressViewStyle](https://cdn.ivanvorobei.io/websites/sparrowcode.io/mastering-progressview-swiftui/rounded_progress_view.mov)

en/tutorials/meet-storekit-2.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ The difficulty of the first version of StoreKit was so overwhelming that it prod
22

33
The new StoreKit looks like a sip of cold water in the desert. Let's dive in.
44

5-
![Introducing StoreKit 2](https://cdn.ivanvorobei.by/websites/sparrowcode.io/meet-storekit-2/header.jpg)
5+
![Introducing StoreKit 2](https://cdn.ivanvorobei.io/websites/sparrowcode.io/meet-storekit-2/header.jpg)
66

77
## What's new
88

99
The models representing purchases and operations on them have been replaced. The names now have no SK prefixes and it is generally intuitive to see which data represent the models. We will not dwell on each one the list is below:
1010

11-
![StoreKit 2 Modes](https://cdn.ivanvorobei.by/websites/sparrowcode.io/meet-storekit-2/models.jpg)
11+
![StoreKit 2 Modes](https://cdn.ivanvorobei.io/websites/sparrowcode.io/meet-storekit-2/models.jpg)
1212

1313
## Request for products and purchase
1414

@@ -55,7 +55,7 @@ Added auto-renewal subscription state, which was previously only available in th
5555
- <b>inGracePeriod</b> - deferred payment by subscription. If your subscription has a grace period enabled and a payment error has occurred, the user will have some more time while the subscription is alive, although the payment has not yet been made. The number of days of the grace period can be from 6 to 16, depending on the length of the subscription itself.<br>
5656
- <b>revoked</b> - access to all subscriptions of this group is denied by the AppStore.
5757

58-
![Subscription information](https://cdn.ivanvorobei.by/websites/sparrowcode.io/meet-storekit-2/subscription-information.jpg)
58+
![Subscription information](https://cdn.ivanvorobei.io/websites/sparrowcode.io/meet-storekit-2/subscription-information.jpg)
5959

6060
The `Renewal Info` entity contains information about auto-renewal subscriptions. For example:
6161

en/tutorials/product-page-optimization-alternative-icons.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ The documentation says "put the icons in Asset Catalog, send the binary to App S
66

77
The alternative icon is done in multiple resolutions, just like the main icon. I use [AppIconBuilder](https://apps.apple.com/app/id1294179975). Naming should be whatever you want, but it will show up on App Store Connect.
88

9-
![Adding icons to Assets](https://cdn.ivanvorobei.by/websites/sparrowcode.io/product-page-optimization-alternative-icons/adding-icons-to-assets.png)
9+
![Adding icons to Assets](https://cdn.ivanvorobei.io/websites/sparrowcode.io/product-page-optimization-alternative-icons/adding-icons-to-assets.png)
1010

1111
## Settings in Target.
1212

1313
You need Xcode 13 or higher. Select the app targeted and go to the `Build Settings` tab. In the search, type `App Icon` and you will see the `Asset Catalog Compiler` section.
1414

15-
![Settings in target](https://cdn.ivanvorobei.by/websites/sparrowcode.io/product-page-optimization-alternative-icons/adding-settings-to-target.png)
15+
![Settings in target](https://cdn.ivanvorobei.io/websites/sparrowcode.io/product-page-optimization-alternative-icons/adding-settings-to-target.png)
1616

1717
We are interested in 3 parameters:
1818

en/tutorials/searchable-swiftui.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ struct ContentView: View {
2121
}
2222
```
2323

24-
[Searchable init](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_init.mov)
24+
[Searchable init](https://cdn.ivanvorobei.io/websites/sparrowcode.io/searchable-swiftui/searchable_init.mov)
2525

2626
To change the placeholder, in the search field we will add `prompt`:
2727

@@ -65,11 +65,11 @@ struct ContentView: View {
6565
}
6666
```
6767

68-
![Searchable Diff Placement](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_diff_placement.jpg)
68+
![Searchable Diff Placement](https://cdn.ivanvorobei.io/websites/sparrowcode.io/searchable-swiftui/searchable_diff_placement.jpg)
6969

7070
Apply a modifier to `SecondaryView()` and change the location to `.navigationBarDrawer`. The `SearchFieldPlacement()` structure is responsible for the position of the search field. By default `placement` is `.automatic`.
7171

72-
[Searchable Placement](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_placement.mov)
72+
[Searchable Placement](https://cdn.ivanvorobei.io/websites/sparrowcode.io/searchable-swiftui/searchable_placement.mov)
7373

7474
## Search
7575

en/tutorials/sf-symbols-3.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The code examples will be for `SwiftUI` and `UIKit`. Watch carefully for charact
44

55
Render Modes is to render an icon in a color scheme. Monochrome, hierarchical, palette and multi-color are available. A clear preview:
66

7-
![SFSymbols Render Modes Preview](https://cdn.ivanvorobei.by/websites/sparrowcode.io/sf-symbols-3/render-modes-preview.jpg)
7+
![SFSymbols Render Modes Preview](https://cdn.ivanvorobei.io/websites/sparrowcode.io/sf-symbols-3/render-modes-preview.jpg)
88

99
Renders are available for each symbol, but there may be situations when the result for different renders will be the same and the icon will not change appearance. It is better to choose [in application](https://developer.apple.com/sf-symbols/), having previously set the desired renderer.
1010

@@ -42,7 +42,7 @@ Image(systemName: "square.stack.3d.down.right.fill")
4242

4343
Note, sometimes the mono-color render is the same as the hierarchical one.
4444

45-
![SFSymbols Hierarchical Render](https://cdn.ivanvorobei.by/websites/sparrowcode.io/sf-symbols-3/hierarchical-render.jpg)
45+
![SFSymbols Hierarchical Render](https://cdn.ivanvorobei.io/websites/sparrowcode.io/sf-symbols-3/hierarchical-render.jpg)
4646

4747
## Palette Render
4848

@@ -61,7 +61,7 @@ Image(systemName: "person.3.sequence.fill")
6161

6262
If a symbol has 1 segment for a color, it will use the first color specified. If the symbol has 2 segments, but 1 color is specified, it will be used for both segments. If you specify 2 colors, they will be applied accordingly. If you specify 3 colors, the third is ignored.
6363

64-
![SFSymbols Palette Render](https://cdn.ivanvorobei.by/websites/sparrowcode.io/sf-symbols-3/palette-render.jpg)
64+
![SFSymbols Palette Render](https://cdn.ivanvorobei.io/websites/sparrowcode.io/sf-symbols-3/palette-render.jpg)
6565

6666
## Multicolor Render
6767

@@ -79,7 +79,7 @@ Image(systemName: "externaldrive.badge.plus")
7979

8080
Images that do not have a multicolor option will automatically be displayed in mono-color. In the preview, the fill color is `.systemCyan`:
8181

82-
![SFSymbols Multicolor Render](https://cdn.ivanvorobei.by/websites/sparrowcode.io/sf-symbols-3/multicolor-render.jpg)
82+
![SFSymbols Multicolor Render](https://cdn.ivanvorobei.io/websites/sparrowcode.io/sf-symbols-3/multicolor-render.jpg)
8383

8484
## Symbol Variant
8585

0 commit comments

Comments
 (0)