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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
🏃⚙️ Настройка производительности Kotlin

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

Среди советов есть следующие:

Используйте val вместо var
Избегайте оператора !!
Используйте when вместо длинных цепочек if-else
Используйте строковые шаблоны
Используйте apply для Object Initialization
Встроенные функции
List вместо Array
Избегайте использования Java Streams

Подробнее

#обучалка
👍63🥰2🥱1
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году

Разбираемся: где искать работу за рубежом, как и где откликаться на вакансии, плюс несколько лайфхаков по составлению резюме.

Читать статью

#поискработы
👍7🔥31
😎 Очередной #дайджест по мобильной разработке

🔺 Вечная битва за производительность приложений на iOS — чек-лист, на что обратить внимание и к каким инструментам присмотреться

🔺 CNLabelContactRelationYoungerCousinMothersSiblingsDaughterOrFathersSistersDaughter — тест на внимательность, ну и дока интересная

🔺 Java 21 — вышла общедоступная версия Java 21 — около 2500 закрытых задач и 15 JEP'ов

🔺 Swift 5.9 — появилась система макросов, пакеты параметров, if/switch в качестве выражений и многое другое

🔺 ArchUnit vs. Konsist. Зачем нам понадобился еще один линтер Kotlin? — почему ArchUnit не идеален для Kotlin и в чем заключается польза Konsist
👍284
🎙️📺 Собеседование на позицию Mobile Developer

В видосе спикер проведет собес с обсуждением знаний, которые пригодятся в повседневной разработке. В процессе общения будет проектироваться мультиплатформенное приложение (проектирование и общение по KMP), задача по корутинам, и в завершение — Compose и важные оптимизации.

Смотреть видео

#обучение
👍93
🤔🤔 Чего ждать от Kotlin K2

Новый K2 компилятор и прежде чем пытаться понять изменения в компиляторе, нужно выяснить мотивы, стоящие за этими изменениями:

🔹 Kotlin и его синтаксис постоянно развиваются. Компилятор должен эволюционировать, чтобы учесть эти изменения
🔹 Компилятор должен быть более эффективным. Первый компилятор никогда не был быстрым, он обеспечивал быструю разработку.
🔹 Улучшенная поддержка многопоточности и мультиплатформенности. Поскольку Kotlin берет на себя ответственность за компиляцию кода для различных платформ и целевых объектов, для компилятора становится важным поддерживать различные функции платформы, одновременно эффективно компилируя код Kotlin.
🔹 Улучшенные структуры компилятора. Компиляторы используют различные структуры данных для хранения семантической информации о коде. Реализация абстрактного синтаксического дерева в компиляторе Kotlin не очень полезна для будущей дорожной карты.

Подробнее

#обзор
👍72
This media is not supported in your browser
VIEW IN TELEGRAM
Tiling — это реализация пагинации на основе состояния, которая представляет выгружаемый набор данных в виде простого списка. Он обеспечивает постоянный доступ к элементам по индексам в режиме реального времени и возможность самоанализа элементов, просматриваемых по страницам.

Tiller доступен в mavenCentral:

implementation com.tunjid.tiler:tiler:version

Читать статью

#гайд
🤩13👍83🔥1
🚢 Сертифицированная версия ViPNet OSSL с поддержкой ОС Аврора

ViPNet OSSL — ПО на базе библиотеки OpenSSL, которое позволяет использовать российские криптографические алгоритмы ГОСТ в прикладных системах. ViPNet OSSL 5.4 является законченным встраиваемым средством криптографической защиты информации (СКЗИ) и может быть использован разработчиками в приложениях и прикладных системах, с помощью которых можно подписывать документы и осуществлять проверку электронной подписи, устанавливать защищенные соединения по протоколам TLS 1.2 и 1.3, создавать крипто-защищенные сообщения в формате CMS и работать с различными форматами электронной подписи. Теперь эти возможности доступны и для приложений под управлением ОС Аврора.

Программный комплекс ViPNet OSSL версии 5.4 соответствует всем требованиям ФСБ России к СКЗИ и требованиям к средствам электронной подписи.

Подробности тут

#новости
👍83
🧑‍✈️🥷 Jailbreak checker — как обезопасить свое iOS-приложение

Из-за получения полного доступа к системе появляется и доступ к незащищенному keychain. После взлома у пользователя появляется доступ к альтернативным сторам, из которых можно скачать приложения, не проходившие ревью в App Store. Одним из таких является Cydia, который чаще всего сразу же устанавливается в момент взлома устройства.

После джейлбрейка у мошенников появляется возможность взлома устройства по нескольким причинам:
🟠 Приложения, которые становится возможным скачать в результате джейлбрейка, не проверяются никем, поэтому могут быть небезопасны.
🟠 Apple не поддерживает устройства с jailbreak, из-за чего после взлома они перестают получать важные обновления, в том числе обновления системы безопасности.
🟠 В случае взлома устройства компания Apple аннулирует гарантию на него, и при поломке его уже нельзя будет отремонтировать в официальном сервисе.

Чем же это может быть опасно для приложения?

🔴 Если оно работает с персональными данными либо с денежными средствами — нужно предупредить пользователя о плохом развитии событий.
🔴 Это небезопасно, если приложение используется в качестве двухфакторной аутентификации.
🔴 Так как устройство не получает необходимые обновления безопасности, это упрощает для мошенников получение доступа к данным.

Подробнее тут

#гайд
👍72😁1
Подготовили вам #дайджест инструментов для новичков, ускоряющих разработку

🔻 Appery.io. Облачная платформа для кроссплатформенной разработки с возможностью перетаскивать элементы мышкой.

🔻 Appian Quick Apps. Вводите ключевые данные, после чего инструмент начинает сбор информации, создание форм и автоматизацию процессов. На выходе получаем приложение, с функциями, которые могут понадобиться пользователям.

🔻 Kony Visualizer. Инструмент для разработки wearables-приложений.

🔻 Perfecto Mobile. Бесплатная облачная, автоматизированная среда для тестирования с удобным UI, которая поможет выпустить приложение без ошибок.

🔻 Como. Поможет создать приложение, повышающие эффективность программ лояльности. Подойдет для владельцев бизнеса, которые хотят самостоятельно сделать и запустить приложение.
👍53🔥1
🧠🧠 Советы по управлению памятью во Flutter

Почему важно управление памятью?

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

Советы:

🟡 Используйте сборку мусора Dart.
🟡 Используйте конструкторы const для виджетов, чтобы предотвратить ненужное создание экземпляров объектов, экономя память.
🟡 Выбирайте виджеты без сохранения состояния, поскольку они занимают меньше памяти.
🟡 Оптимизируйте большие файлы и их загрузку.
🟡 Утилизируйте контроллеры и потоки, например с помощью метода dispose().
🟡 Аккуратно используйте кеш во избежание раздувания памяти. Устанавливайте ограничения.
🟡 Избегайте ненужного использования ресурсов с высоким разрешением.
🟡 Контролируйте длительность хранения синглотонами больших объемов данных.
🟡 Используйте виджеты, которые автоматически освобождают ресурсы.
🟡 Применяйте слабые ссылки, например, dart:ffi.
🟡 Остерегайтесь прямой загрузки больших изображений — Image.memory и Image.network. Применяйте кеширование.

#туториал
25🥰15🔥13👏11👍7
🐕📈 Ходить ли на конференции джуну?

Что такое конференции и комьюнити, как и зачем в этом участвовать и самое главное, как из этого извлечь выгоду. Это все заставляет развиваться, заводить новые знакомства, получать дополнительные знания и хорошо проводить время. Но для получения пользы, необходимо понимать, как все устроено. В общем, вас ждет познавательный выпуск. Приятного просмотра 😉

#видео
👍72🥰1
🐥🐥 Обнаружение утечек в тестировании UI

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

Речь пойдет о библиотеке для поиска утечек в Android — LeakCanary.

Интеграция LeakCanary в тесты

Вы можете легко интегрировать LeakCanary в UI тесты, просто включив код, который запускается по завершении теста:

LeakAssertions.assertNoLeaks()

После завершения теста, если вы используете Espresso, запустите обнаружение утечек с помощью LeakCanary в методе, обозначенном как After:

@After
fun after() {
// Launch leak detection
LeakAssertions.assertNoLeaks()
}

Подробнее читайте тут

#гайд
20👍6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Потратить кучу денег на невероятно полезную фичу —

Источник: Denis Sexy IT
8👍2
😎 Очередной #дайджест по мобильной разработке

🔹 Разблокировка SwiftUI в Airbnb — история о переходе с Epoxy и UIKit на SwiftUI в Airbnb, а также о сопутствующих проблемах

🔹 Как часто вызывается UICollectionView layoutSubviews во время прокрутки? — очень подробный разбор этапов прорисовки экрана

🔹 Как async/await работает внутри Swift — как оно работает, почему оно работает и о каких подводных камнях нужно знать

🔹 Инфраструктура Android UI-тестов — видос про автоматизацию запуска тестов на каждый коммит в каждом пулл-реквесте 🔥🔥

🔹 Размышления о Flutter 3.13 — когда бомбануло от обновлений, в хорошем понимании слова 😂
7🔥2