🌀 Вышел релиз Skip 1.0
Skip — это инструмент, который позволяет разрабатывать нативные приложения для обеих основных мобильных платформ с использованием единой кодовой базы. В своей основе он использует технологии, рекомендованные производителями для каждой ОС: Swift и Swift UI для iOS, Kotlin и Compose для Android.
Сам по себе Skip платный, но с релизом стабильной версии появился новый бесплатный тариф для инди.
Знакомство с инструментом
Skip — это инструмент, который позволяет разрабатывать нативные приложения для обеих основных мобильных платформ с использованием единой кодовой базы. В своей основе он использует технологии, рекомендованные производителями для каждой ОС: Swift и Swift UI для iOS, Kotlin и Compose для Android.
Сам по себе Skip платный, но с релизом стабильной версии появился новый бесплатный тариф для инди.
Знакомство с инструментом
❤4👍2
На каком этапе стоит обсуждать зарплату?
Anonymous Poll
29%
В описании вакансии
19%
Перед приглашением на собес
20%
На первом собеседовании
32%
По итогам собеседований?
В анонсе релиза Flutter 3.24 был представлен новый низкоуровневый графический API — Flutter GPU (до стабилизации API будет доступен в качестве пакета flutter_gpu), а также высокоуровневая библиотека для 3D-рендеринга — Flutter Scene (пакет: flutter_scene).
Flutter GPU — встроенный низкоуровневый графический API Flutter. Он позволяет создавать и интегрировать пользовательские рендеры в Flutter путем их написания на Dart и GLSL. При этом нет необходимости погружаться в омут платформозависимого нативного кода!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Вредные советы, как приходить с вопросами к техлиду
Давай представим, что мы с тобой работаем в компании Y техническим лидером, и к нам иногда приходят с разного рода вопросами (не только разработчики).
Посмотрим, как расплывчатые или неподготовленные запросы могут тратить время и вызывать раздражение.
Основная идея — призвать разработчиков быть более четкими, лаконичными и показывать, что они пытались решить проблему самостоятельно, прежде чем обращаться за помощью.
Давай представим, что мы с тобой работаем в компании Y техническим лидером, и к нам иногда приходят с разного рода вопросами (не только разработчики).
Посмотрим, как расплывчатые или неподготовленные запросы могут тратить время и вызывать раздражение.
Основная идея — призвать разработчиков быть более четкими, лаконичными и показывать, что они пытались решить проблему самостоятельно, прежде чем обращаться за помощью.
🥰1
Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🌚1👾1
Enums с рекурсией в Swift
Как можно создавать перечисления, которые содержат ссылку на себя внутри. Это полезно для моделирования структур данных с иерархией. Чтобы реализовать такую рекурсию, используется ключевое слово indirect.
📖 В статье приводится пример, где описывается структура файловой системы и создается функция для подсчета элементов в ней.
Как можно создавать перечисления, которые содержат ссылку на себя внутри. Это полезно для моделирования структур данных с иерархией. Чтобы реализовать такую рекурсию, используется ключевое слово indirect.
📖 В статье приводится пример, где описывается структура файловой системы и создается функция для подсчета элементов в ней.
Задача с LeetCode по Swift
Описание: Дана строка s. Вернуть длину самой длинной подстроки, которая содержит не более двух различных символов.
Пример:
Алгоритм:
1. Вернуть N, если длина строки N меньше 3.
2. Установить оба указателя в начало строки: left = 0 и right = 0, и инициализировать максимальную длину подстроки max_len = 2.
3. Пока указатель right меньше N: Если хеш-таблица содержит менее 3 различных символов, добавить текущий символ s[right] в хеш-таблицу и сдвинуть указатель right вправо.
Если хеш-таблица содержит 3 различных символа, удалить самый левый символ из хеш-таблицы и сдвинуть указатель left так, чтобы скользящее окно содержало только 2 различных символа. Обновить max_len.
Решение:
Описание: Дана строка s. Вернуть длину самой длинной подстроки, которая содержит не более двух различных символов.
Пример:
Input: s = «eceba»
Output: 3
Explanation: The substring is «ece» which its length is 3.
Алгоритм:
1. Вернуть N, если длина строки N меньше 3.
2. Установить оба указателя в начало строки: left = 0 и right = 0, и инициализировать максимальную длину подстроки max_len = 2.
3. Пока указатель right меньше N: Если хеш-таблица содержит менее 3 различных символов, добавить текущий символ s[right] в хеш-таблицу и сдвинуть указатель right вправо.
Если хеш-таблица содержит 3 различных символа, удалить самый левый символ из хеш-таблицы и сдвинуть указатель left так, чтобы скользящее окно содержало только 2 различных символа. Обновить max_len.
Решение:
func lengthOfLongestSubstringTwoDistinct(_ s: String) -> Int {
let n = s.count
if n < 3 { return n }
let chars = Array(s)
var left = 0
var right = 0
var hashmap = [Character: Int]()
var max_len = 2
while right < n {
hashmap[chars[right]] = right
right += 1
if hashmap.count == 3 {
let del_idx = hashmap.values.min()!
hashmap.removeValue(forKey: chars[del_idx])
left = del_idx + 1
}
max_len = max(max_len, right - left)
}
return max_len
}
👍5
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
ad.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
🚀 Продвинутая шпаргалка по Kotlin Flow
Шпаргалка, которая поможет вам глубже разобраться в работе с Kotlin Flow в Android-разработке. Если уже знакомы с базой Kotlin Flow, но хотите узнать больше о каналах, комбинировании потоков и разнице между SharedFlow и StateFlow — эта находка для вас.
Начинается статья с пояснения различий между холодными и горячими потоками. Далее рассматриваются каналы — мощный инструмент, позволяющий управлять потоками данных между корутинами.
📖 Целиком статья c примерами доступна по ссылке.
Шпаргалка, которая поможет вам глубже разобраться в работе с Kotlin Flow в Android-разработке. Если уже знакомы с базой Kotlin Flow, но хотите узнать больше о каналах, комбинировании потоков и разнице между SharedFlow и StateFlow — эта находка для вас.
Начинается статья с пояснения различий между холодными и горячими потоками. Далее рассматриваются каналы — мощный инструмент, позволяющий управлять потоками данных между корутинами.
📖 Целиком статья c примерами доступна по ссылке.
👍1
⚔️ Flutter против React Native — тест производительности
Когда речь заходит о разработке мобильных приложений, выбор между Flutter и React Native часто упирается в соображения производительности. Хотя у обоих фреймворков есть свои сторонники, для многих из нас важны реальные результаты бенчмарков.
Очень мало сравнительных бенчмарков для Flutter и React Native, да и те что есть, довольно старые.
Поэтому, тщательное сравнение текущих версий Flutter и React Native с точки зрения размера приложений, использования памяти и процессора в текущих версиях.
Когда речь заходит о разработке мобильных приложений, выбор между Flutter и React Native часто упирается в соображения производительности. Хотя у обоих фреймворков есть свои сторонники, для многих из нас важны реальные результаты бенчмарков.
Очень мало сравнительных бенчмарков для Flutter и React Native, да и те что есть, довольно старые.
Поэтому, тщательное сравнение текущих версий Flutter и React Native с точки зрения размера приложений, использования памяти и процессора в текущих версиях.
🥱2🔥1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
📊 Топ быстрорастущих приложений в России в августе
На первой фотографии топ роста по загрузкам. На второй топ самых быстрорастущих по выручке приложений.
#аналитика #новость
На первой фотографии топ роста по загрузкам. На второй топ самых быстрорастущих по выручке приложений.
#аналитика #новость
OTP Helper — автоматическое получение кодов из уведомлений
Приложение с открытым исходным кодом, которое позволяет автоматически копировать OTP и коды из SMS и уведомлений, читая все ваши уведомления. Приложение работает полностью автономно и без доступа к интернету. Поэтому, по идее, ваши данные не покидают устройство.
Ссылка на GitHub 🔗
#библиотека #github
Приложение с открытым исходным кодом, которое позволяет автоматически копировать OTP и коды из SMS и уведомлений, читая все ваши уведомления. Приложение работает полностью автономно и без доступа к интернету. Поэтому, по идее, ваши данные не покидают устройство.
Ссылка на GitHub 🔗
#библиотека #github
🔥3👍2
🔎 Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime
Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода.
SwiftUI затрудняет решение задачи: из-за декларативности подхода и отсутствия явно выраженного жизненного цикла в UI, обнаружить причину утечки памяти сложнее.
Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода.
SwiftUI затрудняет решение задачи: из-за декларативности подхода и отсутствия явно выраженного жизненного цикла в UI, обнаружить причину утечки памяти сложнее.
👍1
Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
🎮📖 Библиотека геймдизайнера: 10 must-read книг 2024 года
От концепции до реализации, от баланса до монетизации – представляем вашему вниманию 10 ключевых книг 2024 года, которые помогут вам достичь новых высот в геймдеве.
👉 Статья
От концепции до реализации, от баланса до монетизации – представляем вашему вниманию 10 ключевых книг 2024 года, которые помогут вам достичь новых высот в геймдеве.
👉 Статья
👏2😁2
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
⚠️ Топ-10 ошибок, которые мы допускаем
Jetpack Compose произвел революцию в создании UI для приложений Android, внедрив декларативный подход. Он упрощает многие аспекты, но также может поставить в тупик.
📖 Вот 10 ошибок, которые многие из нас совершали при работе с Jetpack Compose, а также пояснения и фрагменты кода, которые помогут вам их избежать.
Jetpack Compose произвел революцию в создании UI для приложений Android, внедрив декларативный подход. Он упрощает многие аспекты, но также может поставить в тупик.
📖 Вот 10 ошибок, которые многие из нас совершали при работе с Jetpack Compose, а также пояснения и фрагменты кода, которые помогут вам их избежать.
Без какой покупки вы больше не представляете свою работу?
Соберем вместе список рекомендаций в комментариях 👇
Соберем вместе список рекомендаций в комментариях 👇
This media is not supported in your browser
VIEW IN TELEGRAM
Как использовать файлы EditorConfig в Xcode
Работая над несколькими проектами, вам, скорее всего, приходится настраивать Xcode каждый раз, когда вы переключаетесь между проектами. Процесс утомительный, который вы можете забыть сделать или не заметить.
В Xcode 16 добавлена поддержка файлов EditorConfig, которые позволяют программно определять настройки редактора Xcode для каждого проекта.
📖 В этой статье вы узнаете, как настроить файлы EditorConfig в Xcode и какие настройки поддерживаются на данный момент.
Работая над несколькими проектами, вам, скорее всего, приходится настраивать Xcode каждый раз, когда вы переключаетесь между проектами. Процесс утомительный, который вы можете забыть сделать или не заметить.
В Xcode 16 добавлена поддержка файлов EditorConfig, которые позволяют программно определять настройки редактора Xcode для каждого проекта.
📖 В этой статье вы узнаете, как настроить файлы EditorConfig в Xcode и какие настройки поддерживаются на данный момент.
👏1