|
11 | 11 | ],
|
12 | 12 | "keywords": ["UICollectionViewDragDelegate", "UICollectionViewDropDelegate", "UITableViewDragDelegate", "UITableViewDropDelegate", "UIGestureRecognizer", "UIDrag"],
|
13 | 13 | "updated_date": "06.11.2023",
|
14 |
| - "added_date": "11.07.2021" |
| 14 | + "added_date": "11.07.2021", |
| 15 | + "is_private" : true |
15 | 16 | },
|
16 | 17 | "uisheetpresentationcontroller": {
|
17 | 18 | "title": "`UISheetPresentationController` как в приложении Карты",
|
|
25 | 26 | ],
|
26 | 27 | "keywords": ["UISheetPresentationController", "Map", "Карты", "Modal Controllers", "iOS 15"],
|
27 | 28 | "updated_date": "06.11.2023",
|
28 |
| - "added_date": "11.10.2021" |
| 29 | + "added_date": "11.10.2021", |
| 30 | + "is_private" : true |
29 | 31 | },
|
30 | 32 | "sf-symbols-and-render-mode": {
|
31 | 33 | "title": "SF Symbols 4 и Render Mode",
|
|
39 | 41 | ],
|
40 | 42 | "keywords": ["SF Symbols", "SFSymbols", "SwiftUI", "iOS 15"],
|
41 | 43 | "updated_date": "06.11.2023",
|
42 |
| - "added_date": "28.10.2021" |
| 44 | + "added_date": "28.10.2021", |
| 45 | + "is_private" : true |
43 | 46 | },
|
44 | 47 | "uiviewcontroller-lifecycle": {
|
45 | 48 | "title": "Жизненный цикл `UIViewController`",
|
|
77 | 80 | ],
|
78 | 81 | "keywords": ["imageEdgeInsets", "imageEdgeInsets", "contentEdgeInsets", "отсутп между заголовком и картинкой"],
|
79 | 82 | "updated_date": "06.11.2023",
|
80 |
| - "added_date": "13.12.2021" |
| 83 | + "added_date": "13.12.2021", |
| 84 | + "is_private" : true |
81 | 85 | },
|
82 | 86 | "product-page-optimization-alternative-icons": {
|
83 |
| - "title": "Альтернативные иконки для тестов Product Page Optimization", |
| 87 | + "title": "Как добавить альтернативные иконки для тестов Product Page Optimization", |
84 | 88 | "description": "Как добавить альтернативные иконки для A/B тестов на странице приложения в App Store.",
|
85 | 89 | "categories": ["app-store-connect"],
|
86 | 90 | "author": "alxrguz",
|
|
94 | 98 | "added_date": "27.12.2021"
|
95 | 99 | },
|
96 | 100 | "async-await": {
|
97 |
| - "title": "Асинхронность с async/await и actor", |
| 101 | + "title": "async/await в Swift с примерами", |
98 | 102 | "description": "Разберём async, await, actor. Напишем тузлу для поиска приложений в App Store.",
|
99 | 103 | "categories": ["swift"],
|
100 | 104 | "author": "somenkovnikita",
|
|
119 | 123 | "https://cdn.sparrowcode.io/tutorials/access-control/internal.png", "https://cdn.sparrowcode.io/tutorials/access-control/public.png", "https://cdn.sparrowcode.io/tutorials/access-control/open.png", "https://cdn.sparrowcode.io/tutorials/access-control/private.png", "https://cdn.sparrowcode.io/tutorials/access-control/fileprivate.png"
|
120 | 124 | ],
|
121 | 125 | "updated_date": "13.09.2022",
|
122 |
| - "added_date": "22.03.2022" |
| 126 | + "added_date": "22.03.2022", |
| 127 | + "is_private" : true |
123 | 128 | },
|
124 | 129 | "localisation": {
|
125 | 130 | "title": "Как локализовать приложение с `NSLocalisedString`",
|
|
134 | 139 | ],
|
135 | 140 | "telegram_post_id" : "244",
|
136 | 141 | "updated_date": "15.11.2022",
|
137 |
| - "added_date": "10.07.2022" |
| 142 | + "added_date": "10.07.2022", |
| 143 | + "is_private" : true |
138 | 144 | },
|
139 | 145 | "live-activities": {
|
140 | 146 | "title": "Live Activity и Dynamic Island",
|
|
148 | 154 | "https://cdn.sparrowcode.io/tutorials/live-activities/header.png", "https://cdn.sparrowcode.io/tutorials/live-activities/add-widget-target.png", "https://cdn.sparrowcode.io/tutorials/live-activities/shared-file-between-targets.png", "https://cdn.sparrowcode.io/tutorials/live-activities/live-activity-type-compact.png", "https://cdn.sparrowcode.io/tutorials/live-activities/live-activity-type-minimal.png", "https://cdn.sparrowcode.io/tutorials/live-activities/live-activity-type-expanded.png"
|
149 | 155 | ],
|
150 | 156 | "updated_date": "06.11.2023",
|
151 |
| - "added_date": "21.10.2022" |
| 157 | + "added_date": "21.10.2022", |
| 158 | + "is_private" : true |
152 | 159 | },
|
153 | 160 | "formatters": {
|
154 | 161 | "title": "Форматировать цифры, время, валюты и другое с Formatters",
|
|
164 | 171 | "https://cdn.sparrowcode.io/tutorials/formatters/formatters-preview.jpg"
|
165 | 172 | ],
|
166 | 173 | "updated_date": "10.11.2022",
|
167 |
| - "added_date": "10.11.2022" |
| 174 | + "added_date": "10.11.2022", |
| 175 | + "is_private" : true |
168 | 176 | },
|
169 | 177 | "how-to-get-root-view-controller": {
|
170 | 178 | "title": "Как получить RootViewController",
|
|
178 | 186 | "https://cdn.sparrowcode.io/tutorials/how-to-get-root-view-controller/uiwindowscene.jpg", "https://cdn.sparrowcode.io/tutorials/how-to-get-root-view-controller/uiwindow.jpg"
|
179 | 187 | ],
|
180 | 188 | "updated_date": "06.11.2023",
|
181 |
| - "added_date": "06.11.2023" |
| 189 | + "added_date": "06.11.2023", |
| 190 | + "is_private" : true |
182 | 191 | },
|
183 | 192 | "custom-swiftui-modifier": {
|
184 | 193 | "title": "Как сделать кастомный SwiftUI-модификатор",
|
|
189 | 198 | "keywords": ["modifiers", "модификаторы", "swiftui"],
|
190 | 199 | "google_structured_images": [],
|
191 | 200 | "updated_date": "14.11.2023",
|
192 |
| - "added_date": "14.11.2023" |
| 201 | + "added_date": "14.11.2023", |
| 202 | + "is_private" : true |
193 | 203 | },
|
194 | 204 | "set-launch-screen-via-plist": {
|
195 |
| - "title": "Добавим Launch Screen через plist-файл", |
| 205 | + "title": "Launch Screen без storyboard (через plist-файл)", |
196 | 206 | "description": "Удалим сторбиорд-файл и создадим Launch Screen через plist.",
|
197 | 207 | "categories": ["development"],
|
198 | 208 | "author": "sparrowcode",
|
|
207 | 217 | "added_date": "21.11.2023"
|
208 | 218 | },
|
209 | 219 | "storekit-external-purchase-link-entitlement-ru": {
|
210 |
| - "title": "Покупки по ссылке для разработчиков из РФ через StoreKit", |
| 220 | + "title": "Как принимать оплату по ссылке для разработчиков из РФ", |
211 | 221 | "description": "Инструкция как добавить StoreKit External Purchase Link Entitlement в приложение в России.",
|
212 | 222 | "categories": ["development", "app-store-connect"],
|
213 | 223 | "author": "rentel",
|
|
232 | 242 | "google_structured_images": [],
|
233 | 243 | "telegram_post_id" : "527",
|
234 | 244 | "updated_date": "04.05.2024",
|
235 |
| - "added_date": "27.03.2024" |
| 245 | + "added_date": "27.03.2024", |
| 246 | + "is_private" : true |
236 | 247 | },
|
237 | 248 | "privacy-manifest": {
|
238 |
| - "title": "Как добавить Privacy Manifest", |
| 249 | + "title": "Что добавлять в Privacy Manifest", |
239 | 250 | "description": "Разберем что добавлять в Privacy Manifest, нужно ли указывать что используют сторонние библиотеки и как исправить ошибки.",
|
240 | 251 | "categories": ["development"],
|
241 | 252 | "author": "sparrowcode",
|
|
257 | 268 | "graph_image": "https://cdn.sparrowcode.io/tutorials/testing-push-notifications-ios-simulator/push.png",
|
258 | 269 | "google_structured_images": [],
|
259 | 270 | "updated_date": "14.05.2024",
|
260 |
| - "added_date": "12.05.2024" |
| 271 | + "added_date": "12.05.2024", |
| 272 | + "is_private" : true |
261 | 273 | },
|
262 | 274 | "pay-for-apple-developer-account-from-ru": {
|
263 |
| - "title": "Как оплатить Apple Developer Program из РФ и получить аккаунт разработчика", |
264 |
| - "description": "И принимать платежи без платных соглашений", |
| 275 | + "title": "Как оплатить Apple Developer Programm из РФ", |
| 276 | + "description": "Как оплатить аккаунт разработчика из РФ и принимать платежи без платных соглашений", |
265 | 277 | "categories": ["app-store-connect"],
|
266 | 278 | "author": "sparrowcode",
|
267 | 279 | "editors": [],
|
268 | 280 | "keywords": ["apple", "developer", "account", "pay"],
|
269 | 281 | "graph_image": "https://cdn.sparrowcode.io/tutorials/pay-for-apple-developer-account-from-ru/logo-developer.jpg",
|
270 | 282 | "google_structured_images": [],
|
271 | 283 | "telegram_post_id" : "548",
|
272 |
| - "updated_date": "19.05.2024", |
| 284 | + "updated_date": "17.10.2024", |
273 | 285 | "added_date": "19.05.2024"
|
274 | 286 | },
|
275 | 287 | "difference-property-wrappers-in-swiftui": {
|
276 |
| - "title": "Property Wrappers в SwiftUI", |
| 288 | + "title": "Объясняю все Property Wrappers в SwiftUI", |
277 | 289 | "description": "Разберем основые обертки в SwiftUI и посмотрим как их использовать.",
|
278 | 290 | "categories": ["development", "swiftui"],
|
279 | 291 | "author": "sparrowcode",
|
|
285 | 297 | "added_date": "28.05.2024"
|
286 | 298 | },
|
287 | 299 | "cert-and-profile-for-personal-developer-account": {
|
288 |
| - "title": "Как выгрузить приложение на индивидуальный аккаунт разработчика", |
289 |
| - "description": "В статье пошагово сделаем сертификат и профайл вручную — так разработчик, которого добавили в иднивидуальный аккаунт, сможет выгружать билд", |
| 300 | + "title": "Как выгружать приложения на индивидуальный аккаунт разработчика", |
| 301 | + "description": "Если разработчика добавить в индивидуальный аккаунт, он не сможет выгружать приложения. С этой инструкцией вы сможете выгружать", |
290 | 302 | "categories": ["development", "app-store-connect"],
|
291 | 303 | "author": "sparrowcode",
|
292 | 304 | "editors": [],
|
|
0 commit comments