Использование Dynamic Type с кастомными шрифтами в iOS
Apple представила функцию Dynamic Type в iOS. Эта функция позволяет разработчикам изменять размер текста в соответствии с настройками пользователя.
Самый простой способ для разработчика поддерживать динамический шрифт — использовать предопределённые системой стили текста, такие как крупный заголовок, headline, основная часть и другие.
Но если речь идёт о пользовательских шрифтах, то всё становится несколько сложнее. В этой статье вы увидите, как мы можем добавить динамику нашим шрифтам шаг за шагом:
hdmdhr/use-dynamic-type-with-custom-fonts-in-ios-480d9c902689" rel="nofollow">https://medium.com/@hdmdhr/use-dynamic-type-with-custom-fonts-in-ios-480d9c902689
#ios
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера
Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку.
Для этого нам понадобятся:
— старый планшет или смартфон на android;
— Raspberry Pi Pico;
— 8 кнопок;
— прямые руки;
— и, наконец, немного кода.
Подробная инструкция в статье:
https://habr.com/ru/companies/timeweb/articles/736438/
#android #diy
Интеграция рекламы в Android-приложение: Yandex Mobile Ads Vs. Google AdMob
Сегодня использовать зарубежные решения не столько сложно, сколько бессмысленно, если пользователи находятся в России. Многие провайдеры уходят из страны и с получением дохода от рекламы могут возникнуть проблемы.
Эта статья будет полезна Android-разработчикам, которые столкнулись с выбором SDK:
https://habr.com/ru/companies/simbirsoft/articles/737158/
#android
Как создать анимированные шейдеры в Jetpack Compose
Jetpack Compose — бурно развивающийся фреймворк для разработки под Android, который обладает множеством не всегда очевидных фичей. Сегодня речь пойдёт об одной из таких встроенных возможностей: речь идет об использовании OpenGL-шейдеров. Они позволяют делать красивые анимированные интерфейсы, как на видео выше.
В этой статье вы научитесь использовать эту фичу в своих проектах и делать аналогичные шейдеры:
https://habr.com/ru/companies/timeweb/articles/736192
#jetpackcompose
Как самостоятельно изучить 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
Самый популярный вопрос во вселенной изучения мобильной разработки – это куда же всё-таки идти, в iOS или Android
На вебинаре Яндекс Практикума «Батл: отличия iOS и Android» спикеры развернут интересную дискуссию о том, в чём схожи и чем отличаются виды разработки под iOS и Android.
Вести встречу будут наставники одноименных направлений:
— Никита Куликов – руководитель Android-разработки в Flipper Devices;
— Денис Сурков – iOS-разработчик в «Мой спорт».
А ещё вы узнаете:
— что такое мобильная разработка;
— чем занимаются мобильные разработчики;
— в чём особенности профессии;
— как понять, что больше подходит вам.
И многое другое, что вы хотели узнать о профессии, чтобы сделать выбор или окончательно утвердиться в его правильности.
Начало 25 мая в 19:00. Ссылка для регистрации на ивент: https://practicum.yandex.ru/promo/events/ios-android/
Реклама АНО ДПО «Образовательные технологии Яндекса»
Параллакс в Jetpack Compose
Эффект параллакса является популярным способом улучшить внешний вид приложения. При этом создать эффект параллакса в compose довольно просто: мы отслеживаем состояние прокрутки нашего скроллера и изменяем скорость трансляции видов, для которых мы хотим использовать параллакс.
В этой статье вы найдёте пошаговую инструкцию для создания этого такого эффекта:
https://proandroiddev.com/parallax-in-jetpack-compose-bf521244f49
#jetpackcompose
Ping в iOS
Иногда бывает нужно проверить доступность удалённого сервера и время ответа из приложения.
Простой способ такой проверки с использованием новой асинхронной функциональности Swift описывается в статье:
onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3" rel="nofollow">https://medium.com/@onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3
#ios #network
Виды мобильных приложений
Мобильные приложения могут работать непосредственно на платформе, поверх мобильного браузера или представлять собой комбинацию обоих вариантов. Выбор правильного типа приложения зависит от конкретных потребностей проекта.
В статье описаны характеристики и различия каждого вида мобильных приложений:
https://iamankurjain.medium.com/mobile-application-taxonomy-65b4b9e9e5a7
#советы
Сокращение времени запуска Android-приложения
Время запуска — это первое впечатление пользователей о приложении, и медленная загрузка может негативно сказаться на удержании и привлечении пользователей.
Статья рассказывает о том, как разработчики Turo (каршеринг-приложение) сократили время запуска программы на 77%:
https://medium.com/androiddevelopers/turo-reduced-its-app-startup-time-by-77-using-android-developer-tools-and-best-practices-bcf82f596bcf
#android
8 пакетов Flutter для облегчения разработки
1. Freezed
Freezed — генератор кода, который уменьшает количество действий для создания шаблонов классов и помогает писать код быстрее.
2. flutter_launcher_icons
Пакет пригодится, если понадобится изменить иконки приложения, не зная ничего о Xcode и Android. Вы просто добавляете свой значок в формате png, выполняете команду flutter pub run flutter_launcher_icons
, и все остальное происходит в фоновом режиме.
3. Fluttertoast
С помощью этого пакета легко отображать уведомления в приложениях Flutter.
4. Firestore
Firestore — облачная база данных NoSQL.
Пакет позволяет легко интегрировать приложения Flutter с Firestore.
5. Riverpod
Riverpod — менеджер состояний, который обеспечивает простой и гибкий способ управления состоянием приложения Flutter. Пакет упрощает создание реактивных пользовательских интерфейсов и тестирование кода.
6. SharedPreferences
Пакет для хранения и извлечения пар «ключ-значение» на устройстве пользователя. Удобен для хранения предпочтений пользователя, таких как настройки и данные, специфичные для пользователя.
7. package_info_plus
Пакет предназначен для получения информацию о приложении (номер версии, номер сборки и имя пакета). Этот пакет особенно полезен для отображения информации о приложении пользователям или в целях отладки.
8. intl
С помощью этого пакета разработчики могут легко форматировать дату, время, числа и валюту для разных локалей, что необходимо для создания приложений, поддерживающих несколько языков и регионов.
А какие пакеты для Flutter используете вы?
#flutter
Что нового в Kotlin для Android?
На конференции Google I/O 2023 были представлены новинки Kotlin.
Большая статья, в которой подробно разбираются эти обновления, с комментариями и дополнениями мобильного разработчика:
https://habr.com/ru/companies/usetech/articles/734338/
#kotlin #android
Двухфакторная аутентификация с помощью Java Card
Java Card — это технология программного обеспечения, которая позволяет безопасно запускать приложения (апплеты) на базе Java на смарт-картах и, в более широком смысле, на аналогичных безопасных устройствах с малым объемом памяти.
В статье разработчик рассказывает про свой опыт внедрения двухфакторной аутентификации с помощью Java Card для мобильного приложения на базе Android:
https://habr.com/ru/articles/734516/
#android #java
Гибридная разработка на практике: Flutter и SvelteKit WebViews
Вчера у нас был пост о том, что такое гибридная разработка.
Сегодня перейдём к практике.
В статье подробно рассматривается интеграция SvelteKit WebViews с мобильным приложением на Flutter.
Вы узнаете:
— как настроить WebView во Flutter;
— как реализовать app bridge в SvelteKit;
— как отправлять сообщения между Flutter и SvelteKit.
#flutter #svelte
Что нового в Jetpack и Jetpack Compose
10 мая в Маунтин-Вью в Калифорнии началась ежегодная конференция Google I/O 2023. Разработчики OS Android рассказали об обновлениях в Jetpack и Jetpack Compose.
В материале разработчики рассказывают об оптимизации производительности приложений, обновлениях ключевых библиотек, и о библиотеках UI, в том числе Compose:
https://android-developers.googleblog.com/2023/05/whats-new-in-jetpack-io-2023.html
Более подробно об обновлениях в Jetpack Compose в статье:
https://android-developers.googleblog.com/2023/05/whats-new-in-jetpack-compose.html
#jetpack #compose
Поиск retain cycle с помощью инструментов Xcode
При разработке под iOS многие разработчики часто сталкиваются c retain cycle, когда как минимум 2 объекта удерживают строгие ссылки друг на друга.
В реальном большом проекте очень тяжело отыскать, кто держит сильную ссылку друг на друга, причем это могут быть не 2 объекта, а больше.
В этой статье вы узнаете, как найти проблемное место и исправить его:
https://tproger.ru/articles/poisk-retain-cycle-s-pomoshhju-instrumentov-xcode/
#ios #xcode #swift
Упрощение внедрения зависимостей с помощью паттерна «фасад» в iOS
Если мы работаем в приложении со слишком большим количеством модулей и, следовательно, слишком большим количеством зависимостей в каждом из них, может потребоваться много времени, чтобы сосчитать их все, внедрить в каждый класс, на который они полагаются.
К счастью, существует полезное решение, позволяющее упростить передачу слишком большого количества зависимостей в класс, и даже лучше: его можно разделить на более мелкие, если не все из них необходимы.
Подробнее:
https://pedroalvarez-29395.medium.com/ios-simplifying-dependency-injection-with-the-facade-design-pattern-bd863630da32
#ios
Как использовать Deep Links и Universal Link iOS-разработчику?
Приходите 26 мая в 20:00 мск на бесплатный вебинар в OTUS на котором вы узнаете, как правильно организовать навигацию с помощью Deep Links и Universal Links в SwiftUI.
На вебинаре:
— расскажут о технологии Deep links на iOS;
— произведут настройку сервера и клиентского приложения для работы с этой технологией;
— на примере приложения на SwiftUI покажут, как можно открыть определенный экран с помощью Deep links.
Регистрация на вебинар: https://otus.pw/Yvud/
Не упустите шанс узнать больше о технологии, которая может значительно улучшить пользовательский опыт в вашем приложении.
Вебинар пройдет в рамках онлайн-курса «iOS Developer. Professional» в OTUS.
Реклама ООО «Отус Онлайн-Образование» LjN8JvuSW
SOLID-принципы — основа качественного и гибкого кода
Чтобы при передаче данных между слоями одна правка не влекла за собой лавину других, стоит придерживаться принципа инверсии зависимости.
Юра Афанасьев, бэкендер из Авито, уместил все 5 принципов в 4 коротких обучающих ролика. Смотрите последний выпуск о SOLID-принципах и подписывайтесь, чтобы не пропустить новые лекции на канале AvitoTech: https://tprg.ru/4EmC
Реклама ООО «Авито Тех» LjN8JyQwf
Диспетчеризация методов iOS
Диспетчеризацией методов называют процесс поиска адреса инструкций, которые нужно выполнить CPU при вызове определенного метода. Знания принципов работы диспетчеризации методов необходимы при написании кода, поскольку они позволяют повысить производительность приложения, а также не допустить ошибок, связанных с неочевидным поведением в Swift.
В этой статье будут рассмотрены понятие диспетчеризации, его виды, преимущества и недостатки, а также приведены небольшие задачи для укрепления знаний:
https://habr.com/ru/articles/677616/
#ios #swift
Опыт после использования Kotlin Multiplatform в производственных приложениях в течение года
Автор этой статьи поделился своими наблюдениями и выводами об использовании Kotlin Multiplatform. Рекомендуем к прочтению:
https://betterprogramming.pub/experience-using-kmp-in-production-apps-for-a-year-2474406d99d4
#kotlin #kmp
Сборка с Bazel — бесплатный курс
Bazel — это система сборки с открытым исходным кодом, созданная Google для компиляции больших сложных баз кода.
На этом курсе вы сможете изучить основы использования этого инструмента начиная от написания очень простого Java-приложения, заканчивая компиляцией приложения для Android с большим количеством зависимостей.
Курс доступен бесплатно:
https://www.kodeco.com/31558158-building-with-bazel
#bazel #курс
Различия Compose и SwiftUI
На первый взгляд SwiftUI и Jetpack Compose очень похожи. Оба являются декларативными UI-фреймворками с похожими примитивами, предназначенными для выполнения одной и той же задачи.
Но есть некоторые фундаментальные различия, которые определяют способ их использования. Подробности в статье:
https://medium.com/mateedevs/fundamental-differences-of-compose-and-swiftui-2dc0cdd0b37
#swiftui #compose
Использование принципа инверсии зависимостей на практике
В статье предлагается эффективный подход к обновлению приложений без необходимости полного переписывания кода. Автор обсуждает применение принципа инверсии зависимостей (Dependency Inversion), который позволяет снизить зависимость между компонентами приложения, сделать его более гибким и устойчивым к изменениям:
https://itnext.io/avoid-rewriting-your-app-with-dependency-inversion-dfe525075f28
#android
Passkeys в вопросах и ответах
Passkeys — это замена паролей, обеспечивающая более быстрый, простой и безопасный вход в приложения и веб-сайты. Этот способ авторизации надежен, устойчив к фишингу и рассчитан на работу не только на устройствах Apple. Самое главное, что людям не нужно ничего создавать, охранять или запоминать.
Чтобы объяснить, как применять Passkeys, команда Apple по конфиденциальности и безопасности провела встречу в формате «вопрос-ответ», в ходе которой ответила на распространённые вопросы о поддержке устройств, вариантах использования, восстановлении аккаунта и многом другом. В статье — основные моменты из этой беседы:
https://developer.apple.com/news/?id=21mnmxow
#ios
Что такое Compose Multiplatform?
На сегодняшний день есть два основных UI-фреймворка, которые позволяют запускать один и тот же UI на разных платформах и широко представлены на рынке: React Native и Flutter.
Но статья не о них, а об удобном и мощном инструменте мобильной и десктопной разработки — Compose Multiplatform, приложения на котором можно запускать почти где угодно и на чем угодно — Android, iOS, Windows, Linux, MacOS и в браузере:
https://habr.com/ru/companies/timeweb/articles/734818/
#compose #kotlin
5 инструментов для iOS-разработчика
У каждого разработчика есть свой набор программ, которые он использует каждый день. Ниже 5 инструментов, которые можно использовать в рабочем процессе:
1. Cleaner for Xcode
Это приложение поможет удалить старые файлы, оставшиеся после обновления до новой версии Xcode. Оно также может очистить все производные данные и кэши и освободить место на диске.
2. Rectangle
Rectangle, как и его предшественник Spectacle, улучшает управление окнами с помощью сочетаний клавиш и областей привязки.
3. SF Symbols
С помощью SF Symbols вы можете включать в свои приложения различные пиктограммы. Самое приятное то, что библиотека постоянно пополняется, поэтому у вас всегда будут свежие иконки для работы.
4. Sigma
Sigma — плагин для Figma, который автоматически генерирует код SwiftUI на основе ваших проектов. Этот плагин экономит время и может упростить процесс проектирования и разработки.
5. Amphetamine
С этим всё просто. Amphetamine не позволяет вашему Macbook заснуть, что бывает полезно во время презентаций или когда вы работаете без подключения ноутбука к источнику питания.
#ios
Все видео Google I/O 2023
10 мая прошла ежегодная конференция компании Google, где презентовали новые гаджеты и обновления. Большинство изменений связано с искусственным интеллектом.
Узнать что нового в платформе, о разработке производительных и качественных приложений, об инструментах для создания приложений для различных устройств можно по ссылке (35 видео):
https://www.youtube.com/playlist?list=PLWz5rJ2EKKc85Xna4Q3Fw79OP_3D1JaJW
#android
Пройдите тест по Swift и проверьте свои знания
Ответьте на 20 вопросов и узнайте, насколько вы готовы к обучению на курсе — «iOS Developer. Professional» от OTUS. Курс доступен в рассрочку!
На курсе вы освоите ключевые особенности Swift 5, сможете определять целесообразность применения паттернов и погрузитесь в нюансы использования Rx.
Пройти тест: https://otus.pw/YUhx/
Сможете пройти успешно тест — получите доступ к 2 открытым урокам курса!
Реклама ООО «Отус Онлайн-Образование» LjN8KXt2y
Dart: ужасный, но популярный
В комментариях к посту о новых возможностях Dart 3 задали вопрос:
— За что не любят Dart?
В статье разработчик высказывает своё субъективное мнение о том, почему Dart не нужен. У вас другое мнение? Поделитесь в комментах!
https://towardsdev.com/dart-a-terrible-language-and-a-huge-marketing-success-ee42395ef51e
#dart