Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.82K subscribers
1.46K photos
70 videos
52 files
4.22K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
🚫 Паттерн Синглтон — небезопасен!

Паттерн Синглтон — это шаблон проектирования, который гарантирует, что класс имеет только один экземпляр и обеспечивает глобальную точку доступа к нему. Хотя в некоторых ситуациях он может быть полезен, паттерн может создать несколько проблем при разработке.

В статье рассматривается, почему синглтоны могут быть проблематичными, и приведы пять примеров с фрагментами кода, чтобы проиллюстрировать эти проблемы.
😁4🔥3👏2🌚1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🔥2
🛠️ Инструменты Android-разработчика

Разработка мобильных приложений для Android — это увлекательный, но зачастую трудоёмкий процесс. Успех вашего проекта во многом зависит от эффективности используемых инструментов и рабочих процессов.

Автор, разработчик в команде мобильного приложения Домклик , знает, насколько важно иметь под рукой правильный набор инструментов, которые помогают повышать продуктивность, улучшать качество кода и ускорять процесс разработки.

Он делится своим опытом и рассказывает о наиболее полезных инструментах, которые использует в своей повседневной работе.
👍3🔥2😁2
Apple открывает Translate API

На WWDC компания Apple анонсировала открытие нового API, позволяющего разработчикам интегрировать инструмент перевода Apple в свои приложения.

Как было подробно рассказано на одной из сессий WWDC 2024, недавно в iOS 17.4 Apple представила новый Translation API, который позволяет интегрировать Apple Translate в приложения сторонних разработчиков. Благодаря API разработчикам больше не придется полагаться на сторонние платформы для обеспечения функций перевода в своих приложениях.

🖥 Документация
➡️ Видео с WWDC
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍑 Подборка лучших статей «Библиотеки программиста» за июнь: сохраняй в заметки, чтобы не пропустить #самыйсок

💻 8 причин участвовать в хакатонах
✉️ Как завалить собеседование, даже не начав его: 8 ошибок в сопроводительных письмах
🦅 Делаем нативное мобильное приложение с ИИ и бэкендом
🤖👨‍💻 Пишем Telegram-бота для подготовки к собеседованию на Frontend-разработчика
💵 ТОП-15 самых востребованных профессий в ИТ: куда все катится в 2024 году
🈺 Как перевести все ваши iOS-приложения на 20 языков за 5 минут
🏆👁️ Топовая задачка на Stack Overflow: как найти k пропущенных чисел в потоке данных
🐍🤖💬 Создаём бота-автоответчика для Telegram на ChatGPT и Aiogram 3: пошаговое руководство
🤖🎙️ S.T.A.R.K. — первый фреймворк для создания голосового ассистента
😌 5 техник для снятия стресса на работе
🐍🎓 5 задач для подготовки к собеседованию по Python
⚛️ 6 самых важных шаблонов проектирования в React
💠 Пишем свою нейросеть: пошаговое руководство
🐍🏗️ Основы архитектуры для джунов: построение масштабируемых и чистых приложений на Python
💡 Кем работать в IT, если ты гуманитарий: 10 альтернативных профессий
🎓 Продвинутый SQL: секреты профессионалов
👶 Новичок в компании: 18 советов, как быстро адаптироваться и освоить новые навыки
🛠️ Set в JavaScript: теперь с новыми суперспособностями
⚒️ 10 незаменимых плагинов для VS Code в 2024 году
🐍🕵 5 лучших Python инструментов для специалистов по кибербезопасности
📧 Отклик на вакансию по email: как сделать так, чтобы ваше письмо выделялось
🐍📦 Ваш код достоин PyPI: как правильно опубликовать Python-пакет
🏃 Самоучитель по Go для начинающих. Часть 13. Работа с датой и временем. Пакет time
👋 Slack уходит из России: чем заменить зарубежный сервис
🗣️ «Иногда решение не в изменении системы, а в изменении отношения заказчика». Интервью с системным аналитиком
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Привет, друзья! 👋

Мы готовим статью о типичных ошибках начинающих разработчиков. И нам очень нужна ваша помощь! 🙏

Поделитесь своим опытом и мнением в комментариях:
С какими сложностями вы сталкивались в начале своего пути в разработке?
Какие ошибки допускали и как их исправляли?
Что помогло вам быстрее расти профессионально?

Самые интересные и полезные советы мы обязательно включим в статью, а их авторов упомянем в публикации! 😊
Создаем Flutter-приложение для оплаты через СБП без натива

Автор объясняет, как использовать два пакета из pub.dev для интеграции СБП, описывает структуру API СБП, и демонстрирует шаги по созданию приложения, включая настройку и обработку диплинков, а также отслеживание состояния приложения при переходах в банковские приложения.

Ссылка на статью 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔3🥱2
InjectionIII — «горячая перезагрузка» для Swift, позволяет обновлять реализацию функций и любых методов классов, структур или перечислений мгновенно в симуляторе iOS без необходимости полной пересборки или перезапуска приложения. Это экономит разработчику значительное количество времени на доработку кода или итерации над дизайном.

По сути, это превращает Xcode из «редактора исходного кода» в «редактор программы», где изменения исходного кода не просто сохраняются на диск, а непосредственно отображаются в вашей работающей программе.

Ссылка на Github
🎉3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
9 гифок, наглядно иллюстрирующих числовые последовательности

https://proglib.io/p/sequences/

#math
🎉2
Новинки SwiftUI в iOS 18

Это еще один удачный год для SwiftUI, с очередным пакетом улучшений scrollview, некоторыми полезными функциями macOS, замечательным контролем над отображением текста и многим другим — Apple есть чем гордиться.

Но есть также одно важное архитектурное изменение, о котором вам нужно знать...
👍3
#вопросы_с_собеседований

Swift

Вопрос: назовите известные проблемы с многопоточностью?

Ответ:

Многопоточность — это мощный инструмент в разработке ПО, который позволяет вашему приложению выполнять несколько задач одновременно. Однако с её мощностью приходят и сложности. Вот некоторые из проблем:

1. Состояние гонки (Race Conditions): Это происходит, когда два или более потока пытаются одновременно изменить общие данные. Результат выполнения таких операций может зависеть от того, в каком порядке выполняются потоки, что может привести к непредсказуемому поведению программы.


var sharedResource = [String]()

DispatchQueue.global().async {
for _ in 0..<1000 {
sharedResource.append("A")
}
}

DispatchQueue.global().async {
for _ in 0..<1000 {
sharedResource.append("B")
}
}
// Предполагаемый результат может быть непредсказуемым, так как оба потока работают с одним и тем же ресурсом одновременно.


2. Взаимная блокировка (Deadlocks): Взаимная блокировка может произойти, когда два или более потока блокируются, ожидая, пока другие потоки освободят ресурсы, которые они уже удерживают, в результате чего ни один из потоков не может продолжить выполнение.


let queue1 = DispatchQueue(label: "queue1")
let queue2 = DispatchQueue(label: "queue2")

queue1.async {
queue2.sync {
// Делаем что-то
}
}

queue2.async {
queue1.sync {
// Делаем что-то
}
}
// Здесь потоки будут ждать друг друга бесконечно, создавая взаимную блокировку.


3. Условия гонки при работе с памятью (Memory Races): Похоже на условия гонки, но здесь конфликт возникает при доступе к памяти. Это может привести к повреждению данных, когда несколько потоков пытаются одновременно читать и записывать данные в одно и то же место в памяти без должной синхронизации.

4. Голодание (Starvation): Происходит, когда поток никогда не получает доступ к ресурсу или исполнителю из-за постоянного захвата этих ресурсов другими потоками.

5. Чрезмерная синхронизация (Over-Synchronization): Происходит, когда для предотвращения проблем с многопоточностью добавляется слишком много блокировок, что в свою очередь может серьёзно снизить производительность программы, так как потоки часто ожидают возможности доступа к ресурсам.

Чтобы избежать этих и других проблем с многопоточностью, разработчики используют различные техники синхронизации, такие как блокировки, семафоры и барьеры. Однако нужно быть осторожным, чтобы не переусложнить программу и не снизить её производительность.
👍7👏2
Побеждаем в конкурсах Telegram без смс и регистрации 💃

Мобильный разработчик из Тинькофф рассказывает про свой опыт участия в контестах от Telegram.

В докладе говорит о задачах, разбирает технические решения, и в целом как стоит подходить к контесту, если хочешь победить. И почему даже если ты подготовился на все 100%, победа может ускользнуть из твоих рук.

Ссылка на доклад 📺
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#дайджест

🥲 Дайджест интересных материалов по 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
🔥5
Android-разработчики в 2024 году

Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих Android-разработчиков: какие навыки требуются джуниорам для трудоустройства, о чём их спрашивают на собеседованиях и какого опыта достаточно, чтобы получить предложение о работе.

Читать статью 📖
😁12🤔3
Сделайте так, чтобы комментарии выглядели как история браузера Junior-разработчика 💬👇
😁3
⚙️ Удаленная конфигурация с помощью Google Sheets

Самое большое преимущество этого подхода в том, что он абсолютно бесплатный, поэтому вам не нужно платить никаких дополнительных денег. И это действительно просто. Вы создаете документ Google Sheet.

Вы добавляете два столбца, один для «ключа», второй для «значения» и копируете ссылку для обмена! Вам даже не нужен какой-либо механизм аутентификации или что-то еще. Просто ссылка.

Как это можно сделать, читайте здесь 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤖 Kotlin Script: для кого, зачем и как

Kotlin Script, хоть и находится в beta, уже представляет собой достаточно интересный и полезный инструмент, но при этом его незаслуженно обделяют вниманием. С его помощью можно писать скрипты для автоматизации рутинных действий со всеми преимуществами строгой типизации и реализовать возможность гибкой конфигурации приложений путем запуска клиентских скриптов.

👉 Доклад поможет расширить кругозор и познакомит с новым инструментом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Управление памятью в Swift

Делимся статьёй, в которой рассматриваются ситуации, когда структуры могут быть неэффективны в использовании по сравнению с классами, отличия статической от динамической диспетчеризации и многое другое.

Она объясняет, как Swift использует автоматическое управление памятью с помощью подсчета ссылок (ARC) и как это помогает предотвратить утечки памяти. Кроме того, в статье приводятся примеры, показывающие, как неправильное управление ссылками может привести к циклическим ссылкам и утечкам памяти.

Материал интересный, если не знакомы с управлением памяти в Swift, то советуем ознакомиться.

Ссылка 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥰2