#вопросы_с_собеседований
Вопрос по Swift
Могли бы вы объяснить, как работают GCD (Grand Central Dispatch) и OperationQueue в Swift для управления многопоточностью? В чём различия между этими двумя подходами и в каких ситуациях предпочтительнее использовать тот или иной?
Grand Central Dispatch (GCD) — низкоуровневая API для многопоточности в Swift, которая позволяет выполнять асинхронные задачи в параллельных очередях. GCD удобен для выполнения простых асинхронных операций и управляет пулом потоков автоматически.
Пример использования GCD:
DispatchQueue.global ().async {
// Выполнение задачи в фоновом потоке
let result = performSomeTask()
DispatchQueue.main.async {
// Обновление UI в главном потоке
updateUI(with: result)
}
}
OperationQueue — высокоуровневая абстракция над GCD, предоставляющая больше возможностей для управления задачами, таких как зависимости, приоритеты и отмена операций.
Пример использования OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
// Выполнение задачи
performSomeTask()
}
operationQueue.addOperation(operation)
Выбор между GCD и OperationQueue зависит от сложности задачи. Для простых асинхронных операций удобнее использовать GCD, а для более сложных сценариев с зависимостями между задачами — OperationQueue.
Вопрос по Swift
Могли бы вы объяснить, как работают GCD (Grand Central Dispatch) и OperationQueue в Swift для управления многопоточностью? В чём различия между этими двумя подходами и в каких ситуациях предпочтительнее использовать тот или иной?
🔥12👍1👏1
🚀 Какой самый эффективный способ создания мобильных приложений?
В этом видео рассказывается о том, как использовать FlutterFlow для быстрого создания мобильных приложений для iOS и Android. FlutterFlow — это инструмент для разработки приложений на Flutter с низким уровнем кодирования, который интегрируется с Firebase и значительно ускоряет мобильную разработку.
Содержание:
00:00 — Введение: Разработка на Flutter в 10 раз быстрее
00:13 — Создание нативных приложений с помощью Flutter Flow
00:52 — Виджеты Flutter, действия, представление кода
01:46 — Управление состояниями в разработке приложений
02:58 — Темы и управление пользовательским кодом
07:42 — Запуск приложения в браузере или локально
08:14 — Outro: Flutter Flow упрощает разработку приложений
#видео
В этом видео рассказывается о том, как использовать FlutterFlow для быстрого создания мобильных приложений для iOS и Android. FlutterFlow — это инструмент для разработки приложений на Flutter с низким уровнем кодирования, который интегрируется с Firebase и значительно ускоряет мобильную разработку.
Содержание:
00:00 — Введение: Разработка на Flutter в 10 раз быстрее
00:13 — Создание нативных приложений с помощью Flutter Flow
00:52 — Виджеты Flutter, действия, представление кода
01:46 — Управление состояниями в разработке приложений
02:58 — Темы и управление пользовательским кодом
07:42 — Запуск приложения в браузере или локально
08:14 — Outro: Flutter Flow упрощает разработку приложений
#видео
🔥4❤2🌚1
🤔 #дайджест полезностей для мобильного разработчика
🔖 Чтение и запись в User Defaults Swift — статья о том, как использовать User Defaults в Swift для хранения и изменения настроек приложения, которые сохраняются между запусками.
🔖 Безопасность сетевых подключений в Android — обеспечиваем безопасность сетевых соединений в Android-приложениях, соблюдая лучшие практики.
🔖 Фреймворк UI Flutter — как работает UI-фреймворк Flutter, который позволяет создавать кросс-платформенные приложения с высокой производительностью и качеством.
🔖 Мелкие и глубокие копии в Kotlin — реализация поверхностного и глубокого копирования объектов в Kotlin.
🔖 DebouncedClosure в Swift — создание класса Debouncer, который принимает замыкание и задержку в миллисекундах, и использование его для оптимизации сетевых запросов, поиска или обработки событий пользовательского интерфейса.
🔖 Чтение и запись в User Defaults Swift — статья о том, как использовать User Defaults в Swift для хранения и изменения настроек приложения, которые сохраняются между запусками.
🔖 Безопасность сетевых подключений в Android — обеспечиваем безопасность сетевых соединений в Android-приложениях, соблюдая лучшие практики.
🔖 Фреймворк UI Flutter — как работает UI-фреймворк Flutter, который позволяет создавать кросс-платформенные приложения с высокой производительностью и качеством.
🔖 Мелкие и глубокие копии в Kotlin — реализация поверхностного и глубокого копирования объектов в Kotlin.
🔖 DebouncedClosure в Swift — создание класса Debouncer, который принимает замыкание и задержку в миллисекундах, и использование его для оптимизации сетевых запросов, поиска или обработки событий пользовательского интерфейса.
👍3
📱 Бесплатный Android-эмулятор для macOS
Основные преимущества этой утилиты заключаются в простоте загрузки любимых приложений и игр из Google Play Store, а также возможность легко тестировать ваш веб-сайт или приложение непосредственно в эмуляторе Android.
В утилите можно создавать и сохранять экземпляры любимых Android-устройств, в том числе новейшие Google Pixel.
Минимальные требования: Apple Silicon/Intel Mac на macOS 11, macOS 12, macOS 13, или macOS 14
Скачать можно тут.
#полезное
Основные преимущества этой утилиты заключаются в простоте загрузки любимых приложений и игр из Google Play Store, а также возможность легко тестировать ваш веб-сайт или приложение непосредственно в эмуляторе Android.
В утилите можно создавать и сохранять экземпляры любимых Android-устройств, в том числе новейшие Google Pixel.
Минимальные требования: Apple Silicon/Intel Mac на macOS 11, macOS 12, macOS 13, или macOS 14
Скачать можно тут.
#полезное
🔥3
👨💻 Как я стал iOS разработчиком
Статья о том, как автор стал iOS разработчиком в 32 года без профильного образования, курсов, английского языка и знакомых в IT. Он рассказывает о своем пути обучения, проблемах, с которыми столкнулся, и советах для начинающих.
Читать
Статья о том, как автор стал iOS разработчиком в 32 года без профильного образования, курсов, английского языка и знакомых в IT. Он рассказывает о своем пути обучения, проблемах, с которыми столкнулся, и советах для начинающих.
Читать
👍7🥱3
🤔 MacBook Pro 2015 для учебы в 2023-м?
Автор объясняет, почему он решил купить MacBook Pro 2015 в 2023 году, и как он нашел хорошее предложение. Сравнивает с другими моделями, делится опытом использования и делает вывод.
Читать
Автор объясняет, почему он решил купить MacBook Pro 2015 в 2023 году, и как он нашел хорошее предложение. Сравнивает с другими моделями, делится опытом использования и делает вывод.
Читать
🥱9❤2😁1
#вопросы_с_собеседований
Вопрос по Kotlin
Что такое Layouts, какие виды вы знаете и как их применять?
Layouts в Android — это структуры, которые определяют расположение элементов интерфейса на экране. Некоторые из основных типов layouts и их особенности:
1. LinearLayout: располагает дочерние элементы в вертикальном или горизонтальном направлении. Прост в использовании и идеален для создания линейных структур, таких как списки и полосы кнопок.
2. RelativeLayout: позволяет дочерним элементам указывать своё положение относительно других элементов или родительского контейнера. Используется для более сложных макетов, где требуется точное позиционирование элементов.
3. FrameLayout: Разработан для замещения одного элемента другим. Дочерние элементы накладываются друг на друга, что делает его подходящим для ситуаций, когда нужно перекрывать один виджет другим.
4. ConstraintLayout: относительно новый и более гибкий тип layout, позволяющий создавать сложные интерфейсы с множеством ограничений без необходимости вложенности и с минимальной производительной нагрузкой.
5. GridLayout: выстраивает элементы в двумерной сетке. Подходит для создания компактных, табличных макетов.
6. TableLayout: группирует элементы в ряды и колонны, подобно таблицам в HTML. Подходит для простых табличных макетов без сложной стилизации.
Применение каждого из этих layouts зависит от конкретных задач, которые вы хотите решить в вашем приложении.
Вопрос по Kotlin
Что такое Layouts, какие виды вы знаете и как их применять?
🤔10👍6🔥3
👨💻 Изучаем чистую архитектуру Flutter на практике
Архитектура приложений в разработке — это как план здания, который помогает понять, куда и как всё должно быть устроено. Главная её задача — разделить разные части работы, чтобы можно было удобнее работать по частям.
Если говорить про Flutter, хорошая архитектура позволяет держать отдельно логику приложения от того, что связано с телефонами и компьютерами, например, от экранов и кнопок. Это также делает тестирование кода проще, потому что можно проверять каждую часть по отдельности.
⏳ Содержание:
00:00 Введение
03:44 Добавление пакетов и создание структуры папок
06:33 Определение классов сущностей
09:05 Создание классов и моделей репозитория
11:27 Создание запросов к API с помощью Retrofit
14:40 Варианты использования
17:54 Создание блока
21:16 Инъекция зависимостей
24:32 Отображение новостей
29:20 Локальная база данных
33:39 Добавление методов базы данных в слои
36:45 Сохранение и удаление статьи из базы данных
#полезное
Архитектура приложений в разработке — это как план здания, который помогает понять, куда и как всё должно быть устроено. Главная её задача — разделить разные части работы, чтобы можно было удобнее работать по частям.
Если говорить про Flutter, хорошая архитектура позволяет держать отдельно логику приложения от того, что связано с телефонами и компьютерами, например, от экранов и кнопок. Это также делает тестирование кода проще, потому что можно проверять каждую часть по отдельности.
⏳ Содержание:
00:00 Введение
03:44 Добавление пакетов и создание структуры папок
06:33 Определение классов сущностей
09:05 Создание классов и моделей репозитория
11:27 Создание запросов к API с помощью Retrofit
14:40 Варианты использования
17:54 Создание блока
21:16 Инъекция зависимостей
24:32 Отображение новостей
29:20 Локальная база данных
33:39 Добавление методов базы данных в слои
36:45 Сохранение и удаление статьи из базы данных
#полезное
👍4
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🔸 Собеседование iOS разработчика в Yandex
Пробовали пройти собеседование в Яндекс? Уверен, вам будет интересно увидеть, как процесс происходит с перспективы участника, с комментариями с той стороны! Вы получите представление о том, на что акцентирует внимание интервьюер, как подходить к решению задач и что необходимо для того, чтобы стать частью команды Яндекса.
Смотреть
Пробовали пройти собеседование в Яндекс? Уверен, вам будет интересно увидеть, как процесс происходит с перспективы участника, с комментариями с той стороны! Вы получите представление о том, на что акцентирует внимание интервьюер, как подходить к решению задач и что необходимо для того, чтобы стать частью команды Яндекса.
Смотреть
👍4❤2
#дайджест полезностей для мобильного разработчика
✳️ Распространение версий Android — как изменилась доля разных версий операционной системы Android.
✳️ Kotlin перешёл в stable — руководитель мобильной разработки в компании KTS, делится своим опытом использования KMP в проектах и объясняет, почему он считает KMP перспективным и удобным инструментом.
✳️ Passkey — удобство, безопасность и совместимость технологии.
✳️ Эмулятор iPhone OS — проект touchHLE, который является высокоуровневым эмулятором приложений для iPhone OS.
✳️ Оптимизация приложений для Android — автор оптимизировал память своего Android-приложения, которое использует много изображений.
✳️ Распространение версий Android — как изменилась доля разных версий операционной системы Android.
✳️ Kotlin перешёл в stable — руководитель мобильной разработки в компании KTS, делится своим опытом использования KMP в проектах и объясняет, почему он считает KMP перспективным и удобным инструментом.
✳️ Passkey — удобство, безопасность и совместимость технологии.
✳️ Эмулятор iPhone OS — проект touchHLE, который является высокоуровневым эмулятором приложений для iPhone OS.
✳️ Оптимизация приложений для Android — автор оптимизировал память своего Android-приложения, которое использует много изображений.
🔥3
👨💻 Друзья, вечерний пост «напоговорить»
Как вы пришли в IT-сферу и почему выбрали мобильную разработку? Что вас особенно привлекает в мобильной разработке? Рассматривали ли вы смену направления? Если да, то на какое.
Пишите в комментариях свою историю 👇
Как вы пришли в IT-сферу и почему выбрали мобильную разработку? Что вас особенно привлекает в мобильной разработке? Рассматривали ли вы смену направления? Если да, то на какое.
Пишите в комментариях свою историю 👇
👍1
💡 Повышаем качество кода iOS
Задумывались ли вы, как улучшить качество кода? Предлагаем взглянуть на статью, которая содержит несколько советов для разработчиков iOS, чтобы избежать распространённых ошибок и помочь им улучшить свои приложения. Статья состоит из пяти разделов, каждый из которых посвящен определенному аспекту разработки iOS, такому как качество кода, управление зависимостями, автоматизация, интеграция Firebase и генерация кода.
Например, он рекомендует использовать SwiftLint для проверки качества кода и соблюдения стиля, CocoaPods для управления зависимостями и интеграции сторонних библиотек, Fastlane для автоматизации сборки, тестирования и развертывания приложений.
Читать
Задумывались ли вы, как улучшить качество кода? Предлагаем взглянуть на статью, которая содержит несколько советов для разработчиков iOS, чтобы избежать распространённых ошибок и помочь им улучшить свои приложения. Статья состоит из пяти разделов, каждый из которых посвящен определенному аспекту разработки iOS, такому как качество кода, управление зависимостями, автоматизация, интеграция Firebase и генерация кода.
Например, он рекомендует использовать SwiftLint для проверки качества кода и соблюдения стиля, CocoaPods для управления зависимостями и интеграции сторонних библиотек, Fastlane для автоматизации сборки, тестирования и развертывания приложений.
Читать
🔥2
⚔️ Структурно-ориентированное программирование против протокольно-ориентированного программирования в Swift
Структурно-ориентированное программирование (SOP) подразумевает построение приложений с использованием структур, перечислений и примитивов. Этот подход упрощает код, делает его более предсказуемым и безопасным с точки зрения памяти благодаря избеганию общих ссылок и мутации состояния.
Протокольно-ориентированное программирование (POP) это идеология, в которой протоколы используются для определения и реализации поведения и функциональности. Протоколы в Swift позволяют создавать гибкие и модульные программные интерфейсы. Они также поддерживают расширения, что позволяет добавлять функциональность к существующим типам без наследования.
Сравним два подхода:
1. Наследование: структуры не поддерживают наследование, что делает иерархии типов более простыми и устойчивыми к изменениям, а протоколы поддерживают множественное наследование через конформность нескольким протоколам.
2. Изменяемость: структуры являются значимыми типами (value types) и предоставляют автоматическую безопасность потоков за счёт копирования значений при передаче, а протоколы, в свою очередь, не определяют, является ли тип значимым или ссылочным, оставляя выбор на усмотрение разработчика.
3. Повторное использование кода: у SOP это может быть ограничено, поскольку структуры не могут наследоваться, что иногда приводит к дублированию кода, а POP, в свою очередь, улучшает повторное использование кода и уменьшает связанность, поскольку различные типы могут совместно использовать один и тот же протокол.
Подводя итоги, в Swift рекомендуется комбинировать оба подхода, используя преимущества структур для создания безопасных и эффективных типов данных, а протоколы — для определения интерфейсов и поведения.
Структурно-ориентированное программирование (SOP) подразумевает построение приложений с использованием структур, перечислений и примитивов. Этот подход упрощает код, делает его более предсказуемым и безопасным с точки зрения памяти благодаря избеганию общих ссылок и мутации состояния.
Протокольно-ориентированное программирование (POP) это идеология, в которой протоколы используются для определения и реализации поведения и функциональности. Протоколы в Swift позволяют создавать гибкие и модульные программные интерфейсы. Они также поддерживают расширения, что позволяет добавлять функциональность к существующим типам без наследования.
Сравним два подхода:
1. Наследование: структуры не поддерживают наследование, что делает иерархии типов более простыми и устойчивыми к изменениям, а протоколы поддерживают множественное наследование через конформность нескольким протоколам.
2. Изменяемость: структуры являются значимыми типами (value types) и предоставляют автоматическую безопасность потоков за счёт копирования значений при передаче, а протоколы, в свою очередь, не определяют, является ли тип значимым или ссылочным, оставляя выбор на усмотрение разработчика.
3. Повторное использование кода: у SOP это может быть ограничено, поскольку структуры не могут наследоваться, что иногда приводит к дублированию кода, а POP, в свою очередь, улучшает повторное использование кода и уменьшает связанность, поскольку различные типы могут совместно использовать один и тот же протокол.
Подводя итоги, в Swift рекомендуется комбинировать оба подхода, используя преимущества структур для создания безопасных и эффективных типов данных, а протоколы — для определения интерфейсов и поведения.
👍1
🚀 Улучшаем производительность кода на SwiftUI с помощью Observation
Observation framework — новый компонент стандартной библиотеки Swift, который позволяет наблюдать за изменениями свойств ссылочных типов и улучшать производительность SwiftUI.
В данной статье автор рассматривает новый фреймворк, принципы его создания, способы использования и принципы работы.
Observation framework — новый компонент стандартной библиотеки Swift, который позволяет наблюдать за изменениями свойств ссылочных типов и улучшать производительность SwiftUI.
В данной статье автор рассматривает новый фреймворк, принципы его создания, способы использования и принципы работы.
🔥2
Forwarded from Библиотека Go-разработчика | Golang
❔ Результаты ежегодного опроса разработчиков StackOverflow: 20+ главных инсайтов 2023 года
В данной статье мы собрали 20+ главных инсайтов, которые помогут лучше понять, что происходит в ИТ-сфере в мире.
🔗 Читать статью
🔗 Зеркало
В данной статье мы собрали 20+ главных инсайтов, которые помогут лучше понять, что происходит в ИТ-сфере в мире.
🔗 Читать статью
🔗 Зеркало
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
В видео вы узнаете, как писать, компилировать и запускать скрипты на Swift в терминале. Также автор показывает, как добавить фазу сборки скрипта в проект Xcode. Это полезно для автоматизации различных задач, связанных с разработкой приложений на Swift.
Смотреть
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Зажгите огонек в глазах рекрутера, чтобы обратили внимание именно на вас!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤🔥1