👨💻 Переносим разработку под iOS и macOS на Neovim
Хотите попробовать разработку, используя только Neovim? Эта статья для вас. Автор статьи рассказывает, как установить и настроить различные плагины, чтобы обеспечить функции, такие как автодополнение кода, синтаксический анализ, форматирование, запуск тестов, отладка, создание симуляторов и многое другое. Также затрагивает тему преимущества и недостатка среды вместо Xcode.
Если готовы к приключениям, ознакомиться можно здесь 🔖
Хотите попробовать разработку, используя только Neovim? Эта статья для вас. Автор статьи рассказывает, как установить и настроить различные плагины, чтобы обеспечить функции, такие как автодополнение кода, синтаксический анализ, форматирование, запуск тестов, отладка, создание симуляторов и многое другое. Также затрагивает тему преимущества и недостатка среды вместо Xcode.
Если готовы к приключениям, ознакомиться можно здесь 🔖
🔥3🥱2
🎓💻 Продолжаем разбирать методы работы с массивами в Swift
Ознакомиться с первой частью можно тут🔗
Часть вторая👇
Первый метод — .append
Метод используется для добавления нового элемента в конец массива Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.append(☀️)
print(b) // [🔥, 💧, ☀️, ❄️, 🔥, ☀️]
Второй метод — .insert
Метод для вставки нового элемента в массив на указанную позицию. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.insert(💧, at: 2)
print(a) // [🔥, 💧, 💧, ☀️, ❄️, 🔥]
Третий метод — .removeFirst
Используется для удаления первого элемента из упорядоченной коллекции. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.removeFirst()
print(b) // [💧, ☀️, ❄️, 🔥]
Четвертый метод — .dropFirst
Метод в отличие от removeFirst(), не изменяет исходный массив. Вместо этого он создает новый «вид» на исходную коллекцию, исключая указанное количество элементов с начала. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.dropFirst(2)
print(b) // [☀️, ❄️, 🔥]
Пятый метод — .dropLast
Метод такой же, как и предыдущий, только удаляет элементы массива с конца. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.dropLast(2)
print(b) // [🔥, 💧, ☀️]
Шестой метод — .shuffle
Метод используется для перемешивания (или перетасовки) элементов в массиве случайным образом. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.shuffle()
print(b) // [☀️, 🔥, 💧, ❄️, 🔥]
Сохраняй и пользуйся📌
Ознакомиться с первой частью можно тут
Часть вторая
Первый метод — .append
Метод используется для добавления нового элемента в конец массива Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.append(☀️)
print(b) // [🔥, 💧, ☀️, ❄️, 🔥, ☀️]
Второй метод — .insert
Метод для вставки нового элемента в массив на указанную позицию. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.insert(💧, at: 2)
print(a) // [🔥, 💧, 💧, ☀️, ❄️, 🔥]
Третий метод — .removeFirst
Используется для удаления первого элемента из упорядоченной коллекции. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.removeFirst()
print(b) // [💧, ☀️, ❄️, 🔥]
Четвертый метод — .dropFirst
Метод в отличие от removeFirst(), не изменяет исходный массив. Вместо этого он создает новый «вид» на исходную коллекцию, исключая указанное количество элементов с начала. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.dropFirst(2)
print(b) // [☀️, ❄️, 🔥]
Пятый метод — .dropLast
Метод такой же, как и предыдущий, только удаляет элементы массива с конца. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.dropLast(2)
print(b) // [🔥, 💧, ☀️]
Шестой метод — .shuffle
Метод используется для перемешивания (или перетасовки) элементов в массиве случайным образом. Пример:
var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.shuffle()
print(b) // [☀️, 🔥, 💧, ❄️, 🔥]
Сохраняй и пользуйся
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🥱4
В видео автор раскрывает распространенные ошибки при работе с корутинами в Kotlin, особенно в контексте их отмены, подчеркивает важность понимания и правильной реализации. Видео наполнено техническими деталями и практическими советами, идеально подходит для разработчиков, желающих углубить свои знания в Kotlin и корутинах.
Содержание:
00:00 — Начало
00:41 — Ловушка №1
09:23 — Ловушка №2
17:03 — Ловушка №3
#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔖 Как получить международный оффер iOS-разработчику?
Доклад Дарьи Шульгиной, основательницы сервиса по поиску работы за рубежом AgileFluent, о развитии международной карьеры. Она делится своим опытом и опытом своей команды по оказанию помощи в поиске работы в разных странах, в первую очередь в Европе. В докладе рассматриваются такие ключевые моменты, как:
– Целесообразность поиска работы за рубежом;
– Факторы, влияющие на предложение работы за рубежом;
– Планирование поиска работы;
– Трудности получения приглашений на собеседование;
– Распространённые ошибки при поиске работы.
Если вы начинающий специалист, или специалист с опытом, и думаете о карьере за рубежом, видео будет полезно для вас. 🌏
🔗 Смотреть
Доклад Дарьи Шульгиной, основательницы сервиса по поиску работы за рубежом AgileFluent, о развитии международной карьеры. Она делится своим опытом и опытом своей команды по оказанию помощи в поиске работы в разных странах, в первую очередь в Европе. В докладе рассматриваются такие ключевые моменты, как:
– Целесообразность поиска работы за рубежом;
– Факторы, влияющие на предложение работы за рубежом;
– Планирование поиска работы;
– Трудности получения приглашений на собеседование;
– Распространённые ошибки при поиске работы.
Если вы начинающий специалист, или специалист с опытом, и думаете о карьере за рубежом, видео будет полезно для вас. 🌏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2❤1
📱 Свайпы на ScrollView без жестов?
В видео автор рассказывает, как создать Swipe Actions для ScrollView с помощью новых API iOS 17. В SwiftUI вы можете добавить модификатор .swipeActions() к элементам списка. Этот модификатор позволяет добавлять кнопки, которые появляются при свайпе элемента влево или вправо.
► Смотреть
В видео автор рассказывает, как создать Swipe Actions для ScrollView с помощью новых API iOS 17. В SwiftUI вы можете добавить модификатор .swipeActions() к элементам списка. Этот модификатор позволяет добавлять кнопки, которые появляются при свайпе элемента влево или вправо.
► Смотреть
👍2
#дайджест полезностей для мобильного разработчика на Android
🔹 Новые API в Jetpack Compose — статья о новых API для адаптивных макетов в Jetpack Compose, современном инструменте для создания нативного пользовательского интерфейса на Android.
🔹 Не все тесты одинаковы — различные типы UI-тестов для Android-приложений и их особенности.
🔹 Миграция с kapt к KSP — как перейти от использования kapt к KSP в проектах на Android. KSP — это альтернатива kapt, которая анализирует код Kotlin напрямую, что ускоряет сборку в два раза.
🔹 События как состояние — критика популярной идеи о том, что события в пользовательском интерфейсе должны быть выражены как состояния, а не как потоки объектов, которые могут быть потреблены компонентами UI.
🔹 In-App Update — как реализовать функцию обновления, которая позволяет активным пользователям обновлять приложение без перехода в Google Play.
🔹 Новые API в Jetpack Compose — статья о новых API для адаптивных макетов в Jetpack Compose, современном инструменте для создания нативного пользовательского интерфейса на Android.
🔹 Не все тесты одинаковы — различные типы UI-тестов для Android-приложений и их особенности.
🔹 Миграция с kapt к KSP — как перейти от использования kapt к KSP в проектах на Android. KSP — это альтернатива kapt, которая анализирует код Kotlin напрямую, что ускоряет сборку в два раза.
🔹 События как состояние — критика популярной идеи о том, что события в пользовательском интерфейсе должны быть выражены как состояния, а не как потоки объектов, которые могут быть потреблены компонентами UI.
🔹 In-App Update — как реализовать функцию обновления, которая позволяет активным пользователям обновлять приложение без перехода в Google Play.
❤2🔥1
❗Мы запускаем серию исследований — и вы можете нам в этом помочь!
«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.
Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?
Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.
Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?
Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
👍2❤1
⚙️ CoreML модель на сервере с Vapor
Фреймворк CoreML от Apple предназначен для машинного обучения в приложениях, работающих на платформах Apple. Однако, если мы захотим использовать эту модель и на Android? Статья о том, как развернуть нашу CoreML модель на сервере👇
📖 Читать
Фреймворк CoreML от Apple предназначен для машинного обучения в приложениях, работающих на платформах Apple. Однако, если мы захотим использовать эту модель и на Android? Статья о том, как развернуть нашу CoreML модель на сервере
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Друзья, мы хотим делать для вас самый лучший контент — и для этого нам нужно узнать вас получше.
Пожалуйста, ответьте на несколько вопросов — это поможет нам делать более полезные и интересные посты!
Первая часть опроса 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Ваш возраст:
Anonymous Poll
3%
Менее 18 лет
31%
18-24 года
43%
25-34 года
16%
35-44 года
4%
45-54 года
1%
55-64 года
2%
65 лет и старше
👍2
👍1
В каком городе вы живете последние 3 месяца?
Anonymous Poll
21%
Москва
11%
Санкт-Петербург
2%
Краснодар
2%
Нижний Новгород
4%
Минск
2%
Екатеринбург
3%
Киев
0%
Львов
5%
Алматы
48%
Другое
❤1👍1
#вопросы_с_собеседований
❓ Вопрос по Swift
Что такое Семафор в Swift?
Семафор в программировании — это средство синхронизации, используемое для управления доступом к общим ресурсам несколькими потоками.
В Swift семафор представлен классом DispatchSemaphore, который входит в библиотеку Grand Central Dispatch (GCD). GCD предлагает простой и эффективный способ управления параллельностью в многозадачных приложениях. Класс DispatchSemaphore имеет два основных метода: signal() и wait(). Метод signal() увеличивает значение семафора на единицу, в то время как wait() уменьшает его на единицу. Если значение семафора меньше или равно нулю, метод wait() блокирует поток до того момента, пока значение семафора не станет больше нуля.
Сценарий использования семафора в Swift может выглядеть следующим образом:
import Foundation
let semaphore = DispatchSemaphore(value: 1)
// Поток 1
DispatchQueue.global ().async {
semaphore.wait()
// Критическая секция
print(«Поток 1 внутри критической секции»)
sleep(2)
semaphore.signal()
}
// Поток 2
DispatchQueue.global ().async {
semaphore.wait()
// Критическая секция
print(«Поток 2 внутри критической секции»)
semaphore.signal()
}
// Ожидание завершения всех операций
DispatchQueue.global ().sync {
// ...
}
❓ Вопрос по Swift
Что такое Семафор в Swift?
import Foundation
let semaphore = DispatchSemaphore(value: 1)
// Поток 1
semaphore.wait()
// Критическая секция
print(«Поток 1 внутри критической секции»)
sleep(2)
semaphore.signal()
}
// Поток 2
semaphore.wait()
// Критическая секция
print(«Поток 2 внутри критической секции»)
semaphore.signal()
}
// Ожидание завершения всех операций
// ...
}
👍5❤1
Как избежать утечек памяти? В статье перечислены десять частых причин утечек памяти, таких как нестатические внутренние классы, обработчики и исполняемые объекты, анонимные слушатели и другие. Для каждой причины приведён пример с кодом и решение, как избавиться от утечки.
Узнать причины утечек 🚰
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Как правильно использовать async/await в Swift, который позволяет упростить асинхронное программирование. Что можно и что нельзя делать с async/await, как избегать распространенных ошибок и как повысить производительность и читаемость кода. Обо всём подробнее в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Какие факторы влияют на вас при выборе работы?
Anonymous Poll
44%
Соответствие компании моим ценностям
47%
Финансовая устойчивость компании
50%
Уровень профессионализма команды
82%
Уровень заработной платы
29%
Социальный пакет
56%
Современный стек технологий
22%
Международный статус компании
❤1
Это руководство по работе с сетевыми запросами во Flutter на примере приложения со списком популярных книг, с возможностью изменения, удаления и добавления книг в список. В руководстве рассматриваются такие темы, как:
Разбираемся подробно здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
В какой стране вы живете последние 3 месяца?
Anonymous Poll
60%
Россия
6%
Украина
6%
Беларусь
5%
Казахстан
2%
Польша
2%
Кыргызстан
3%
Узбекистан
0%
США
1%
Грузия
13%
Другое
👍1