|
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