Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.75K subscribers
1.52K 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
⚡️📈📊 Топ быстрорастущих приложений в России в сентябре

1. Приложения для учебы — ClassDojo и Dnevnik как средства управления учащимися, Brain Out Test & Math Games и Busuu как обучающие приложения.

2. Night Sky.

3. Goodnotes 6 — лучшее приложение для iPad 2022, цифровой блокнот с большим набором дополнительных функций. По данным AppMagic, приложение на iOS заработало в России $68K.

4. Из других занятных приложений в топе быстрорастущих — Falla-Make new friends, китайское приложений для голосовых чатов, совместных игр, знакомств.

#новость
👍43
🤔 PWA vs Native — как выбрать

Что такое PWA

Progressive Web Apps (PWA) или прогрессивные веб-приложения — это не какой-то фреймворк или SDK. Это философия того, как надо строить современные веб-приложения. Говоря по-простому, это режим отображения веб-сайта, который можно запускать в виде приложения на смартфоне. Поэтому PWA могут работать на любом устройстве, будь то компьютер, планшет или смартфон.

Преимущества прогрессивных приложений (PWA)

Кросс-платформенность
Более быстрое развертывание
Производительность приложения
Пуш-уведомления
Независимость от сторов

Минусы PWA

Один из главных недостатков PWA заключается в том, что они могут быть медленнее, чем обычные веб-сайты. Это происходит из-за того, что PWA должны загружать все ресурсы, необходимые для работы приложения, включая шрифты, изображения и JavaScript-файлы.
Некоторые устройства могут не поддерживать определенные функции PWA, такие как пуш-уведомления или офлайн-режим. Также некоторые браузеры могут не поддерживать возможности PWA.
PWA приложения обеспечивают безопасность за счет использования HTTPS-протокола, манифеста веб-приложения и Service Worker`ов.

Преимущества нативных приложений перед PWA

Максимальная производительность и функциональность
Полный доступ к функциям устройства
Лучший пользовательский опыт
Доступ к магазинам приложений
Безопасность в приложение

Минусы нативных приложений в сравнении с PWA

Необходимость разрабатывать отдельные версии для разных платформ (iOS, Android) может потребовать больше времени и ресурсов.
Обновления нативных приложений должны пройти процесс утверждения в магазинах приложений, что может вызвать задержки.
Нативные приложения требуют скачивания и установки, что может отпугнуть часть пользователей.

Что выбрать?

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

#гайд
9👍3👾2🥰1🥱1
😱🤯😳 Как я стал инженером с зп 800к$

В 2021 году, в последний полный год, который автор проработал в Meta, он заработал более 800 000 долларов. Он рассказывает о своей компенсации и о том, как она менялась каждый год.

Он присоединился к Facebook в 2017 году с общим вознаграждением в размере 400 тысяч долларов, и за следующие 4,5 года его вознаграждение более чем удвоилось.

Вот его общая годовая компенсация за 4,5 года работы в Meta:

2017: $390,000
2018: $370,000
2019: $504,000
2020: $703,000
2021: $823,000 🙀

Но его путешествие не было прямым путем к подсчету 100-долларовых купюр. В течение первых 6 месяцев после того, как он присоединился к Facebook, он был измотан тревогой. Будучи старшим инженером, автор испытывал синдром самозванца, трудности в адаптации к культуре и инструментам компании, и в течение первых нескольких месяцев он столкнулся с реорганизацией. Далее его история успешного успеха.

#холивар
👍103🔥2
Дефолтный аватар как в 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