Актуальное по мобильной разработке — Android, iOS, кроссплатформа Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Другие наши проекты: https://tprg.ru/media
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
Гибридная разработка мобильных приложений
Гибридная разработка — это разработка с помощью распространенных языков программирования, с использованием веб-технологий, которые используются при создании сайта. Подход включает в себя использование кроссплатформенных, нативных методов и использование фреймворков.
В статье — о плюсах и минусах гибридной разработки и о том, когда такой подход стоит использовать:
https://appfox.ru/blog/gibridnaya-razrabotka/
#разработка
ImageRenderer в SwiftUI: преобразование UIView в изображение
ImageRenderer предоставляет простой в использовании API, позволяющий экспортировать иерархию Swift UIView в виде изображения или PDF-файла. Если пользователю необходимо экспортировать данные из приложения, то с помощью ImageRenderer это стало сделать проще.
Также можно настроить несколько параметров, влияющих на конечный результат экспортируемого изображения: масштаб, размер и цветовой режим. Примеры реализации — здесь:
https://swiftwithmajid.com/2023/04/18/imagerenderer-in-swiftui/
#ios #swift
Цветовые схемы — от Figma до реализации дизайна на Flutter
Выбор цветовой гаммы мобильного приложения — задача не только для дизайнеров, но и для мобильных разработчиков. Понимание нюансов и цветовых схем в Material Design может значительно улучшить визуализацию приложения и опыт пользователя.
В этой статье как раз и разбираются все эти аспекты для приложений на Flutter. Материал может быть интересен и для Android-разработчиков, кто работает с Material 2 и Material 3:
https://infinum.com/blog/flutter-color-schemes/
#flutter #google
Flutter: как запретить запись экрана и скриншоты в iOS & Android
Если по каким-то причинам вашему приложению понадобится функция запрета записи экрана или запрет на создание скриншотов, то для Android SDK можно воспользоваться официальным APi, но в случае iOS всё сложнее.
Статья на примерах показывает, как реализовать этот функционал только нативным кодом на обеих платформах:
https://medium.com/litslink/flutter-preventing-screenshots-and-screen-recording-in-the-app-3e6f55d05ee3
#flutter #ios #android
Что нового ожидается в Dart 3
Выход третьей версии языка Dart ожидается в середине 2023 года. Dart 3 — самое мажорное обновление языка со времён Null Safety: оно изменит многое в том, как мы пишем код и какие библиотеки используем.
Статья о новых фичах, их использовании на практике и как они изменят способ взаимодействия с языком:
https://habr.com/ru/companies/surfstudio/articles/733532/
#dart
Все доклады KotlinConf23
С 12 по 14 апреля 2023 года в Амстердаме проходила конференция KotlinConf23, организованная компанией JetBrains.
Среди докладчиков — разработчики языка Kotlin, разработчики OS Android, специалисты из Google, Abode, JetBrains и других компаний, а также программисты и менеджеры проектов, разрабатываемых на Kotlin.
Сегодня организаторы разместили на YouTube видео всех докладов конференции:
https://www.youtube.com/playlist?list=PLlFc5cFwUnmwcJ7ZXyMmS70A9QFyUu1HI
#kotin #доклад
Безопасность iOS-приложений
Пользователи доверяют свои личные и конфиденциальные данные приложениям, которые они используют каждый день. Как защитить пользовательские данные и сохранить доверие своих пользователей?
В статье рассматриваются различные меры безопасности, которые можно реализовать в приложениях iOS, и приводятся примеры кода, которые помогут повысить безопасность приложений:
https://daddycoding.com/2023/05/02/4812/
#ios
Flutter News Toolkit — быстрое создание новостных приложений
В январе в широком доступе появилась первая версия Flutter News Toolkit для быстрого создания новостных приложений. В нём из коробки доступны функции регистрации пользователей, аутентификации через соцсети, создание новостных лент, монетизация через рекламу или подписки, поиск и настройки.
В видео разработчики Flutter News Toolkit рассказывают о возможностях и показывают пример создания простого приложения:
https://www.youtube.com/watch?v=dukRAS-OUMM
#flutter
Подборка полезных видеоуроков от Филиппа Лакнера
Собрали несколько популярных видео для разработчиков под Android за апрель:
1. Пагинация c использованием Paging3 и Compose
2. LazyColumn: контроль скролла
3. Создание Wear OS приложения с Jetpack Compose
4. Многострочное текстовое поле с подсказкой
5. Реализация Security Scan с помощью AppSweep и GitHub Actions
#android #compose
Как хранить данные в iOS?
Один из самых популярных способов — это UserDefaults и Keychain.
UserDefaults позволяет разработчикам хранить простые типы данных, такие как строки, числа или булевая переменная, в то время как Keychain обеспечивает более безопасный способ хранения конфиденциальных данных — пароли и токены. Понимание различий между этими двумя методами и того, как их эффективно использовать, важно для любого разработчика iOS.
В этой статье рассматриваются их преимущества и ограничения, а также несколько доступных на iOS баз данных:
https://habr.com/ru/companies/redmadrobot/articles/730316/
#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
Основатель «Типичного программиста» в авторском канале рассказывает с чего начинался Tproger (спойлер: с мемов): @nostoppers
Кроме предпринимательства Алексей занимается менторингом, консультирует фаундеров стартапов, помогает бизнесам расти, а людям экономить время на достижение своих целей. В своём канале даёт советы по личной эффективности, рассуждает про бизнес, программирование, медиа и другие темы.
Несколько примеров постов:
— Есть идея по стартапу. Что дальше?
— Как быть с задачами, которые не делаются?
— Неочевидные правила Daily standup
— Пробежки как способ развития бизнеса
— Правила проведения демо разработки
Jetpack Compose: отслеживание действий пользователя
В статье рассматривается, как настроить:
— обнаружение движения скролла, свайпа и нажатий,
— отслеживание UI-элементов, с которым взаимодействует пользователь,
— генерацию соответствующего breadcrumb по идентификатору элемента:
https://tprg.ru/CKOQ
#android #compose
Android: создание кольцевой диаграммы
Наверняка каждый разработчик задумывался над созданием CustomView без использования сторонних библиотек. Собственные компоненты позволяют создавать уникальные интерфейсы приложений, а могут быть просто неплохим дополнением к собственному портфолио.
Одним из самых популярных примеров реализации CustomView являются диаграммы и графики. На Хабре вышла статья с интересным примером реализации кольцевой диаграммы для отображения статистики на Kotlin:
https://habr.com/ru/articles/730924/
#android
Как правильно оценить задачу?
Заказчики любят предсказуемость. Им нравится заранее знать, сколько будет стоить проект и сколько времени это займет. Поэтому для разработчика важно уметь давать правильную оценку задачам.
В видео рассказывается как грамотно анализировать требования заказчика и преобразовывать их в технические задачи для успешной реализации, о методах оценки времени на выполнение задач и о типичных ошибках:
https://www.youtube.com/watch?v=o_j3OceGwJU
#советы
Оптимизация Android-приложений для больших экранов
Большие раскладушки, планшеты и настольные устройства, такие как Chromebooks — с каждым годом становится все больше Android-устройств с большим экраном.
Появление таких устройств заставляет разработчика задуматься о новых вещах. Например:
— Может ли пользователь дотянуться до наиболее важных элементов управления при использовании вашего приложения двумя руками на планшете?
— Все ли функции вашего приложения работают с клавиатурой и мышью?
— Имеет ли предварительный просмотр камеры вашего приложения правильную ориентацию независимо от положения устройства?
В статье от разработчиков Android рассматриваются вопросы оптимизации Android-приложений для больших экранов:
https://android-developers.googleblog.com/2023/05/optimizing-your-android-app-for-large-screens.html
#android
Как создавать нативные компоненты и модули в React Native с помощью Swift
Если кратко, то для того чтобы Swift заработал в React Native-проекте, нужно создать bridge-файл. XCode предложит сделать это автоматически при создании первого swift-файла. Но автоматизация здесь не всегда на руку, поэтому важно понимать, как создать такой компонент вручную для решения конкретно ваших задач.
В этой статье вы создадите простенький нативный модуль и компонент, рассмотрите layout в React Native-приложении и а ещё узнаете, что же происходит в shadow thread:
https://habr.com/ru/companies/sbermarket/articles/671978/
Codeium — бесплатный AI-помощник
В прошлом году GitHub запустил систему Copilot – нейросеть, которая пишет код за разработчиков. Но за неё нужно платить.
Codeium делает то же самое бесплатно. При этом он:
— поддерживает Java, Kotlin, Swift, Objective-C и ещё более 40 языков;
— может дополнить ваш код как шаблонами методов, так и юнит-тестами;
— может найти нужный код в вашем репозитории по запросу на естественном языке;
— имеет чат, в котором можно простым языком объяснить, что необходимо, а ИИ сгенерирует код;
— умеет переводить код с одного ЯПа на другой и многое другое.
Плагины для различных IDE и расширение для Chrome для работы в онлайн-IDE по ссылке:
https://codeium.com/download
#ии #инструменты
Swift: ряд Фибоначчи и мемоизация с примерами
Вычисление ряда Фибоначчи — стандартная задача, с которой можно встретиться на собеседованиях. Новички решают их довольно быстро, но часто забывают про эффективность алгоритма.
Одним из наиболее популярных методов оптимизации данного алгоритма является мемоизация, превращая его из экспоненциального (O(2^n)) в линейный (O(n)). В этой статье рассматривается пример реализации задачи на Swift:
https://habr.com/ru/articles/731048/
#swift
Jenkins для Android
Jenkin — популярный инструмент непрерывной интеграции. С его помощью можно автоматизировать весь процесс разработки приложений под Android, включая компиляцию, тестирование и распространение приложений на различные платформы. Главное — правильно настроить. Пошаговый гайд по установке Jenkins, а также рекомендации по тестированию в статье:
https://habr.com/ru/companies/southbridge/articles/731698/
#android