#sui #обучение
https://www.youtube.com/watch?v=b1oC7sLIgpI
Яндекс браузер + перевод на русский = тамам
https://www.youtube.com/watch?v=b1oC7sLIgpI
Яндекс браузер + перевод на русский = тамам
YouTube
SwiftUI Fundamentals | FULL COURSE | Beginner Friendly
Build Native Swift Apps with AI - https://bitrig.com/?utm_source=swiftnews_yt
In this 12 hour course we build 4 apps that ramp up in difficulty. The first 3 apps are quite simple, but the 4th and final app grows substantially in size and challenge. See the…
In this 12 hour course we build 4 apps that ramp up in difficulty. The first 3 apps are quite simple, but the 4th and final app grows substantially in size and challenge. See the…
👍6❤3🔥1
#обучение #uikit
Роадмап Тимура ВНЕЗАПНО оказался очень полезен мне по работе, и вот почему.
Вчера я шел по секции с UIKit, читал и смотрел всё подряд, что было предложено. Там было видео, на которое ссылку я дам в конце. И в этом видео так, невзначай автор дебажит то, что у него в стеке лейбл в 1 строку. Сперва он, естественно, грешит на numberOfLines, исправляет на 0, потом он делает вывод, что проблема в distribution самого стек вью, который высоту ограничивает по картинке.
Я вот это вот всё ВЧЕРА посмотрел, услышал, а СЕГОДНЯ мне прилетает баг на то, что КАК РАЗ в стек вью пишется 2 строки всего на экране. Хотя в коде у меня явно numberOfLines у лейбла стоит 0. И как же сильно мне помогло это видео, я теперь этот баг могу исправить за какие-то 5 минут, потому что Я ЗНАЮ, куда копать.
Вот ссылка на видео с тайм-кодом, где он уже попытался число строк в 0 выставить и это не сработало. https://youtu.be/jlszu46QirY?si=EPDf6fxAkEAyuw8B&t=691
Роадмап Тимура ВНЕЗАПНО оказался очень полезен мне по работе, и вот почему.
Вчера я шел по секции с UIKit, читал и смотрел всё подряд, что было предложено. Там было видео, на которое ссылку я дам в конце. И в этом видео так, невзначай автор дебажит то, что у него в стеке лейбл в 1 строку. Сперва он, естественно, грешит на numberOfLines, исправляет на 0, потом он делает вывод, что проблема в distribution самого стек вью, который высоту ограничивает по картинке.
Я вот это вот всё ВЧЕРА посмотрел, услышал, а СЕГОДНЯ мне прилетает баг на то, что КАК РАЗ в стек вью пишется 2 строки всего на экране. Хотя в коде у меня явно numberOfLines у лейбла стоит 0. И как же сильно мне помогло это видео, я теперь этот баг могу исправить за какие-то 5 минут, потому что Я ЗНАЮ, куда копать.
Вот ссылка на видео с тайм-кодом, где он уже попытался число строк в 0 выставить и это не сработало. https://youtu.be/jlszu46QirY?si=EPDf6fxAkEAyuw8B&t=691
YouTube
TableView очень просто - часть 1
На сегодняшний день для отображения большого количества информации на ограниченном размере экрана айфона не придумали ничего лучше UITableView. Сегодня изучим основные правила работы с этим классом.
Работа с сетью в Swift, часть 1 - https://youtu.be/kB0ohtMDpgA…
Работа с сетью в Swift, часть 1 - https://youtu.be/kB0ohtMDpgA…
🔥9❤2😁2👎1🌚1
В статье с соответствующим названием «Конфиденциальность блокчейна и соответствие нормативным требованиям: на пути к практическому равновесию» Бутерин вместе с соавторами порассуждал о решении проблемы с приватностью блокчейна, а также представил концепцию нового протокола для повышения конфиденциальности на основе смарт-контрактов «Privacy Pools» — читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Ssrn
Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium
In this paper we study Privacy Pools, a novel smart contract-based privacy-enhancing protocol. We discuss the pros and cons of this protocol, and show how it co
👍2🔥1🐳1
#обучение #arc
https://stackoverflow.com/questions/38739129/do-capture-lists-of-inner-closures-need-to-redeclare-self-as-weak-or-unowne
https://www.youtube.com/watch?v=2Ot86h_Xu1M <- так же интересно
https://stackoverflow.com/questions/38739129/do-capture-lists-of-inner-closures-need-to-redeclare-self-as-weak-or-unowne
https://www.youtube.com/watch?v=2Ot86h_Xu1M <- так же интересно
Stack Overflow
Do capture lists of inner closures need to redeclare `self` as `weak` or `unowned`?
If I have a closure passed to a function like this:
someFunctionWithTrailingClosure { [weak self] in
anotherFunctionWithTrailingClosure { [weak self] in
self?.doSomething()
}
...
someFunctionWithTrailingClosure { [weak self] in
anotherFunctionWithTrailingClosure { [weak self] in
self?.doSomething()
}
...
👍2🔥1
👍11🔥5
#обучение #uikit
"Сегодня узнал интересную вещь про динамические цвета, вдруг кому интересно будет"
Такой кейс. В приложении есть темная тема, цвета выставляются в коде просто через rgb и кложуру UIColor { traitCollection -> UIColor in.
Затем эти цвета используются как backgroundColor у CALayer. Просто color.cgColor
Так вот. Если в системе стоит например темная тема, а в приложении оверайднута светлая, такое выставление цветов для лееров может баговать и выбирать не тот цвет для текущего userInterfaceStyle (особенно если мы настраиваем цвет при инициализации вьюхи)
Как чинить? При назначении backgroundColor вызываем метод resolvedColor(with: traitCollection) у UIColor, который вернет нам нужный нединамический цвет для текущей traitCollection. Его уже можно безопасно конвертнуть в CGColor и спокойно юзать
Или второй варик, заюзать traitCollection.performAsCurrent, если вам например нужно назначить много цветов
"Сегодня узнал интересную вещь про динамические цвета, вдруг кому интересно будет"
Такой кейс. В приложении есть темная тема, цвета выставляются в коде просто через rgb и кложуру UIColor { traitCollection -> UIColor in.
Затем эти цвета используются как backgroundColor у CALayer. Просто color.cgColor
Так вот. Если в системе стоит например темная тема, а в приложении оверайднута светлая, такое выставление цветов для лееров может баговать и выбирать не тот цвет для текущего userInterfaceStyle (особенно если мы настраиваем цвет при инициализации вьюхи)
Как чинить? При назначении backgroundColor вызываем метод resolvedColor(with: traitCollection) у UIColor, который вернет нам нужный нединамический цвет для текущей traitCollection. Его уже можно безопасно конвертнуть в CGColor и спокойно юзать
Или второй варик, заюзать traitCollection.performAsCurrent, если вам например нужно назначить много цветов
👍7
#modern_concurrency #async #concurrency
База по асинкам! Как нибудь сделаю дайджест по базе вам, включае статьи + видео😎
https://swiftrocks.com/how-async-await-works-internally-in-swift
База по асинкам! Как нибудь сделаю дайджест по базе вам, включае статьи + видео
https://swiftrocks.com/how-async-await-works-internally-in-swift
Please open Telegram to view this post
VIEW IN TELEGRAM
Swiftrocks
How async/await works internally in Swift
You probably know how to use async/await. But have you ever wondered how it works under the hood?
👍5🔥4👌1
Forwarded from iOS Interview 💬
Собрал рекомендации по прохождению собеседований от крупных компаний
1. Ozon
Полезные материалы по подготовке к собеседованию: https://job.ozon.ru/events/31
Кстати, у них открыт Mobile Offer для middle/senior: https://ozon.tech/jobmobiledev?utm_source=ozontech&utm_medium=social&utm_campaign=jobmobiledev&utm_content=jobozon
2. Тинькофф
Про этапы и материалы для подготовки: https://www.tinkoff.ru/career/it/interview/mobile/
3. Альфа-Банк
Подробно расписали про процесс и этапы собеседований: https://habr.com/ru/companies/alfa/articles/728322/
4. Яндекс
- Процесс найма мобильных разработчиков: https://yandex.ru/jobs/pages/mobdev-interview
- Как подготовиться к собеседованию: https://dev.go.yandex/interview?section=ios
5. Сбер
Тоже две статьи, вторая будет полезна тем, кто только выходит на рынок:
- Как проходят технические собеседования в Сбере: https://rabota.sber.ru/media/kak-prohodyat-tekhnicheskie-sobesedovaniya-v-sbere/
- Как составить резюме и подготовиться к собеседованию: http://www.sberbank.ru/common/img/uploaded/static/resume/files/resume.pdf
1. Ozon
Полезные материалы по подготовке к собеседованию: https://job.ozon.ru/events/31
Кстати, у них открыт Mobile Offer для middle/senior: https://ozon.tech/jobmobiledev?utm_source=ozontech&utm_medium=social&utm_campaign=jobmobiledev&utm_content=jobozon
2. Тинькофф
Про этапы и материалы для подготовки: https://www.tinkoff.ru/career/it/interview/mobile/
3. Альфа-Банк
Подробно расписали про процесс и этапы собеседований: https://habr.com/ru/companies/alfa/articles/728322/
4. Яндекс
- Процесс найма мобильных разработчиков: https://yandex.ru/jobs/pages/mobdev-interview
- Как подготовиться к собеседованию: https://dev.go.yandex/interview?section=ios
5. Сбер
Тоже две статьи, вторая будет полезна тем, кто только выходит на рынок:
- Как проходят технические собеседования в Сбере: https://rabota.sber.ru/media/kak-prohodyat-tekhnicheskie-sobesedovaniya-v-sbere/
- Как составить резюме и подготовиться к собеседованию: http://www.sberbank.ru/common/img/uploaded/static/resume/files/resume.pdf
🔥13
#wwdc #generics
У кого проблемы с пониманием "some" и / или "any", "Any":
https://developer.apple.com/videos/play/wwdc2022/110352
У кого проблемы с пониманием "some" и / или "any", "Any":
https://developer.apple.com/videos/play/wwdc2022/110352
Apple Developer
Embrace Swift generics - WWDC22 - Videos - Apple Developer
Generics are a fundamental tool for writing abstract code in Swift. Learn how you can identify opportunities for abstraction as your code...
👍5🔥3❤2
#pods
Спасибо большое Андрею =)
CocoaPods и SnapKit
Установка через HomeBrew для макбуков с процессором M1 и выше:
• Убедитесь, что у вас установлена Rosetta: в терминале введи эту команду softwareupdate --install-rosetta и внимательно прочитай что тебе выведет консоль(у меня была не установлена и нужно было нажать А и потом RETURN/ENTER
• Дождись установки - процесс зависит от интернета
• Затем установи Homebrew: скопируй с сайта https://brew.sh команду установки /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
• Нужно будет ввести пароль для установки - просто набираешь пароль - он не будет отображаться и нажимаешь RETURN/ENTER
• В середине процесса для продолжения загрузки нужно будет нажать RETURN/ENTER
• Дождись установки - предпоследней строкой будет ссылка на https://brew.sh
• Далее введи: touch ~/.zshrc
• export PATH=/opt/homebrew/bin:$PATH
• source ~/.zshrc
• brew help
• brew install cocoapods
• Дождись установки
• Чтоб добавить библиотеку, нужно создать новый проект в Xcode, затем найти папку с проектом, открыть ее свойства и выбрать: «Новый терминал по адресу папки»
• Далее введи: pod init в папке появится новый файл Podfile (терминал не закрывай)
• Открой этот файл
• Над последней строчкой end введи: pod 'SnapKit'
• Обязательно сохрани изменения ⌘S можно закрыть папку
• Затем в терминале нового проекта введи команду pod install
• Дождись установки
• В папке нового проекта должны добавиться новые файлы и папки
• Найди и открой папку с окончанием названия: .xcworkspace
• Готово
Спасибо большое Андрею =)
CocoaPods и SnapKit
Установка через HomeBrew для макбуков с процессором M1 и выше:
• Убедитесь, что у вас установлена Rosetta: в терминале введи эту команду softwareupdate --install-rosetta и внимательно прочитай что тебе выведет консоль(у меня была не установлена и нужно было нажать А и потом RETURN/ENTER
• Дождись установки - процесс зависит от интернета
• Затем установи Homebrew: скопируй с сайта https://brew.sh команду установки /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
• Нужно будет ввести пароль для установки - просто набираешь пароль - он не будет отображаться и нажимаешь RETURN/ENTER
• В середине процесса для продолжения загрузки нужно будет нажать RETURN/ENTER
• Дождись установки - предпоследней строкой будет ссылка на https://brew.sh
• Далее введи: touch ~/.zshrc
• export PATH=/opt/homebrew/bin:$PATH
• source ~/.zshrc
• brew help
• brew install cocoapods
• Дождись установки
• Чтоб добавить библиотеку, нужно создать новый проект в Xcode, затем найти папку с проектом, открыть ее свойства и выбрать: «Новый терминал по адресу папки»
• Далее введи: pod init в папке появится новый файл Podfile (терминал не закрывай)
• Открой этот файл
• Над последней строчкой end введи: pod 'SnapKit'
• Обязательно сохрани изменения ⌘S можно закрыть папку
• Затем в терминале нового проекта введи команду pod install
• Дождись установки
• В папке нового проекта должны добавиться новые файлы и папки
• Найди и открой папку с окончанием названия: .xcworkspace
• Готово
👍5❤3👎1😁1
#learn
https://vk.com/@surfstudio-library-ios
Очень годная подборка полезных материалов от Surf Team, в ноушен - роадмап со временем(уже) их добавлю👍
https://vk.com/@surfstudio-library-ios
Очень годная подборка полезных материалов от Surf Team, в ноушен - роадмап со временем(уже) их добавлю
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4👎1