- 57
- 101 902
AvenCode iOS developer
Russia
Приєднався 18 січ 2013
This channel is being filled by an enthusiastic developer of mobile development for iOS.
I tell and show some interesting features and life hacks.
The author has published more than 20 apps in the AppStore, used by hundreds of thousands of people worldwide.
I tell and show some interesting features and life hacks.
The author has published more than 20 apps in the AppStore, used by hundreds of thousands of people worldwide.
SwiftUI: Observable / StateObject
Что за обёртки свойств @Observable и @StateObject, где они применяются в SwiftUI?
Рассказываю на примере создания RatingPicker-a.
Занятие 3 / 3
Занятие 2: ua-cam.com/video/N_6AZi0z9_4/v-deo.html
Занятие 1: ua-cam.com/video/LTcADRuScOM/v-deo.html
Занятие 0, в котором я создавал этот picker:
ua-cam.com/video/MuEx2MxGImA/v-deo.html
Эпизоды:
00:00 Вводная часть
00:21 Что предстоит сделать
00:47 Xcode: добавляем действие для элемента
05:18 ObservedObject -- StateObject
05:33 Переход на iOS 17+
06:33 Меняем размеренность picker-a
Рассказываю на примере создания RatingPicker-a.
Занятие 3 / 3
Занятие 2: ua-cam.com/video/N_6AZi0z9_4/v-deo.html
Занятие 1: ua-cam.com/video/LTcADRuScOM/v-deo.html
Занятие 0, в котором я создавал этот picker:
ua-cam.com/video/MuEx2MxGImA/v-deo.html
Эпизоды:
00:00 Вводная часть
00:21 Что предстоит сделать
00:47 Xcode: добавляем действие для элемента
05:18 ObservedObject -- StateObject
05:33 Переход на iOS 17+
06:33 Меняем размеренность picker-a
Переглядів: 289
Відео
SwiftUI: Observable / StateObject
Переглядів 240Рік тому
Что за обёртки свойств @Observable и @StateObject, где они применяются в SwiftUI? Рассказываю на примере создания RatingPicker-a. Занятие 2 / 3 Занятие 1: ua-cam.com/video/LTcADRuScOM/v-deo.html Занятие 0, в котором я создавал этот picker: ua-cam.com/video/MuEx2MxGImA/v-deo.html Эпизоды: 00:00 Вводная часть 00:15 Что предстоит сделать 00:49 Xcode: проверяем что picker работает 01:37 Создаём мод...
SwiftUI: StateObject
Переглядів 343Рік тому
Что за обёртки свойств @Observable и @StateObject, где они применяются в SwiftUI? Рассказываю на примере создания RatingPicker-a. Занятие 1 / 3 Занятие 0, в котором я создавал этот picker: ua-cam.com/video/MuEx2MxGImA/v-deo.html Эпизоды: 00:00 Вводная часть 00:28 Что предстоит сделать 01:19 Необходимые термины 02:05 Наблюдение 02:49 Особенности для iOS 17 04:05 Практика в Xcode - делаем picker ...
SwiftUI: State or Binding
Переглядів 534Рік тому
Когда использовать обертку свойств @State, а в каких случаях @Binding? Рассказываю подробно, на примере создания Rating Picker-a. Продолжение: ua-cam.com/video/LTcADRuScOM/v-deo.html Инструменты: Xcode 15, Playgrounds app, SwiftUI 5.8 Эпизоды: 00:00 Постановка цели 00:26 План занятия 01:01 Необходимые термины 01:42 Структура View 03:26 Схема элемента со свойством с Binding обёрткой 04:32 State ...
Swift: do-catch, try или try?
Переглядів 452Рік тому
Почему возникает ошибка компилятора Call can throw, зачем нужен блок do-catch и в каких случаях применять try, а в каких try? (optional)? Инструменты: Xcode 14, Playgrounds, SwiftUI 5.7 00:00 Постановка цели, где встречается Call can throw 00:48 План занятия 01:14 Необходимые термины 03:09 Что можно сделать с исключениями 03:52 Практика в Xcode Playground 12:15 Вызов try: try / try? / try! 13:0...
Swift: API fetching / извлечение данных через REST API (6)
Переглядів 832Рік тому
Извлечение данных из API. Часть 6: Используем Alamofire в сетевом слое. • Подключим Alamofire с помощью Swift Package Manager • Полностью изменим сетевой слой NetworkManager • Получим данные правильно, с обработкой ошибок • Отобразим данные в EmployeesView или выведем сообщение об ошибке Часть 5: ua-cam.com/video/-ogVdD9OQVg/v-deo.html Часть 4: ua-cam.com/video/CVL4fgUTaOc/v-deo.html Часть 3: u...
Swift: API fetching / извлечение данных через REST API (5)
Переглядів 1 тис.Рік тому
Извлечение данных из API. Часть 5: Используем async - await в сетевом слое. • Разберём, что такое async и await • Познакомимся с @MainActor • Получим данные быстро • Получим данные правильно Часть 4: ua-cam.com/video/CVL4fgUTaOc/v-deo.html Часть 3: ua-cam.com/video/DRd7KKb_9Gk/v-deo.html Часть 2: ua-cam.com/video/i9Mu3co3Nr4/v-deo.html Часть 1: ua-cam.com/video/fc6opBo2kQA/v-deo.html Инструмент...
Swift: API fetching / извлечение данных через REST API (4)
Переглядів 1,5 тис.Рік тому
Извлечение данных из API. Часть 4: Обработка ошибок API. • Добавим перечень сетевых ошибок (нет данных, ошибка декодирования и пр.) • Добавим параметр completion с типом Result • Поменяем логику возврата результата: API возвращает или данные или ошибку • В интерфейсе добавим вывод алерта с ошибкой • Изменим логику обработки результата в вызывающем методе • Добавим ProgressView() ("ромашку") Час...
Swift: API fetching / извлечение данных через REST API (3)
Переглядів 1,5 тис.Рік тому
Извлечение данных из API. Часть 3: Создание сетевого слоя NetworkManager. • Дополним модель свойством static let example • Создадим небольшой интерфейс с NavigationView • Добавим форму со списком сотрудников (employees) • Создадим class - сетевой слой, Singleton Часть 2: ua-cam.com/video/i9Mu3co3Nr4/v-deo.html Часть 1: ua-cam.com/video/fc6opBo2kQA/v-deo.html Инструменты: Xcode 14, App Playgroun...
Swift: API fetching / извлечение данных через REST API (2)
Переглядів 1,3 тис.Рік тому
Извлечение данных из API. Часть 2: Практика получения данных из API вручную. • Используем публичный REST API: dummy.restapiexample.com • На сервисе RapidAPI(rapidapi.com) , добавим API и точку входа • Получим данные вручную • Согласно полученным данным, построим модель данных в Xcode Часть 1: ua-cam.com/video/fc6opBo2kQA/v-deo.html Спонсорство и платный контент: boosty.to/avencode Там можно куп...
Swift: API fetching / извлечение данных через REST API (1)
Переглядів 1,8 тис.Рік тому
Извлечение данных из API. Часть 1: Теоретическая часть. API • REST • URL • JSON для iOS разработчиков. Спонсорство и платный контент: boosty.to/avencode Там можно купить курс (12 видеоуроков): Как сделать приложение Расходник, а также и сам проект в виде архива для Xcode. Там же можно узнать, как сделать "ромашку" (activity indicator) самому на SwiftUI. Я записал ещё более подробный курс по RES...
Swift: completion escaping - замыкания
Переглядів 3,5 тис.Рік тому
Вводный урок для понимания темы Извлечение данных из API. - что такое closures - почему их применяют - когда нужен признак escaping - немного про синхронность и асинхронность в потоках Инструменты: Xcode 14, Playgrounds, SwiftUI 5.7 Спонсорство и платный контент: boosty.to/avencode Там можно купить курс (12 видеоуроков): Как сделать приложение Расходник, а также и сам проект в виде архива для X...
SwiftUI: Create Clock
Переглядів 692Рік тому
Создаю часы с циферблатом только средствами SwiftUI, без графики: - Размещение элементов по кругу - Поворот на определённый угол - Как получить отдельно текущие часы, минуты и секунды из Date() Инструменты: Xcode 14, SwiftUI 5.7 Спонсорство и платный контент: boosty.to/avencode Там можно купить курс (12 видеоуроков): Как сделать приложение Расходник, а также и сам проект в виде архива для Xcode...
SwiftUI: ProgressCircle
Переглядів 5242 роки тому
Создаю универсальный Progress Circle - кольцо, которое отображает текущее значение любого параметра по окружности. Отправляем размер шкалы и само значение, получаем наглядный элемент интерфейса. Инструменты: Xcode 14, SwiftUI 5.7 Спонсорство и платный контент: boosty.to/avencode Там можно купить курс (12 видеоуроков): Как сделать приложение Расходник, а также и сам проект в виде архива для Xcod...
SwiftUI: ProgressBar.
Переглядів 8962 роки тому
Создаю универсальный Progress Bar - полоску, которая отображает текущее значение любого параметра. Отправляем размер шкалы и само значение, получаем наглядный элемент интерфейса. Инструменты: Xcode 14, SwiftUI 5.7 Спонсорство и платный контент: boosty.to/avencode Там можно купить курс (12 видеоуроков): Как сделать приложение Расходник, а также и сам проект в виде архива для Xcode. 00:00 Начало ...
Курс Создаём приложение Spender app. Часть 01 (12)
Переглядів 5772 роки тому
Курс Создаём приложение Spender app. Часть 01 (12)
SwiftUI: animation. Анимация элемента.
Переглядів 1,1 тис.2 роки тому
SwiftUI: animation. Анимация элемента.
Swift 4.2: управляющие конструкции, ветвления
Переглядів 2602 роки тому
Swift 4.2: управляющие конструкции, ветвления
Swift 4.2: циклы for-in, while и repeat-while
Переглядів 6762 роки тому
Swift 4.2: циклы for-in, while и repeat-while
Как опубликовать в App Store ( 4/4 ) - финал
Переглядів 1,7 тис.2 роки тому
Как опубликовать в App Store ( 4/4 ) - финал
Этот канал для меня открытие 2025 года. Интересная подача материала в связке с понятным объяснением - это нечто! Очень жаль, что новых видео нет уже целый год.
К сожалению, свободного времени очень мало, но постараюсь выкроить время и записать ещё видео!
Как много я посмотрел видео о работе с сетью. Евгений, ты сделал лучшее, я вам гарантирую! Огромное спасибо! Теперь осталось найти как грамотно организовать это и сделать более универсальным))
Глеб, спасибо! Если честно, это самая базовая информация. Даже сейчас, на конец 2024 года многое уже устарело. А что значит, более универсальным?
@@AvenCode Я видел варианты реализации на дженериках. Когда мы создаем универсальный метод, и можем передавать в него нужные нам параметры, урл, компоненты, указываем метод гет или пост и ожидаемые данные. С целью добиться максимального переиспользования и модульности. Возможно я не совсем верно высказываюсь, просто пока еще учусь))
Именно к этому и нужно стремиться! Как можно больше дженериков и пере использовать код. Код должен быть максимально сухим, DRY. Я пока занят крупными проектами и никак не вырвать время для новых роликов. Хотя да, нужно об этом рассказать
Голос у диктора шикарный. Добрый, но со строгостью. Слушаю, и будто снова сижу в школе на уроке своего Физика
Добрый день/ я сделал всё как вы сказали /а теперь бы я хотел знать как можно снять пароль с этой папки
Отличный вопрос! Я никогда не думал об этом. Итак, чтобы снять пароль нужно знать текущий пароль, это само собой иначе нет смысла в пароле вообще. 1. Образ .dmg должен быть отключен 2. Открыть Дисковую Утилиту 3. Выбрать в меню, Образы - Преобразовать 4. Указать образ .dmg (который с паролем), задать новое имя, куда его поместить, можно не выбирать Шифрование и оставить Формат: сжатый 5. Преобразовать - ввести старый пароль, Готово! В результате получится тоже образ диска, но уже без пароля, его можно открыть, скопировать оттуда все данные и поместить в простую папку.
Какой талант🙏
Круто! Спасибо за материал!
Супер Объяснеие !
Большое спасибо!!!
Вы меня конечно извините, но про defer Вы не корректно высказались
Возможно. Я не автор языка Swift. Вы можете тут высказаться корректнее. Другим польза будет!
Спасибо за шикарный курс! Будем ждать урока с получением изображений из сервера и их обработкой, а также с кешами
Если коротко, то для загрузки картинок в SwiftUI лучше использовать AsyncImage(url), а если это Swift, то тогда разумно подключить например, Kingfisher- только для картинок или Alamofire для работы с большими данными по сети. Кеширование в этих фреймворках уже встроено и не нужно будет тратить время. Встроенный механизм кеширования в Swift пока лучше не использовать. Не получилось у них.
@@AvenCode спасибо за скорую реакцию и бесценные советы! обязательно попробую
Шикарный контент, супер понятная подача и умиротворяющий голос! Спасибо!
Спасибо, очень хорошо и качественно объяснено!
Очень хорошо объяснено, спасибо автору!
Очень круто всё объяснено, спасибо!
Спасибо тебе добрый человек! Низкий поклон за те знания которые ты даешь, а не как многие комментируешь как пишешь код! Так держать!
Круто! Узнал как пользоваться Swift Package Manager
Благодарю! Очень содержательно и полезно)
Можно ли таким образом хранить данные, которые ввёл пользователь? То есть изменять этот json файл? И насколько это правильная практика?
Можно, конечно. Такой формат подходит для постоянного хранения, permanent storage. Если даных мало, то UserDefaults вполне подойдет. Сложно так хранить цвета, но можно. И сложно и не нужно хранить картинки. Их лучше хранить ссылками.
Привет есть вопрос как сделать в numbers выделение ячейки с датой если текущая дата больше чем значение в ячейки?
Выделить столбец с датами. Выбираем справа Формат - Ячейка - Выделение по условию Добавить правило: Дата - прошлые - затем в поле ввода например, 5 и выбор периода - дни, недели или месяцы - смотря что вам нужно. В следующем пикере выбираете формат заливки. Готово. Если хотите, то можно ещё добавить правило, например, отдельно на Сегодня и выделять его по особому. Правил может быть много, их можно перемещать вверх-вниз по приоритету.
Качество и подача материала поражают! Спасибо вам за проделанную работу. Пожалуйста, не забрасывайте канал, уверен, подписчики будут.
Спасибо, Евгений, за твою помощь! Я хотел бы узнать, как сейчас обстоят дела для разработчиков из России в плане получения прибыли от продаж? Также меня интересует, если проект предназначен исключительно для Cardboard. Буду благодарен за твои рекомендации и советы!
Пока в России новые разработчики не могут получить платный контракт в ASC. И поэтому не могут заработать на продаже приложений или встроенных покупок. Старые аккаунты пока без изменений. А что за cardboard?
Оч приятный голос и, конечно же, все структурировано и понятно, спасибо
а что делать, если team не выбирается, хотя в apple connect отображаюсь как разработчик
Пока не знаю. Сам недавно с этим столкнулся. Мне дают права разработчика. Всё верно. А в Xcode этот новый team не отображается. А старые есть
Очень грамотно все раскидал по полочкам ) подписка )хочу тоже создать платное приложение вы за отдельную плату делаете это ?
Приложение сейчас сделать можно. Только Apple не подписывает платный контракт для разработчиков из России. Поэтому новые разработчики не могут продавать свои приложения и встроенный контент.
Получается можно батрачить только на благотворительность, оплатив 100$ на год)?
@@artinstroukeprod да, зачастую так и происходит. Оплачивают $99, публикуют, ждут миллионы, но получают 0 или чуть больше и следующий год уже не оплачивают. Само приложение при этом остаётся в AppStore. Заработать на программировании сейчас можно только если делать это на заказ, то есть, разрабатывая и поддерживая приложения заказчиков, которые платят.
Я почему то думал, что оплатив на год и выпустив приложение, а потом на второй год НЕ оплатил - то приложение удаляют из appstore. Почему вы думаете, что приложение остается в Appstore, если аккаунт дев не оплачен?
@@artinstroukeprod приложение из AppStore удаляют по другим причинам. А так оно остается, деньги, если будут капать dev не получит. Возможно, что спустя некоторое время, если так и не будет оплаты, то закроют сам аккаунт dev. Я сам через это не проходил, не доводил до этого.
🔥🔥🔥
Спасибо за объяснение! Все круто!
У вас дар объяснять, спасибо
лучшее объяснение, спасибо)
нашла канал случайно сегодня. Хорошо объясняете, спасибо. Столько интересного для меня у вас, буду изучать
Все четко понятно . Спасибо за видео Не думали набрать группу учеников? Как Раз нужен хороший ментор
Иногда да. Думал об этом. Нужно время и как-то организовать. А я ещё действующий программист. Много работаю последние месяцы…
Отличное видео, спасибо!
А разве в App Store сделали "ключевые слова" для разных языков уникальными? Раньше ведь было если в "En" добавили ключевое слово то "Ru" его добавлять ненужно. То есть "expenses," можно писать только один раз в английских словах, экономим 8 символов. Да и слова "учет" и "учёт", App Store будет считать разными или одинаковыми словами, по правилу кроссворда е-ё, и-й одинаковые буквы?
Для каждой локации свои слова, эти 100 символов. Слова учет и учёт считаются разными. Это отличие от гугловского сервиса. Пробелы считаются тоже за символы. Можно и нужно не добавлять в keywords слова из заголовка и подзаголовка. И главные ключевые слова это именно заголовки.
Очень понятно и просто все объяснено, спасибо за такую легкую подачу материала. Особенно стало понятно про сбегающие замыкания, которые по факту никуда не сбегают :D
Почему стек качается верх вниз при анимации
Наверно что-то лишнее в коде у вас. Анимация это два состояния. Вот и надо разбираться, что меняется при этом
Я ничего не понял, но вас приятно слушать. Глядишь, со временем пойму)
Спасибо большое за блестящее объяснение! Примерно год изучал и практиковался с UIKit. Как раз сейчас перехожу на SwiftUI. С вашим роликом вроде пазлы в голове нормально так собрались! =)
Евгений, благодарю Вас за видео! Хотелось бы подробнее разобрать, как сделать сервис: использовать одну функцию для получения данных по разным ссылкам, с использованием разных моделей данных для разных вью.
хорошая идея, да, можно такой ролик записать. Подскажете тестовый API для этого? Если нет, то запишу с тем, что я знаю
Круто!!! Спасибо большое 👍👍👍
Реально круто объяснил. Спасибо.
👍👍👍
👍👍👍
👍👍👍
👍👍👍
👍👍👍
Здравствуйте! Как всегда очень интересно и максимально понятно. Выше в комментарии вы спросили какие темы? Хотелось бы посмотреть о swift data. Особенно про отношения в моделях. Уверен что будет очень интересно как всегда. У вас есть группа в телеграмме или что-то другое?
Спасибо! Идея с Swift Data да, интересная. Я думал об этом. Пока, по-моему, преждевременная. Дело в том, что она начинает работать только если приложение под iOS 17 и выше. А таких очень мало пока. Только для эксперимента можно так сделать. Тем не менее, может и запишу на будущее!
Спасибо. Как всегда все доступно и понятно
Спасибо. Очень доступно. Самое доступное и лучшее объяснение среди русскоязычных. Может сделаете видео о том как выучили swift и разработку. Было бы очень интересно.
Это вряд ли кому-то поможет и пригодится. Я же очень давно программирую, начинал с Visual Studio. В 2012 увлекся Objective C изучал его по книгам на английском. В 2017 стал переходить на Swift, он созрел к тому времени. Потом, постепенно на SwiftUI. Повторять такой путь не советую никому. Мне помогли англо-язычные ресурсы, язык я знаю очень хорошо. Сейчас много каналов и ресурсов где можно учиться. Главное - мотивация и усидчивость.
@@AvenCode Насколько сейчас релевантно учить по 100 Days of SwiftUI? Понимаю, что база то осталась, но за пару лет что-то да изменилось
@@reijet лично моё мнение, что да, стоит учить 100 Days of SwiftUI, согласен, в языке что-то обновилось, но эти обновления пока не столь существенны, причём многие из обновлений требуют iOS 17.0 как минимальный таргет, а это ограничение для многих. Так что смело учите! Пока ещё это актуально.
@@AvenCode Спасибо!
А на iPad як А на iPad как
Если приложение будет доступно и на iPad или только на iPad, то это нужно указать в настройках проекта в Xcode. Есть один важный момент: Если вы делаете приложение и указываете, что оно будет доступно для разных устройств, то Apple требует, чтобы и все последующие версии тоже обязательно поддерживали все эти устройства. Иначе не пропустят.
Спасибо большое за видео. Посмотрел последние видео на канале и хочу тут подвести итог по ним 😂. Видео и объяснения просто шикарные: и стиль объяснения, и визуальные вставки. Эти вставки очень помогают для наглядного понимания что происходит. Было довольно трудно найти видео на актуальные темы и особенно на русском языке, и чтобы объясняли хорошо. Спасибо большое, ждем новых видео.
Очень интересно, спасибо за ваш труд! Время от времени самостоятельно изучаю SwiftUI, очень захватывает, тем более когда, написания своим руками работает) Хотелось бы узнать, как можно при нажатии на кнопку add добавить в список рейтинг с названием, что б вид рейтинга можно было выбирать при добавлении и можно было это все редактировать - изменять.