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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
Дефолтный аватар как в Telegram

Видео для начинающих iOS разработчиков с использованием такого стэка:

🔹 UITableView
🔹 CustomTableViewCell
🔹 UIAlertController
🔹 String extensions

01:26 - CustomTableView
02:40 - CustomTableViewCell
08:46 - CustomTableView
12:54 - ViewController
17:23 - AlertManager
23:44 - Pass data
27:40 - String extension

#туториал
👍92🔥2
Compose Multiplatform для iOS и Android

Бизнес хочет быстро запускаться, быстро проводить эксперименты — нужно уметь не терять время на разработку одинакового UI.
Правка багов только на одной стороне, так как верстка сразу на iOS & Android.
Time to market сокращается.

📌 Для кого доклад: iOS и Android-разработчики всех уровней. Также будет полезно веб-разработчикам.

📺 Смотреть

#видео
👍72
😎 Очередной #дайджест по мобильной разработке

🔺 Поиск мотивации. Ментор же решит всё. Что мне делать — разбор писем от подписчиков на тему проблем с мотивацией и развитием

🔺 Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform? — размышления о проблемах при раздельной нативной разработке, KMP и CMP

🔺 Новый инструмент для тестирования макросов в Swift — позволяет проверить все аспекты макросов, включая диагностику, исправления и многое другое

🔺 Android Studio for Platform — версия IDE на основе AOSP при использовании Soong. Поддерживается C++, Java и Kotlin, работает на Linux

🔺 Уровни доступа в Swift с примерами — ознакомление с уровнями доступа, разбор нюансов и изучение реальных примеров того, когда и как их эффективно использовать
24👍4🔥1
🗜Как отслеживать аномалии метрик производительности приложения с помощью перф-тестов

Автор (руководитель разработки iOS-версии приложения Яндекс) подробно рассказал о замерах метрик производительности на стороне клиента. Тезисно:

Плюсы и минусы разных способов получения данных
Откуда берутся проблемы в перф-тестах и как их избежать
Почему полезно детектировать аномалии не только в плане ухудшения, но и улучшения
Из чего состоит перф-ферма Яндекса для iOS и как она выглядит

Читать статью.
🔥51👍1
💪🌊🌊 Kotlin Flow: простая, но мощная реализация

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

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

Подробнее

#гайд
🔥84🥰1😁1🥱1
🕹️🎯 ANR internals: touch dispatching через иерархию представлений

ANR триггеры

Как возникает ошибка "Application Not Responding" (ANR)?
Согласно документации Android ANR:

Когда UI поток приложения для Android блокируется слишком надолго, возникает ошибка "Приложение не отвечает" (ANR).

В то время как блокировка UI потока является причиной большинства ANR, ОС Android не заботится о том, что в это время делает основной поток вашего приложения. Вместо этого у него есть ожидания относительно того, сколько времени приложениям потребуется для обработки нескольких конкретных событий. И означает, что приложение не реагирует на систему, а не на пользователя.

Продолжение здесь

#туториал
👍61🔥1
🏃⚙️ Настройка производительности 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