Мобильная разработка
14.9K subscribers
471 photos
206 videos
2.51K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Сокращение времени запуска Android-приложения

Время запуска — это первое впечатление пользователей о приложении, и медленная загрузка может негативно сказаться на удержании и привлечении пользователей.

Статья рассказывает о том, как разработчики Turo (каршеринг-приложение) сократили время запуска программы на 77%:

https://medium.com/androiddevelopers/turo-reduced-its-app-startup-time-by-77-using-android-developer-tools-and-best-practices-bcf82f596bcf

#android
Использование принципа инверсии зависимостей на практике

В статье предлагается эффективный подход к обновлению приложений без необходимости полного переписывания кода. Автор обсуждает применение принципа инверсии зависимостей (Dependency Inversion), который позволяет снизить зависимость между компонентами приложения, сделать его более гибким и устойчивым к изменениям:

https://itnext.io/avoid-rewriting-your-app-with-dependency-inversion-dfe525075f28

#android
Виды мобильных приложений

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

В статье описаны характеристики и различия каждого вида мобильных приложений:

https://iamankurjain.medium.com/mobile-application-taxonomy-65b4b9e9e5a7

#советы
Различия Compose и SwiftUI

На первый взгляд SwiftUI и Jetpack Compose очень похожи. Оба являются декларативными UI-фреймворками с похожими примитивами, предназначенными для выполнения одной и той же задачи.

Но есть некоторые фундаментальные различия, которые определяют способ их использования. Подробности в статье:

https://medium.com/mateedevs/fundamental-differences-of-compose-and-swiftui-2dc0cdd0b37

#swiftui #compose
Ping в iOS

Иногда бывает нужно проверить доступность удалённого сервера и время ответа из приложения.

Простой способ такой проверки с использованием новой асинхронной функциональности Swift описывается в статье:

https://medium.com/@onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3

#ios #network
Сборка с Bazel — бесплатный курс

Bazel — это система сборки с открытым исходным кодом, созданная Google для компиляции больших сложных баз кода.

На этом курсе вы сможете изучить основы использования этого инструмента начиная от написания очень простого Java-приложения, заканчивая компиляцией приложения для Android с большим количеством зависимостей.

Курс доступен бесплатно:

https://www.kodeco.com/31558158-building-with-bazel

#bazel #курс
This media is not supported in your browser
VIEW IN TELEGRAM
Параллакс в Jetpack Compose

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

В этой статье вы найдёте пошаговую инструкцию для создания этого такого эффекта:

https://proandroiddev.com/parallax-in-jetpack-compose-bf521244f49

#jetpackcompose
Опыт после использования Kotlin Multiplatform в производственных приложениях в течение года

Автор этой статьи поделился своими наблюдениями и выводами об использовании Kotlin Multiplatform. Рекомендуем к прочтению:

https://betterprogramming.pub/experience-using-kmp-in-production-apps-for-a-year-2474406d99d4

#kotlin #kmp
Диспетчеризация методов iOS

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

В этой статье будут рассмотрены понятие диспетчеризации, его виды, преимущества и недостатки, а также приведены небольшие задачи для укрепления знаний:

https://habr.com/ru/articles/677616/

#ios #swift
Как самостоятельно изучить Swift и стать iOS-разработчиком

Максим — iOS-разработчик из Казани, он самостоятельно освоил Objective-C и Swift и пишет мобильные приложения с 2017 года. Он успел поработать в стартапе и международной ИТ-компании, делал приложения для клиента из Арабских Эмиратов и Музея русского импрессионизма.

В этой статье он рассказал, почему решил стать iOS-разработчиком и что из этого вышло:

https://tproger.ru/articles/moja-istorija-v-it-kak-samostojatelno-izuchit-swift-i-stat-ios-razrabotchikom/

#ios
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать анимированные шейдеры в Jetpack Compose

Jetpack Compose — бурно развивающийся фреймворк для разработки под Android, который обладает множеством не всегда очевидных фичей. Сегодня речь пойдёт об одной из таких встроенных возможностей: речь идет об использовании OpenGL-шейдеров. Они позволяют делать красивые анимированные интерфейсы, как на видео выше.

В этой статье вы научитесь использовать эту фичу в своих проектах и делать аналогичные шейдеры:

https://habr.com/ru/companies/timeweb/articles/736192

#jetpackcompose
Интеграция рекламы в Android-приложение: Yandex Mobile Ads Vs. Google AdMob

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

Эта статья будет полезна Android-разработчикам, которые столкнулись с выбором SDK:

https://habr.com/ru/companies/simbirsoft/articles/737158/

#android
Упрощение внедрения зависимостей с помощью паттерна «фасад» в iOS

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

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

Подробнее:

https://pedroalvarez-29395.medium.com/ios-simplifying-dependency-injection-with-the-facade-design-pattern-bd863630da32

#ios
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера

Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку.

Для этого нам понадобятся:
— старый планшет или смартфон на android;
— Raspberry Pi Pico;
— 8 кнопок;
— прямые руки;
— и, наконец, немного кода.

Подробная инструкция в статье:

https://habr.com/ru/companies/timeweb/articles/736438/

#android #diy
Поиск retain cycle с помощью инструментов Xcode

При разработке под iOS многие разработчики часто сталкиваются c retain cycle, когда как минимум 2 объекта удерживают строгие ссылки друг на друга.

В реальном большом проекте очень тяжело отыскать, кто держит сильную ссылку друг на друга, причем это могут быть не 2 объекта, а больше.

В этой статье вы узнаете, как найти проблемное место и исправить его:

https://tproger.ru/articles/poisk-retain-cycle-s-pomoshhju-instrumentov-xcode/

#ios #xcode #swift
Использование Dynamic Type с кастомными шрифтами в iOS

Apple представила функцию Dynamic Type в iOS. Эта функция позволяет разработчикам изменять размер текста в соответствии с настройками пользователя.

Самый простой способ для разработчика поддерживать динамический шрифт — использовать предопределённые системой стили текста, такие как крупный заголовок, headline, основная часть и другие.

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

https://medium.com/@hdmdhr/use-dynamic-type-with-custom-fonts-in-ios-480d9c902689

#ios
Лайв-ревью Android-библиотеки для упрощения работы с разрешениями

В этом видео вы не только разберёте код ревью библиотеки MintPermissions, но и услышите комментарии от автора это библиотеки.

Подробнее:

https://youtu.be/zmpvQwcujk0

#видео #android
Советы по производительности SwiftUI

SwiftUI существует уже несколько лет и за этот период работы с ним автор этой статьи заметил несколько типов ошибок разработчиков (как своих, так и других), которые могут повлиять на его производительность. 

Здесь он подробно рассмотрел эти подводные камни и их возможные решения:

https://martinmitrevski.com/2022/04/14/swiftui-performance-tips/

#ios #swiftui
Как локализовать все ваши iOS приложения на 20 языков за 5 минут

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

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

В этой статье вы узнаете, как перевести iOS-приложение на множество языков с помощью XCodeLocalize:

https://habr.com/ru/articles/722172/

#ios
Kotlin Flow: лучшие практики

В этой статье вы познакомитесь с лучшими практиками использования Kotlin Flow, включая создание операторов и обработку ошибок.

Не упустите возможность узнать больше о преимуществах этого инструмента и улучшить свои навыки в разработке мобильных приложений:

https://florentblot.iss.onedium.com/kotlin-flow-best-practices-ab05e249ec1c

#kotlin