Создаем Flutter-приложение для оплаты через СБП без натива
Автор объясняет, как использовать два пакета из pub.dev для интеграции СБП, описывает структуру API СБП, и демонстрирует шаги по созданию приложения, включая настройку и обработку диплинков, а также отслеживание состояния приложения при переходах в банковские приложения.
Ссылка на статью🔗
Автор объясняет, как использовать два пакета из pub.dev для интеграции СБП, описывает структуру API СБП, и демонстрирует шаги по созданию приложения, включая настройку и обработку диплинков, а также отслеживание состояния приложения при переходах в банковские приложения.
Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
InjectionIII — «горячая перезагрузка» для Swift, позволяет обновлять реализацию функций и любых методов классов, структур или перечислений мгновенно в симуляторе iOS без необходимости полной пересборки или перезапуска приложения. Это экономит разработчику значительное количество времени на доработку кода или итерации над дизайном.
По сути, это превращает Xcode из «редактора исходного кода» в «редактор программы», где изменения исходного кода не просто сохраняются на диск, а непосредственно отображаются в вашей работающей программе.
Ссылка на Github
По сути, это превращает Xcode из «редактора исходного кода» в «редактор программы», где изменения исходного кода не просто сохраняются на диск, а непосредственно отображаются в вашей работающей программе.
Ссылка на Github
Новинки SwiftUI в iOS 18
Это еще один удачный год для SwiftUI, с очередным пакетом улучшений scrollview, некоторыми полезными функциями macOS, замечательным контролем над отображением текста и многим другим — Apple есть чем гордиться.
Но есть также одно важное архитектурное изменение, о котором вам нужно знать...
Это еще один удачный год для SwiftUI, с очередным пакетом улучшений scrollview, некоторыми полезными функциями macOS, замечательным контролем над отображением текста и многим другим — Apple есть чем гордиться.
Но есть также одно важное архитектурное изменение, о котором вам нужно знать...
#вопросы_с_собеседований
Swift
Вопрос: назовите известные проблемы с многопоточностью?
Ответ:
Многопоточность — это мощный инструмент в разработке ПО, который позволяет вашему приложению выполнять несколько задач одновременно. Однако с её мощностью приходят и сложности. Вот некоторые из проблем:
1. Состояние гонки (Race Conditions): Это происходит, когда два или более потока пытаются одновременно изменить общие данные. Результат выполнения таких операций может зависеть от того, в каком порядке выполняются потоки, что может привести к непредсказуемому поведению программы.
2. Взаимная блокировка (Deadlocks): Взаимная блокировка может произойти, когда два или более потока блокируются, ожидая, пока другие потоки освободят ресурсы, которые они уже удерживают, в результате чего ни один из потоков не может продолжить выполнение.
3. Условия гонки при работе с памятью (Memory Races): Похоже на условия гонки, но здесь конфликт возникает при доступе к памяти. Это может привести к повреждению данных, когда несколько потоков пытаются одновременно читать и записывать данные в одно и то же место в памяти без должной синхронизации.
4. Голодание (Starvation): Происходит, когда поток никогда не получает доступ к ресурсу или исполнителю из-за постоянного захвата этих ресурсов другими потоками.
5. Чрезмерная синхронизация (Over-Synchronization): Происходит, когда для предотвращения проблем с многопоточностью добавляется слишком много блокировок, что в свою очередь может серьёзно снизить производительность программы, так как потоки часто ожидают возможности доступа к ресурсам.
Чтобы избежать этих и других проблем с многопоточностью, разработчики используют различные техники синхронизации, такие как блокировки, семафоры и барьеры. Однако нужно быть осторожным, чтобы не переусложнить программу и не снизить её производительность.
Swift
Вопрос: назовите известные проблемы с многопоточностью?
Ответ:
var sharedResource = [String]()
DispatchQueue.global().async {
for _ in 0..<1000 {
sharedResource.append("A")
}
}
DispatchQueue.global().async {
for _ in 0..<1000 {
sharedResource.append("B")
}
}
// Предполагаемый результат может быть непредсказуемым, так как оба потока работают с одним и тем же ресурсом одновременно.
let queue1 = DispatchQueue(label: "queue1")
let queue2 = DispatchQueue(label: "queue2")
queue1.async {
queue2.sync {
// Делаем что-то
}
}
queue2.async {
queue1.sync {
// Делаем что-то
}
}
// Здесь потоки будут ждать друг друга бесконечно, создавая взаимную блокировку.
Побеждаем в конкурсах Telegram без смс и регистрации 💃
Мобильный разработчик из Тинькофф рассказывает про свой опыт участия в контестах от Telegram.
В докладе говорит о задачах, разбирает технические решения, и в целом как стоит подходить к контесту, если хочешь победить. И почему даже если ты подготовился на все 100%, победа может ускользнуть из твоих рук.
Ссылка на доклад📺
Мобильный разработчик из Тинькофф рассказывает про свой опыт участия в контестах от Telegram.
В докладе говорит о задачах, разбирает технические решения, и в целом как стоит подходить к контесту, если хочешь победить. И почему даже если ты подготовился на все 100%, победа может ускользнуть из твоих рук.
Ссылка на доклад
Please open Telegram to view this post
VIEW IN TELEGRAM
#дайджест
🥲 Дайджест интересных материалов по SwiftUI:
Смешиваем цвета в SwiftUI🖥
Как управлять различными фазами прокрутки в ScrollView⚙️
Делаем Drag & Drop иконок Tab Bar👮
Создаем минималистичное приложение Pomodoro Focus Timer⏰
Использование многоступенчатой анимации в SwiftUI♾
Пример использования недавно выпущенный TextField Selection API👶
Создание виджета для центра управления iOS 18👔
Переход с эффектом зума в SwiftUI💃
Смешиваем цвета в SwiftUI
Как управлять различными фазами прокрутки в ScrollView
Делаем Drag & Drop иконок Tab Bar
Создаем минималистичное приложение Pomodoro Focus Timer
Использование многоступенчатой анимации в SwiftUI
Пример использования недавно выпущенный TextField Selection API
Создание виджета для центра управления iOS 18
Переход с эффектом зума в SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезный помощник для изучения важных тем разработки на iOS. Какие вопросы доступны прямо сейчас:
– Многопоточность
– Алгоритмы
– Память
– Архитектуры
– Код
– Компилятор
Приложение называется IQ-квиз по iOS
– Многопоточность
– Алгоритмы
– Память
– Архитектуры
– Код
– Компилятор
Приложение называется IQ-квиз по iOS
Android-разработчики в 2024 году
Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих Android-разработчиков: какие навыки требуются джуниорам для трудоустройства, о чём их спрашивают на собеседованиях и какого опыта достаточно, чтобы получить предложение о работе.
Читать статью 📖
Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих Android-разработчиков: какие навыки требуются джуниорам для трудоустройства, о чём их спрашивают на собеседованиях и какого опыта достаточно, чтобы получить предложение о работе.
Читать статью 📖
Сделайте так, чтобы комментарии выглядели как история браузера Junior-разработчика 💬👇
Самое большое преимущество этого подхода в том, что он абсолютно бесплатный, поэтому вам не нужно платить никаких дополнительных денег. И это действительно просто. Вы создаете документ Google Sheet.
Вы добавляете два столбца, один для «ключа», второй для «значения» и копируете ссылку для обмена! Вам даже не нужен какой-либо механизм аутентификации или что-то еще. Просто ссылка.
Как это можно сделать, читайте здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin Script, хоть и находится в beta, уже представляет собой достаточно интересный и полезный инструмент, но при этом его незаслуженно обделяют вниманием. С его помощью можно писать скрипты для автоматизации рутинных действий со всеми преимуществами строгой типизации и реализовать возможность гибкой конфигурации приложений путем запуска клиентских скриптов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Делимся статьёй, в которой рассматриваются ситуации, когда структуры могут быть неэффективны в использовании по сравнению с классами, отличия статической от динамической диспетчеризации и многое другое.
Она объясняет, как Swift использует автоматическое управление памятью с помощью подсчета ссылок (ARC) и как это помогает предотвратить утечки памяти. Кроме того, в статье приводятся примеры, показывающие, как неправильное управление ссылками может привести к циклическим ссылкам и утечкам памяти.
Материал интересный, если не знакомы с управлением памяти в Swift, то советуем ознакомиться.
Ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезные Github репозитории для iOS разработчиков:
1. awesome-ios
2. Open-Source iOS Apps
3. Kickstarter’s iOS app
4. iOS learning materials
5. Swift libraries and resources
6. Design patterns in Swift
7. Swift style guide
8. Swift evolution
1. awesome-ios
2. Open-Source iOS Apps
3. Kickstarter’s iOS app
4. iOS learning materials
5. Swift libraries and resources
6. Design patterns in Swift
7. Swift style guide
8. Swift evolution
#вопросы_с_собеседований
Kotlin
Вопрос: В чем преимущество Kotlin для разработки под Android?
Ответ:
1. Более краткий и выразительный синтаксис: Kotlin позволяет писать код более кратко и чисто по сравнению с Java, сокращая количество шаблонного кода. Это делает код легче для чтения и поддержки.
2. Null безопасность: В Kotlin встроена поддержка обработки значений `null`, что помогает избежать `NullPointerException` — одной из наиболее распространенных ошибок в Java-приложениях.
3. Расширенные функции (Extension functions): Kotlin позволяет добавлять новые функции к существующим классам без их модификации. Это упрощает работу с API Android, делая код более читабельным и лаконичным.
4. Поддержка функционального программирования: Kotlin включает множество функций функционального программирования, таких как лямбда-выражения, высшие порядки функций, которые делают код более гибким и выразительным.
5. Полная совместимость с Java: Kotlin полностью совместим с Java, что позволяет легко использовать все существующие Java-библиотеки и фреймворки в Kotlin-проектах, а также постепенно переводить существующий Java-код на Kotlin.
6. Инструментальная поддержка: Kotlin полностью поддерживается в Android Studio, что обеспечивает удобные инструменты для разработки, такие как автодополнение, рефакторинг кода, проверка ошибок в реальном времени.
7. Корутины для асинхронного программирования: Kotlin предоставляет встроенную поддержку корутин, что упрощает работу с асинхронными операциями, такими как выполнение сетевых запросов или чтение из базы данных, делая код более понятным и менее подверженным ошибкам.
8. Улучшенная безопасность: Благодаря более строгой системе типов и обработке исключений, Kotlin помогает предотвратить распространенные ошибки во время компиляции, что повышает общую безопасность приложения.
9. Официальная поддержка Google: С 2017 года Kotlin является официальным языком для разработки Android-приложений, что гарантирует его постоянное обновление и поддержку со стороны Google.
Kotlin
Вопрос: В чем преимущество Kotlin для разработки под Android?
Ответ:
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Топ 5 плагинов для Android Studio
1. Kotlin Fill Class — фантастический плагин, который делает разработку намного более приятной и быстрой. С его помощью вы можете заполнять классы и функции на лету.
2. ADB Idea — это дополнение к ADB, которое вы можете запустить с помощью всплывающего окна.
3. Android Drawable Preview — В каталоге drawable легко заблудиться, особенно в больших проектах. С помощью этого плагина вы больше не заблудитесь, так как в нем отображаются небольшие предварительные изображения всех значков внутри каталога.
4. Key Promotex X — поможет вам освоить основные сочетания клавиш во время работы. Когда вы нажимаете мышью на кнопку в среде IDE, Key Promoter X показывает сочетание клавиш, которое вы должны были использовать вместо этого.
5. IdeaVim — это Vim в Android Studio. Вы можете настроить его по своему вкусу с помощью файла .ideavimrc в вашем домашнем каталоге, как если бы вы использовали .vimrc.
1. Kotlin Fill Class — фантастический плагин, который делает разработку намного более приятной и быстрой. С его помощью вы можете заполнять классы и функции на лету.
2. ADB Idea — это дополнение к ADB, которое вы можете запустить с помощью всплывающего окна.
3. Android Drawable Preview — В каталоге drawable легко заблудиться, особенно в больших проектах. С помощью этого плагина вы больше не заблудитесь, так как в нем отображаются небольшие предварительные изображения всех значков внутри каталога.
4. Key Promotex X — поможет вам освоить основные сочетания клавиш во время работы. Когда вы нажимаете мышью на кнопку в среде IDE, Key Promoter X показывает сочетание клавиш, которое вы должны были использовать вместо этого.
5. IdeaVim — это Vim в Android Studio. Вы можете настроить его по своему вкусу с помощью файла .ideavimrc в вашем домашнем каталоге, как если бы вы использовали .vimrc.
Мобильные разработчики редко сталкиваются в работе со сложными структурами данных. Как правило, в рутинных задачах вполне достаточно уметь использовать Array, Dictionary и Set.
Наверное, вы слышали и о деревьях, графах, связанных списках Tree, Graph, Linked List, но в повседневной работе мобильного разработчика вряд ли вы с ними сталкиваетесь. Автор рассказывает о редких и недооцененных структурах данных. И самое главное, как впустить их в свою рутинную работу программиста.
Ознакомиться можно по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый способ оптимизации стабильности в Jetpack Compose
Новый strong skipping mode для управления стабильностью классов в Jetpack Compose меняет рекомпозиции в вашем приложении.
В этой статье речь идёт о том, какие случаи он решает за вас, а какие необходимо контролировать вручную. Также ответы на часто возникающие вопросы, например, нужно ли по-прежнему помнить о лямбда-функциях, нужны ли неизменяемые коллекции Kotlinx или даже как стабилизировать все классы вашей доменной модели.
Новый strong skipping mode для управления стабильностью классов в Jetpack Compose меняет рекомпозиции в вашем приложении.
В этой статье речь идёт о том, какие случаи он решает за вас, а какие необходимо контролировать вручную. Также ответы на часто возникающие вопросы, например, нужно ли по-прежнему помнить о лямбда-функциях, нужны ли неизменяемые коллекции Kotlinx или даже как стабилизировать все классы вашей доменной модели.